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/java/com/ruoyi/web/controller/system/SysLoginController.java | 52 +++++++++++++++++++++++++++++++++-------------------
1 files changed, 33 insertions(+), 19 deletions(-)
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();
--
Gitblit v1.7.1