From 4d73d01c66ad5f7887e62634cd22c286c5e8d3c6 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期四, 06 二月 2025 14:52:25 +0800
Subject: [PATCH] 修复bug:冻结用户后用户未掉线
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java | 26 ++++++++++++++++++++------
1 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
index e58f5d1..f1bd4ef 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -25,6 +25,7 @@
import com.ruoyi.common.redis.annotation.DistributedLock;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.order.feignClient.OrderClient;
import com.ruoyi.other.api.domain.*;
import com.ruoyi.other.api.feignClient.*;
import com.ruoyi.system.api.domain.SysUser;
@@ -111,6 +112,9 @@
private RedisTemplate redisTemplate;
@Resource
private BalancePaymentService balancePaymentService;
+
+ @Resource
+ private OrderClient orderClient;
/**
@@ -282,6 +286,12 @@
if(null != appUser1 && appUser1.getStatus() == 2){
return R.fail("手机号已注册,请直接登录!");
}
+
+ String avatar = registerAccount.getAvatar();
+ if (StringUtils.isEmpty(avatar)){
+ avatar = "http://qijishenghuiyuan.obs.cn-southwest-2.myhuaweicloud.com/admin/aedfbbb41280471f8d9fa7905298b65f.png";
+ }
+
//如果手机号已注册,但是没有微信号,则将微信号添加到已有账户上
if(null != appUser1 && StringUtils.isEmpty(appUser1.getWxOpenid())){
appUser1.setWxOpenid(openid);
@@ -289,7 +299,7 @@
appUser = appUser1;
}else if(null == appUser){
appUser = new AppUser();
- appUser.setAvatar(registerAccount.getAvatar());
+ appUser.setAvatar(avatar);
appUser.setName(registerAccount.getName());
appUser.setPhone(registerAccount.getPhone());
appUser.setWxOpenid(openid);
@@ -673,7 +683,7 @@
return;
}
}
- if(appUser.getVipId() > 2){
+ if(appUser.getVipId() >= 2){
appUser.setVipId(1);
this.updateById(appUser);
//添加等级变化记录
@@ -865,7 +875,6 @@
@Override
public void unbindThePromoter() {
//注册X天后没有升级成黄金会员则自动解绑推广人
-
//解绑推广人
Set<Long> unbind_promoter = redisTemplate.opsForZSet().rangeByScore("unbind_promoter", 0, LocalDateTime.now().toEpochSecond(ZoneOffset.UTC));
if(unbind_promoter.size() > 0){
@@ -876,16 +885,21 @@
updateWrapper.set("invite_user_id", null).set("shop_id", null).eq("id", appUser.getId());
this.update(updateWrapper);
}
+ redisTemplate.opsForZSet().remove("unbind_promoter", unbind_promoter.toArray());
}
//可更换推广人
Set<Long> replaceable = redisTemplate.opsForZSet().rangeByScore("replaceable", 0, LocalDateTime.now().toEpochSecond(ZoneOffset.UTC));
if(replaceable.size() > 0){
List<AppUser> list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getChangePromoter, 0)
- .eq(AppUser::getStatus, 1).in(AppUser::getId, unbind_promoter));
+ .eq(AppUser::getStatus, 1).in(AppUser::getId, replaceable));
for (AppUser appUser : list) {
- appUser.setChangePromoter(1);
- this.updateById(appUser);
+ Long data = orderClient.getOrderCountByAppUserId(appUser.getId()).getData();
+ if(data == 0){
+ appUser.setChangePromoter(1);
+ this.updateById(appUser);
+ }
}
+ redisTemplate.opsForZSet().remove("replaceable", replaceable.toArray());
}
}
--
Gitblit v1.7.1