fanxp před 2 roky
rodič
revize
2ffd755a93

+ 1 - 1
src/main/java/com/xjrsoft/module/system/controller/MenuController.java

@@ -91,7 +91,7 @@ public class MenuController {
 
     @GetMapping("/role-serve")
     @ApiOperation(value = "查询角色菜单服务")
-    public RT<List<MenuServeVo>> roleMenuServe(SaveRoleXjrMenuQuickDto dto) {
+    public RT<List<MenuServeVo>> roleMenuServe(RoleMenuServeListDto dto) {
         List<MenuServeVo> list = menuService.getRoleMenuServe(dto);
 
         return RT.ok(list);

+ 14 - 0
src/main/java/com/xjrsoft/module/system/dto/RoleMenuServeListDto.java

@@ -0,0 +1,14 @@
+package com.xjrsoft.module.system.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+public class RoleMenuServeListDto {
+    /**
+     * 角色编号
+     */
+    @NotNull(message = "角色编号不能为空")
+    private Long roleId;
+}

+ 2 - 1
src/main/java/com/xjrsoft/module/system/service/IMenuService.java

@@ -3,6 +3,7 @@ package com.xjrsoft.module.system.service;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.module.system.dto.MenuTreeDto;
+import com.xjrsoft.module.system.dto.RoleMenuServeListDto;
 import com.xjrsoft.module.system.dto.SaveRoleXjrMenuQuickDto;
 import com.xjrsoft.module.system.entity.Menu;
 import com.xjrsoft.module.system.vo.MenuServeVo;
@@ -24,7 +25,7 @@ public interface IMenuService extends MPJBaseService<Menu> {
 
     List<MenuServeVo> getAuthMenuServe();
 
-    List<MenuServeVo> getRoleMenuServe(SaveRoleXjrMenuQuickDto dto);
+    List<MenuServeVo> getRoleMenuServe(RoleMenuServeListDto dto);
 
     List<Menu> getUserQuick();
 }

+ 11 - 7
src/main/java/com/xjrsoft/module/system/service/impl/MenuServiceImpl.java

@@ -13,6 +13,7 @@ import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.organization.entity.UserRoleRelation;
 import com.xjrsoft.module.organization.mapper.UserRoleRelationMapper;
 import com.xjrsoft.module.system.dto.MenuTreeDto;
+import com.xjrsoft.module.system.dto.RoleMenuServeListDto;
 import com.xjrsoft.module.system.dto.SaveRoleXjrMenuQuickDto;
 import com.xjrsoft.module.system.entity.Authorize;
 import com.xjrsoft.module.system.entity.Menu;
@@ -70,7 +71,7 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
      * 查询角色菜单服务
      */
     @Override
-    public List<MenuServeVo> getRoleMenuServe(SaveRoleXjrMenuQuickDto dto) {
+    public List<MenuServeVo> getRoleMenuServe(RoleMenuServeListDto dto) {
         // 获取角色菜单
         List<MenuVo> menuVos = getAuthMenuByRoleIds(new ArrayList<Long>() {{
             add(dto.getRoleId());
@@ -107,6 +108,7 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
                         .eq(XjrMenuQuick::getUserId, userId)
                         .selectAs(XjrMenuQuick::getSystemId, Menu::getSystemId)
                         .select(Menu.class, x -> VoToColumnUtil.fieldsToColumns(MenuListVo.class).contains(x.getProperty())));
+        // 取角色菜单
         if (menus.size() == 0) {
             List<Long> roleIds = getUserRoleIds();
             menus = this.selectJoinList(Menu.class,
@@ -115,6 +117,8 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
                             .in(XjrMenuQuick::getRoleId,roleIds)
                             .selectAs(XjrMenuQuick::getSystemId, Menu::getSystemId)
                             .select(Menu.class, x -> VoToColumnUtil.fieldsToColumns(MenuListVo.class).contains(x.getProperty())));
+            // 去重
+            menus = menus.stream().distinct().collect(Collectors.toList());
         }
         return menus;
     }
@@ -206,12 +210,12 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
 
             if (!StrUtil.isEmptyIfStr(parentId) || !StrUtil.equals(String.valueOf(parentId), String.valueOf(GlobalConstant.FIRST_NODE_VALUE))) {
                 // 给每条数据设置子系统信息
-                menuVos.stream().filter(x -> StrUtil.equals(x.getId().toString(), String.valueOf(parentId)))
-                        .findAny()
-                        .ifPresent(parentNode -> {
-                            node.setSystemId(parentNode.getSystemId());
-                            node.setSystemName(parentNode.getSystemName());
-                        });
+//                menuVos.stream().filter(x -> StrUtil.equals(x.getId().toString(), String.valueOf(parentId)))
+//                        .findAny()
+//                        .ifPresent(parentNode -> {
+//                            node.setSystemId(parentNode.getSystemId());
+//                            node.setSystemName(parentNode.getSystemName());
+//                        });
                 Long number = menuVos.stream().filter(x -> x.getParentId().equals(node.getId())).count();
                 if (number == 0) {
                     childMenus.add(node);