瀏覽代碼

Merge branch 'han' of uskycloud/usky-cloud into system-165

hanzhengyi 8 月之前
父節點
當前提交
04bd0b9156

+ 16 - 9
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysMenuController.java

@@ -90,6 +90,21 @@ public class SysMenuController extends BaseController
         return ApiResult.success(ajax);
     }
 
+    /**
+     * 加载对应角色菜单列表树
+     */
+    @GetMapping(value = "/roleMenuTreeselect1/{roleId}")
+    public ApiResult roleMenuTreeselect1(@PathVariable("roleId") Long roleId)
+    {
+//        Long userId = SecurityUtils.getUserId();
+        SysMenu menu = new SysMenu();
+        List<SysMenu> menus = menuService.selectMenuListTwo(menu);
+        Map<String,Object> ajax = new HashMap<>();
+        ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId));
+        ajax.put("menus", menuService.selectRolePlatformMenu(roleId));
+        return ApiResult.success(ajax);
+    }
+
     /**
      * 新增菜单
      */
@@ -158,15 +173,7 @@ public class SysMenuController extends BaseController
     @GetMapping("getRouters1")
     public ApiResult getRouters1()
     {
-        Long userId = SecurityUtils.getUserId();
-        SysUser sysUser = userService.selectUserByIdOne(userId);
-        List<SysMenu> menus = new ArrayList<>();
-        if ("01".equals(sysUser.getUserType())){
-            menus = menuService.selectMenuTreeByUserIdOne(SecurityUtils.getTenantId());
-        }else {
-            menus = menuService.selectMenuTreeByUserId(userId);
-        }
-        return ApiResult.success(menuService.buildPlatformMenus(menus));
+        return ApiResult.success(menuService.buildPlatformMenus());
     }
 
     /**

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

@@ -86,7 +86,7 @@ public interface SysMenuMapper extends CrudMapper<SysMenu> {
      * @param platformId 应用ID
      * @return 应用级菜单列表
      */
-    public List<SysMenu> selectMenuTreeByUserId1(@Param("userId") Long userId,@Param("platformId") Integer platformId);
+    public List<SysMenu> selectMenuTreeByUserId1(@Param("userId") Long userId,@Param("platformId") Long platformId);
 
     public List<SysMenu> selectMenuTreeByUserIdOne(@Param("tenantId") Integer tenantId);
 
@@ -154,4 +154,6 @@ public interface SysMenuMapper extends CrudMapper<SysMenu> {
 
     public List<SysMenu> getSysMenuList(String menuType);
 
+    public List<SysMenu> getTenantPlatformMenuList(@Param("tenantId") Integer tenantId,@Param("platformId") Integer platformId);
+
 }

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

@@ -45,4 +45,6 @@ public interface SysPlatformMapper extends CrudMapper<SysPlatform> {
 
     List<SysPlatformVo> getRolePlatformList(@Param("tenantId") Integer tenantId,
                                         @Param("roleId") Integer roleId);
+
+    List<SysPlatformVo> getTenantPlatformList(@Param("tenantId") Integer tenantId);
 }

+ 12 - 8
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysMenuService.java

@@ -5,13 +5,11 @@ import com.usky.common.mybatis.core.CrudService;
 import com.usky.system.domain.SysMenu;
 import com.usky.system.domain.SysMobileMenu;
 import com.usky.system.domain.SysTenantMenu;
-import com.usky.system.service.vo.PlatformRouterVo;
-import com.usky.system.service.vo.RouterVo;
-import com.usky.system.service.vo.TreeMobileSelect;
-import com.usky.system.service.vo.TreeSelect;
+import com.usky.system.service.vo.*;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -73,7 +71,7 @@ public interface ISysMenuService extends CrudService<SysMenu>
      * @param userId 用户ID
      * @return 菜单列表
      */
-    public List<SysMenu> selectMenuTreeByUserId1(Long userId,Integer platformId);
+    public List<SysMenu> selectMenuTreeByUserId1(Long userId,Long platformId);
 
     List<SysMenu> selectMenuTreeByUserIdOne(Integer tenantId);
 
@@ -101,11 +99,9 @@ public interface ISysMenuService extends CrudService<SysMenu>
 
     /**
      * 构建前端路由所需要的菜单(应用级)
-     *
-     * @param menus 菜单列表
      * @return 路由列表
      */
-    public List<PlatformRouterVo> buildPlatformMenus(List<SysMenu> menus);
+    public List<PlatformRouterVo> buildPlatformMenus();
 
 
     /**
@@ -196,4 +192,12 @@ public interface ISysMenuService extends CrudService<SysMenu>
      * @return 结果
      */
     public String checkMenuNameUnique(SysMenu menu);
+
+    /**
+     * 根据角色ID查询应用菜单树信息
+     *
+     * @param roleId 角色ID
+     * @return 选中菜单列表
+     */
+    List<TenantPlatformMenuVo> selectRolePlatformMenu(Long roleId);
 }

+ 90 - 11
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysMenuServiceImpl.java

