diff --git a/mhd_product/src/main/java/com/linke/product/application/service/appMenu/AppMenuApplicationService.java b/mhd_product/src/main/java/com/linke/product/application/service/appMenu/AppMenuApplicationService.java index 2c188f6a9..76cc89b36 100644 --- a/mhd_product/src/main/java/com/linke/product/application/service/appMenu/AppMenuApplicationService.java +++ b/mhd_product/src/main/java/com/linke/product/application/service/appMenu/AppMenuApplicationService.java @@ -87,13 +87,22 @@ public class AppMenuApplicationService { if (StringUtils.isBlank(appMenuDO.getAppPackage()) || StringUtils.isBlank(appMenuDO.getAppLocationCode())){ throw new ServiceException("app包名或app位置不能为空"); } - if (appMenuDO.getUserId() == null){ - appMenuDO.setUserId(SecurityUtils.getUserId()); - } - if (appMenuDO.getTopOrganizationId() == null){ - appMenuDO.setTopOrganizationId(SecurityUtils.getLoginUser().getUserPo().getTopOrganizationId()); + // 判断是否为已登录用户(小程序未登录访问时,getLoginUser/getUserPo 可能为空) + LoginUser loginUser = SecurityUtils.getLoginUser(); + boolean isLogin = loginUser != null && loginUser.getUserPo() != null; + if (isLogin) { + if (appMenuDO.getUserId() == null){ + appMenuDO.setUserId(SecurityUtils.getUserId()); + } + if (appMenuDO.getTopOrganizationId() == null){ + appMenuDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + } } + // 未登录(游客):userId/topOrganizationId 保持为空,走公共菜单查询,返回该 app 全部菜单 List menuPos = appMenuDomainService.queryMenuListByApp(appMenuDO); + if (!isLogin) { + return menuPos != null ? menuPos : new ArrayList<>(); + } // 获取用户角色 → 查角色APP菜单权限 → 取交集去重 List userRoles = userFeignService.selectUserRoles(appMenuDO.getUserId()); menuPos = filterMenuByUserRole(menuPos, userRoles); diff --git a/mhd_product/src/main/resources/bootstrap.yml b/mhd_product/src/main/resources/bootstrap.yml index 8e302d143..07b279b1a 100644 --- a/mhd_product/src/main/resources/bootstrap.yml +++ b/mhd_product/src/main/resources/bootstrap.yml @@ -18,18 +18,18 @@ spring: cloud: nacos: discovery: - server-addr: 127.0.0.1:8848 +# server-addr: 127.0.0.1:8848 # server-addr: 10.33.0.129:6010 -# server-addr: 10.102.192.31:6848 + server-addr: 10.102.192.30:6848 username: nacos password: manhuoda@2023 #线上正式环境 # server-addr: 10.33.0.129:6010 # config: - server-addr: 127.0.0.1:8848 +# server-addr: 127.0.0.1:8848 # server-addr: 10.33.0.129:6010 -# server-addr: 10.102.192.31:6848 + server-addr: 10.102.192.30:6848 username: nacos password: manhuoda@2023 #线上正式环境 diff --git a/mhd_product/src/main/resources/mapper/appMenu/AppMenuMapper.xml b/mhd_product/src/main/resources/mapper/appMenu/AppMenuMapper.xml index abddc0176..b9e3148aa 100644 --- a/mhd_product/src/main/resources/mapper/appMenu/AppMenuMapper.xml +++ b/mhd_product/src/main/resources/mapper/appMenu/AppMenuMapper.xml @@ -99,7 +99,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and me.menu_show = 1 and co.app_package = #{appPackage} and me.app_location_code = #{appLocationCode} + + and me.top_organization_id = #{topOrganizationId} + order by me.menu_sort,me.create_time asc \ No newline at end of file