From 747bc38a2888bcf055d2f270fa2b334c66a96a03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=89=AF=28004796=29?= Date: Fri, 26 Jan 2024 14:54:41 +0800 Subject: [PATCH] 123 --- .../ruoyi/cai/job/IncomeStatisticsJob.java | 2 +- .../main/java/com/ruoyi/cai/job/RankJob.java | 11 +++++++- .../ruoyi/cai/manager/CurrentUserManager.java | 7 ++++- .../com/ruoyi/cai/service/UserService.java | 3 +++ .../cai/service/impl/UserServiceImpl.java | 26 +++++++++++++++++++ .../java/com/ruoyi/cai/util/UserUtil.java | 18 +++++++++++++ 6 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/util/UserUtil.java diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/job/IncomeStatisticsJob.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/job/IncomeStatisticsJob.java index 78ceb73e..e2ce883b 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/job/IncomeStatisticsJob.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/job/IncomeStatisticsJob.java @@ -18,7 +18,7 @@ public class IncomeStatisticsJob { try { dayIncomeStatisticsService.refreshByDate(LocalDate.now()); }catch (Exception e){ - log.error("保存昨日收益统计失败!",e); + log.error("更新每日收益统计失败!",e); } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/job/RankJob.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/job/RankJob.java index b202ec49..091b96dc 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/job/RankJob.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/job/RankJob.java @@ -2,6 +2,7 @@ package com.ruoyi.cai.job; import com.ruoyi.cai.service.DayIncomeStatisticsService; import com.ruoyi.cai.service.RankService; +import com.ruoyi.cai.service.UserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; @@ -63,9 +64,17 @@ public class RankJob { try { dayIncomeStatisticsService.refreshByDate(date); }catch (Exception e){ - log.error("保存昨日收益统计失败!",e); + log.error("更新昨日收益统计失败!",e); } + try { + userService.refreshByAge(); + }catch (Exception e){ + log.error("刷新用户年龄失败!",e); + } } + @Autowired + private UserService userService; + } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java index 1cab7840..7ee87a14 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java @@ -17,6 +17,7 @@ import com.ruoyi.cai.dto.app.vo.user.UserCountVo; import com.ruoyi.cai.enums.GenderEnum; import com.ruoyi.cai.executor.ExecutorConstant; import com.ruoyi.cai.service.*; +import com.ruoyi.cai.util.UserUtil; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.BeanConvertUtil; @@ -140,10 +141,10 @@ public class CurrentUserManager { if(res.getInviteId() != null && user.getInviteId() != null){ update.set(User::getInviteId,res.getInviteId()); user.setInviteId(res.getInviteId()); - ExecutorConstant.COMMON_EXECUTOR.execute(() -> loginManager.dealInviteId(user)); } if(res.getBirthday() != null){ update.set(User::getBirthday,res.getBirthday()); + update.set(User::getAge, UserUtil.getAge(res.getBirthday())); uinfoReq.setBirth(res.getBirthday().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); updateFlag=true; updateYunxin=true; @@ -184,6 +185,10 @@ public class CurrentUserManager { } } } + if(res.getInviteId() != null && user.getInviteId() != null){ + ExecutorConstant.COMMON_EXECUTOR.execute(() -> loginManager.dealInviteId(user)); + } + } return true; } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserService.java index 2ae8e680..99f7488b 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserService.java @@ -40,4 +40,7 @@ public interface UserService extends IService { boolean removeUser(Long id); void resetAvatar(Long id); + + void refreshByAge(); + } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserServiceImpl.java index a52d0452..508ecefb 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserServiceImpl.java @@ -16,6 +16,7 @@ import com.ruoyi.cai.dto.app.vo.user.UserListVo; import com.ruoyi.cai.enums.GenderEnum; import com.ruoyi.cai.mapper.UserMapper; import com.ruoyi.cai.service.*; +import com.ruoyi.cai.util.UserUtil; import com.ruoyi.cai.ws.service.RoomService; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.exception.ServiceException; @@ -31,6 +32,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; +import java.util.List; /** * 用户Service业务层处理 @@ -265,4 +267,28 @@ public class UserServiceImpl extends ServiceImpl implements Us } } + @Override + public void refreshByAge() { + Page page = new Page<>(0,200); + long current = 0; + while (true) { + current++; + page.setCurrent(current); + Page pageRes = this.page(page,Wrappers.lambdaQuery(User.class).select(User::getAge,User::getBirthday,User::getId)); + List records = pageRes.getRecords(); + if(records.isEmpty()){ + break; + } + for (User record : records) { + int age = UserUtil.getAge(record.getBirthday()); + if(record.getAge() != null && record.getAge() == age){ + continue; + } + this.update(Wrappers.lambdaUpdate(User.class) + .eq(User::getId,record.getId()) + .set(User::getAge,age)); + } + } + } + } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/util/UserUtil.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/util/UserUtil.java new file mode 100644 index 00000000..0254d070 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/util/UserUtil.java @@ -0,0 +1,18 @@ +package com.ruoyi.cai.util; + +import java.time.LocalDate; + +public class UserUtil { + private final static int DEFAULT_AGE = 18; + + public static int getAge(LocalDate birthday){ + if(birthday == null){ + return DEFAULT_AGE; + } + int age = LocalDate.now().getYear() - birthday.getYear(); + if(age < 18 || age > 80){ + return DEFAULT_AGE; + } + return age; + } +}