@@ -191,7 +191,7 @@ public class SysMenuServiceImpl extends AbstractCrudService<SysMenuMapper, SysMe
      * @return 菜单列表
      */
     @Override
-    public List<SysMenu> selectMenuTreeByUserId1(Long userId,Integer platformId)
+    public List<SysMenu> selectMenuTreeByUserId1(Long userId,Long platformId)
     {
         List<SysMenu> menus = null;
         if (1L == userId)
@@ -293,20 +293,14 @@ public class SysMenuServiceImpl extends AbstractCrudService<SysMenuMapper, SysMe
 
     /**
      * 构建前端路由所需要的菜单
-     *
-     * @param menus 菜单列表
      * @return 路由列表
      */
     @Override
-    public List<PlatformRouterVo> buildPlatformMenus(List<SysMenu> menus)
+    public List<PlatformRouterVo> buildPlatformMenus()
     {
         List<PlatformRouterVo> platformRouterVos = new LinkedList<PlatformRouterVo>();
-        LambdaQueryWrapper<SysUserRole> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.in(SysUserRole::getUserId,SecurityUtils.getUserId());
-        List<SysUserRole> userRoleList = sysUserRoleMapper.selectList(queryWrapper);
-        if (CollectionUtils.isNotEmpty(userRoleList)){
-            List<SysPlatformVo> sysPlatformVos = sysPlatformMapper.getRolePlatformList(SecurityUtils.getTenantId(),
-                    userRoleList.get(0).getRoleId().intValue());
+        if (SecurityUtils.getLoginUser().getSysUser().getUserType().equals("01")){
+            List<SysPlatformVo> sysPlatformVos = sysPlatformMapper.getTenantPlatformList(SecurityUtils.getTenantId());
             if (CollectionUtils.isNotEmpty(sysPlatformVos)){
                 for (SysPlatformVo platformVo : sysPlatformVos)
                 {
@@ -314,8 +308,10 @@ public class SysMenuServiceImpl extends AbstractCrudService<SysMenuMapper, SysMe
                     platformRouterVo.setPlatformId(platformVo.getId());
                     platformRouterVo.setPlatformName(platformVo.getPlatformName());
                     platformRouterVo.setIcon(platformVo.getIcon());
+                    List<SysMenu> menus1 = this.selectMenuTreeByUserIdOne1(SecurityUtils.getTenantId(),
+                            platformVo.getId());
                     List<RouterVo> routers = new LinkedList<RouterVo>();
-                    for (SysMenu menu : menus)
+                    for (SysMenu menu : menus1)
                     {
                         RouterVo router = new RouterVo();
                         router.setHidden("1".equals(menu.getVisible()));
@@ -362,6 +358,71 @@ public class SysMenuServiceImpl extends AbstractCrudService<SysMenuMapper, SysMe
                     platformRouterVos.add(platformRouterVo);
                 }
             }
+        }else {
+            LambdaQueryWrapper<SysUserRole> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.in(SysUserRole::getUserId,SecurityUtils.getUserId());
+            List<SysUserRole> userRoleList = sysUserRoleMapper.selectList(queryWrapper);
+            if (CollectionUtils.isNotEmpty(userRoleList)){
+                List<SysPlatformVo> sysPlatformVos = sysPlatformMapper.getRolePlatformList(SecurityUtils.getTenantId(),
+                        userRoleList.get(0).getRoleId().intValue());
+                if (CollectionUtils.isNotEmpty(sysPlatformVos)){
+                    for (SysPlatformVo platformVo : sysPlatformVos)
+                    {
+                        PlatformRouterVo platformRouterVo = new PlatformRouterVo();
+                        platformRouterVo.setPlatformId(platformVo.getId());
+                        platformRouterVo.setPlatformName(platformVo.getPlatformName());
+                        platformRouterVo.setIcon(platformVo.getIcon());
+                        List<SysMenu> menus1 = this.selectMenuTreeByUserId1(SecurityUtils.getUserId(),
+                                platformVo.getId().longValue());
+                        List<RouterVo> routers = new LinkedList<RouterVo>();
+                        for (SysMenu menu : menus1)
+                        {
+                            RouterVo router = new RouterVo();
+                            router.setHidden("1".equals(menu.getVisible()));
+                            router.setName(getRouteName(menu));
+                            router.setPath(getRouterPath(menu));
+                            router.setComponent(getComponent(menu));
+                            router.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath(), menu.getIsFrame(), menu.getIsNew(), menu.getRemark()));
+                            List<SysMenu> cMenus = menu.getChildren();
+                            if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()))
+                            {
+                                router.setAlwaysShow(true);
+                                router.setRedirect("noRedirect");
+                                router.setChildren(buildMenus(cMenus));
+                            }
+                            else if (isMenuFrame(menu))
+                            {
+                                router.setMeta(null);
+                                List<RouterVo> childrenList = new ArrayList<RouterVo>();
+                                RouterVo children = new RouterVo();
+                                children.setPath(menu.getPath());
+                                children.setComponent(menu.getComponent());
+                                children.setName(StringUtils.capitalize(menu.getPath()));
+                                children.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath(), menu.getIsFrame(), menu.getIsNew(), menu.getRemark()));
+                                childrenList.add(children);
+                                router.setChildren(childrenList);
+                            }
+                            else if (menu.getParentId().intValue() == 0 && isInnerLink(menu))
+                            {
+                                router.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), menu.getIsFrame(), menu.getIsNew(), menu.getRemark()));
+                                router.setPath("/inner");
+                                List<RouterVo> childrenList = new ArrayList<RouterVo>();
+                                RouterVo children = new RouterVo();
+                                String routerPath = StringUtils.replaceEach(menu.getPath(), new String[] { Constants.HTTP, Constants.HTTPS }, new String[] { "", "" });
+                                children.setPath(routerPath);
+                                children.setComponent(UserConstants.INNER_LINK);
+                                children.setName(StringUtils.capitalize(routerPath));
+                                children.setMeta(new MetaVo(menu.getMenuName(), menu.getMenuAliasName(), menu.getIcon(), menu.getPath(), menu.getIsFrame(), menu.getIsNew(), menu.getRemark()));
+                                childrenList.add(children);
+                                router.setChildren(childrenList);
+                            }
+                            routers.add(router);
+                        }
+                        platformRouterVo.setRouterVos(routers);
+                        platformRouterVos.add(platformRouterVo);
+                    }
+                }
+            }
         }
         return platformRouterVos;
     }
