diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RoleController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RoleController.java index 98f4f43..25a3403 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RoleController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RoleController.java @@ -58,4 +58,10 @@ public class RoleController { public ElectromagneticResult getRoleNames() { return ElectromagneticResultUtil.success(roleService.getAllRoleNames()); } + + @ApiOperation(value="获得角色配置模版", notes = "") + @GetMapping(value = "/getRoleTemplate") + public ElectromagneticResult getRoleTemplate() { + return ElectromagneticResultUtil.success(roleService.getRoleTemplate()); + } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/Role.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/Role.java index e7acf97..a2752d2 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/Role.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/Role.java @@ -63,11 +63,5 @@ public class Role { */ @TableField(value = "gmt_modified", fill = FieldFill.UPDATE) private Date gmtModified; - - /** - * 是否有效:0-无效 1-有效 - */ - @TableField(value = "effect_flag") - private Integer effectFlag; } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/RoleService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/RoleService.java index 74866ce..100db4f 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/RoleService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/RoleService.java @@ -65,5 +65,12 @@ public interface RoleService extends IService { * @return */ RoleDTO getRoleByName(String roleName); + + /** + * 空树 + * + * @return + */ + RoleDTO getRoleTemplate(); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java index 572b6e2..a4c5858 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java @@ -61,7 +61,7 @@ public class EdFileRelationServiceImpl extends ServiceImpl list = this.list(queryWrapper); if (!list.isEmpty()) { - throw new BizException (HttpStatus.BAD_REQUEST.value(), "请勿重复建立关系"); + throw new BizException (-1, "请勿重复建立关系"); } edFileRelation.setId(IdWorker.getSnowFlakeIdString()); @@ -137,8 +137,6 @@ public class EdFileRelationServiceImpl extends ServiceImpl uploadFileAndRelation(String parentId, String id, MultipartFile file, String descrption) { Assert.isTrue(EleCommonUtil.isFileNameValid(file.getOriginalFilename()), NAME_VALID_MSG); - EdFileInfo fileInfo = edFileInfoService.getById(parentId); - Assert.isTrue(fileInfo.getDataType().equals(EleDataTypeEnum.FOLDER.code) && !fileInfo.getPrjDir(), "层级目录不允许上传文件"); + // 查找下一层,看是否存在顶级定义相关文件,如果存在,则该层属于管理员层级定义的,不允许上传文件 + long dirCount = edFileInfoService.count(Wrappers.lambdaQuery(EdFileInfo.class) + .eq(EdFileInfo::getParentId, parentId) + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) + .eq(EdFileInfo::getPrjDir, true) + .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code)); + Assert.isTrue(dirCount == 0, "层级目录不允许上传文件"); + String fileName = file.getOriginalFilename(); String mainName = FileUtil.mainName(fileName); String suffix = FileUtil.getSuffix(fileName); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RoleServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RoleServiceImpl.java index d0cfca9..1f170f0 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RoleServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RoleServiceImpl.java @@ -5,13 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.electromagnetic.industry.software.common.enums.EffectFlagEnum; +import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum; import com.electromagnetic.industry.software.common.exception.BizException; import com.electromagnetic.industry.software.common.util.EleLog; import com.electromagnetic.industry.software.common.util.IdWorker; import com.electromagnetic.industry.software.common.util.UserThreadLocal; +import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper; import com.electromagnetic.industry.software.manage.mapper.RoleMapper; import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo; import com.electromagnetic.industry.software.manage.pojo.models.Role; @@ -20,10 +23,7 @@ import com.electromagnetic.industry.software.manage.pojo.models.UserRole; import com.electromagnetic.industry.software.manage.pojo.req.RoleDTO; import com.electromagnetic.industry.software.manage.pojo.req.RolePageDTO; import com.electromagnetic.industry.software.manage.pojo.req.RolePermissionDTO; -import com.electromagnetic.industry.software.manage.service.PermissionService; -import com.electromagnetic.industry.software.manage.service.RolePermissionService; -import com.electromagnetic.industry.software.manage.service.RoleService; -import com.electromagnetic.industry.software.manage.service.UserRoleService; +import com.electromagnetic.industry.software.manage.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -44,14 +44,15 @@ public class RoleServiceImpl extends ServiceImpl implements Ro private RolePermissionService rolePermissionService; @Resource private UserRoleService userRoleService; - @Resource - private CommonService commonService; + @Resource private PermissionService permissionService; private EleLog log = new EleLog(RoleServiceImpl.class); - @Autowired + @Resource private RoleMapper roleMapper; + @Resource + private EdFileInfoMapper edFileInfoMapper; /** * 新建角色 @@ -129,17 +130,20 @@ public class RoleServiceImpl extends ServiceImpl implements Ro @Override public Boolean deleteRole(String roleId) { - // 保留角色权限关联表 + // 删除角色权限关联表 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(RolePermission::getRoleId, roleId); + rolePermissionService.remove(queryWrapper); + // 删除用户角色关联表 LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); queryWrapper1.eq(UserRole::getRoleId, roleId); userRoleService.remove(queryWrapper1); - // 逻辑删除角色 - LambdaUpdateWrapper queryWrapper2 = new LambdaUpdateWrapper<>(); - queryWrapper2.eq(Role::getRoleId, roleId) - .set(Role::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code); - return this.update(queryWrapper2); + // 删除角色 + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.eq(Role::getRoleId, roleId); + return this.remove(queryWrapper2); } /** @@ -160,8 +164,7 @@ public class RoleServiceImpl extends ServiceImpl implements Ro roleDTO.setRoleName(role.getRoleName()); roleDTO.setRoleDesc(role.getRoleDesc()); - // 查询当前层级树,若层级树查询条件修改,此处也需修改 - List infos = commonService.selectAllAdminFolder(PRJ_PARENT_ID); + List infos = getFiles(); List nodes = new ArrayList<>(); for (EdFileInfo info : infos) { @@ -223,7 +226,6 @@ public class RoleServiceImpl extends ServiceImpl implements Ro if (StringUtils.isNotBlank(rolePageDTO.getRoleName())) { queryWrapper.eq("r.role_name", rolePageDTO.getRoleName()); } - queryWrapper.eq("r.effect_flag", EffectFlagEnum.EFFECT.code); return roleMapper.getPageRoleDTO(page, queryWrapper); } @@ -237,8 +239,7 @@ public class RoleServiceImpl extends ServiceImpl implements Ro @Override public List> getAllRoleNames() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.select(Role::getRoleName) - .eq(Role::getEffectFlag, EffectFlagEnum.EFFECT.code); + queryWrapper.select(Role::getRoleName); List roleNames = this.listObjs(queryWrapper).stream().map(Object::toString).collect(Collectors.toList()); List> result = new ArrayList<>(); @@ -251,6 +252,38 @@ public class RoleServiceImpl extends ServiceImpl implements Ro return result; } + /** + * 空树 + * + * @return + */ + @Transactional + @Override + public RoleDTO getRoleTemplate() { + RoleDTO roleDTO = new RoleDTO(); + + List infos = getFiles(); + + List nodes = new ArrayList<>(); + for (EdFileInfo info : infos) { + RolePermissionDTO rolePermissionDTO = new RolePermissionDTO(); + rolePermissionDTO.setId(info.getId()); + rolePermissionDTO.setParentId(info.getParentId()); + rolePermissionDTO.setFileName(info.getFileName()); + List permissionCodes = new ArrayList<>(); + Map dataAuth = new HashMap<>(); + dataAuth.put("data", false); + rolePermissionDTO.setDataAuth(dataAuth); + + rolePermissionDTO.setPermission(permissionService.transToMap(permissionCodes)); + nodes.add(rolePermissionDTO); + } + + roleDTO.setData(buildTree(nodes)); + + return roleDTO; + } + /** * 校验当前角色名称是否唯一 * @@ -320,5 +353,16 @@ public class RoleServiceImpl extends ServiceImpl implements Ro .peek(node -> node.setChildren(findChildren(node, nodes))) // 递归设置子节点 .collect(Collectors.toList()); } + + /** + * 获取层级树结构 + * @return + */ + private List getFiles() { + return edFileInfoMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) + .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) + .eq(EdFileInfo::getPrjDir, true)); + } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java index 06acec2..08c261e 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java @@ -49,7 +49,7 @@ public class UserServiceImpl implements UserService { private TokenMapper tokenMapper; @Resource private UserRoleMapper userRoleMapper; - @Autowired + @Resource private RoleMapper roleMapper; /** @@ -278,7 +278,7 @@ public class UserServiceImpl implements UserService { @Override public Boolean bindRoles(UserRoleRequest userRolesRequest) { if (userRolesRequest == null || userRolesRequest.getBindData().isEmpty()) { - throw new BizException(HttpStatus.BAD_REQUEST.value(), "请勿发布空数据"); + throw new BizException(-1, "请勿发布空数据"); } for (UserBindRoleDTO dto : userRolesRequest.getBindData()) { activeRole(dto);