From f8e12e8b4444c34f7191cd43312212cdd6a57877 Mon Sep 17 00:00:00 2001 From: "zhang.xw" Date: Sat, 23 Jul 2022 22:57:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E9=92=89=E9=92=89=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/core/api/iservice/dto/SysMenuDTO.java | 4 ++++ .../controller/base/WhiteController.java | 16 ++++++++----- .../serviceimpl/busi/CoreMemTreeService.java | 26 +++++++++++++++++----- .../src/main/resources/application-dev.properties | 6 ++--- .../src/main/resources/application.properties | 3 +++ 5 files changed, 40 insertions(+), 15 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/dto/SysMenuDTO.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/dto/SysMenuDTO.java index d74810f..1b7068f 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/dto/SysMenuDTO.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/dto/SysMenuDTO.java @@ -44,6 +44,10 @@ public class SysMenuDTO implements Serializable { */ private Integer menuSort; /** + * url路径 + */ + private String menuUrl; + /** * 子菜单 */ private List childList; diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index d0ed38c..333fd03 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -10,7 +10,10 @@ import cn.estsh.i3plus.core.apiservice.util.MailUtil; import cn.estsh.i3plus.core.apiservice.util.SysUserPasswordUtil; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; -import cn.estsh.i3plus.platform.common.tool.*; +import cn.estsh.i3plus.platform.common.tool.JsonUtilTool; +import cn.estsh.i3plus.platform.common.tool.ServletRequestTool; +import cn.estsh.i3plus.platform.common.tool.StringTool; +import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.annotation.AnnoIgnoreLog; @@ -22,7 +25,6 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; -import cn.estsh.i3plus.pojo.base.util.BeanMapUtils; import cn.estsh.i3plus.pojo.model.common.CloudPagerModel; import cn.estsh.i3plus.pojo.model.common.ImppEmail; import cn.estsh.i3plus.pojo.model.common.ImppSmsContent; @@ -61,15 +63,13 @@ import com.google.common.cache.CacheBuilder; import com.taobao.api.ApiException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import jodd.bean.BeanUtil; -import jodd.util.StringUtil; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; @@ -173,6 +173,10 @@ public class WhiteController extends CoreBaseController { @Autowired private ICoreMemTreeService memTreeService; + + @Value(value = "${filter.ding.menu.parent.id}") + private Long filterDingPmcParentMenuId; + private Cache unsavedLocaleResSwitch = CacheBuilder.newBuilder() .maximumSize(1) .expireAfterWrite(1, TimeUnit.MINUTES) @@ -1440,7 +1444,7 @@ public class WhiteController extends CoreBaseController { List menuList = memTreeService.packTreeDingSysMenuByUserId(sysUser.getId()); Long menuSelectTime = System.currentTimeMillis(); LOGGER.info("第一段耗时:{}", menuSelectTime - startTime); - List syslist = memTreeService.packTreeSysMenuByParentIdAndMenuType(menuList, CommonConstWords.SYSTEM_MENU_ROOT_ID, CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue()); + List syslist = memTreeService.packTreeSysMenuByParentIdAndMenuType(menuList, filterDingPmcParentMenuId , CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue()); LOGGER.info("第二段耗时:{}", System.currentTimeMillis() - menuSelectTime); List resList = memTreeService.packTreeToDto(syslist); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java index 5556859..2d999d8 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java @@ -11,9 +11,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -42,6 +44,16 @@ public class CoreMemTreeService implements ICoreMemTreeService { private ISysOrganizeService organizeService; @Autowired private ISysDepartmentService departmentService; + /** + * PMC 菜单id列表 + */ + @Value(value = "${filter.ding.menu.id}") + private String filterDingPmcMenuIds; + /** + * PMC 最大父类id + */ + @Value(value = "${filter.ding.menu.parent.id}") + private String filterDingPmcParentMenuId; @Override public List packTreeSysPosition(List list, Long parentId) { @@ -631,7 +643,7 @@ public class CoreMemTreeService implements ICoreMemTreeService { @Override public List packTreeDingSysMenuByUserId(Long userId) { - return packTreeDingSysMenuByUserIdAndParentId(userId, CommonEnumUtil.PARENT.DEFAULT.getValue()); + return packTreeDingSysMenuByUserIdAndParentId(userId, Long.parseLong(filterDingPmcParentMenuId)); } /** @@ -675,15 +687,17 @@ public class CoreMemTreeService implements ICoreMemTreeService { if (roleList != null && roleList.size() > 0) { // 查询角色关联菜单 List refRoleMenuList = personnelService.findSysRefRoleMenuByRefUserRole(roleList); + // pdc 菜单 + List includeMenuId = Arrays.asList(filterDingPmcMenuIds.split(",")).stream().map(Long :: parseLong).collect(Collectors.toList()); + + long refRoleMenuTime = System.currentTimeMillis(); LOGGER.info("查询角色关联菜单:{}",refRoleMenuTime - roleTime); List menuIdList = refRoleMenuList.stream().map(SysRefRoleMenu::getMenuId).collect(Collectors.toList()); + + includeMenuId.retainAll(menuIdList); if (refRoleMenuList != null && refRoleMenuList.size() > 0) { - //todo 暂时先加入一个根节点,避免全查询 - List copyMenuIdList = new ArrayList<>(menuIdList); - // copyMenuIdList.add(100000000l); - // List menuList = menuService.findByIdList(copyMenuIdList); - List menuList = menuService.findAll(); + List menuList = menuService.findByIdList(includeMenuId); // 构建菜单树 List menuRootTree = packTreeSysMenu(menuList, parentId); // diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties index 0398aab..81cd07f 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties @@ -60,14 +60,14 @@ spring.datasource.hikari.connection-timeout=30000 ##\u4E3B\u6570\u636E\u6E90\uFF0C\u8BFB\u5199 #impp.write.datasource.type=com.zaxxer.hikari.HikariDataSource impp.write.datasource.driver-class-name=com.mysql.jdbc.Driver -impp.write.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 +impp.write.datasource.jdbc-url=jdbc:mysql://192.168.1.240:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.write.datasource.username=impp_i3_core_user impp.write.datasource.password=impp_i3_core_pwd ##\u8F85\u6570\u636E\u6E90\uFF0C\u53EA\u8BFB #impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource impp.read.datasource.driver-class-name=com.mysql.jdbc.Driver -impp.read.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 +impp.read.datasource.jdbc-url=jdbc:mysql://192.168.1.240:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.read.datasource.username=impp_i3_core_user impp.read.datasource.password=impp_i3_core_pwd @@ -92,7 +92,7 @@ spring.jpa.properties.hibernate.hbm2ddl.auto=update ##############\u5B9A\u65F6\u4EFB\u52A1\u6301\u4E45\u5316############## impp.schedule.open=true impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver -impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8 +impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.240:3306/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.schedule.datasource.username=impp_i3_schedule_user impp.schedule.datasource.password=impp_i3_schedule_pwd impp.schedule.datasource.max-connections=20 diff --git a/modules/i3plus-core-apiservice/src/main/resources/application.properties b/modules/i3plus-core-apiservice/src/main/resources/application.properties index 0828a0c..3dbef88 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application.properties @@ -76,3 +76,6 @@ redis.resource.db=0 redis.session.db=1 #\u7CFB\u7EDF\u5168\u5C40\u7F13\u5B58\u5E93\uFF0C\u5B58\u653E\u5E73\u53F0\u6838\u5FC3\u6570\u636E\u7F13\u5B58 redis.core.db=2 + +filter.ding.menu.id = 112000000,102081502,112000100,112000200,112000300,112000400,112000500,112000501,112000520,112000600,112000700,112000701,112000702,112000800,112000900,112001000,112001100 +filter.ding.menu.parent.id = 100000000