From 5bacbb17debde58d6ff2581e4a03a866ca009c02 Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Mon, 31 May 2021 15:33:05 +0800
Subject: [PATCH] 菜单接口合并,查询父菜单列表

---
 screen-manage/src/main/java/com/moral/api/service/ManageMenuService.java          |    4 ++
 screen-manage/src/main/java/com/moral/api/controller/ManageMenuController.java    |   15 ++++---
 screen-manage/src/main/java/com/moral/api/service/impl/ManageMenuServiceImpl.java |   70 ++++++++++++++++++++++++++++++++++-
 screen-manage/src/main/java/com/moral/api/entity/ManageMenu.java                  |    1 
 screen-manage/src/main/java/com/moral/api/mapper/ManageMenuMapper.java            |    2 +
 screen-manage/src/main/resources/mapper/ManageMenuMapper.xml                      |   26 +++++++++++++
 6 files changed, 110 insertions(+), 8 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/controller/ManageMenuController.java b/screen-manage/src/main/java/com/moral/api/controller/ManageMenuController.java
index ebe54ef..3b8b6ac 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/ManageMenuController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/ManageMenuController.java
@@ -121,17 +121,12 @@
     public ResultMessage getManageMenuByNameFuzzy(HttpServletRequest request) {
         Map<String,Object> parameters = getParametersStartingWith(request,null);
         Map<String,Object> resultMap = new HashMap<>();
-        if (parameters.get("name") == null || parameters.get("current") == null || parameters.get("size") == null){
-            resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode());
-            resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
-            return ResultMessage.fail(resultMap);
-        }
         if (Integer.parseInt(parameters.get("current").toString())<1 || Integer.parseInt(parameters.get("size").toString())<1){
             resultMap.put("code",ResponseCodeEnum.PARAMETERS_NOT_REQUIREMENT.getCode());
             resultMap.put("msg",ResponseCodeEnum.PARAMETERS_NOT_REQUIREMENT.getMsg());
             return ResultMessage.fail(resultMap);
         }
-        List<Map<String,Object>> re = manageMenuService.getManageMenuByNameFuzzy(parameters);
+        Map<String,Object> re = manageMenuService.getManageMenuByCondition(parameters);
         return ResultMessage.ok(re);
     }
 
@@ -192,4 +187,12 @@
         List<ManageMenu> result = manageMenuService.getManageChildMenuByRoleId(Integer.parseInt(parameters.get("roleId").toString()));
         return ResultMessage.ok(result);
     }
+
+    @ApiOperation(value = "���������������������", notes = "���������������������")
+    @RequestMapping(value = "getManageParentMenu", method = RequestMethod.GET)
+    public ResultMessage getManageParentMenu(HttpServletRequest request) {
+        Map<String, Object> parameters = getParametersStartingWith(request, null);
+        Map<String,Object> result = manageMenuService.getManageParentMenu(parameters);
+        return ResultMessage.ok(result);
+    }
 }
diff --git a/screen-manage/src/main/java/com/moral/api/entity/ManageMenu.java b/screen-manage/src/main/java/com/moral/api/entity/ManageMenu.java
index 7e888f6..522ee7e 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/ManageMenu.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/ManageMenu.java
@@ -57,6 +57,7 @@
     /**
      * ���������������������������
      */
