Jelajahi Sumber

调整移动端租户切换

hanzhengyi 1 hari lalu
induk
melakukan
9995b37fc7

+ 1 - 1
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/AuthorityConfigController.java

@@ -78,7 +78,7 @@ public class AuthorityConfigController {
     @GetMapping("getMobileConfigMenuList")
     public ApiResult<Map<String, Object>> getMobileConfigMenuList(@RequestParam(value = "platformId") Integer platformId,
                                                                      @RequestParam(value = "tenantId") Integer tenantId) {
-        List<SysMobileMenu> menus =sysPlatformMenuService.getMobilePlatformMenuList(platformId);
+        List<SysMobileMenu> menus =sysPlatformMenuService.getMobilePlatformMenuList(tenantId);
         Map<String, Object> ajax = new HashMap<>();
         ajax.put("checkedKeys", sysPlatformMenuService.selectMobilePlatformMenu(tenantId));
         ajax.put("menus", menuService.buildMobileMenuTreeSelect(menus));

+ 9 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysMobileMenuMapper.java

@@ -43,6 +43,15 @@ public interface SysMobileMenuMapper extends CrudMapper<SysMobileMenu> {
      */
     public List<SysMobileMenu> selectMenuTreeByUserId(@Param("userId") long userId);
 
+    /**
+     * 根据用户Id查询菜单
+     *
+     * @param userId 用户Id
+     * @return 菜单列表
+     */
+    public List<SysMobileMenu> selectMenuTreeByUserId1(@Param("userId") long userId,
+                                                       @Param("tenantId") Integer tenantId);
+
     /**
      * 根据租户Id查询菜单
      *

+ 1 - 1
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysPlatformMenuMapper.java

@@ -22,7 +22,7 @@ public interface SysPlatformMenuMapper extends CrudMapper<SysPlatformMenu> {
     List<SysMenu> getMenuList(@Param("platformId") Integer platformId,
                               @Param("menuType") String menuType);
 
-    List<SysMobileMenu> getMobileMenuList(@Param("platformId") Integer platformId,
+    List<SysMobileMenu> getMobileMenuList(@Param("platformIds") List<Integer> platformIds,
                               @Param("menuType") String menuType);
 
     List<SysMenu> getMenuIdList(@Param("menuIds") Long[] menuIds,

+ 1 - 1
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysMobileMenuServiceImpl.java

@@ -238,7 +238,7 @@ public class SysMobileMenuServiceImpl extends AbstractCrudService<SysMobileMenuM
         }
         else
         {
-            menus = sysMobileMenuMapper.selectMenuTreeByUserId(userId);
+            menus = sysMobileMenuMapper.selectMenuTreeByUserId1(userId,SecurityUtils.getTenantId());
         }
         return getChildPerms(menus, 0);
     }

+ 17 - 7
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysPlatformMenuServiceImpl.java

@@ -1,14 +1,12 @@
 package com.usky.system.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.common.mybatis.core.AbstractCrudService;
-import com.usky.system.domain.SysMenu;
-import com.usky.system.domain.SysMobileMenu;
-import com.usky.system.domain.SysPlatformMenu;
-import com.usky.system.domain.SysTenantMenu;
-import com.usky.system.domain.SysMobileTenantMenu;
+import com.usky.system.domain.*;
 import com.usky.system.mapper.SysPlatformMenuMapper;
+import com.usky.system.mapper.SysTenantPlatformMapper;
 import com.usky.system.service.SysMobileTenantMenuService;
 import com.usky.system.service.SysPlatformMenuService;
 import com.usky.system.service.SysTenantMenuService;
@@ -36,6 +34,9 @@ public class SysPlatformMenuServiceImpl extends AbstractCrudService<SysPlatformM
     @Autowired
     private SysTenantMenuService sysTenantMenuService;
 
+    @Autowired
+    private SysTenantPlatformMapper sysTenantPlatformMapper;
+
     @Autowired
     private SysMobileTenantMenuService sysMobileTenantMenuService;
 
@@ -43,8 +44,17 @@ public class SysPlatformMenuServiceImpl extends AbstractCrudService<SysPlatformM
         return baseMapper.getMenuList(platformId, null);
     }
 
-    public List<SysMobileMenu> getMobilePlatformMenuList(Integer platformId){
-        return baseMapper.getMobileMenuList(platformId, null);
+    public List<SysMobileMenu> getMobilePlatformMenuList(Integer tenantId){
+        LambdaQueryWrapper<SysTenantPlatform> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(SysTenantPlatform::getTenantId,tenantId);
+        List<SysTenantPlatform> list = sysTenantPlatformMapper.selectList(queryWrapper);
+        List<Integer> platformIds = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(list)) {
+            for (int j = 0; j < list.size(); j++) {
+                platformIds.add(list.get(j).getPlatformId());
+            }
+        }
+        return baseMapper.getMobileMenuList(platformIds, null);
     }
 
     public Long[] selectPlatformMenu(Integer tenantId){

+ 29 - 0
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysMobileMenuMapper.xml

@@ -139,6 +139,35 @@
         order by m.parent_id, m.order_num
     </select>
 
+    <select id="selectMenuTreeByUserId1" resultMap="BaseResultMap">
+        select distinct m.menu_id,
+                        m.parent_id,
+                        m.menu_name,
+                        rm.menu_alias_name,
+                        m.path,
+                        m.component,
+                        m.visible,
+                        m.status,
+                        ifnull(m.perms, '') as perms,
+                        m.is_frame,
+                        m.is_cache,
+                        m.menu_type,
+                        m.icon,
+                        m.order_num,
+                        m.create_time
+        from sys_mobile_menu m
+                 left join sys_mobile_role_menu rm on m.menu_id = rm.menu_id
+                 left join sys_user_role ur on rm.role_id = ur.role_id
+                 left join sys_role ro on ur.role_id = ro.role_id
+                 left join sys_user u on ur.user_id = u.user_id
+        where ur.user_id = #{userId}
+          and ur.tenant_id = #{tenantId}
+          and m.menu_type in ('M', 'C')
+          and m.status = 0
+          AND ro.status = 0
+        order by m.parent_id, m.order_num
+    </select>
+
     <select id="selectMenuTreeByUserIdOne" resultMap="BaseResultMap">
         SELECT
             m.menu_id,

+ 5 - 1
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysPlatformMenuMapper.xml

@@ -29,10 +29,14 @@
         sys_mobile_menu AS a
         JOIN sys_mobile_platform_menu AS b ON a.menu_id = b.menu_id
         WHERE
-        b.platform_id = #{platformId}
+        b.platform_id IN
+        <foreach collection="platformIds" item="item" open="(" separator="," close=")">
+            ${item}
+        </foreach>
         <if test="menuType != null and menuType != ''">
             AND a.menu_type = #{menuType}
         </if>
+        group by a.menu_id
         order by a.parent_id, a.order_num
     </select>