From 0a18a8cb0a7a57bf1f82df425251334c57f8c39a Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 23 一月 2021 15:40:37 +0800
Subject: [PATCH] 新增手机号/qq/微信绑定

---
 src/main/java/com/yeshi/buwan/controller/parser/CommentParser.java |  184 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 183 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/controller/parser/CommentParser.java b/src/main/java/com/yeshi/buwan/controller/parser/CommentParser.java
index a0c33fe..3eb791f 100644
--- a/src/main/java/com/yeshi/buwan/controller/parser/CommentParser.java
+++ b/src/main/java/com/yeshi/buwan/controller/parser/CommentParser.java
@@ -2,11 +2,17 @@
 
 import com.google.gson.GsonBuilder;
 import com.yeshi.buwan.domain.*;
+import com.yeshi.buwan.domain.user.LoginUser;
+import com.yeshi.buwan.exception.LoginUserException;
+import com.yeshi.buwan.exception.SMSException;
 import com.yeshi.buwan.service.imp.CommentService;
 import com.yeshi.buwan.service.imp.MaskKeyService;
 import com.yeshi.buwan.service.imp.SystemService;
 import com.yeshi.buwan.service.imp.UserService;
 import com.yeshi.buwan.service.imp.push.PushService;
+import com.yeshi.buwan.service.inter.LoginUserService;
+import com.yeshi.buwan.service.inter.SMSService;
+import com.yeshi.buwan.util.AliyunOneKeyLoginUtil;
 import com.yeshi.buwan.util.JsonUtil;
 import com.yeshi.buwan.util.StringUtil;
 import com.yeshi.buwan.util.annotation.RequireUid;
@@ -16,7 +22,6 @@
 import net.sf.json.JSONObject;
 import org.springframework.stereotype.Controller;
 import org.yeshi.utils.entity.wx.WeiXinUser;
-import org.yeshi.utils.wx.WXUtil;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -37,6 +42,12 @@
     private PushService pushService;
     @Resource
     private MaskKeyService maskKeyService;
+
+    @Resource
+    private LoginUserService loginUserService;
+
+    @Resource
+    private SMSService smsService;
 
     @RequireUid
     public void getReadState(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
@@ -115,6 +126,177 @@
 
     }
 
