From 9e0fa31a2b81a9d2fd2588b78b6de637f0352639 Mon Sep 17 00:00:00 2001
From: wuxw7 <wuxw7@asiainfo.com>
Date: 星期二, 22 五月 2018 00:50:12 +0800
Subject: [PATCH] 中心服务和用户服务调用 逻辑调整

---
 java110-core/src/main/java/com/java110/core/base/controller/BaseController.java |  105 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 95 insertions(+), 10 deletions(-)

diff --git a/java110-core/src/main/java/com/java110/core/base/controller/BaseController.java b/java110-core/src/main/java/com/java110/core/base/controller/BaseController.java
index 0af9aaa..c43782a 100644
--- a/java110-core/src/main/java/com/java110/core/base/controller/BaseController.java
+++ b/java110-core/src/main/java/com/java110/core/base/controller/BaseController.java
@@ -2,19 +2,19 @@
 
 
 import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.CommonConstant;
 import com.java110.common.constant.ResponseConstant;
+import com.java110.common.exception.InitDataFlowContextException;
 import com.java110.common.exception.NoAuthorityException;
-import com.java110.common.factory.PageDataFactory;
-import com.java110.common.log.LoggerEngine;
 
-import com.java110.common.util.SequenceUtil;
+import com.java110.common.util.StringUtil;
 import com.java110.core.base.AppBase;
+import com.java110.core.context.BusinessServiceDataFlow;
+import com.java110.core.factory.DataFlowFactory;
 import com.java110.entity.service.PageData;
-import org.springframework.util.StringUtils;
+import org.springframework.ui.Model;
 
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.net.URLEncoder;
 import java.util.*;
 
 /**
@@ -29,11 +29,10 @@
      * 妫�鏌ョ敤鎴风櫥褰�
      * @throws NoAuthorityException
      */
-    protected String checkLogin() throws NoAuthorityException{
-        if(false){
+    protected void checkLogin(PageData pd) throws NoAuthorityException{
+        if(StringUtil.isNullOrNone(pd.getUserId())){
             throw new NoAuthorityException(ResponseConstant.RESULT_CODE_NO_AUTHORITY_ERROR,"鐢ㄦ埛鏈櫥褰曪紝璇风櫥褰曪紒");
         }
-        return "10001";
     }
 
 
@@ -128,7 +127,93 @@
      * @throws IllegalArgumentException
      */
     protected PageData getPageData(HttpServletRequest request){
-        return request.getAttribute("pd") != null ?(PageData) request.getAttribute("pd") : null;
+        if(request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA) == null){
+            throw new IllegalArgumentException("璇锋眰鍙傛暟閿欒");
+        }
+        return (PageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
     }
 
+    /**
+     * 鏌ヨ鑿滃崟
+     * @param model
+     * @param pd
+     */
+    protected void getMenus(Model model,PageData pd,List<Map> menuItems){
+        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);
+                }else{
+                    List<Map> subMenus = new ArrayList<Map>();
+                    subMenus.add(menuItem);
+                    parentMenuItem.put("subMenus",subMenus);
+                }
+
+                //removeMenuItems.add(menuItem);
+            }
+        }
+
+
+        //bug 20180510 濡傛灉鍦ㄤ竴绾ц彍鍗曚笅闈㈡病鏈夋寕浜岀骇鑿滃崟鎶ラ敊闂澶勭悊
+        ifNoSubMenusToRemove(menuItems,removeMenuItems);
+
+        removeMap(menuItems,removeMenuItems);
+
+
+
+        model.addAttribute("menus",menuItems);
+    }
+
+
+    private Map getMenuItemFromList(List<Map> menuItems,String parentId){
+        for(Map menuItem : menuItems){
+            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);
+        }
+    }
+
+    private void ifNoSubMenusToRemove(List<Map> menuItems,List<Map> removeMenuItems){
+        for(Map menu :menuItems){
+            if(!menu.containsKey("subMenus")){
+                removeMenuItems.add(menu);
+            }
+        }
+    }
+
+    /**
+     * 灏佽鏁版嵁
+     * @param reqJson
+     * @param headers
+     * @return
+     * @throws Exception
+     */
+    protected BusinessServiceDataFlow writeDataToDataFlowContext(String reqJson, Map<String,String> headers) throws InitDataFlowContextException {
+        BusinessServiceDataFlow businessServiceDataFlow = DataFlowFactory.newInstance(BusinessServiceDataFlow.class).builder(reqJson,headers);
+        return businessServiceDataFlow;
+    }
+
+
 }

--
Gitblit v1.8.0