From 7935724516cb699835da888d59cd5b7bec5c6049 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 12 九月 2024 12:07:29 +0800
Subject: [PATCH] 完成业主功能的优化

---
 service-user/src/main/java/com/java110/user/cmd/menu/QueryMenuInfoCmd.java |   87 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 85 insertions(+), 2 deletions(-)

diff --git a/service-user/src/main/java/com/java110/user/cmd/menu/QueryMenuInfoCmd.java b/service-user/src/main/java/com/java110/user/cmd/menu/QueryMenuInfoCmd.java
index 665c3b8..c198303 100644
--- a/service-user/src/main/java/com/java110/user/cmd/menu/QueryMenuInfoCmd.java
+++ b/service-user/src/main/java/com/java110/user/cmd/menu/QueryMenuInfoCmd.java
@@ -46,6 +46,11 @@
         String userId = context.getReqHeaders().get("user-id");
         String storeId = context.getReqHeaders().get("store-id");
 
+        String groupType = "P_WEB";
+        if(reqJson.containsKey("groupType") && !StringUtil.isEmpty(reqJson.getString("groupType"))){
+            groupType = reqJson.getString("groupType");
+        }
+
         if(StringUtil.isEmpty(userId)){
             userId = reqJson.getString("userId");
         }
@@ -69,7 +74,7 @@
         JSONObject param = new JSONObject();
         param.put("userId", userId);
         param.put("domain", domain);
-        param.put("groupType", "P_WEB");
+        param.put("groupType", groupType);
         dataQuery.setRequestParams(param);
         queryServiceSMOImpl.commonQueryService(dataQuery);
         ResponseEntity<String> privilegeGroup = dataQuery.getResponseEntity();
@@ -79,6 +84,84 @@
         }
         JSONObject resultObj = JSONObject.parseObject(privilegeGroup.getBody().toString());
 
-        context.setResponseEntity(new ResponseEntity<String>(resultObj.toJSONString(), HttpStatus.OK));
+
+
+        if (!resultObj.containsKey("menus")) {
+            return;
+        }
+
+        context.setResponseEntity(refreshMenusInfo(resultObj.getJSONArray("menus")));
+
+    }
+
+    /**
+     * 鍒锋柊鑿滃崟淇℃伅
+     * 灏� 鏁版嵁 [{
+     * "gId": "800201904001",
+     * "menuDescription": "娣诲姞鍛樺伐",
+     * "menuGroupSeq": 1,
+     * "menuSeq": 1,
+     * "icon": "fa-desktop",
+     * "mId": "700201904001",
+     * "menuName": "娣诲姞鍛樺伐",
+     * "pId": "500201904001",
+     * "menuGroupName": "鍛樺伐绠$悊",
+     * "label": "",
+     * "menuGroupDescription": "鍛樺伐绠$悊",
+     * "url": "/"
+     * }],
+     * 杞负锛�
+     * "[{'id':1,'icon':'fa-desktop','name':'鎴戠殑鑿滃崟','label':'HOT','childs':[" +
+     * "{'name':'瀛愯彍鍗�','href':'http://www.baidu.com'}]}," +
+     * "{'id':2,'icon':'fa-flask','name':'鎴戠殑鑿滃崟','childs':[],'href':'/doc'}," +
+     * "{'id':3,'icon':'fa-globe','name':'鎴戠殑鑿滃崟','childs':[{'name':'瀛愯彍鍗�','href':'http://www.baidu.com'}]}" +
+     * "]";
+     *
+     * @param menusList 鑿滃崟鍒楄〃
+     * @return
+     */
+    private ResponseEntity<String> refreshMenusInfo(JSONArray menusList) {
+        JSONArray tempMenus = new JSONArray();
+        JSONObject tempMenu = null;
+        for (int menuIndex = 0; menuIndex < menusList.size(); menuIndex++) {
+            JSONObject tMenu = menusList.getJSONObject(menuIndex);
+            tempMenu = this.getMenuFromMenus(tempMenus, tMenu.getString("gId"));
+            if (tempMenu == null) {
+                tempMenu = new JSONObject();
+                tempMenu.put("id", tMenu.getString("gId"));
+                tempMenu.put("icon", tMenu.getString("icon"));
+                tempMenu.put("name", tMenu.getString("menuGroupName"));
+                tempMenu.put("label", tMenu.getString("label"));
+                tempMenu.put("seq", tMenu.getString("menuGroupSeq"));
+                tempMenu.put("childs", new JSONArray());
+                tempMenus.add(tempMenu);
+            }
+            //鑾峰彇瀛╁瓙鑿滃崟
+            JSONArray childs = tempMenu.getJSONArray("childs");
+            JSONObject childMenu = new JSONObject();
+            childMenu.put("name", tMenu.getString("menuName"));
+            childMenu.put("href", tMenu.getString("url"));
+            childMenu.put("seq", tMenu.getString("menuSeq"));
+            childMenu.put("isShow", tMenu.getString("isShow"));
+            childMenu.put("description", tMenu.getString("description"));
+            childs.add(childMenu);
+        }
+        return new ResponseEntity<String>(tempMenus.toJSONString(), HttpStatus.OK);
+    }
+
+    /**
+     * 鍦ㄨ彍鍗曞垪琛ㄦ煡璇㈣彍鍗�
+     *
+     * @param gId
+     * @return
+     */
+    private JSONObject getMenuFromMenus(JSONArray tempMenus, String gId) {
+        for (int tempIndex = 0; tempIndex < tempMenus.size(); tempIndex++) {
+            if (tempMenus.getJSONObject(tempIndex).getString("id").equals(gId)) {
+                return tempMenus.getJSONObject(tempIndex);
+            }
+        }
+
+        return null;
     }
 }

--
Gitblit v1.8.0