This commit is contained in:
dute7liang
2024-01-20 19:25:56 +08:00
parent 2f67a35684
commit 7956a89ef0
13 changed files with 292 additions and 18 deletions

View File

@@ -2,6 +2,7 @@ package com.ruoyi.cai.manager;
import cn.hutool.extra.spring.SpringUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.cai.domain.Rank;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserInfo;
import com.ruoyi.cai.enums.SystemConfigEnum;
@@ -9,8 +10,11 @@ import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
import com.ruoyi.cai.executor.ExecutorConstant;
import com.ruoyi.cai.mapper.AccountMapper;
import com.ruoyi.cai.service.AccountChangeLogService;
import com.ruoyi.cai.service.RankService;
import com.ruoyi.cai.service.UserInfoService;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.cai.util.CaiDateUtil;
import com.ruoyi.common.exception.ServiceException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +22,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDate;
@Component
@Slf4j
@@ -33,6 +38,8 @@ public class AwardManager {
private UserService userService;
@Autowired
private UserInfoService userInfoService;
@Autowired
private RankService rankService;
public void giveRegisterAsync(Long userId){
AwardManager bean = SpringUtil.getBean(AwardManager.class);
@@ -89,4 +96,31 @@ public class AwardManager {
accountMapper.incsIncomeCoin(userId,price);
accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.FAST_PAY_AWARD,price,traceId);
}
public void giveRank(Long rankId,Long userId){
Rank rank = rankService.getById(rankId);
if(rank == null){
throw new ServiceException("领取失败,奖励不存在");
}
if(!rank.getUserId().equals(userId)){
throw new ServiceException("只能领取自己的奖励哦");
}
if(rank.getOrderRank() > 10){
throw new ServiceException("只有前10名可以领取奖励");
}
if(rank.getDataType().equals(1)){ // 日榜
LocalDate lastDay = LocalDate.now().plusDays(-1);
if(!rank.getRankBeginTime().equals(lastDay)){
throw new ServiceException("领奖时间已过");
}
rankService.giveRank(rankId);
}else if(rank.getDataType().equals(2)){ // 周榜
LocalDate date = CaiDateUtil.getLastWeekOne(LocalDate.now());
if(!rank.getRankBeginTime().equals(date)){
throw new ServiceException("领奖时间已过");
}
rankService.giveRank(rankId);
}
}
}