From b160f874fda18ef0adad8e9145ad42d534d47818 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期五, 03 九月 2021 16:58:09 +0800
Subject: [PATCH] 优化代码
---
service-front/src/main/java/com/java110/front/smo/login/impl/OwnerAppLoginSMOImpl.java | 67 ++++++++++++++++++++++++++++++---
1 files changed, 61 insertions(+), 6 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 0a31c63..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;
@@ -67,11 +68,17 @@
ResponseEntity<String> responseEntity;
JSONObject loginInfo = JSONObject.parseObject(pd.getReqData());
+ boolean loginByPhone = false;
+ if (paramIn.containsKey("loginByPhone")) {
+ loginByPhone = paramIn.getBoolean("loginByPhone");
+ }
loginInfo.put("passwd", AuthenticationFactory.passwdMd5(loginInfo.getString("password")));
UserDto userDto = new UserDto();
userDto.setUserName(loginInfo.getString("username"));
userDto.setPassword(loginInfo.getString("password"));
+ userDto.setLoginByPhone(loginByPhone);
+ userDto.setLevelCd("02");
userDto = super.postForApi(pd, userDto, ServiceCodeConstant.SERVICE_CODE_USER_LOGIN, UserDto.class);
if (userDto == null) {
@@ -206,14 +213,35 @@
//鑾峰彇 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");
+
//璇存槑鏄櫥褰曢〉闈紝涓嬪彂code 灏卞彲浠ワ紝涓嶉渶瑕佷笅鍙慿ey 涔嬬被
if (loginFlag == LOGIN_PAGE) {
//灏唎penId鏀惧埌redis 缂撳瓨锛岀粰鍓嶆涓嬪彂涓存椂绁ㄦ嵁
String code = UUID.randomUUID().toString();
CommonCache.setValue(code, openId, expireTime);
- return ResultVo.redirectPage(errorUrl + "?code=" + code);
+ 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 {
+ errorUrl += ("?code=" + code);
+ }
+ return ResultVo.redirectPage(errorUrl);
}
//鍒ゆ柇褰撳墠openId 鏄惁缁戝畾浜嗕笟涓�
@@ -228,7 +256,14 @@
//灏唎penId鏀惧埌redis 缂撳瓨锛岀粰鍓嶆涓嬪彂涓存椂绁ㄦ嵁
String code = UUID.randomUUID().toString();
CommonCache.setValue(code, openId, expireTime);
- return ResultVo.redirectPage(errorUrl + "?code=" + code);
+ 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 {
+ errorUrl += ("?code=" + code);
+ }
+ return ResultVo.redirectPage(errorUrl);
}
// String accessToken = paramObj.getString("access_token");//鏆傛椂涓嶇敤
@@ -250,9 +285,24 @@
if (StringUtil.isEmpty(tmpUserDto.getKey())) {
String code = UUID.randomUUID().toString();
CommonCache.setValue(code, openId, expireTime);
- return ResultVo.redirectPage(errorUrl + "?code=" + code);
+ 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 {
+ errorUrl += ("?code=" + code);
+ }
+ return ResultVo.redirectPage(errorUrl);
}
- redirectUrl = redirectUrl + (redirectUrl.indexOf("?") > 0 ? "&key=" + tmpUserDto.getKey() : "?key=" + tmpUserDto.getKey());
+ //濡傛灉鍙傛暟涓湁key 鐩存帴鐢ㄦ柊鐨勮鐩�
+ Map tempRedirectParam = super.urlToMap(redirectUrl);
+ tempRedirectParam.put("key", tmpUserDto.getKey());
+ if (redirectUrl.indexOf("?") > -1) {
+ redirectUrl = redirectUrl.substring(0, redirectUrl.indexOf("?")) + super.mapToUrlParam(tempRedirectParam);
+ } else {
+ redirectUrl = redirectUrl + super.mapToUrlParam(tempRedirectParam);
+ }
+ //redirectUrl = redirectUrl + (redirectUrl.indexOf("?") > 0 ? "&key=" + tmpUserDto.getKey() : "?key=" + tmpUserDto.getKey());
return ResultVo.redirectPage(redirectUrl);
}
@@ -305,7 +355,7 @@
openUrl = WechatConstant.OPEN_AUTH
.replace("APPID", smallWeChatDto.getAppId())
- .replace("SCOPE", "snsapi_base")
+ .replace("SCOPE", "snsapi_userinfo")
.replace(
"REDIRECT_URL",
URLEncoder
@@ -349,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);
@@ -365,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());
@@ -506,5 +561,5 @@
public void setRestTemplate(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
-
+
}
--
Gitblit v1.8.0