From 2ece6f6cd23d7b717881dd54a9fc74877096ecee Mon Sep 17 00:00:00 2001
From: wuxw7 <wuxw7@asiainfo.com>
Date: 星期一, 07 五月 2018 23:13:59 +0800
Subject: [PATCH] 控制服务实现登录功能 和菜单展示,以及中心服务bug修复

---
 ConsoleService/src/main/java/com/java110/console/controller/ConsoleController.java |   48 ++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 38 insertions(+), 10 deletions(-)

diff --git a/ConsoleService/src/main/java/com/java110/console/rest/ConsoleController.java b/ConsoleService/src/main/java/com/java110/console/controller/ConsoleController.java
similarity index 64%
rename from ConsoleService/src/main/java/com/java110/console/rest/ConsoleController.java
rename to ConsoleService/src/main/java/com/java110/console/controller/ConsoleController.java
index f687d3f..267d336 100644
--- a/ConsoleService/src/main/java/com/java110/console/rest/ConsoleController.java
+++ b/ConsoleService/src/main/java/com/java110/console/controller/ConsoleController.java
@@ -1,14 +1,16 @@
-package com.java110.console.rest;
+package com.java110.console.controller;
 
 import com.java110.common.exception.NoAuthorityException;
 import com.java110.common.exception.SMOException;
 import com.java110.console.smo.IConsoleServiceSMO;
 import com.java110.core.base.controller.BaseController;
+import com.java110.entity.service.PageData;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -25,16 +27,22 @@
     private IConsoleServiceSMO consoleServiceSMOImpl;
 
     @RequestMapping(path = "/")
-    public String index(Model model) {
+    public String index(Model model, HttpServletRequest request) {
         String template = "index";
         try {
-            //1.0 鍒ゆ柇鐢ㄦ埛鏄惁鐧诲綍
-            String managerId = checkLogin();
+            //1.0 鑾峰彇瀵硅薄
+            PageData pd = this.getPageData(request);
+            // 鍒ゆ柇鐢ㄦ埛鏄惁鐧诲綍
+            checkLogin(pd);
             //2.0 鏌ヨ鑿滃崟淇℃伅
-            List<Map> menuItems = consoleServiceSMOImpl.getMenuItemsByManageId(managerId);
+            List<Map> menuItems = consoleServiceSMOImpl.getMenuItemsByManageId(pd.getUserId());
+            List<Map> removeMenuItems = new ArrayList<Map>();
             for(Map menuItem : menuItems){
                 if(!"-1".equals(menuItem.get("parentId")) && !"1".equals(menuItem.get("level"))){
                     Map parentMenuItem = this.getMenuItemFromList(menuItems,menuItem.get("parentId").toString());
+                    if(parentMenuItem == null){
+                        continue;
+                    }
                     if(parentMenuItem.containsKey("subMenus")){
                         List<Map> subMenus = (List<Map>) parentMenuItem.get("subMenus");
                         subMenus.add(menuItem);
@@ -44,18 +52,23 @@
                         parentMenuItem.put("subMenus",subMenus);
                     }
 
-                    menuItems.remove(menuItem);
+                    removeMenuItems.add(menuItem);
                 }
             }
+
+            removeMap(menuItems,removeMenuItems);
             model.addAttribute("menus",menuItems);
             //3.0 鏌ヨ鍚勪釜绯荤粺璋冪敤閲�
         }catch (NoAuthorityException e){
             //璺宠浆鍒扮櫥褰曢〉闈�
-            template = "login";
+            template = "redirect:/login";
         }catch (IllegalArgumentException e){
-            template = "error";
+            template = "redirect:/system/error";
         }catch (SMOException e){
-            template = "error";
+            template = "redirect:/system/error";
+        }catch (Exception e){
+            logger.error("绯荤粺寮傚父锛�",e);
+            template = "redirect:/system/error";
         }finally {
             return template;
         }
@@ -64,13 +77,28 @@
 
     private Map getMenuItemFromList(List<Map> menuItems,String parentId){
         for(Map menuItem : menuItems){
-            if(menuItem.get("mId").equals(parentId)){
+            if(menuItem.get("mId").toString().equals(parentId)){
                 return menuItem;
             }
         }
         return null;
     }
 
+    /**
+     * 鍒犻櫎map
+     * @param menuItems
+     * @param removeMenuItems
+     */
+    private void removeMap(List<Map> menuItems,List<Map> removeMenuItems){
+        if(removeMenuItems == null  || removeMenuItems.size() == 0){
+            return;
+        }
+
+        for(Map removeMenuItem : removeMenuItems){
+            menuItems.remove(removeMenuItem);
+        }
+    }
+
     public IConsoleServiceSMO getConsoleServiceSMOImpl() {
         return consoleServiceSMOImpl;
     }

--
Gitblit v1.8.0