+
+    /**
+     * 鐢佃瘽鍙风爜缁戝畾
+     *
+     * @param acceptData
+     * @param request
+     * @param out
+     */
+    public void bindPhone(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
+        Long loginUid = StringUtil.isNullOrEmpty(request.getParameter("loginUid")) ? null : Long.parseLong(request.getParameter("loginUid"));
+        String phone = request.getParameter("phone");
+        String code = request.getParameter("code");
+        String accessToken = request.getParameter("accessToken");
+        String systemId = request.getParameter("system");
+
+
+        if (loginUid == null || loginUid == 0L) {
+            out.print(JsonUtil.loadFalseJson("鐧诲綍澶辫触"));
+            return;
+        }
+
+        String mobile = null;
+        if (!StringUtil.isNullOrEmpty(accessToken)) {
+            //涓�閿櫥褰�
+            mobile = AliyunOneKeyLoginUtil.getMobile(accessToken, "");
+        } else {
+            //閫氳繃楠岃瘉鐮佺櫥褰�
+            //鍒ゆ柇楠岃瘉鐮佹槸鍚︽纭�
+
+            if (StringUtil.isNullOrEmpty(phone)) {
+                out.print(JsonUtil.loadFalseJson("鐢佃瘽鍙风爜涓嶈兘涓虹┖"));
+                return;
+            }
+
+            if (StringUtil.isNullOrEmpty(code)) {
+                out.print(JsonUtil.loadFalseJson("楠岃瘉鐮佷笉鑳戒负绌�"));
+                return;
+            }
+
+            if (smsService.verifyBindVCode(phone, code)) {
+                out.print(JsonUtil.loadFalseJson("楠岃瘉鐮侀敊璇�"));
+                return;
+            }
+            mobile = phone;
+        }
+
+        if (StringUtil.isNullOrEmpty(code)) {
+            out.print(JsonUtil.loadFalseJson("code涓虹┖"));
+            return;
+        }
+
+        try {
+            loginUserService.bindPhone(loginUid + "", mobile);
+            out.print(JsonUtil.loadTrueJson(""));
+        } catch (LoginUserException e) {
+            out.print(JsonUtil.loadFalseJson(e.getMessage()));
+        }
+
+    }
+
+
+    /**
+     * 缁戝畾QQ
+     *
+     * @param acceptData
+     * @param request
+     * @param out
+     */
+    public void bindQQ(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
+        Long loginUid = StringUtil.isNullOrEmpty(request.getParameter("loginUid")) ? null : Long.parseLong(request.getParameter("loginUid"));
+        String name = request.getParameter("Name");
+        String portrait = request.getParameter("Portrait");
+        String openId = request.getParameter("OpenId");
+        String systemId = request.getParameter("system");
+        if (loginUid == null || loginUid == 0L) {
+            out.print(JsonUtil.loadFalseJson("灏氭湭鐧诲綍"));
+            return;
+        }
+        if (StringUtil.isNullOrEmpty(openId)) {
+            out.print(JsonUtil.loadFalseJson("鎺堟潈淇℃伅涓虹┖"));
+            return;
+        }
+
+        try {
+            loginUserService.bindQQ(loginUid + "", openId, name, portrait);
+            out.print(JsonUtil.loadTrueJson(""));
+        } catch (LoginUserException e) {
+            out.print(JsonUtil.loadFalseJson(e.getMessage()));
+        }
+
+    }
+
+
+    /**
+     * 缁戝畾寰俊
+     *
+     * @param acceptData
+     * @param request
+     * @param out
+     */
+    public void bindWX(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
+        Long loginUid = StringUtil.isNullOrEmpty(request.getParameter("loginUid")) ? null : Long.parseLong(request.getParameter("loginUid"));
+        String code = request.getParameter("code");
+        if (loginUid == null || loginUid == 0L) {
+            out.print(JsonUtil.loadFalseJson("灏氭湭鐧诲綍"));
+            return;
+        }
+        if (StringUtil.isNullOrEmpty(code)) {
+            out.print(JsonUtil.loadFalseJson("code涓虹┖"));
+            return;
+        }
+
+        //閫氳繃code鎹㈠彇涓汉淇℃伅
+        WeiXinUser weiXinUser = MyWXLoginUtil.getUserInfo(code, MyWXLoginUtil.WEIXIN_APPID, MyWXLoginUtil.WEIXIN_SECRET);
+
+        if (weiXinUser == null) {
+            out.print(JsonUtil.loadFalseJson("鑾峰彇鎺堟潈淇℃伅澶辫触"));
+            return;
+        }
+
+        try {
+            loginUserService.bindWX(loginUid + "", weiXinUser);
+            out.print(JsonUtil.loadTrueJson(""));
+        } catch (LoginUserException e) {
+            out.print(JsonUtil.loadFalseJson(e.getMessage()));
+        }
+
+    }
+
+
+    /**
+     * 鍙戦�佺數璇濆彿鐮佺粦瀹氶獙璇佺爜
+     *
+     * @param acceptData
+     * @param request
+     * @param out
+     */
+    public void sendBindVerifyCode(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
+        String loginUid = request.getParameter("loginUid");
+        String phone = request.getParameter("phone");
+
+
+        if (StringUtil.isNullOrEmpty(phone)) {
+            out.print(JsonUtil.loadFalseJson("鐢佃瘽鍙风爜涓嶈兘涓虹┖"));
+            return;
+        }
+
+        if (StringUtil.isNullOrEmpty(loginUid)) {
+            out.print(JsonUtil.loadFalseJson("鐢ㄦ埛灏氭湭鐧诲綍"));
+            return;
+        }
+
+        LoginUser loginUser = userService.getLoginUser(loginUid + "");
+        if (loginUser == null) {
+            out.print(JsonUtil.loadFalseJson("鐢ㄦ埛涓嶅瓨鍦�"));
+            return;
+        }
+
+        try {
+            smsService.sendBindVCode(Long.parseLong(loginUid), phone, 6);
+        } catch (SMSException e) {
+            e.printStackTrace();
+            out.print(JsonUtil.loadFalseJson(e.getMessage()));
+            return;
+        } catch (Exception e) {
+            out.print(JsonUtil.loadFalseJson("鐭俊鍙戦�佸嚭閿欙紝璇风◢鍚庡啀璇�"));
+            return;
+        }
+        out.print(JsonUtil.loadTrueJson(""));
+    }
+
     public void getVideoCommentList(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
 
         String videoId = request.getParameter("VideoId");

--
Gitblit v1.8.0