Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/dto/ClassifyAuthDTO.java
@@ -18,13 +18,18 @@ /** * 是否清空 true是清空,false不是清空 */ // @NotBlank(message = "必传参数isCLear不能为空") // @NotBlank(message = "必传参数isCLear不能为空") private Boolean isCLear; /** * 分类id * 分类oid */ // @NotBlank(message = "必传参数classifyId不能为空") // @NotBlank(message = "必传参数classifyId不能为空") private String classifyId; /** * 分类ID */ // private String classId; } Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java
@@ -16,6 +16,7 @@ */ package com.vci.ubcs.system.feign; import com.vci.ubcs.system.dto.ClassifyAuthDTO; import com.vci.ubcs.system.entity.*; import com.vci.ubcs.system.vo.DeptVO; import com.vci.ubcs.system.vo.RoleVO; @@ -79,6 +80,7 @@ String REGEX = API_PREFIX + "/combination-regex"; String REGEXONE = API_PREFIX + "/combination-regex-one"; String GETVIEWCLASSIFY = API_PREFIX + "/get-view-classify"; String SAVEADDCLASSIFYDEFAULTAUTH = API_PREFIX + "/save-add-classify-default-auth"; /** * 获取菜单 @@ -394,4 +396,7 @@ @GetMapping(GETVIEWCLASSIFY) R<List<String>> getViewClassByRoleIds(@RequestParam("roleIds") List<String> roleIds,@RequestParam("authType") String authType,@RequestParam("buttonCode") String buttonCode,@RequestParam("menuCode") String menuCode); @PostMapping(SAVEADDCLASSIFYDEFAULTAUTH) R saveAddClassifyDefaultAuth(@RequestBody ClassifyAuthDTO classifyAuthDTOS); } Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java
@@ -16,6 +16,7 @@ */ package com.vci.ubcs.system.feign; import com.vci.ubcs.system.dto.ClassifyAuthDTO; import com.vci.ubcs.system.entity.*; import com.vci.ubcs.system.vo.DeptVO; import com.vci.ubcs.system.vo.RoleVO; @@ -204,4 +205,9 @@ return R.fail("获取数据失败"); } @Override public R saveAddClassifyDefaultAuth(ClassifyAuthDTO classifyAuthDTOS) { return R.fail("保存失败"); } } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java
@@ -77,6 +77,7 @@ private final ICodeClassifyService codeClassifyService; CodeClassifyMapper codeClassifyMapper; /** * 主题库定义表 详情 */ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -49,6 +49,7 @@ import com.vci.ubcs.starter.web.util.LangBaseUtil; import com.vci.ubcs.starter.web.util.VciBaseUtil; import com.vci.ubcs.system.cache.NacosConfigCache; import com.vci.ubcs.system.dto.ClassifyAuthDTO; import com.vci.ubcs.system.feign.ISysClient; import org.apache.poi.hssf.util.HSSFColor; import org.slf4j.Logger; @@ -159,6 +160,7 @@ * @param */ @Override @Transactional(rollbackFor = Exception.class) public R addSave(CodeClassify codeClassifyEntity) { try { VciBaseUtil.alertNotNull(codeClassifyEntity.getId(),"主题库编号不能为空!",codeClassifyEntity.getName(),"主题库名称不能为空!"); @@ -185,8 +187,19 @@ } DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeClassifyEntity, MdmBtmTypeConstant.CODE_CLASSIFY); codeClassifyEntity.setLcStatus(FRAMEWORK_DATA_ENABLED); int insertNumber = codeClassifyMapper.insert(codeClassifyEntity); return R.status(SqlHelper.retBool(insertNumber)); boolean resBoolean = SqlHelper.retBool(codeClassifyMapper.insert(codeClassifyEntity)); if (!resBoolean) { return R.status(resBoolean); } // 分类添加成功,给系统管理员和当前角色增加分类权限和数据权限 ClassifyAuthDTO classifyAuthDTO = new ClassifyAuthDTO(); classifyAuthDTO.setClassifyId(codeClassifyEntity.getOid()); // classifyAuthDTO.setClassId(codeClassifyEntity.getId()); R r = sysClient.saveAddClassifyDefaultAuth(classifyAuthDTO); if (!r.isSuccess()) { throw new ServiceException("给角色授予默认权限时出现错误,原因:"+r.getMsg()); } return R.status(resBoolean); } /** Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java
@@ -16,6 +16,7 @@ */ package com.vci.ubcs.system.feign; import com.vci.ubcs.system.dto.ClassifyAuthDTO; import com.vci.ubcs.system.entity.*; import com.vci.ubcs.system.service.*; import com.vci.ubcs.system.vo.DeptVO; @@ -264,8 +265,14 @@ return R.data(mdmCountConfigService.getMdmCountConfig(userId)); } @GetMapping(GETVIEWCLASSIFY) public R<List<String>> getViewClassByRoleIds(List<String> roleIds,String authType,String buttonCode,String menuCode){ return R.data(classifyAuthService.getViewClassByRoleIds(roleIds,authType,buttonCode,menuCode)); } @PostMapping(SAVEADDCLASSIFYDEFAULTAUTH) public R saveAddClassifyDefaultAuth(@RequestBody ClassifyAuthDTO classifyAuthDTOS){ return classifyAuthService.saveAddClassifyDefaultAuth(classifyAuthDTOS); } } Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IClassifyAuthService.java
@@ -57,4 +57,11 @@ */ List<String> getViewClassByRoleIds(List<String> roleIds,String authType,String buttonCode,String menuCode); /** * 根据角色名称分类id授予默认的分类权限和主数据访问权限 * @param classifyAuthDTOS * @return */ R saveAddClassifyDefaultAuth(ClassifyAuthDTO classifyAuthDTOS); } Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java
@@ -174,7 +174,7 @@ boolean submit(Menu menu); /** * 获取菜单下面的按钮 * 获取分类节点菜单下面的按钮 * @param classifyId * @param btmType * @param authType Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/ClassifyAuthServiceImpl.java
@@ -12,6 +12,7 @@ import com.vci.ubcs.system.mapper.ClassifyAuthMapper; import com.vci.ubcs.system.service.IClassifyAuthService; import com.vci.ubcs.system.service.IMenuService; import com.vci.ubcs.system.service.IRoleService; import com.vci.ubcs.system.vo.ClassifyAuthVO; import com.vci.ubcs.system.wrapper.ClassifyAuthWrapper; import lombok.AllArgsConstructor; @@ -19,6 +20,7 @@ import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -39,6 +41,14 @@ private final IMenuService menuService; private final ICodeClassifyClient codeClassifyClient; private final IRoleService roleService; /** * 三员管理角色编号配置:分别为系统管理员,安全管理员,审计管理员顺序 */ @Value("#{'${ssa.ssa-names}'.split(',')}") private List<String> SSANAMES; /** * 分类授权保存接口 @@ -215,4 +225,49 @@ return this.classifyAuthMapper.getViewClassByRoleIds(roleIds, authType,buttonCode,menuCode); } /** * 根据角色名称分类id授予默认的分类权限和主数据访问权限 * @param classifyAuthDTO * @return */ @Transactional(rollbackFor = Exception.class) public R saveAddClassifyDefaultAuth(ClassifyAuthDTO classifyAuthDTO) throws ServiceException{ if (Func.isEmpty(classifyAuthDTO.getClassifyId())) { return R.fail("未获取到分类id"); } // 配置的系统管理员名称 String sysAdmin = SSANAMES.get(0); List<ClassifyAuth> classifyAuths = new ArrayList<>(); //先默认生成系统管理员的授权数据 ClassifyAuth classifyAuth = new ClassifyAuth(); classifyAuth.setClassifyId(classifyAuthDTO.getClassifyId()); classifyAuth.setAuthType("classify_auth"); String roleIds = roleService.getRoleIds(AuthUtil.getTenantId(), sysAdmin); if(Func.isBlank(roleIds)){ return R.fail(AuthUtil.getTenantId()+"租户下未找到,名为"+sysAdmin+"系统管理员角色!"); } classifyAuth.setRoleId(roleIds); List<Menu> classifyTreeMenus = menuService.getButtonsByRoleId(roleIds, "classifyTree"); if(!classifyTreeMenus.isEmpty()){ String menuIds = classifyTreeMenus.stream() .map(menu -> String.valueOf(menu.getId())) .collect(Collectors.joining(",")); classifyAuth.setButtonIds(menuIds); classifyAuths.add(classifyAuth); } /*ClassifyAuth dataAuth = new ClassifyAuth(); dataAuth.setAuthType("data_auth"); dataAuth.setClassifyId(classifyAuthDTO.getClassifyId()); dataAuth.setRoleId(roleIds); List<Menu> masterDatas = menuService.getButtonsByRoleId(roleIds, classifyAuthDTO.getClassId()); if(!masterDatas.isEmpty()){ String menuIds = masterDatas.stream() .map(menu -> String.valueOf(menu.getId())) .collect(Collectors.joining(",")); dataAuth.setButtonIds(menuIds); classifyAuths.add(dataAuth); }*/ return R.status(this.saveBatch(classifyAuths)); } }