mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-11-04 10:57:10 +08:00 
			
		
		
		
	refactor: 💥 优化系统内置类型数据标识
1.系统内置类型数据标识由 type 调整为 is_system 2.优化部分表的非空字段
This commit is contained in:
		@@ -21,7 +21,6 @@ import lombok.Data;
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
			
		||||
 | 
			
		||||
import top.charles7c.cnadmin.common.base.BaseDO;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataTypeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -67,7 +66,7 @@ public class DeptDO extends BaseDO {
 | 
			
		||||
    private DisEnableStatusEnum status;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 类型(1:系统内置,2:自定义)
 | 
			
		||||
     * 是否为系统内置数据
 | 
			
		||||
     */
 | 
			
		||||
    private DataTypeEnum type;
 | 
			
		||||
    private Boolean isSystem;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -48,4 +48,9 @@ public class DictDO extends BaseDO {
 | 
			
		||||
     * 描述
 | 
			
		||||
     */
 | 
			
		||||
    private String description;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 是否为系统内置数据
 | 
			
		||||
     */
 | 
			
		||||
    private Boolean isSystem;
 | 
			
		||||
}
 | 
			
		||||
@@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
 | 
			
		||||
 | 
			
		||||
import top.charles7c.cnadmin.common.base.BaseDO;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataScopeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataTypeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -68,7 +67,7 @@ public class RoleDO extends BaseDO {
 | 
			
		||||
    private DisEnableStatusEnum status;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 类型(1:系统内置,2:自定义)
 | 
			
		||||
     * 是否为系统内置数据
 | 
			
		||||
     */
 | 
			
		||||
    private DataTypeEnum type;
 | 
			
		||||
    private Boolean isSystem;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,6 @@ import lombok.Data;
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
			
		||||
 | 
			
		||||
import top.charles7c.cnadmin.common.base.BaseDO;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataTypeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.GenderEnum;
 | 
			
		||||
 | 
			
		||||
@@ -85,9 +84,9 @@ public class UserDO extends BaseDO {
 | 
			
		||||
    private DisEnableStatusEnum status;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 类型(1:系统内置,2:自定义)
 | 
			
		||||
     * 是否为系统内置数据
 | 
			
		||||
     */
 | 
			
		||||
    private DataTypeEnum type;
 | 
			
		||||
    private Boolean isSystem;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 最后一次修改密码时间
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,6 @@ import com.baomidou.mybatisplus.annotation.TableField;
 | 
			
		||||
 | 
			
		||||
import top.charles7c.cnadmin.common.base.BaseDetailVO;
 | 
			
		||||
import top.charles7c.cnadmin.common.config.easyexcel.ExcelBaseEnumConverter;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataTypeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -77,11 +76,11 @@ public class DeptDetailVO extends BaseDetailVO {
 | 
			
		||||
    private DisEnableStatusEnum status;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 类型(1:系统内置,2:自定义)
 | 
			
		||||
     * 是否为系统内置数据
 | 
			
		||||
     */
 | 
			
		||||
    @Schema(description = "类型(1:系统内置,2:自定义)", type = "Integer", allowableValues = {"1", "2"}, example = "2")
 | 
			
		||||
    @ExcelProperty(value = "类型", converter = ExcelBaseEnumConverter.class)
 | 
			
		||||
    private DataTypeEnum type;
 | 
			
		||||
    @Schema(description = "是否为系统内置数据", example = "false")
 | 
			
		||||
    @ExcelProperty(value = "系统内置")
 | 
			
		||||
    private Boolean isSystem;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 描述
 | 
			
		||||
@@ -92,6 +91,6 @@ public class DeptDetailVO extends BaseDetailVO {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Boolean getDisabled() {
 | 
			
		||||
        return DataTypeEnum.SYSTEM.equals(type);
 | 
			
		||||
        return this.getIsSystem();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
 | 
			
		||||
 | 
			
		||||
import top.charles7c.cnadmin.common.annotation.TreeField;
 | 
			
		||||
import top.charles7c.cnadmin.common.base.BaseVO;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataTypeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -63,10 +62,10 @@ public class DeptVO extends BaseVO {
 | 
			
		||||
    private DisEnableStatusEnum status;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 类型(1:系统内置,2:自定义)
 | 
			
		||||
     * 是否为系统内置数据
 | 
			
		||||
     */
 | 
			
		||||
    @Schema(description = "类型(1:系统内置,2:自定义)", type = "Integer", allowableValues = {"1", "2"}, example = "2")
 | 
			
		||||
    private DataTypeEnum type;
 | 
			
		||||
    @Schema(description = "是否为系统内置数据", example = "false")
 | 
			
		||||
    private Boolean isSystem;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 描述
 | 
			
		||||
@@ -76,6 +75,6 @@ public class DeptVO extends BaseVO {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Boolean getDisabled() {
 | 
			
		||||
        return DataTypeEnum.SYSTEM.equals(type);
 | 
			
		||||
        return this.getIsSystem();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -51,4 +51,10 @@ public class DictDetailVO extends BaseDetailVO {
 | 
			
		||||
     */
 | 
			
		||||
    @Schema(description = "描述", example = "公告类型描述信息")
 | 
			
		||||
    private String description;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 是否为系统内置数据
 | 
			
		||||
     */
 | 
			
		||||
    @Schema(description = "是否为系统内置数据", example = "true")
 | 
			
		||||
    private Boolean isSystem;
 | 
			
		||||
}
 | 
			
		||||
@@ -51,4 +51,10 @@ public class DictVO extends BaseVO {
 | 
			
		||||
     */
 | 
			
		||||
    @Schema(description = "描述", example = "公告类型描述信息")
 | 
			
		||||
    private String description;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 是否为系统内置数据
 | 
			
		||||
     */
 | 
			
		||||
    @Schema(description = "是否为系统内置数据", example = "true")
 | 
			
		||||
    private Boolean isSystem;
 | 
			
		||||
}
 | 
			
		||||
@@ -28,7 +28,6 @@ import com.alibaba.excel.annotation.ExcelProperty;
 | 
			
		||||
import top.charles7c.cnadmin.common.base.BaseDetailVO;
 | 
			
		||||
import top.charles7c.cnadmin.common.config.easyexcel.ExcelBaseEnumConverter;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataScopeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataTypeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -81,11 +80,11 @@ public class RoleDetailVO extends BaseDetailVO {
 | 
			
		||||
    private DisEnableStatusEnum status;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 类型(1:系统内置,2:自定义)
 | 
			
		||||
     * 是否为系统内置数据
 | 
			
		||||
     */
 | 
			
		||||
    @Schema(description = "类型(1:系统内置,2:自定义)", example = "2")
 | 
			
		||||
    @ExcelProperty(value = "类型", converter = ExcelBaseEnumConverter.class)
 | 
			
		||||
    private DataTypeEnum type;
 | 
			
		||||
    @Schema(description = "是否为系统内置数据", example = "false")
 | 
			
		||||
    @ExcelProperty(value = "系统内置")
 | 
			
		||||
    private Boolean isSystem;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 描述
 | 
			
		||||
@@ -108,6 +107,6 @@ public class RoleDetailVO extends BaseDetailVO {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Boolean getDisabled() {
 | 
			
		||||
        return DataTypeEnum.SYSTEM.equals(type);
 | 
			
		||||
        return this.getIsSystem();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
 | 
			
		||||
 | 
			
		||||
import top.charles7c.cnadmin.common.base.BaseVO;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataScopeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataTypeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -69,10 +68,10 @@ public class RoleVO extends BaseVO {
 | 
			
		||||
    private DisEnableStatusEnum status;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 类型(1:系统内置,2:自定义)
 | 
			
		||||
     * 是否为系统内置数据
 | 
			
		||||
     */
 | 
			
		||||
    @Schema(description = "类型(1:系统内置,2:自定义)", type = "Integer", allowableValues = {"1", "2"}, example = "2")
 | 
			
		||||
    private DataTypeEnum type;
 | 
			
		||||
    @Schema(description = "是否为系统内置数据", example = "false")
 | 
			
		||||
    private Boolean isSystem;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 描述
 | 
			
		||||
@@ -82,6 +81,6 @@ public class RoleVO extends BaseVO {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Boolean getDisabled() {
 | 
			
		||||
        return DataTypeEnum.SYSTEM.equals(type);
 | 
			
		||||
        return this.getIsSystem();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,6 @@ import com.alibaba.excel.annotation.ExcelProperty;
 | 
			
		||||
 | 
			
		||||
import top.charles7c.cnadmin.common.base.BaseDetailVO;
 | 
			
		||||
import top.charles7c.cnadmin.common.config.easyexcel.ExcelBaseEnumConverter;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataTypeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.GenderEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
 | 
			
		||||
@@ -98,11 +97,11 @@ public class UserDetailVO extends BaseDetailVO {
 | 
			
		||||
    private DisEnableStatusEnum status;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 类型(1:系统内置,2:自定义)
 | 
			
		||||
     * 是否为系统内置数据
 | 
			
		||||
     */
 | 
			
		||||
    @Schema(description = "类型(1:系统内置,2:自定义)", type = "Integer", allowableValues = {"1", "2"}, example = "2")
 | 
			
		||||
    @ExcelProperty(value = "类型", converter = ExcelBaseEnumConverter.class)
 | 
			
		||||
    private DataTypeEnum type;
 | 
			
		||||
    @Schema(description = "系统内置", example = "false")
 | 
			
		||||
    @ExcelProperty(value = "系统内置")
 | 
			
		||||
    private Boolean isSystem;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 描述
 | 
			
		||||
@@ -145,6 +144,6 @@ public class UserDetailVO extends BaseDetailVO {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Boolean getDisabled() {
 | 
			
		||||
        return DataTypeEnum.SYSTEM.equals(type) || Objects.equals(this.getId(), LoginHelper.getUserId());
 | 
			
		||||
        return this.getIsSystem() || Objects.equals(this.getId(), LoginHelper.getUserId());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
 | 
			
		||||
import cn.hutool.core.util.DesensitizedUtil;
 | 
			
		||||
 | 
			
		||||
import top.charles7c.cnadmin.common.base.BaseVO;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataTypeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.GenderEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
 | 
			
		||||
@@ -86,10 +85,10 @@ public class UserVO extends BaseVO {
 | 
			
		||||
    private DisEnableStatusEnum status;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 类型(1:系统内置,2:自定义)
 | 
			
		||||
     * 是否为系统内置数据
 | 
			
		||||
     */
 | 
			
		||||
    @Schema(description = "类型(1:系统内置,2:自定义)", type = "Integer", allowableValues = {"1", "2"}, example = "2")
 | 
			
		||||
    private DataTypeEnum type;
 | 
			
		||||
    @Schema(description = "是否为系统内置数据", example = "false")
 | 
			
		||||
    private Boolean isSystem;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 描述
 | 
			
		||||
@@ -99,7 +98,7 @@ public class UserVO extends BaseVO {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Boolean getDisabled() {
 | 
			
		||||
        return Objects.equals(this.getId(), LoginHelper.getUserId());
 | 
			
		||||
        return this.getIsSystem() || Objects.equals(this.getId(), LoginHelper.getUserId());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getPhone() {
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,6 @@ import cn.hutool.core.util.ObjectUtil;
 | 
			
		||||
 | 
			
		||||
import top.charles7c.cnadmin.common.base.BaseServiceImpl;
 | 
			
		||||
import top.charles7c.cnadmin.common.constant.SysConsts;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataTypeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.util.ExceptionUtils;
 | 
			
		||||
import top.charles7c.cnadmin.common.util.validate.CheckUtils;
 | 
			
		||||
@@ -83,7 +82,7 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptVO,
 | 
			
		||||
        String oldName = oldDept.getName();
 | 
			
		||||
        DisEnableStatusEnum newStatus = request.getStatus();
 | 
			
		||||
        Long oldParentId = oldDept.getParentId();
 | 
			
		||||
        if (DataTypeEnum.SYSTEM.equals(oldDept.getType())) {
 | 
			
		||||
        if (oldDept.getIsSystem()) {
 | 
			
		||||
            CheckUtils.throwIfEqual(DisEnableStatusEnum.DISABLE, newStatus, "[{}] 是系统内置部门,不允许禁用", oldName);
 | 
			
		||||
            CheckUtils.throwIfNotEqual(request.getParentId(), oldParentId, "[{}] 是系统内置部门,不允许变更上级部门", oldName);
 | 
			
		||||
        }
 | 
			
		||||
@@ -113,8 +112,8 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptVO,
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public void delete(List<Long> ids) {
 | 
			
		||||
        List<DeptDO> list =
 | 
			
		||||
            baseMapper.lambdaQuery().select(DeptDO::getName, DeptDO::getType).in(DeptDO::getId, ids).list();
 | 
			
		||||
        Optional<DeptDO> isSystemData = list.stream().filter(d -> DataTypeEnum.SYSTEM.equals(d.getType())).findFirst();
 | 
			
		||||
            baseMapper.lambdaQuery().select(DeptDO::getName, DeptDO::getIsSystem).in(DeptDO::getId, ids).list();
 | 
			
		||||
        Optional<DeptDO> isSystemData = list.stream().filter(DeptDO::getIsSystem).findFirst();
 | 
			
		||||
        CheckUtils.throwIf(isSystemData::isPresent, "所选部门 [{}] 是系统内置部门,不允许删除",
 | 
			
		||||
            isSystemData.orElseGet(DeptDO::new).getName());
 | 
			
		||||
        CheckUtils.throwIf(this.countChildren(ids) > 0, "所选部门存在下级部门,不允许删除");
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,7 @@ package top.charles7c.cnadmin.system.service.impl;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Optional;
 | 
			
		||||
 | 
			
		||||
import javax.servlet.http.HttpServletResponse;
 | 
			
		||||
 | 
			
		||||
@@ -68,12 +69,22 @@ public class DictServiceImpl extends BaseServiceImpl<DictMapper, DictDO, DictVO,
 | 
			
		||||
        CheckUtils.throwIf(this.checkNameExists(name, id), "修改失败,[{}] 已存在", name);
 | 
			
		||||
        String code = request.getCode();
 | 
			
		||||
        CheckUtils.throwIf(this.checkCodeExists(code, id), "修改失败,[{}] 已存在", code);
 | 
			
		||||
        DictDO oldDict = super.getById(id);
 | 
			
		||||
        if (oldDict.getIsSystem()) {
 | 
			
		||||
            CheckUtils.throwIfNotEqual(request.getCode(), oldDict.getCode(), "[{}] 是系统内置字典,不允许修改字典编码",
 | 
			
		||||
                oldDict.getName());
 | 
			
		||||
        }
 | 
			
		||||
        super.update(request, id);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public void delete(List<Long> ids) {
 | 
			
		||||
        List<DictDO> list =
 | 
			
		||||
            baseMapper.lambdaQuery().select(DictDO::getName, DictDO::getIsSystem).in(DictDO::getId, ids).list();
 | 
			
		||||
        Optional<DictDO> isSystemData = list.stream().filter(DictDO::getIsSystem).findFirst();
 | 
			
		||||
        CheckUtils.throwIf(isSystemData::isPresent, "所选字典 [{}] 是系统内置字典,不允许删除",
 | 
			
		||||
            isSystemData.orElseGet(DictDO::new).getName());
 | 
			
		||||
        dictItemService.deleteByDictIds(ids);
 | 
			
		||||
        super.delete(ids);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,6 @@ import top.charles7c.cnadmin.common.base.BaseServiceImpl;
 | 
			
		||||
import top.charles7c.cnadmin.common.constant.CacheConsts;
 | 
			
		||||
import top.charles7c.cnadmin.common.constant.SysConsts;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataScopeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataTypeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.model.dto.RoleDTO;
 | 
			
		||||
import top.charles7c.cnadmin.common.model.vo.LabelValueVO;
 | 
			
		||||
@@ -93,7 +92,7 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO,
 | 
			
		||||
        RoleDO oldRole = super.getById(id);
 | 
			
		||||
        DataScopeEnum oldDataScope = oldRole.getDataScope();
 | 
			
		||||
        String oldCode = oldRole.getCode();
 | 
			
		||||
        if (DataTypeEnum.SYSTEM.equals(oldRole.getType())) {
 | 
			
		||||
        if (oldRole.getIsSystem()) {
 | 
			
		||||
            CheckUtils.throwIfEqual(DisEnableStatusEnum.DISABLE, request.getStatus(), "[{}] 是系统内置角色,不允许禁用",
 | 
			
		||||
                oldRole.getName());
 | 
			
		||||
            CheckUtils.throwIfNotEqual(request.getCode(), oldCode, "[{}] 是系统内置角色,不允许修改角色编码", oldRole.getName());
 | 
			
		||||
@@ -121,8 +120,8 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO,
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public void delete(List<Long> ids) {
 | 
			
		||||
        List<RoleDO> list =
 | 
			
		||||
            baseMapper.lambdaQuery().select(RoleDO::getName, RoleDO::getType).in(RoleDO::getId, ids).list();
 | 
			
		||||
        Optional<RoleDO> isSystemData = list.stream().filter(r -> DataTypeEnum.SYSTEM.equals(r.getType())).findFirst();
 | 
			
		||||
            baseMapper.lambdaQuery().select(RoleDO::getName, RoleDO::getIsSystem).in(RoleDO::getId, ids).list();
 | 
			
		||||
        Optional<RoleDO> isSystemData = list.stream().filter(RoleDO::getIsSystem).findFirst();
 | 
			
		||||
        CheckUtils.throwIf(isSystemData::isPresent, "所选角色 [{}] 是系统内置角色,不允许删除",
 | 
			
		||||
            isSystemData.orElseGet(RoleDO::new).getName());
 | 
			
		||||
        CheckUtils.throwIf(userRoleService.countByRoleIds(ids) > 0, "所选角色存在用户关联,请解除关联后重试");
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,6 @@ import top.charles7c.cnadmin.common.constant.CacheConsts;
 | 
			
		||||
import top.charles7c.cnadmin.common.constant.FileConsts;
 | 
			
		||||
import top.charles7c.cnadmin.common.constant.StringConsts;
 | 
			
		||||
import top.charles7c.cnadmin.common.constant.SysConsts;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DataTypeEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
 | 
			
		||||
import top.charles7c.cnadmin.common.service.CommonUserService;
 | 
			
		||||
import top.charles7c.cnadmin.common.util.ExceptionUtils;
 | 
			
		||||
@@ -117,7 +116,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
 | 
			
		||||
            DisEnableStatusEnum.DISABLE.equals(newStatus) && ObjectUtil.equal(id, LoginHelper.getUserId()),
 | 
			
		||||
            "不允许禁用当前用户");
 | 
			
		||||
        UserDO oldUser = super.getById(id);
 | 
			
		||||
        if (DataTypeEnum.SYSTEM.equals(oldUser.getType())) {
 | 
			
		||||
        if (oldUser.getIsSystem()) {
 | 
			
		||||
            CheckUtils.throwIfEqual(DisEnableStatusEnum.DISABLE, newStatus, "[{}] 是系统内置用户,不允许禁用",
 | 
			
		||||
                oldUser.getNickname());
 | 
			
		||||
            Collection<Long> disjunctionRoleIds =
 | 
			
		||||
@@ -135,8 +134,8 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
 | 
			
		||||
    public void delete(List<Long> ids) {
 | 
			
		||||
        CheckUtils.throwIf(CollUtil.contains(ids, LoginHelper.getUserId()), "不允许删除当前用户");
 | 
			
		||||
        List<UserDO> list =
 | 
			
		||||
            baseMapper.lambdaQuery().select(UserDO::getNickname, UserDO::getType).in(UserDO::getId, ids).list();
 | 
			
		||||
        Optional<UserDO> isSystemData = list.stream().filter(u -> DataTypeEnum.SYSTEM.equals(u.getType())).findFirst();
 | 
			
		||||
            baseMapper.lambdaQuery().select(UserDO::getNickname, UserDO::getIsSystem).in(UserDO::getId, ids).list();
 | 
			
		||||
        Optional<UserDO> isSystemData = list.stream().filter(UserDO::getIsSystem).findFirst();
 | 
			
		||||
        CheckUtils.throwIf(isSystemData::isPresent, "所选用户 [{}] 是系统内置用户,不允许删除",
 | 
			
		||||
            isSystemData.orElseGet(UserDO::new).getNickname());
 | 
			
		||||
        // 删除用户和角色关联
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user