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/smo/impl/ConsoleServiceSMOImpl.java |  142 +++++++++++++++++++++++++++++++++-------------
 1 files changed, 101 insertions(+), 41 deletions(-)

diff --git a/ConsoleService/src/main/java/com/java110/console/smo/impl/ConsoleServiceSMOImpl.java b/ConsoleService/src/main/java/com/java110/console/smo/impl/ConsoleServiceSMOImpl.java
index 1494f19..a5f9481 100644
--- a/ConsoleService/src/main/java/com/java110/console/smo/impl/ConsoleServiceSMOImpl.java
+++ b/ConsoleService/src/main/java/com/java110/console/smo/impl/ConsoleServiceSMOImpl.java
@@ -2,16 +2,20 @@
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.auth0.jwt.algorithms.Algorithm;
+import com.java110.common.cache.JWTCache;
 import com.java110.common.cache.MappingCache;
 import com.java110.common.constant.CommonConstant;
 import com.java110.common.constant.MappingConstant;
 import com.java110.common.constant.ResponseConstant;
 import com.java110.common.constant.ServiceCodeConstant;
 import com.java110.common.exception.SMOException;
+import com.java110.common.factory.AuthenticationFactory;
 import com.java110.common.factory.DataTransactionFactory;
 import com.java110.common.log.LoggerEngine;
 import com.java110.common.util.Assert;
 import com.java110.console.smo.IConsoleServiceSMO;
+import com.java110.entity.service.PageData;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -40,59 +44,115 @@
      */
     @Override
     public List<Map> getMenuItemsByManageId(String manageId) throws SMOException,IllegalArgumentException{
-
-            //鑾峰彇缁勪欢
-            String appId = MappingCache.getValue(MappingConstant.KEY_CONSOLE_SERVICE_APP_ID);
-
-            Assert.hasLength(appId, "缁勪欢涓嶈兘涓虹┖");
-
-            String centerServiceUrl = MappingCache.getValue(MappingConstant.KEY_CENTER_SERVICE_URL);
-
-            Assert.hasLength(centerServiceUrl, "涓績鏈嶅姟鍣ㄥ湴鍧�娌℃湁閰嶇疆");
-
-            String securityCode = MappingCache.getValue(MappingConstant.KEY_CONSOLE_SECURITY_CODE);
-            Assert.hasLength(securityCode, "绛惧悕绉橀挜娌℃湁閰嶇疆");
-            Map paramIn = new HashMap();
-            paramIn.put("manageId", manageId);
-            paramIn.put("menuGroup",CommonConstant.MENU_GROUP_LEFT);
-            String responseMsg = "";
-            String requestBody = DataTransactionFactory.createQueryOneCenterServiceRequestJson(appId, manageId, securityCode,
-                    DataTransactionFactory.createQueryOneBusinessRequestJson(ServiceCodeConstant.SERVICE_CODE_QUERY_MENU_ITEM,
-                    ServiceCodeConstant.SERVICE_CODE_QUERY_MENU_ITEM_NAME, paramIn));
-            if (MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_CONSOLE_SERVICE_SECURITY_ON_OFF))) {
-                try {
-                    requestBody = DataTransactionFactory.encrypt(requestBody, 2048);
-                    //璋冪敤鏌ヨ鑿滃崟淇℃伅
-                    HttpHeaders header = new HttpHeaders();
-                    header.add(CommonConstant.ENCRYPT, MappingConstant.VALUE_ON);
-                    header.add(CommonConstant.ENCRYPT_KEY_SIZE, "2048");
-                    HttpEntity<String> httpEntity = new HttpEntity<String>(requestBody, header);
-                    responseMsg = restTemplate.postForObject(centerServiceUrl, httpEntity, String.class);
-                    responseMsg = DataTransactionFactory.decrypt(responseMsg, 2048);
-                }catch (Exception e){
-                    logger.error("璋冪敤鎺ュ彛澶辫触",e);
-                    throw new SMOException(ResponseConstant.RESULT_CODE_NO_AUTHORITY_ERROR,"璋冪敤鎺ュ彛澶辫触"+e);
-                }
-            } else {
-                responseMsg = restTemplate.postForObject(centerServiceUrl,requestBody,String.class);
-            }
-
-        JSONObject businessObj = DataTransactionFactory.getOneBusinessFromCenterServiceResponseJson(responseMsg);
+        Map paramIn = new HashMap();
+        paramIn.put("manageId", manageId);
+        paramIn.put("menuGroup", CommonConstant.MENU_GROUP_LEFT);
+        paramIn.put(CommonConstant.ORDER_USER_ID,manageId);
+        paramIn.put(ServiceCodeConstant.SERVICE_CODE,ServiceCodeConstant.SERVICE_CODE_QUERY_MENU_ITEM);
+        paramIn.put(ServiceCodeConstant.SERVICE_CODE_NAME,ServiceCodeConstant.SERVICE_CODE_QUERY_MENU_ITEM_NAME);
+        JSONObject businessObj = doExecute(paramIn);
         JSONArray menus = businessObj.getJSONArray("menus");
         return menus.toJavaList(Map.class);
     }
 
     /**
      * 鐢ㄦ埛鐧诲綍
-     * @param userObj
+     * @param pd
      * @return
      * @throws SMOException
      */
     @Override
