mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 04:08:43 +08:00 
			
		
		
		
	【修复】字典类型逻辑删除时,唯一索引冲突的问题
This commit is contained in:
		@@ -5,9 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 | 
			
		||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeExportReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO;
 | 
			
		||||
import org.apache.ibatis.annotations.Delete;
 | 
			
		||||
import org.apache.ibatis.annotations.Mapper;
 | 
			
		||||
import org.apache.ibatis.annotations.Param;
 | 
			
		||||
import org.apache.ibatis.annotations.Update;
 | 
			
		||||
@@ -43,10 +41,8 @@ public interface DictTypeMapper extends BaseMapperX<DictTypeDO> {
 | 
			
		||||
        return selectOne(DictTypeDO::getName, name);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Update("UPDATE system_dict_type SET DELETED = 1,DELETED_TIME=#{deletedTime} WHERE id = #{id}")
 | 
			
		||||
    int deleteById(@Param("id") Long id, @Param("deletedTime") LocalDateTime deletedTime);
 | 
			
		||||
 | 
			
		||||
    default int deleteById(Long id) {
 | 
			
		||||
        return deleteById(id, LocalDateTime.now());
 | 
			
		||||
    }
 | 
			
		||||
    @Update("UPDATE system_dict_type SET deleted = 1, deleted_time = #{deletedTime} WHERE id = #{id}")
 | 
			
		||||
    void updateToDelete(@Param("id") Long id, @Param("deletedTime") LocalDateTime deletedTime);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.service.dict;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.util.StrUtil;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeCreateReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeExportReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO;
 | 
			
		||||
@@ -58,7 +59,8 @@ public class DictTypeServiceImpl implements DictTypeService {
 | 
			
		||||
        // 校验正确性
 | 
			
		||||
        checkCreateOrUpdate(null, reqVO.getName(), reqVO.getType());
 | 
			
		||||
        // 插入字典类型
 | 
			
		||||
        DictTypeDO dictType = DictTypeConvert.INSTANCE.convert(reqVO);
 | 
			
		||||
        DictTypeDO dictType = DictTypeConvert.INSTANCE.convert(reqVO)
 | 
			
		||||
                .setDeletedTime(LocalDateTimeUtils.EMPTY); // 唯一索引,避免 null 值
 | 
			
		||||
        dictTypeMapper.insert(dictType);
 | 
			
		||||
        return dictType.getId();
 | 
			
		||||
    }
 | 
			
		||||
@@ -81,7 +83,7 @@ public class DictTypeServiceImpl implements DictTypeService {
 | 
			
		||||
            throw exception(DICT_TYPE_HAS_CHILDREN);
 | 
			
		||||
        }
 | 
			
		||||
        // 删除字典类型
 | 
			
		||||
        dictTypeMapper.deleteById(id);
 | 
			
		||||
        dictTypeMapper.updateToDelete(id, LocalDateTime.now());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user