From e75b0d79535a6bcd147cca4a54632b70b42afdb9 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 29 五月 2021 18:10:18 +0800
Subject: [PATCH] 特价完善

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java |   82 +++++++++++++++++++++-------------------
 1 files changed, 43 insertions(+), 39 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java
index cb1669d..b03e865 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java
@@ -19,6 +19,7 @@
 import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.util.*;
 import com.yeshi.fanli.vo.taobao.TaoBaoUser;
+import com.yeshi.fanli.vo.user.QQUserInfoVO;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -182,15 +183,17 @@
      * 鏂扮増鐧诲綍 V1.5.3
      *
      * @param acceptData
+     * @param loginType      鐧诲綍鏂瑰紡锛� 1-鎵嬫満鐧诲綍 2-寰俊鐧诲綍 3-鎵嬫満  4-qq
      * @param vcode
      * @param phone
      * @param code
-     * @param loginType  鐧诲綍鏂瑰紡锛� 1-鎵嬫満鐧诲綍 2-寰俊鐧诲綍
+     * @param aliAccessToken
+     * @param qqUser
      * @param request
      * @param out
      */
     @RequestMapping(value = "login", method = RequestMethod.POST)
-    public void login(AcceptData acceptData, int loginType, String vcode, String phone, String code,
+    public void login(AcceptData acceptData, int loginType, String vcode, String phone, String code, String aliAccessToken, String qqUser,
                       HttpServletRequest request, PrintWriter out) {
         try {
             BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
@@ -201,27 +204,40 @@
             }
 
             UserInfo userInfo = null;
-            // 鎵嬫満鐧诲綍
-            if (loginType == 1) {
-                userInfo = userAccountService.loginPhone(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, vcode, phone, system);
+
+
+            switch (loginType) {
+                //鐢佃瘽鍙风爜鐧诲綍
+                case 1: {
+                    userInfo = userAccountService.loginPhone(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, vcode, phone, aliAccessToken, system);
+                }
+                break;
+                //寰俊鐧诲綍
+                case 2: {
+                    //闇�瑕佺粦瀹氱數璇濆彿鐮�
+                    if (SystemInfoUtil.hasFunctions(system.getSystem(), SystemFunction.bindPhone))
+                        userInfo = userAccountService.loginWeiXinNew(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, code, system);
+                        //涓嶉渶瑕佺粦瀹氱數璇濆彿鐮�
+                    else
+                        userInfo = userAccountService.loginWeiXin(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, code, system);
+                }
+                break;
+                case 4: {
+                    QQUserInfoVO qqUserInfo = UserUtil.parseQQUser(qqUser);
+                    userInfo = userAccountService.loginQQ(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, qqUserInfo, system);
+                }
+                break;
             }
 
-            // 寰俊鐧诲綍
-            if (loginType == 2) {
-                //闇�瑕佺粦瀹氱數璇濆彿鐮�
-                if (SystemInfoUtil.hasFunctions(system.getSystem(), SystemFunction.bindPhone))
-                    userInfo = userAccountService.loginWeiXinNew(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, code, system);
-                    //涓嶉渶瑕佺粦瀹氱數璇濆彿鐮�
-                else
-                    userInfo = userAccountService.loginWeiXin(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, code, system);
-            }
 
             if (userInfo == null) {
                 out.print(JsonUtil.loadFalseResult("鐧诲綍澶辫触"));
             } else {
                 JSONObject data = new JSONObject();
                 data.put("userInfo", UserUtil.filterForClientUser(userInfo));
-                data.put("inviteCode", userInfoExtraService.getInviteCodeByUid(userInfo.getId()));
+                if (SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.inviteCode)) {
+                    data.put("inviteCode", userInfoExtraService.getInviteCodeByUid(userInfo.getId()));
+                }
                 out.print(JsonUtil.loadTrueResult(data));
 
                 final UserInfo uuser = userInfo;
@@ -248,14 +264,14 @@
 
         } catch (UserAccountException e) {
             int errorCode = e.getCode();
-            if (errorCode == 101) { // 闇�瑕佺粦瀹氭墜鏈哄彿
+            if (errorCode == UserAccountException.CODE_NEED_BIND_PHONE) { // 闇�瑕佺粦瀹氭墜鏈哄彿
                 JSONObject data = new JSONObject();
                 data.put("key", e.getMsg());
                 JSONObject object = new JSONObject();
                 object.put("code", errorCode);
                 object.put("data", data);
                 out.print(object.toString());
-            } else if (errorCode == 102) { // 闇�瑕佺粦瀹氬井淇″彿
+            } else if (errorCode == UserAccountException.CODE_NEED_BIND_WX) { // 闇�瑕佺粦瀹氬井淇″彿
                 JSONObject data = new JSONObject();
                 data.put("key", e.getMsg());
                 JSONObject object = new JSONObject();
@@ -323,7 +339,7 @@
     }
 
     /**
-     * 缁戝畾鐢佃瘽鍙风爜 V2.0.1 寰俊鐧诲綍
+     * 缁戝畾鐢佃瘽鍙风爜 V2.0.1 涓夋柟鐧诲綍
      *
      * @param acceptData
      * @param vcode
@@ -332,7 +348,7 @@
      */
     @RequestSerializableByKey(key = "'bindPhoneLogin-'+#phone")
     @RequestMapping(value = "bindPhoneLogin")
-    public void bindPhoneLogin(AcceptData acceptData, String vcode, String phone, String key,
+    public void bindPhoneLogin(AcceptData acceptData, String vcode, String phone, String key, String aliAccessToken,
                                HttpServletRequest request, PrintWriter out) {
         BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
                 acceptData.getPackages(), acceptData.getSystem());
@@ -341,35 +357,22 @@
             return;
         }
 
-        if (StringUtil.isNullOrEmpty(vcode)) {
-            out.print(JsonUtil.loadFalseResult("楠岃瘉鐮佷笉鑳戒负绌�"));
-            return;
-        }
-
-        if (StringUtil.isNullOrEmpty(phone)) {
-            out.print(JsonUtil.loadFalseResult("鐢佃瘽鍙风爜涓嶈兘涓虹┖"));
-            return;
-        }
 
         if (StringUtil.isNullOrEmpty(key)) {
             out.print(JsonUtil.loadFalseResult("key鍊间笉鑳戒负绌�"));
             return;
         }
 
-        phone = phone.replaceAll(" ", "");
-
-        String oldVCode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_BIND);
-        if (Constant.IS_OUTNET) {
-            if (!vcode.equalsIgnoreCase(oldVCode)) {
-                out.print(JsonUtil.loadFalseResult(9001, "楠岃瘉鐮侀敊璇紝閲嶆柊杈撳叆"));
-                return;
-            }
-            redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_BIND);
+        String mobile = null;
+        try {
+            mobile = userAccountService.getMobile(vcode, phone, aliAccessToken, acceptData.getSystem(), SMSHistory.TYPE_BIND);
+        } catch (UserAccountException e) {
+            out.print(JsonUtil.loadFalseResult(e.getMsg()));
+            return;
         }
 
         try {
-            UserInfo userInfo = userAccountService.bindPhoneToLogin(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), acceptData, phone, key);
-
+            UserInfo userInfo = userAccountService.bindPhoneToLogin(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), acceptData, mobile, key);
             JSONObject data = new JSONObject();
             data.put("userInfo", UserUtil.filterForClientUser(userInfo));
             out.print(JsonUtil.loadTrueResult(data));
@@ -412,6 +415,7 @@
             return;
         }
 
+
         try {
             UserInfo userInfo = userAccountService.bindWXToLogin(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), acceptData, code, system.getAppid(), key);
             JSONObject data = new JSONObject();

--
Gitblit v1.8.0