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 |   49 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 48 insertions(+), 1 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 ec5d5af..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
@@ -59,7 +59,7 @@
         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());
             if (code.equals("22")) {
@@ -85,6 +85,9 @@
     @PostMapping("updateUserWeiXinInfo")
     public R updateUserWeiXinInfo(@RequestBody LoginRequest loginRequest){
         Long userId = this.getUserId();
+        if(userId == null){
+            return R.fail(401,"请先登录");
+        }
         boolean empty2 = ObjectUtils.isEmpty(userId);
         if (empty2) {
             throw new UnAuthenticationException();
@@ -122,6 +125,50 @@
         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("微信解析手机号失败");
+        }
+        String purePhoneNumber = wxMaPhoneNumberInfo.getPurePhoneNumber();
+        return userService.updateUserWeiXinPhone(userId,purePhoneNumber);
+    }
+
     @ApiOperation(value = "用户登出")
     @PostMapping("logout")
     public R updateUserWeiXinPhone(){

--
Gitblit v1.7.1