fanxp 1 week ago
parent
commit
e3932e0382

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

@@ -215,12 +215,8 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
                         .select(Menu::getId)
                         .select("1 as authorized")
                         .selectAs(Subsystem::getName, MenuVo::getSystemName)
-//            .selectAs(Department::getName, MenuVo::getDeptName)
-//            .selectAs(Department::getId, MenuVo::getDeptId)
                         .select(Menu.class, x -> VoToColumnUtil.fieldsToColumns(MenuTreeVo.class).contains(x.getProperty()))
                         .leftJoin(Subsystem.class, Subsystem::getId, Menu::getSystemId)
-//            .leftJoin("xjr_menu_dept_relation t2 ON t2.menu_id = t.id AND t2.delete_mark = 0")
-//            .leftJoin("xjr_department t3 ON t3.id = t2.dept_id")
                         .eq(Menu::getEnabledMark, EnabledMark.ENABLED.getCode())
                         .orderByAscStr(orderList)
         );
@@ -312,7 +308,7 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
      * @return
      */
     private List<MenuServeVo> getSubMenu(List<MenuVo> menuVos) {
-        Map<Long, MenuServeVo> menuVoMap = new HashMap<>();
+        Map<Long, MenuServeVo> menuVoMap = new LinkedHashMap<>();
 
         List<MenuVo> childMenus = new ArrayList<>();
 
@@ -337,6 +333,8 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
                         .ifPresent(parentNode -> {
                             node.setSystemId(parentNode.getSystemId());
                             node.setSystemName(parentNode.getSystemName());
+                            node.setSortCode(Integer.parseInt(parentNode.getSortCode() + "" + node.getSortCode())); // 实现组合排序
+                            node.setParentSortCode(parentNode.getSortCode());
                         });
                 Long number = menuVos.stream().filter(x -> x.getParentId().equals(node.getId())).count();
                 if (number == 0) {
@@ -345,7 +343,10 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
             }
         });
         menuVoMap.values().forEach((node) -> {
-            List<MenuVo> childMenu = childMenus.stream().filter(x -> x.getSystemId().equals(node.getId())).collect(Collectors.toList());
+            List<MenuVo> childMenu = childMenus.stream().
+                    filter(x -> x.getSystemId().equals(node.getId())).
+                    collect(Collectors.toList());
+            childMenu.sort(Comparator.comparingInt(MenuVo::getSortCode).thenComparingInt(MenuVo::getSortCode));
             node.setMenuVoList(childMenu);
         });
         return new ArrayList<>(menuVoMap.values());

+ 3 - 0
src/main/java/com/xjrsoft/module/system/vo/MenuVo.java

@@ -72,6 +72,9 @@ public class MenuVo implements Serializable {
     @ApiModelProperty("排序码")
     private Integer sortCode;
 
+    @ApiModelProperty("父级排序码")
+    private Integer parentSortCode;
+
     @ApiModelProperty("排序码")
     private String remark;