From 748fc948fff5b0034dbea1110fabf11d22573e14 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Mon, 22 Jul 2024 15:42:57 +0800
Subject: [PATCH] 代码优化

---
 src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java |   52 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 36 insertions(+), 16 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java
index 39123e2..06506da 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java
@@ -18,7 +18,6 @@
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
@@ -75,7 +74,7 @@
 	private final static Integer MENU_CATEGORY = 1;
 
 	@Resource
-	private IUserHouseLabelService iUserHouseLabelService;
+	private final IUserHouseLabelService iUserHouseLabelService;
 
 	@Override
 	public List<MenuVO> lazyList(Long parentId, Map<String, Object> param) {
@@ -84,8 +83,8 @@
 		}
 		List<MenuVO> menuVOS = baseMapper.lazyList(parentId, param);
 		for (MenuVO menuVO : menuVOS) {
-			if(StringUtils.isNotBlank(menuVO.getLabelStr())){
-				List<List<String>> lists = (List<List<String>>)JSON.parse(menuVO.getLabelStr() );
+			if (StringUtils.isNotBlank(menuVO.getLabelStr())) {
+				List<List<String>> lists = (List<List<String>>) JSON.parse(menuVO.getLabelStr());
 				menuVO.setLabelList(lists);
 			}
 		}
@@ -99,8 +98,8 @@
 		}
 		List<MenuVO> menuVOS = baseMapper.lazyList(parentId, param);
 		for (MenuVO menuVO : menuVOS) {
-			if(StringUtils.isNotBlank(menuVO.getLabelStr())){
-				List<List<String>> lists = (List<List<String>>)JSON.parse(menuVO.getLabelStr() );
+			if (StringUtils.isNotBlank(menuVO.getLabelStr())) {
+				List<List<String>> lists = (List<List<String>>) JSON.parse(menuVO.getLabelStr());
 				menuVO.setLabelList(lists);
 			}
 		}
@@ -111,12 +110,22 @@
 	public static final List<Integer> list2 = Arrays.asList(1, 11, null);
 
 
+	/**
+	 *
+	 * @param roleId
+	 * @param topMenuId
+	 * @param labelType
+	 * @param menuType
+	 * @param roleName
+	 * @param houseCode
+	 * @return
+	 */
 	@Override
-	public List<MenuVO> routes(String roleId, Long topMenuId, Integer labelType,Integer menuType) {
+	public List<MenuVO> routes(String roleId, Long topMenuId, Integer labelType, Integer menuType, String roleName,String houseCode) {
 		if (StringUtil.isBlank(roleId)) {
 			return null;
 		}
-		List<Menu> allMenus = baseMapper.selectList(Wrappers.<Menu>lambdaQuery().eq(Menu::getCategory,1).eq(Menu::getMenuType,menuType));
+		List<Menu> allMenus = baseMapper.selectList(Wrappers.<Menu>lambdaQuery().eq(Menu::getCategory, 1).eq(Menu::getMenuType, menuType));
 		List<Menu> roleMenus;
 		// 超级管理员并且不是顶部菜单请求则返回全部菜单
 		if (AuthUtil.isAdministrator() && Func.isEmpty(topMenuId)) {
@@ -126,14 +135,14 @@
 		else if (!AuthUtil.isAdministrator() && Func.isEmpty(topMenuId)) {
 			roleMenus = tenantPackageMenu(baseMapper.roleMenuByRoleId(Func.toLongList(roleId), menuType));
 			// 1:居民,居民需要通过人的标签来显示取保候审
-			if(CommonConstant.NUMBER_ONE.equals(labelType)){
-				extracted(labelType, roleMenus);
+			if (CommonConstant.RESIDENT.equals(roleName)) {
+				 extracted(labelType, roleMenus,houseCode);
 			}
 		}
 		// 顶部菜单请求返回对应角色权限菜单
 		else {
 			// 角色配置对应菜单
-			List<Menu> roleIdMenus = baseMapper.roleMenuByRoleId(Func.toLongList(roleId),menuType);
+			List<Menu> roleIdMenus = baseMapper.roleMenuByRoleId(Func.toLongList(roleId), menuType);
 			// 反向递归角色菜单所有父级
 			List<Menu> routes = new LinkedList<>(roleIdMenus);
 			roleIdMenus.forEach(roleMenu -> recursion(allMenus, routes, roleMenu));
@@ -150,13 +159,15 @@
 
 	/**
 	 * 房屋的时候才通过人的标签过滤
+	 *
 	 * @param roleMenus
 	 * @param labelType
 	 */
-	private void extracted(Integer labelType, List<Menu> roleMenus) {
+	private void extracted(Integer labelType, List<Menu> roleMenus,String houseCode) {
 		UserHouseLabelDTO userHouseLabelDTO = new UserHouseLabelDTO();
 		userHouseLabelDTO.setUserId(AuthUtil.getUserId());
 		userHouseLabelDTO.setLableType(labelType);
+		userHouseLabelDTO.setHouseCode(houseCode);
 		List<Integer> integers = iUserHouseLabelService.selectUserLabelList(userHouseLabelDTO);
 		Iterator<Menu> iterator = roleMenus.iterator();
 		while (iterator.hasNext()) {
@@ -168,9 +179,15 @@
 					Collection<? extends Serializable> union = CollectionUtils.intersection(integerList, integers);
 					if (union.size() == 0) {
 						iterator.remove();
+
+						// 场所的时候,删除取保候审
+					} else if (CommonConstant.NUMBER_TWO.equals(labelType)) {
+						if (next.getName().trim().equals("取保监居")) {
+							iterator.remove();
+						}
 					}
 				} else {
-					if (next.getName().trim().equals("取保候审")) {
+					if (next.getName().trim().equals("取保监居")) {
 						iterator.remove();
 					}
 				}
@@ -345,9 +362,12 @@
 				wrapper -> wrapper.eq(Menu::getName, menu.getName()).eq(Menu::getCategory, MENU_CATEGORY)
 			);
 		} else {
-			menuQueryWrapper.ne(Menu::getId, menu.getId()).eq(Menu::getIsDeleted,0).and(
+			menuQueryWrapper.ne(Menu::getId, menu.getId()).eq(Menu::getIsDeleted, 0).and(
 				wrapper -> wrapper.eq(Menu::getCode, menu.getCode()).or(
-					o -> o.eq(Menu::getName, menu.getName()).eq(Menu::getCategory, MENU_CATEGORY)
+					o -> o.eq(Menu::getName, menu.getName())
+						.eq(Menu::getCategory, MENU_CATEGORY)
+						.eq(Menu::getMenuType, menu.getMenuType())
+						.eq(Menu::getParentId, menu.getParentId())
 				)
 			);
 		}
@@ -368,7 +388,7 @@
 		List<List<String>> labelList = menu.getLabelList();
 		StringBuffer stringBuffer = new StringBuffer();
 		for (List<String> strings : labelList) {
-			stringBuffer.append(strings.get(strings.size()-1)).append(",");
+			stringBuffer.append(strings.get(strings.size() - 1)).append(",");
 		}
 		menu.setLabelId(stringBuffer.toString());
 		menu.setIsDeleted(BladeConstant.DB_NOT_DELETED);

--
Gitblit v1.9.3