+    @TableField(value = "`order`")
     private Integer order;
 
     /**
diff --git a/screen-manage/src/main/java/com/moral/api/mapper/ManageMenuMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/ManageMenuMapper.java
index 5d9b771..2258c82 100644
--- a/screen-manage/src/main/java/com/moral/api/mapper/ManageMenuMapper.java
+++ b/screen-manage/src/main/java/com/moral/api/mapper/ManageMenuMapper.java
@@ -34,6 +34,8 @@
 
     List<ManageMenu> getManageRoleByNameFuzzy(Map map);
 
+    List<ManageMenu> getManageMenuByNameFuzzy(Map map);
+
     List<ManageMenu> getManageMenuByCondition(Map map);
 
     List<ManageMenu> getManageMenuByRoleId(int roleId);
diff --git a/screen-manage/src/main/java/com/moral/api/service/ManageMenuService.java b/screen-manage/src/main/java/com/moral/api/service/ManageMenuService.java
index d8e1711..5c67807 100644
--- a/screen-manage/src/main/java/com/moral/api/service/ManageMenuService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/ManageMenuService.java
@@ -38,6 +38,10 @@
 
     List<Map<String,Object>> getManageMenuByNameFuzzy(Map map);
 
+    Map<String,Object> getManageMenuByCondition(Map map);
+
+    Map<String,Object> getManageParentMenu(Map map);
+
     List<Map<String,Object>> getManageMenuByParentId(Map map);
 
     List<ManageMenu> getParentChildrenMenusByRoles(List<ManageRole> roles);
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ManageMenuServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ManageMenuServiceImpl.java
index fb8a118..e5fabb1 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/ManageMenuServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/ManageMenuServiceImpl.java
@@ -242,10 +242,15 @@
     @Override
     public List<Map<String,Object>> getManageMenuByNameFuzzy(Map map) {
         Map limitMap = new HashMap();
-        limitMap.put("name", map.get("name"));
+        if(!ObjectUtils.isEmpty(map.get("name"))){
+            limitMap.put("name", map.get("name"));
+        }
+        if(!ObjectUtils.isEmpty(map.get("parent_id"))){
+            limitMap.put("parent_id", map.get("parent_id"));
+        }
         limitMap.put("start", (Integer.parseInt(map.get("current").toString()) - 1) * Integer.parseInt(map.get("size").toString()));
         limitMap.put("number", Integer.parseInt(map.get("size").toString()));
-        List<ManageMenu> manageMenus = manageMenuMapper.getManageRoleByNameFuzzy(limitMap);
+        List<ManageMenu> manageMenus = manageMenuMapper.getManageMenuByNameFuzzy(limitMap);
         SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         List<Map<String,Object>> resultList = new ArrayList<>();
         for (ManageMenu manageMenu:manageMenus) {
@@ -271,6 +276,67 @@
     }
 
     @Override
+    public Map<String, Object> getManageMenuByCondition(Map map) {
+        Map<String,Object> resultMap = new HashMap<>();
+        int current = Integer.parseInt(map.get("current").toString());
+        int size = Integer.parseInt(map.get("size").toString());
+        Page<ManageMenu> page = new Page<>(current,size);
+        QueryWrapper<ManageMenu> wrapper = new QueryWrapper();
+        wrapper.eq("is_delete",Constants.NOT_DELETE);
+        if(!ObjectUtils.isEmpty(map.get("name"))){
+            wrapper.like("name", map.get("name"));
+        }
+        if(!ObjectUtils.isEmpty(map.get("parent_id"))){
+            wrapper.eq("parent_id", map.get("parent_id"));
+        }
+        Page resultpage = manageMenuMapper.selectPage(page,wrapper);
+        List<ManageMenu> manageMenus = resultpage.getRecords();
+        SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        List<Map<String,Object>> manageMenuList = new ArrayList<>();
+        for (ManageMenu manageMenu:manageMenus) {
+            Map manegeMenuMap = JSON.parseObject(JSON.toJSONString(manageMenu));
+            if (manageMenu.getParentId().equals(0)){
+                manegeMenuMap.put("parent_name","");
+            }else {
+                ManageMenu parentMenu = manageMenuMapper.getManageMenuById(manageMenu.getParentId());
+                if (ObjectUtils.isEmpty(parentMenu)){
+                    manegeMenuMap.put("parent_name","");
+                }else {
+                    String parent_name = parentMenu.getName();
+                    manegeMenuMap.put("parent_name",parent_name);
+                }
+            }
+            String createTime = SDF.format(manageMenu.getCreateTime());
+            String updateTime = SDF.format(manageMenu.getUpdateTime());
+            manegeMenuMap.put("createTime",createTime);
+            manegeMenuMap.put("updateTime",updateTime);
+            manageMenuList.add(manegeMenuMap);
+        }
+        resultMap.put("manageMenus",manageMenuList);
+        int totalNumber = manageMenuMapper.selectCount(wrapper);
+        resultMap.put("totalNumber",totalNumber);
+        resultMap.put("current",current);
+        resultMap.put("size",size);
+        int totalPageNumber = totalNumber/size;
+        if(totalNumber%size != 0){
+            totalPageNumber += 1;
+        }
+        resultMap.put("totalPageNumber",totalPageNumber);
+        return resultMap;
+    }
+
+    @Override
+    public Map<String, Object> getManageParentMenu(Map map) {
+        Map<String,Object> resultMap = new HashMap();
+        QueryWrapper<ManageMenu> wrapper = new QueryWrapper();
+        wrapper.eq("is_delete",Constants.NOT_DELETE);
+        wrapper.eq("parent_id",0);
+        List<ManageMenu> manageMenus = manageMenuMapper.selectList(wrapper);
+        resultMap.put("manageMenus",manageMenus);
+        return resultMap;
+    }
+
+    @Override
     public List<Map<String, Object>> getManageMenuByParentId(Map map) {
         Map limitMap = new HashMap();
         limitMap.put("parent_id", map.get("parent_id"));
diff --git a/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml b/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml
index 64a0bd7..fecfa44 100644
--- a/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml
+++ b/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml
@@ -190,4 +190,30 @@
         limit #{start},#{number}
     </select>
 
+    <select id="getManageMenuByNameFuzzy" parameterType="java.util.Map" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>
+        from manage_menu mm
+        where mm.is_delete = 0
+        <if test="name != null">
+            and mm.name like concat('%',#{name},'%')
+        </if>
+        <if test="url != null">
+            and mm.url = #{url}
+        </if>
+        <if test="icon != null">
+            and mm.icon = #{icon}
+        </if>
+        <if test="parent_id != null">
+            and mm.parent_id = #{parent_id}
+        </if>
+        <if test="order != null">
+            and mm.order = #{order}
+        </if>
+        <if test="desc != null">
+            and mm.desc = #{order}
+        </if>
+        limit #{start},#{number}
+    </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0