From ab6a423cf604b83f06b5768dbc162ece744a32d9 Mon Sep 17 00:00:00 2001
From: shane <88386378@qq.com>
Date: 星期五, 20 八月 2021 00:34:11 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-front/src/main/java/com/java110/front/smo/login/impl/OwnerAppLoginSMOImpl.java |   29 +++++++++++++++++++++++++++--
 1 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/service-front/src/main/java/com/java110/front/smo/login/impl/OwnerAppLoginSMOImpl.java b/service-front/src/main/java/com/java110/front/smo/login/impl/OwnerAppLoginSMOImpl.java
old mode 100644
new mode 100755
index 7ed2df5..2b78c9a
--- a/service-front/src/main/java/com/java110/front/smo/login/impl/OwnerAppLoginSMOImpl.java
+++ b/service-front/src/main/java/com/java110/front/smo/login/impl/OwnerAppLoginSMOImpl.java
@@ -16,6 +16,7 @@
 import com.java110.utils.constant.*;
 import com.java110.utils.exception.SMOException;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.Base64Convert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
@@ -212,6 +213,19 @@
 
         //鑾峰彇 openId
         String openId = paramObj.getString("openid");
+        String userinfo_url = WechatConstant.APP_GET_USER_INFO_URL
+                .replace("ACCESS_TOKEN", paramObj.getString("access_token"))
+                .replace("OPENID", openId);
+
+        ResponseEntity<String> userinfo_paramOut = outRestTemplate.getForEntity(userinfo_url, String.class);
+        logger.debug("璋冪敤寰俊鎹㈠幓openId ", userinfo_paramOut);
+        if (userinfo_paramOut.getStatusCode() != HttpStatus.OK) {
+            return ResultVo.redirectPage("/");
+        }
+        JSONObject userinfo_paramObj = JSONObject.parseObject(userinfo_paramOut.getBody());
+
+        //澶勭悊鏄电О鏈夌壒娈婄鍙峰鑷� 鍏ュ簱澶辫触闂
+        userinfo_paramObj.put("nickname", Base64Convert.byteToBase64(userinfo_paramObj.getString("nickname").getBytes()));
 
         int loginFlag = paramIn.getInteger("loginFlag");
 
@@ -220,6 +234,8 @@
             //灏唎penId鏀惧埌redis 缂撳瓨锛岀粰鍓嶆涓嬪彂涓存椂绁ㄦ嵁
             String code = UUID.randomUUID().toString();
             CommonCache.setValue(code, openId, expireTime);
+            CommonCache.setValue(code + "-nickname", userinfo_paramObj.getString("nickname"), expireTime);
+            CommonCache.setValue(code + "-headimgurl", userinfo_paramObj.getString("headimgurl"), expireTime);
             if (errorUrl.indexOf("?") > 0) {
                 errorUrl += ("&code=" + code);
             } else {
@@ -240,6 +256,8 @@
             //灏唎penId鏀惧埌redis 缂撳瓨锛岀粰鍓嶆涓嬪彂涓存椂绁ㄦ嵁
             String code = UUID.randomUUID().toString();
             CommonCache.setValue(code, openId, expireTime);
+            CommonCache.setValue(code + "-nickname", userinfo_paramObj.getString("nickname"), expireTime);
+            CommonCache.setValue(code + "-headimgurl", userinfo_paramObj.getString("headimgurl"), expireTime);
             if (errorUrl.indexOf("?") > 0) {
                 errorUrl += ("&code=" + code);
             } else {
@@ -267,6 +285,8 @@
         if (StringUtil.isEmpty(tmpUserDto.getKey())) {
             String code = UUID.randomUUID().toString();
             CommonCache.setValue(code, openId, expireTime);
+            CommonCache.setValue(code + "-nickname", userinfo_paramObj.getString("nickname"), expireTime);
+            CommonCache.setValue(code + "-headimgurl", userinfo_paramObj.getString("headimgurl"), expireTime);
             if (errorUrl.indexOf("?") > 0) {
                 errorUrl += ("&code=" + code);
             } else {
@@ -335,7 +355,7 @@
 
             openUrl = WechatConstant.OPEN_AUTH
                     .replace("APPID", smallWeChatDto.getAppId())
-                    .replace("SCOPE", "snsapi_base")
+                    .replace("SCOPE", "snsapi_userinfo")
                     .replace(
                             "REDIRECT_URL",
                             URLEncoder
@@ -379,6 +399,8 @@
         String code = paramIn.getString("code");
 
         String openId = CommonCache.getValue(code);
+        String nickname = CommonCache.getValue(code + "-nickname");
+        String headimgurl = CommonCache.getValue(code + "-headimgurl");
 
         if (StringUtil.isEmpty(openId)) {
             responseEntity = new ResponseEntity<>("椤甸潰澶辨晥锛岃鍒锋柊鍚庨噸璇�", HttpStatus.UNAUTHORIZED);
@@ -395,6 +417,9 @@
         JSONObject userOwnerInfo = new JSONObject();
         OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto();
         ownerAppUserDto.setOpenId(openId);
+        // ownerAppUserDto.setNickName(StringUtil.encodeEmoji(nickname));
+        ownerAppUserDto.setNickName(nickname);
+        ownerAppUserDto.setHeadImgUrl(headimgurl);
         ownerAppUserDto.setAppType(OwnerAppUserDto.APP_TYPE_WECHAT);
         if (curOwnerApp != null) {
             ownerAppUserDto.setAppUserId(curOwnerApp.getAppUserId());
@@ -536,5 +561,5 @@
     public void setRestTemplate(RestTemplate restTemplate) {
         this.restTemplate = restTemplate;
     }
-
+    
 }

--
Gitblit v1.8.0