This commit is contained in:
777
2026-01-08 17:38:41 +08:00
parent 20c5908f34
commit 432743addf
27 changed files with 825 additions and 170 deletions

View File

@@ -5,6 +5,7 @@ import com.ruoyi.cai.domain.PointChangeLog;
import com.ruoyi.cai.domain.PrizeOnline;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.enums.GenderEnum;
import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.manager.IdManager;
import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.service.AccountService;
@@ -52,24 +53,10 @@ public class LotteryService {
private AccountService accountService;
@Autowired
private SystemConfigManager systemConfigManager;
private Integer getDrawPoint(Integer gender){
if(GenderEnum.WOMEN.getCode().equals(gender)){
Integer womenDrawPoint = systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.WOMEN_DRAW_POINT);
return womenDrawPoint;
}
return systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.MEN_DRAW_POINT);
}
public boolean getOpenDraw(Integer gender){
if(GenderEnum.WOMEN.getCode().equals(gender)){
return systemConfigManager.getSystemConfigOfBool(SystemConfigEnum.OPEN_DRAW_WOMEN);
}else if(GenderEnum.MAN.getCode().equals(gender)){
return systemConfigManager.getSystemConfigOfBool(SystemConfigEnum.OPEN_DRAW_MAN);
}
return false;
}
@Autowired
private PointManager pointManager;
@Autowired
private DrawService drawService;
/**
* 用户抽奖(核心方法,优化后)
@@ -81,7 +68,7 @@ public class LotteryService {
if(user == null){
throw new ServiceException("用户不存在");
}
boolean openDraw = this.getOpenDraw(user.getGender());
boolean openDraw = drawService.getOpenDraw(user.getGender());
if(!openDraw){
throw new ServiceException("暂未开启积分抽奖,请等待活动通知");
}
@@ -90,7 +77,7 @@ public class LotteryService {
throw new ServiceException("请选择性别后在抽奖");
}
Account account = accountService.getByUserId(user.getId());
Integer drawPoint = getDrawPoint(user.getGender());
Integer drawPoint = drawService.getDrawPoint(user.getGender());
if(account.getPoints() < drawPoint){
throw new ServiceException("积分不足");
}
@@ -264,7 +251,7 @@ public class LotteryService {
public void winPrizeAfter(PrizeOnline prizeOnline, User user,Integer drawPoint, int continuousDraws) {
// 扣减积分
String traceId = IdManager.nextIdStr();
PointChangeLog pointChangeLog = accountService.drawPoint(prizeOnline, user, drawPoint, traceId);
PointChangeLog pointChangeLog = pointManager.drawPoint(prizeOnline, user, drawPoint, traceId);
// 记录用户抽奖记录
// UserDrawRecord record = new UserDrawRecord();
// record.setUserId(userId);