-    public String login(JSONObject userObj) throws SMOException {
-        return null;
+    public void login(PageData pd) throws SMOException {
+        String userCode = pd.getParam().getString("userCode");
+        String userPwd = pd.getParam().getString("userPwd");
+        String pageSign = pd.getParam().getString("pageSign");
+
+        Assert.hasText(userCode,"鐢ㄦ埛缂栫爜涓嶈兘涓虹┖");
+        Assert.hasText(userPwd,"鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖");
+
+        Map paramIn = new HashMap();
+        paramIn.put("userCode", userCode);
+        paramIn.put(CommonConstant.ORDER_USER_ID,CommonConstant.ORDER_DEFAULT_USER_ID);
+        paramIn.put(ServiceCodeConstant.SERVICE_CODE,ServiceCodeConstant.SERVICE_CODE_QUERY_USER_LOGIN);
+        paramIn.put(ServiceCodeConstant.SERVICE_CODE_NAME,ServiceCodeConstant.SERVICE_CODE_QUERY_USER_LOGIN_NAME);
+        //paramIn.put("userPwd", userPwd);
+        JSONObject businessObj = doExecute(paramIn);
+
+        JSONObject user = businessObj.getJSONObject("user");
+        //String newPwd = AuthenticationFactory.md5UserPassword(userPwd);
+        if(!AuthenticationFactory.md5UserPassword(userPwd).equals(user.getString("userPwd"))){
+            throw new SMOException(ResponseConstant.RESULT_CODE_NO_AUTHORITY_ERROR,"瀵嗙爜涓嶆纭�");
+        }
+        String token = "";
+        try {
+            Map userMap = new HashMap();
+            userMap.put(CommonConstant.LOGIN_USER_ID,user.getString("userId"));
+            userMap.put(CommonConstant.LOGIN_USER_NAME,user.getString("userName"));
+            token = AuthenticationFactory.createAndSaveToken(userMap);
+            pd.setToken(token);
+        }catch (Exception e){
+            logger.error("鐧诲綍寮傚父锛�",e);
+            throw new SMOException(ResponseConstant.RESULT_CODE_INNER_ERROR,"绯荤粺鍐呴儴閿欒锛岃鑱旂郴绠$悊鍛�");
+        }
+
+        //灏佽鎴愬姛淇℃伅
+        pd.setResJson(DataTransactionFactory.pageResponseJson(pd.getTransactionId(),ResponseConstant.RESULT_CODE_SUCCESS,"鐧诲綍鎴愬姛 ",null));
+
     }
 
+    private JSONObject doExecute(Map paramIn) {
+        //鑾峰彇缁勪欢
+        String appId = MappingCache.getValue(MappingConstant.KEY_CONSOLE_SERVICE_APP_ID);
+
+        Assert.hasLength(appId, "缁勪欢涓嶈兘涓虹┖");
+
+        String centerServiceUrl = MappingCache.getValue(MappingConstant.KEY_CENTER_SERVICE_URL);
+
+        Assert.hasLength(centerServiceUrl, "涓績鏈嶅姟鍣ㄥ湴鍧�娌℃湁閰嶇疆");
+
+        String securityCode = MappingCache.getValue(MappingConstant.KEY_CONSOLE_SECURITY_CODE);
+        Assert.hasLength(securityCode, "绛惧悕绉橀挜娌℃湁閰嶇疆");
+
+        String serviceCode = paramIn.get(ServiceCodeConstant.SERVICE_CODE).toString();
+        String serviceCodeName = paramIn.get(ServiceCodeConstant.SERVICE_CODE_NAME).toString();
+        String userId = paramIn.get(CommonConstant.ORDER_USER_ID).toString();
+        if(paramIn.containsKey(ServiceCodeConstant.SERVICE_CODE)){
+            paramIn.remove(ServiceCodeConstant.SERVICE_CODE);
+        }
+        if(paramIn.containsKey(ServiceCodeConstant.SERVICE_CODE_NAME)){
+            paramIn.remove(ServiceCodeConstant.SERVICE_CODE_NAME);
+        }
+
+        if(paramIn.containsKey(CommonConstant.ORDER_USER_ID)){
+            paramIn.remove(CommonConstant.ORDER_USER_ID);
+        }
+
+        String responseMsg = "";
+        String requestBody = DataTransactionFactory.createQueryOneCenterServiceRequestJson(appId, userId, securityCode,
+                DataTransactionFactory.createQueryOneBusinessRequestJson(serviceCode,
+                        serviceCodeName, paramIn));
+        if (MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_CONSOLE_SERVICE_SECURITY_ON_OFF))) {
+            try {
+                requestBody = DataTransactionFactory.encrypt(requestBody, 2048);
+                //璋冪敤鏌ヨ鑿滃崟淇℃伅
+                HttpHeaders header = new HttpHeaders();
+                header.add(CommonConstant.ENCRYPT, MappingConstant.VALUE_ON);
+                header.add(CommonConstant.ENCRYPT_KEY_SIZE, "2048");
+                HttpEntity<String> httpEntity = new HttpEntity<String>(requestBody, header);
+                responseMsg = restTemplate.postForObject(centerServiceUrl, httpEntity, String.class);
+                responseMsg = DataTransactionFactory.decrypt(responseMsg, 2048);
+            }catch (Exception e){
+                logger.error("璋冪敤鎺ュ彛澶辫触",e);
+                throw new SMOException(ResponseConstant.RESULT_CODE_NO_AUTHORITY_ERROR,"璋冪敤鎺ュ彛澶辫触"+e);
+            }
+        } else {
+            responseMsg = restTemplate.postForObject(centerServiceUrl,requestBody,String.class);
+        }
+
+        return DataTransactionFactory.getOneBusinessFromCenterServiceResponseJson(responseMsg);
+    }
+
+
     public RestTemplate getRestTemplate() {
         return restTemplate;
     }

--
Gitblit v1.8.0