From 34c7d903efa4dc06a0f7b38bc5d2d721f80b220d Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 09 七月 2025 09:04:52 +0800
Subject: [PATCH] 7.8冒烟修改问题

---
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java
index 9dbf926..02ad957 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java
@@ -1,5 +1,8 @@
 package com.ruoyi.web.controller.api;
 
+import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -94,12 +97,18 @@
         if(user!=null && user.getStatus()==2){
             return AjaxResult.error("登录失败,当前账号已被冻结");
         }
+        String openid = getOpenid(loginBody.getJscode());
+        TbUser user1 = tbUserService.getOne(new LambdaQueryWrapper<TbUser>().eq(TbUser::getOpenId, openid).ne(TbUser::getStatus,3).eq(TbUser::getIsDelete, 0));
+        if(user1!=null && !loginBody.getPhone().equals(user1.getPhone())){
+            return AjaxResult.error("该微信已绑定其他手机号");
+        }
         if(user==null){
             TbUser tbUser = new TbUser();
             tbUser.setPhone(loginBody.getPhone());
             tbUser.setStatus(1);
             tbUser.setUserName(loginBody.getPhone());
             tbUser.setInviteId(loginBody.getInviteUserId());
+            tbUser.setOpenId(openid);
             tbUserService.save(tbUser);
             user = tbUser;
             ajax.put("firstRegister",1);
@@ -108,6 +117,10 @@
             if(StringUtils.isEmpty(user.getInviteId()) && !StringUtils.isEmpty(loginBody.getInviteUserId())){
                 user.setInviteId(loginBody.getInviteUserId());
             }
+            if(StringUtils.isEmpty(user.getOpenId())){
+                user.setOpenId(openid);
+            }
+            tbUserService.updateById(user);
         }
         LoginUser loginUser = new LoginUser();
         loginUser.setUserId(Long.valueOf(user.getId()));
@@ -216,6 +229,19 @@
     }
 
 
+    public String getOpenid(String jscode) {
+        String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxConfig.getMemberAppId() +
+                "&secret=" + wxConfig.getMemberAppSecret() +
+                "&js_code=" + jscode +
+                "&grant_type=authorization_code";
+
+        String result = HttpUtil.get(url);
+        JSONObject jsonObject = JSONUtil.parseObj(result);
+
+        String openid = jsonObject.getStr("openid");
+
+        return openid;
+    }
 
 
 }

--
Gitblit v1.7.1