From 7fa84cbdd2a4621fab799ce52d5bb883fd1069f5 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期五, 27 十二月 2019 11:58:05 +0800
Subject: [PATCH] 加入代码

---
 AppFrontService/src/main/java/com/java110/app/smo/wxLogin/impl/WxLoginSMOImpl.java |   63 +++++++++++++------------------
 1 files changed, 27 insertions(+), 36 deletions(-)

diff --git a/AppFrontService/src/main/java/com/java110/app/smo/wxLogin/impl/WxLoginSMOImpl.java b/AppFrontService/src/main/java/com/java110/app/smo/wxLogin/impl/WxLoginSMOImpl.java
index 8437196..e760e32 100644
--- a/AppFrontService/src/main/java/com/java110/app/smo/wxLogin/impl/WxLoginSMOImpl.java
+++ b/AppFrontService/src/main/java/com/java110/app/smo/wxLogin/impl/WxLoginSMOImpl.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.app.properties.WechatAuthProperties;
+import com.java110.app.smo.AppAbstractComponentSMO;
 import com.java110.app.smo.wxLogin.IWxLoginSMO;
 import com.java110.core.component.AbstractComponentSMO;
 import com.java110.core.context.IPageData;
@@ -27,7 +28,7 @@
  * wx鐧诲綍
  */
 @Service("wxLoginSMOImpl")
