From 6bbe39cb8a9e40912389a1bfe6f8609d0f958d89 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 27 二月 2026 14:56:09 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mobile_community

---
 ruoyi-applet/src/main/resources/application-prod.yml                               |    2 
 ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java           |    2 
 ruoyi-applet/src/main/java/com/ruoyi/RuoYiAppletApplication.java                   |    2 -
 ruoyi-applet/pom.xml                                                               |   44 ++++++++++------------
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java |   52 ++++++++++++++++---------
 5 files changed, 55 insertions(+), 47 deletions(-)

diff --git a/ruoyi-applet/pom.xml b/ruoyi-applet/pom.xml
index 2e585f6..93728e5 100644
--- a/ruoyi-applet/pom.xml
+++ b/ruoyi-applet/pom.xml
@@ -16,10 +16,6 @@
     </description>
 
     <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-websocket</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>com.aliyun.oss</groupId>
@@ -96,11 +92,11 @@
         </dependency>
 
         <!-- zxing生成二维码 -->
-        <dependency>
-            <groupId>com.google.zxing</groupId>
-            <artifactId>core</artifactId>
-            <version>3.3.3</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.google.zxing</groupId>-->
+<!--            <artifactId>core</artifactId>-->
+<!--            <version>3.3.3</version>-->
+<!--        </dependency>-->
 
         <dependency>
             <groupId>com.google.zxing</groupId>
@@ -132,21 +128,21 @@
         </dependency>
 
         <!-- easypoi -->
-        <dependency>
-            <groupId>cn.afterturn</groupId>
-            <artifactId>easypoi-base</artifactId>
-            <version>3.0.3</version>
-        </dependency>
-        <dependency>
-            <groupId>cn.afterturn</groupId>
-            <artifactId>easypoi-web</artifactId>
-            <version>3.0.3</version>
-        </dependency>
-        <dependency>
-            <groupId>cn.afterturn</groupId>
-            <artifactId>easypoi-annotation</artifactId>
-            <version>3.0.3</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>cn.afterturn</groupId>-->
+<!--            <artifactId>easypoi-base</artifactId>-->
+<!--            <version>3.0.3</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>cn.afterturn</groupId>-->
+<!--            <artifactId>easypoi-web</artifactId>-->
+<!--            <version>3.0.3</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>cn.afterturn</groupId>-->
+<!--            <artifactId>easypoi-annotation</artifactId>-->
+<!--            <version>3.0.3</version>-->
+<!--        </dependency>-->
 
         <!-- 阿里云短信 -->
         <dependency>
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/RuoYiAppletApplication.java b/ruoyi-applet/src/main/java/com/ruoyi/RuoYiAppletApplication.java
index 679a033..821bc91 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/RuoYiAppletApplication.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/RuoYiAppletApplication.java
@@ -11,7 +11,6 @@
 import org.springframework.http.client.SimpleClientHttpRequestFactory;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.web.client.RestTemplate;
-import org.springframework.web.socket.config.annotation.EnableWebSocket;
 
 import java.net.InetAddress;
 
@@ -20,7 +19,6 @@
  * 
  * @author ruoyi
  */
-@EnableWebSocket
 @Slf4j
 @EnableScheduling//开启定时任务
 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index c4f95cf..9c2352d 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -2,6 +2,8 @@
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.constant.AmountConstant;
+import com.ruoyi.common.constant.CacheConstants;
 import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.R;
@@ -11,8 +13,13 @@
 import com.ruoyi.common.core.domain.model.LoginAppBody;
 import com.ruoyi.common.core.domain.model.LoginUserApplet;
 import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.redis.service.RedisService;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.OrderNos;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.uuid.UUID;
 import com.ruoyi.framework.web.service.SysLoginService;
 import com.ruoyi.framework.web.service.SysPermissionService;
 import com.ruoyi.framework.web.service.TokenService;
@@ -33,17 +40,16 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.client.RestTemplate;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 登录验证
@@ -115,24 +121,32 @@
 //        }
 //        AppletUserDecodeData appletUserDecodeData = WxUtils.encryptedData(data.getEncryptedData(), sessionKey,  data.getIv());
 //        appletUserDecodeData.setOpenId(openid);
-        // 先使用openId和当前手机号进行查询
+        String uuid = UUID.fastUUID().toString();
+        boolean lock = redisCache.trylockLoop(CacheConstants.LOGIN_LOCK_KEY + openid, uuid, 60);
+        // 先使用openId进行查询
         TAppUser sysAppUser = appUserService.getOne(Wrappers.lambdaQuery(TAppUser.class)
-                .and(e->e.eq(TAppUser::getOpenId, openid)));
-        if (sysAppUser==null){
-            sysAppUser = new TAppUser();
+                .eq(TAppUser::getOpenId, openid));
+        if (lock){
+            try {
+                if (sysAppUser==null){
+                    sysAppUser = new TAppUser();
 //            sysAppUser.setPhoneNumber(appletUserDecodeData.getPhoneNumber());
-            sysAppUser.setOpenId(openid);
-            // 手机号中间四位替换为*
+                    sysAppUser.setOpenId(openid);
+                    // 手机号中间四位替换为*
 //            sysAppUser.setNickName(appletUserDecodeData.getPhoneNumber().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"));
-            appUserService.save(sysAppUser);
-        }else {
-            // 判断账号是否被冻结
-            if (sysAppUser.getStatus() == 2){
-                return R.fail("账号已冻结,请联系管理员");
+                    appUserService.save(sysAppUser);
+                }else {
+                    // 判断账号是否被冻结
+                    if (sysAppUser.getStatus() == 2){
+                        return R.fail("账号已冻结,请联系管理员");
+                    }
+                    // 手机号相同但openId为空的情况
+                    sysAppUser.setOpenId(openid);
+                    appUserService.updateById(sysAppUser);
+                }
+            }finally {
+                redisCache.unlock(CacheConstants.LOGIN_LOCK_KEY + openid,uuid);
             }
-            // 手机号相同但openId为空的情况
-            sysAppUser.setOpenId(openid);
-            appUserService.updateById(sysAppUser);
         }
         LoginUserApplet loginUserApplet = new LoginUserApplet();
         TAppUserResp sysUserResp = new TAppUserResp();
diff --git a/ruoyi-applet/src/main/resources/application-prod.yml b/ruoyi-applet/src/main/resources/application-prod.yml
index f4359a8..4ba39bf 100644
--- a/ruoyi-applet/src/main/resources/application-prod.yml
+++ b/ruoyi-applet/src/main/resources/application-prod.yml
@@ -163,7 +163,7 @@
   # 令牌密钥
   secret: abcdefghijklmnopqrstuvwxyz
   # 令牌有效期(默认30分钟)
-  expireTime: 120
+  expireTime: 43200
 
 mybatis-plus:
   # 此处在多数据源中生效
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java
index a3e4868..bc3a5b2 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java
@@ -46,5 +46,5 @@
     public static final String BILL_UPDATE_LOCK_KEY = "bill_update_lock:";
 
 
-    public static final String COMPLETE_PAY_LOCK_KEY = "complete_pay_lock:";
+    public static final String LOGIN_LOCK_KEY = "login_lock:";
 }

--
Gitblit v1.7.1