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