-public class WxLoginSMOImpl extends AbstractComponentSMO implements IWxLoginSMO {
+public class WxLoginSMOImpl extends AppAbstractComponentSMO implements IWxLoginSMO {
 
     private final static Logger logger = LoggerFactory.getLogger(WxLoginSMOImpl.class);
 
@@ -57,19 +58,22 @@
         logger.debug("doLogin鍏ュ弬锛�" + paramIn.toJSONString());
         ResponseEntity<String> responseEntity;
         String code = paramIn.getString("code");
-        String urlString = "?appid={appid}&secret={srcret}&js_code={code}&grant_type={grantType}";
+        String urlString = "?appid={appId}&secret={secret}&js_code={code}&grant_type={grantType}";
         String response = restTemplate.getForObject(
                 wechatAuthProperties.getSessionHost() + urlString, String.class,
                 wechatAuthProperties.getAppId(),
                 wechatAuthProperties.getSecret(),
                 code,
                 wechatAuthProperties.getGrantType());
+
+        logger.debug("wechatAuthProperties:" + JSONObject.toJSONString(wechatAuthProperties));
+
         logger.debug("寰俊杩斿洖鎶ユ枃锛�" + response);
 
-        Assert.jsonObjectHaveKey(response, "errcode", "杩斿洖鎶ユ枃涓湭鍖呭惈 閿欒缂栫爜锛屾帴鍙e嚭閿�");
+        //Assert.jsonObjectHaveKey(response, "errcode", "杩斿洖鎶ユ枃涓湭鍖呭惈 閿欒缂栫爜锛屾帴鍙e嚭閿�");
         JSONObject responseObj = JSONObject.parseObject(response);
 
-        if (!"0".equals(responseObj.getString("errcode"))) {
+        if (responseObj.containsKey("errcode") && !"0".equals(responseObj.getString("errcode"))) {
             throw new IllegalArgumentException("寰俊楠岃瘉澶辫触锛屽彲鑳芥槸code澶辨晥");
         }
 
@@ -86,36 +90,17 @@
         JSONObject userResult = JSONObject.parseObject(responseEntity.getBody());
         int total = userResult.getIntValue("total");
 
+        JSONObject userInfo = paramIn.getJSONObject("userInfo");
+
         if (total == 0) {
             //淇濆瓨鐢ㄦ埛淇℃伅
             JSONObject registerInfo = new JSONObject();
-
-            JSONObject userInfo = paramIn.getJSONObject("userInfo");
 
             //璁剧疆榛樿瀵嗙爜
             String userDefaultPassword = MappingCache.getValue(MappingConstant.KEY_STAFF_DEFAULT_PASSWORD);
             Assert.hasLength(userDefaultPassword, "鏄犲皠琛ㄤ腑鏈缃憳宸ラ粯璁ゅ瘑鐮侊紝璇锋鏌�" + MappingConstant.KEY_STAFF_DEFAULT_PASSWORD);
             userDefaultPassword = AuthenticationFactory.passwdMd5(userDefaultPassword);
 
-            /**
-             * {
-             *      "userId": "-1",
-             *      "name": "寮犱笁",
-             *      "email": "928255095@qq.com",
-             *      "address": "闈掓捣鐪佽タ瀹佸競鍩庝腑鍖�129鍙�",
-             *      "password": "ERCBHDUYFJDNDHDJDNDJDHDUDHDJDDKDK",
-             *      "locationCd": "001",
-             *      "age": 19,
-             *      "sex": "0",
-             *      "tel": "17797173943",
-             *      "level_cd": "1",
-             *      "businessUserAttr": [{
-             *      "attrId":"-1",
-             *      "specCd":"1001",
-             *      "value":"01"
-             *      }]
-             *      }
-             */
             registerInfo.put("userId", "-1");
             registerInfo.put("email", "");
             registerInfo.put("address", userInfo.getString("country") + userInfo.getString("province") + userInfo.getString("city"));
@@ -128,13 +113,13 @@
             registerInfo.put("password", userDefaultPassword);
             JSONArray userAttr = new JSONArray();
             JSONObject userAttrObj = new JSONObject();
-            userAttrObj.put("attrId","-1");
-            userAttrObj.put("specCd","100201911001");
-            userAttrObj.put("value",openId);
+            userAttrObj.put("attrId", "-1");
+            userAttrObj.put("specCd", "100201911001");
+            userAttrObj.put("value", openId);
             userAttr.add(userAttrObj);
             registerInfo.put("businessUserAttr", userAttr);
             responseEntity = this.callCenterService(restTemplate, pd, registerInfo.toJSONString(), ServiceConstant.SERVICE_API_URL + "/api/user.service.register", HttpMethod.POST);
-            if(responseEntity.getStatusCode() != HttpStatus.OK){
+            if (responseEntity.getStatusCode() != HttpStatus.OK) {
                 throw new IllegalArgumentException("淇濆瓨鐢ㄦ埛淇℃伅澶辫触");
             }
             responseEntity = super.getUserInfoByOpenId(pd, restTemplate, openId);
@@ -143,21 +128,27 @@
             if (responseEntity.getStatusCode() != HttpStatus.OK) {
                 throw new IllegalArgumentException("鏍圭粷openId 鏌ヨ鐢ㄦ埛淇℃伅寮傚父" + openId);
             }
-             userResult = JSONObject.parseObject(responseEntity.getBody());
+            userResult = JSONObject.parseObject(responseEntity.getBody());
         }
+
+        JSONObject realUserInfo = userResult.getJSONArray("users").getJSONObject(0);
+        userInfo.putAll(realUserInfo);
+        userInfo.put("password", "");
 
         try {
             Map userMap = new HashMap();
-            userMap.put(CommonConstant.LOGIN_USER_ID,userResult.getString("userId"));
+            userMap.put(CommonConstant.LOGIN_USER_ID, userInfo.getString("userId"));
+            userMap.put(CommonConstant.LOGIN_USER_NAME, userInfo.getString("name"));
             String token = AuthenticationFactory.createAndSaveToken(userMap);
             JSONObject paramOut = new JSONObject();
-            paramOut.putAll(userResult);
-            paramOut.put("token",token);
-            paramOut.put("sessionKey",sessionKey);
+            paramOut.put("result", 0);
+            paramOut.put("userInfo", userInfo);
+            paramOut.put("token", token);
+            paramOut.put("sessionKey", sessionKey);
             pd.setToken(token);
             responseEntity = new ResponseEntity<String>(paramOut.toJSONString(), HttpStatus.OK);
-        }catch (Exception e){
-            logger.error("鐧诲綍寮傚父锛�",e);
+        } catch (Exception e) {
+            logger.error("鐧诲綍寮傚父锛�", e);
             throw new IllegalArgumentException("閴存潈澶辫触");
         }
         //鏍规嵁openId 鏌ヨ鐢ㄦ埛淇℃伅锛屾槸鍚﹀瓨鍦ㄧ敤鎴�

--
Gitblit v1.8.0