From c92f77ac03a1bbe3009891ce1d1f57f2d1091572 Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期二, 24 八月 2021 15:00:25 +0800
Subject: [PATCH] 提交预约登记小程序相关代码

---
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java |   83 +++++++++++++++++++++++++++++++++--------
 1 files changed, 66 insertions(+), 17 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java
index daf9ae2..516e634 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java
@@ -10,6 +10,7 @@
 import com.panzhihua.common.model.vos.LoginReturnVO;
 import com.panzhihua.common.model.vos.community.ComActVO;
 import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.common.model.vos.user.SysUserAgreementVO;
 import com.panzhihua.common.service.auth.TokenService;
 import com.panzhihua.common.service.community.CommunityService;
 import com.panzhihua.common.service.user.UserService;
@@ -54,15 +55,20 @@
         if (ObjectUtils.isEmpty(code)) {
             return R.fail("缺少登录参数");
         }
+        log.info(code);
         WxMaService maService = wxMaConfiguration.getMaService();
         WxMaJscode2SessionResult sessionInfo=null;
         try {
-             sessionInfo = maService.getUserService().getSessionInfo(code);
+            sessionInfo = maService.getUserService().getSessionInfo(code);
         } catch (Exception e) {
             log.error("微信登录失败【{}】", e.getMessage());
-            sessionInfo=new WxMaJscode2SessionResult();
-            sessionInfo.setOpenid("88888888");
-            sessionInfo.setSessionKey("9999999");
+            if (code.equals("22")) {
+                sessionInfo=new WxMaJscode2SessionResult();
+                sessionInfo.setOpenid("88888888");
+                sessionInfo.setSessionKey("9999999");
+            }else{
+                return R.fail("微信登录失败");
+            }
         }
         log.info("微信登录成功【{}】", JSONObject.toJSONString(sessionInfo));
         String openid = sessionInfo.getOpenid();
@@ -78,25 +84,17 @@
     @ApiOperation(value = "维护用户基本信息(昵称、性别、头像)")
     @PostMapping("updateUserWeiXinInfo")
     public R updateUserWeiXinInfo(@RequestBody LoginRequest loginRequest){
-        String encryptedData = loginRequest.getEncryptedData();
-        String iv = loginRequest.getIv();
-        boolean empty = ObjectUtils.isEmpty(iv);
-        boolean empty1 = ObjectUtils.isEmpty(encryptedData);
-        if (empty||empty1) {
-            return R.fail("微信用户参数不全");
-        }
-        WxMaService maService = wxMaConfiguration.getMaService();
         Long userId = this.getUserId();
+        if(userId == null){
+            return R.fail(401,"请先登录");
+        }
         boolean empty2 = ObjectUtils.isEmpty(userId);
         if (empty2) {
             throw new UnAuthenticationException();
         }
-        R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
-        LoginUserInfoVO loginUserInfoVO =r.getData();
-        WxMaUserInfo wxUserInfo = maService.getUserService().getUserInfo(loginUserInfoVO.getSessionKey(),
-                encryptedData, iv);
+        WxMaUserInfo wxUserInfo = loginRequest.getUserInfo();
         if (null == wxUserInfo) {
-            return R.fail("微信解析基本信息失败");
+            return R.fail("缺少基本信息参数");
         }
         String avatarUrl = wxUserInfo.getAvatarUrl();
         String gender = wxUserInfo.getGender();
@@ -119,6 +117,50 @@
         R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
         LoginUserInfoVO loginUserInfoVO = r.getData();
         WxMaPhoneNumberInfo wxMaPhoneNumberInfo = maService.getUserService().getPhoneNoInfo(loginUserInfoVO.getSessionKey(),
+                encryptedData, iv);
+        if (ObjectUtils.isEmpty(wxMaPhoneNumberInfo) || ObjectUtils.isEmpty(wxMaPhoneNumberInfo.getPhoneNumber())) {
+            return R.fail("微信解析手机号失败");
+        }
+        String purePhoneNumber = wxMaPhoneNumberInfo.getPurePhoneNumber();
+        return userService.updateUserWeiXinPhone(userId,purePhoneNumber);
+    }
+
+    @ApiOperation(value = "维护微信用户手机号")
+    @PostMapping("updateUserWeiXinPhone2")
+    public R updateUserWeiXinPhone2(@RequestBody LoginRequest loginRequest){
+        String code = loginRequest.getCode();
+        if (ObjectUtils.isEmpty(code)) {
+            return R.fail("缺少登录参数");
+        }
+        log.info(code);
+        WxMaService maService = wxMaConfiguration.getMaService();
+        WxMaJscode2SessionResult sessionInfo=null;
+        try {
+            sessionInfo = maService.getUserService().getSessionInfo(code);
+        } catch (Exception e) {
+            log.error("微信登录失败【{}】", e.getMessage());
+            if (code.equals("22")) {
+                sessionInfo=new WxMaJscode2SessionResult();
+                sessionInfo.setOpenid("88888888");
+                sessionInfo.setSessionKey("9999999");
+            }else{
+                return R.fail("微信登录失败");
+            }
+        }
+        log.info("微信登录成功【{}】", JSONObject.toJSONString(sessionInfo));
+
+        String encryptedData = loginRequest.getEncryptedData();
+        String iv = loginRequest.getIv();
+        boolean empty = ObjectUtils.isEmpty(iv);
+        boolean empty1 = ObjectUtils.isEmpty(encryptedData);
+        if (empty||empty1) {
+            return R.fail("微信用户参数不全");
+        }
+//        WxMaService maService = wxMaConfiguration.getMaService();
+        Long userId = this.getUserId();
+//        R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
+//        LoginUserInfoVO loginUserInfoVO = r.getData();
+        WxMaPhoneNumberInfo wxMaPhoneNumberInfo = maService.getUserService().getPhoneNoInfo(sessionInfo.getSessionKey(),
                 encryptedData, iv);
         if (ObjectUtils.isEmpty(wxMaPhoneNumberInfo) || ObjectUtils.isEmpty(wxMaPhoneNumberInfo.getPhoneNumber())) {
             return R.fail("微信解析手机号失败");
@@ -165,4 +207,11 @@
         loginUserInfoVO.setUserId(userId);
         return userService.putUserCommunityArea(loginUserInfoVO);
     }
+
+    @ApiOperation(value = "用户协议和隐私政策",response = SysUserAgreementVO.class)
+    @GetMapping("useragreement")
+    public R userAgreement(){
+        int type=1;
+        return userService.userAgreement(type);
+    }
 }

--
Gitblit v1.7.1