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