From b92edf56e7e25440e7c46b967aa5373a7a8b25c2 Mon Sep 17 00:00:00 2001
From: puhanshu <a9236326>
Date: 星期一, 14 三月 2022 09:22:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java |   87 +++++++++++++++++++++++++++++++++++--------
 1 files changed, 70 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 b8191d8..dc72421 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
@@ -64,7 +64,7 @@
             return R.fail("缺少登录参数");
         }
         log.info(code);
-        WxMaService maService = wxMaConfiguration.getMaService();
+        WxMaService maService = wxMaConfiguration.getMaService(loginRequest.getAppid());
         WxMaJscode2SessionResult sessionInfo = null;
         try {
             sessionInfo = maService.getUserService().getSessionInfo(code);
@@ -82,28 +82,47 @@
         log.info("loginRequest参数【{}】", JSONObject.toJSONString(loginRequest));
         String openid = sessionInfo.getOpenid();
         String sessionKey = sessionInfo.getSessionKey();
-        // 解密用户信息
-        WxMaUserInfo wxUserInfo = maService.getUserService().getUserInfo(sessionKey,
-                loginRequest.getEncryptedData(), loginRequest.getIv());
-        log.info("wxUserInfo信息【{}】", JSONObject.toJSONString(wxUserInfo));
-        if (null == wxUserInfo) {
-            return R.fail("获取用户信息失败");
+        String unionid = sessionInfo.getUnionid();
+        if (ObjectUtils.isEmpty(unionid)) {
+            unionid = "无";
         }
-        String unionId = wxUserInfo.getUnionId();
-        if (ObjectUtils.isEmpty(unionId)) {
-            unionId = "无";
-        }
-        userService.addOrUpdate(openid, sessionKey, unionId);
+        userService.addOrUpdate(openid, sessionKey, unionid);
         return tokenService.loginApplets(openid);
     }
 
     @ApiOperation(value = "H5登录", response = LoginReturnVO.class)
     @PostMapping("loginH5")
     public R loginH5(@RequestBody LoginRequest loginRequest) {
-        String unionId = loginRequest.getUnionId();
-        if (StringUtils.isBlank(unionId)) {
-            return R.fail("缺少基本信息参数");
+        String code = loginRequest.getCode();
+        if (ObjectUtils.isEmpty(code)) {
+            return R.fail("缺少登录参数");
         }
+        log.info(code);
+        WxMaService maService = wxMaConfiguration.getMaH5Service();
+        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));
+        log.info("loginRequest参数【{}】", JSONObject.toJSONString(loginRequest));
+        // 解密用户信息
+//        WxMaUserInfo wxUserInfo = maService.getUserService().getUserInfo(sessionInfo.getSessionKey(),
+//                loginRequest.getEncryptedData(), loginRequest.getIv());
+//        log.info("wxUserInfo信息【{}】", JSONObject.toJSONString(wxUserInfo));
+//        if (null == wxUserInfo) {
+//            return R.fail("获取用户信息失败");
+//        }
+//        String unionId = wxUserInfo.getUnionId();
+        String unionId = sessionInfo.getUnionid();
         //通过unionId去匹配user
         R r1 = userService.getUserInfoByUnionId(unionId);
         if (R.isOk(r1)) {
@@ -111,6 +130,40 @@
             return tokenService.loginApplets(loginUserInfoVO.getOpenid());
         }
         return r1;
+    }
+
+    @ApiOperation(value = "仁和区登录", response = LoginReturnVO.class)
+    @PostMapping("/renHe/login")
+    public R renHeLogin(@RequestBody LoginRequest loginRequest) {
+        String code = loginRequest.getCode();
+        if (ObjectUtils.isEmpty(code)) {
+            return R.fail("缺少登录参数");
+        }
+        log.info(code);
+        WxMaService maService = wxMaConfiguration.getMaRhService();
+        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));
+        log.info("loginRequest参数【{}】", JSONObject.toJSONString(loginRequest));
+        String openid = sessionInfo.getOpenid();
+        String sessionKey = sessionInfo.getSessionKey();
+        String unionid = sessionInfo.getUnionid();
+        if (ObjectUtils.isEmpty(unionid)) {
+            unionid = "无";
+        }
+        userService.addOrUpdate(openid, sessionKey, unionid);
+        return tokenService.loginApplets(openid);
     }
 
     @ApiOperation(value = "维护用户基本信息(昵称、性别、头像)")
@@ -144,7 +197,7 @@
         if (empty || empty1) {
             return R.fail("微信用户参数不全");
         }
-        WxMaService maService = wxMaConfiguration.getMaService();
+        WxMaService maService = wxMaConfiguration.getMaService(this.getAppId());
         Long userId = this.getUserId();
         R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
         LoginUserInfoVO loginUserInfoVO = r.getData();
@@ -165,7 +218,7 @@
             return R.fail("缺少登录参数");
         }
         log.info(code);
-        WxMaService maService = wxMaConfiguration.getMaService();
+        WxMaService maService = wxMaConfiguration.getMaService(this.getAppId());
         WxMaJscode2SessionResult sessionInfo = null;
         try {
             sessionInfo = maService.getUserService().getSessionInfo(code);

--
Gitblit v1.7.1