From 7cf54012c46c54bd701310cc29caaa94676ea570 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期一, 18 三月 2024 23:04:51 +0800 Subject: [PATCH] 分类授权功能完善 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java | 1 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IClassifyAuthService.java | 7 +++ Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java | 2 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/ClassifyAuthServiceImpl.java | 55 +++++++++++++++++++++++++++ Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/dto/ClassifyAuthDTO.java | 11 ++++- Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java | 7 +++ Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java | 5 ++ Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java | 6 +++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java | 17 +++++++- 9 files changed, 105 insertions(+), 6 deletions(-) diff --git a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/dto/ClassifyAuthDTO.java b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/dto/ClassifyAuthDTO.java index 8a29084..d536776 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/dto/ClassifyAuthDTO.java +++ b/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; + } diff --git a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java index fd963c1..6fe6083 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java +++ b/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); + } diff --git a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java index 03ffadf..2ac5874 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java +++ b/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("淇濆瓨澶辫触"); + } + } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java index 83a4683..df125c2 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java +++ b/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; + /** * 涓婚搴撳畾涔夎〃 璇︽儏 */ diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java index c880d23..38b03e2 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java +++ b/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); } /** diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java index 3716e18..adabc56 100644 --- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java +++ b/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); + } + } diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IClassifyAuthService.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IClassifyAuthService.java index 3d5bc9b..74f6dba 100644 --- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IClassifyAuthService.java +++ b/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); + } diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java index 3b1587f..dff220c 100644 --- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java +++ b/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 diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/ClassifyAuthServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/ClassifyAuthServiceImpl.java index a0c765f..40166e5 100644 --- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/ClassifyAuthServiceImpl.java +++ b/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)); + } + } -- Gitblit v1.9.3