From 86fb152b505a7ef6a99f20f87a71b3e773ba3b98 Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Fri, 16 Apr 2021 11:12:52 +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    |   26 ++++++++
 screen-manage/src/main/java/com/moral/api/service/impl/ManageMenuServiceImpl.java |   67 ++++++++++++++++++++-
 screen-manage/src/main/java/com/moral/api/mapper/ManageMenuMapper.java            |    2 
 screen-manage/src/main/resources/mapper/ManageMenuMapper.xml                      |   29 ++++++++-
 5 files changed, 118 insertions(+), 10 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 fc71ae0..c4f87db 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
@@ -131,7 +131,7 @@
             resultMap.put("msg",ResponseCodeEnum.PARAMETERS_NOT_REQUIREMENT.getMsg());
             return ResultMessage.fail(resultMap);
         }
-        List<ManageMenu> re = manageMenuService.getManageMenuByNameFuzzy(parameters);
+        List<Map<String,Object>> re = manageMenuService.getManageMenuByNameFuzzy(parameters);
         return ResultMessage.ok(re);
     }
 
@@ -157,4 +157,28 @@
         List<Map<String,Object>> result = manageMenuService.getAllWithPagingQuery(parameters);
         return ResultMessage.ok(result);
     }
+
+    @ApiOperation(value = "������������������������������", notes = "������������������������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "parent_id", value = "���������id", required = true, paramType = "query", dataType = "int"),
+            @ApiImplicitParam(name = "current", value = "������", required = true, paramType = "query", dataType = "int"),
+            @ApiImplicitParam(name = "size", value = "������������", required = true, paramType = "query", dataType = "int")
+    })
+    @RequestMapping(value = "getManageMenuByParentId", method = RequestMethod.GET)
+    public ResultMessage getManageMenuByParentId(HttpServletRequest request) {
+        Map<String,Object> parameters = getParametersStartingWith(request,null);
+        Map<String,Object> resultMap = new HashMap<>();
+        if (parameters.get("parent_id") == 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.getManageMenuByParentId(parameters);
+        return ResultMessage.ok(re);
+    }
 }
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 ebacfb4..5d9b771 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> 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 2a7f7a5..4c08837 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
@@ -34,7 +34,9 @@
 
     List getManageMenuByRoleId(int roleId);
 
-    List<ManageMenu> getManageMenuByNameFuzzy(Map map);
+    List<Map<String,Object>> getManageMenuByNameFuzzy(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 577e189..e64de85 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
@@ -61,7 +61,7 @@
             resultMap.put("code", ResponseCodeEnum.MENU_IS_EXPIRE.getCode());
             resultMap.put("msg", ResponseCodeEnum.MENU_IS_EXPIRE.getMsg());
         } else {
-            //manageMenuMapper.insertOne(manageMenu);
+            manageMenuMapper.insertOne(manageMenu);
             //������������������
             HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
             String content = "������������:"+manageMenu.getName()+";";
@@ -161,8 +161,13 @@
             if (manageMenu.getParentId().equals(0)){
                 manegeMenuMap.put("parent_name","");
             }else {
-                String parent_name = manageMenuMapper.getManageMenuById(manageMenu.getParentId()).getName();
-                manegeMenuMap.put("parent_name",parent_name);
+                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());
@@ -210,13 +215,65 @@
     }
 
     @Override
-    public List<ManageMenu> getManageMenuByNameFuzzy(Map map) {
+    public List<Map<String,Object>> getManageMenuByNameFuzzy(Map map) {
         Map limitMap = new HashMap();
         limitMap.put("name", map.get("name"));
         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);
-        return manageMenus;
+        SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        List<Map<String,Object>> resultList = 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);
+            resultList.add(manegeMenuMap);
+        }
+        return resultList;
+    }
+
+    @Override
+    public List<Map<String, Object>> getManageMenuByParentId(Map map) {
+        Map limitMap = new HashMap();
+        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.getManageMenuByCondition(limitMap);
+        SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        List<Map<String,Object>> resultList = 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);
+            resultList.add(manegeMenuMap);
+        }
+        return resultList;
     }
 
     @Override
diff --git a/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml b/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml
index 1d85053..826e422 100644
--- a/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml
+++ b/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml
@@ -67,7 +67,7 @@
             <if test="icon != null">
                 icon,
             </if>
-            <if test="parent_id != null">
+            <if test="parentId != null">
                 parent_id,
             </if>
             <if test="order != null">
@@ -84,8 +84,8 @@
             <if test="icon != null">
                 #{icon},
             </if>
-            <if test="parent_id != null">
-                #{parent_id},
+            <if test="parentId != null">
+                #{parentId},
             </if>
             <if test="order != null">
                 #{order},
@@ -154,4 +154,27 @@
         WHERE mm.is_delete = 0
     </select>
 
+    <select id="getManageMenuByCondition" 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 = #{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>
+        limit #{start},#{number}
+    </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0