From 5dd8637302ec502b8f995a3e16b8b450f621e946 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 17 六月 2020 10:49:46 +0800
Subject: [PATCH] 优化登录页面不自登陆

---
 service-front/src/main/java/com/java110/front/smo/ownerLogin/impl/OwnerAppLoginSMOImpl.java |   42 ++++++++++++++++++++++++++++++++++--------
 1 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/service-front/src/main/java/com/java110/front/smo/ownerLogin/impl/OwnerAppLoginSMOImpl.java b/service-front/src/main/java/com/java110/front/smo/ownerLogin/impl/OwnerAppLoginSMOImpl.java
index a756701..be48a6c 100644
--- a/service-front/src/main/java/com/java110/front/smo/ownerLogin/impl/OwnerAppLoginSMOImpl.java
+++ b/service-front/src/main/java/com/java110/front/smo/ownerLogin/impl/OwnerAppLoginSMOImpl.java
@@ -48,6 +48,8 @@
 
     private final static int expireTime = 7200;
 
+    private final static int LOGIN_PAGE = 1;
+
     @Autowired
     private RestTemplate restTemplate;
 
@@ -68,15 +70,18 @@
         JSONObject loginInfo = JSONObject.parseObject(pd.getReqData());
 
         loginInfo.put("passwd", AuthenticationFactory.passwdMd5(loginInfo.getString("password")));
-        responseEntity = this.callCenterService(restTemplate, pd, loginInfo.toJSONString(), ServiceConstant.SERVICE_API_URL + "/api/user.service.login", HttpMethod.POST);
-        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+        UserDto userDto = new UserDto();
+        userDto.setUserName(loginInfo.getString("username"));
+        userDto.setPassword(loginInfo.getString("password"));
+        userDto = super.postForApi(pd,userDto,ServiceCodeConstant.SERVICE_CODE_USER_LOGIN,UserDto.class);
+
+        if(userDto == null){
+            responseEntity = new ResponseEntity<>("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒", HttpStatus.BAD_REQUEST);
             return responseEntity;
         }
 
-        JSONObject userInfo = JSONObject.parseObject(responseEntity.getBody());
-
         //鏍规嵁鐢ㄦ埛鏌ヨ鍟嗘埛淇℃伅
-        String userId = userInfo.getString("userId");
+        String userId = userDto.getUserId();
 
         pd = PageData.newInstance().builder(userId, "", "", pd.getReqData(),
                 "", "", "", "",
@@ -97,7 +102,12 @@
         JSONObject paramOut = new JSONObject();
         paramOut.put("result", 0);
         paramOut.put("owner", appUser);
-        paramOut.put("token", userInfo.getString("token"));
+        paramOut.put("token", userDto.getToken());
+
+        userDto = new UserDto();
+        userDto.setUserId(ownerAppUserDtos.get(0).getUserId());
+        UserDto tmpUserDto = super.getForApi(pd, userDto, ServiceCodeConstant.QUERY_USER_SECRET, UserDto.class);
+        paramOut.put("key", tmpUserDto.getKey());
 
         String appId = pd.getAppId();
 
@@ -185,8 +195,17 @@
 
         //鑾峰彇 openId
         String openId = paramObj.getString("openid");
-        //鍒ゆ柇褰撳墠openId 鏄惁缁戝畾浜嗕笟涓�
 
+        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);
+        }
+
+        //鍒ゆ柇褰撳墠openId 鏄惁缁戝畾浜嗕笟涓�
         pd = PageData.newInstance().builder("-1", "", "", pd.getReqData(),
                 "", "", "", "",
                 pd.getAppId());
@@ -216,6 +235,12 @@
         UserDto userDto = new UserDto();
         userDto.setUserId(ownerAppUserDtos.get(0).getUserId());
         UserDto tmpUserDto = super.getForApi(pd, userDto, ServiceCodeConstant.QUERY_USER_SECRET, UserDto.class);
+
+        if(StringUtil.isEmpty(tmpUserDto.getKey())){
+            String code = UUID.randomUUID().toString();
+            CommonCache.setValue(code, openId, expireTime);
+            return ResultVo.redirectPage(errorUrl + "?code=" + code);
+        }
         redirectUrl = redirectUrl + (redirectUrl.indexOf("?") > 0 ? "&key=" + tmpUserDto.getKey() : "?key=" + tmpUserDto.getKey());
         return ResultVo.redirectPage(redirectUrl);
 
@@ -234,6 +259,7 @@
     @Override
     public ResponseEntity<String> refreshToken(IPageData pd, String redirectUrl,
                                                String errorUrl,
+                                               String loginFlag,
                                                HttpServletRequest request, HttpServletResponse response) throws SMOException {
         //鍒嗛厤urlCode
         String urlCode = UUID.randomUUID().toString();
@@ -260,7 +286,7 @@
                             URLEncoder
                                     .encode(
                                             (newUrl
-                                                    + "/app/loginOwnerWechatAuth?appId=992020061452450002&urlCode=" + urlCode),
+                                                    + "/app/loginOwnerWechatAuth?appId=992020061452450002&urlCode=" + urlCode+"&loginFlag="+loginFlag),
                                             "UTF-8")).replace("STATE", "1");
 
         } catch (Exception e) {

--
Gitblit v1.8.0