@@ -815,4 +876,22 @@ public class SysMenuServiceImpl extends AbstractCrudService<SysMenuMapper, SysMe
     {
         return getChildMobileList(list, t).size() > 0 ? true : false;
     }
+
+    @Override
+    public List<TenantPlatformMenuVo> selectRolePlatformMenu(Long roleId)
+    {
+        List<TenantPlatformMenuVo> list1 = new ArrayList<>();
+        List<SysPlatformVo> list = sysPlatformMapper.getTenantPlatformList(SecurityUtils.getTenantId());
+        if (CollectionUtils.isNotEmpty(list)){
+            for(int i=0;i<list.size();i++){
+                TenantPlatformMenuVo tenantPlatformMenuVo = new TenantPlatformMenuVo();
+                tenantPlatformMenuVo.setId(list.get(i).getId());
+                tenantPlatformMenuVo.setLabel(list.get(i).getPlatformName());
+                List<SysMenu> menus = baseMapper.getTenantPlatformMenuList(SecurityUtils.getTenantId(),list.get(i).getId());
+                tenantPlatformMenuVo.setChildren(this.buildMenuTreeSelect(menus));
+                list1.add(tenantPlatformMenuVo);
+            }
+        }
+        return list1;
+    }
 }

+ 20 - 5
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysMenuMapper.xml

@@ -228,11 +228,12 @@
                  left join sys_role ro on ur.role_id = ro.role_id
                  left join sys_user u on ur.user_id = u.user_id
                  left join sys_tenant_menu t on u.tenant_id = t.tenant_id
+                 left join sys_platform_menu pm ON t.menu_id = pm.menu_id
         where u.user_id = #{userId}
           and m.menu_type in ('M', 'C')
           and m.status = 0
           AND ro.status = 0
-          AND t.platform_id=#{platformId}
+          AND pm.platform_id=#{platformId}
         order by m.parent_id, m.order_num
     </select>
 
@@ -289,13 +290,13 @@
             m.isNew
         FROM
             sys_menu m
-                JOIN sys_tenant_menu t
+                JOIN sys_tenant_menu t on m.menu_id = t.menu_id
+                JOIN sys_platform_menu p on t.menu_id = p.menu_id
         WHERE
-            m.menu_id = t.menu_id
-          AND m.menu_type IN ('M', 'C')
+          m.menu_type IN ('M', 'C')
           AND m. STATUS = 0
           AND t.tenant_id=#{tenantId}
-          AND t.platform_id=#{platformId}
+          AND p.platform_id=#{platformId}
         ORDER BY
             m.parent_id,
             m.order_num
@@ -442,4 +443,18 @@
         order_num
     </select>
 
+    <select id="getTenantPlatformMenuList" resultType="com.usky.system.domain.SysMenu">
+        SELECT
+        	m.*
+        FROM
+        	sys_menu m
+        LEFT JOIN sys_tenant_menu tm ON m.menu_id = tm.menu_id
+        LEFT JOIN sys_platform_menu pm ON tm.menu_id = pm.menu_id
+        WHERE
+        	tm.tenant_id = #{tenantId}
+        AND pm.platform_id = #{platformId}
+        GROUP BY
+        	m.menu_id;
+    </select>
+
 </mapper> 

+ 12 - 0
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysPlatformMapper.xml

@@ -110,4 +110,16 @@
         p.id
     </select>
 
+    <select id="getTenantPlatformList" resultType="com.usky.system.service.vo.SysPlatformVo">
+        SELECT
+        p.*
+        FROM
+        sys_platform p
+        LEFT JOIN sys_tenant_platform tp ON p.id=tp.platform_id
+        WHERE
+        tp.tenant_id = #{tenantId}
+        GROUP BY
+        p.id
+    </select>
+
 </mapper>