抽奖 奖项概率设置

This commit is contained in:
wangw 2024-12-21 17:34:00 +08:00
parent 49859f9ea6
commit a5d17f7f57
1 changed files with 8 additions and 24 deletions

View File

@ -65,18 +65,9 @@ public class DiscSpinningController {
List<DiscSpinning> prizes = discSpinningService.list(new QueryWrapper<DiscSpinning>().eq("disc_type",discSpinning.getDiscType()).orderByAsc("type", "id"));
BigDecimal number = BigDecimal.ZERO;
List<DiscSpinning> prizesResult = new ArrayList<>();
for (DiscSpinning prize : prizes) {
if (discSpinning.getId().equals(prize.getId())) {
number = prize.getNumber().add(discSpinning.getOdds().subtract(prize.getOdds()));
discSpinning.setNumber(number);
prize.setOdds(discSpinning.getOdds());
prizesResult.add(discSpinning);
} else if (number.compareTo(BigDecimal.ZERO) > 0) {
number = number.add(prize.getOdds());
prize.setNumber(number);
prizesResult.add(prize);
}
number = number.add(prize.getOdds());
prize.setNumber(number);
}
BigDecimal totalOdds = prizes.stream()
.map(DiscSpinning::getOdds)
@ -85,7 +76,7 @@ public class DiscSpinningController {
if (totalOdds.compareTo(new BigDecimal(100)) > 0) {
return Result.error("中奖概率总和 不可超过100");
}
discSpinningService.updateBatchById(prizesResult);
discSpinningService.updateBatchById(prizes);
return Result.success();
}
@ -98,20 +89,13 @@ public class DiscSpinningController {
@PostMapping("/discSpinning/updateDiscSpinning")
@ApiOperation("修改大转盘")
public Result updateDiscSpinning(@RequestBody DiscSpinning discSpinning) {
discSpinningService.updateById(discSpinning);
List<DiscSpinning> prizes = discSpinningService.list(new QueryWrapper<DiscSpinning>().eq("disc_type",discSpinning.getDiscType()).orderByAsc("type", "id"));
BigDecimal number = BigDecimal.ZERO;
List<DiscSpinning> prizesResult = new ArrayList<>();
for (DiscSpinning prize : prizes) {
if (discSpinning.getId().equals(prize.getId())) {
number = prize.getNumber().add(discSpinning.getOdds().subtract(prize.getOdds()));
discSpinning.setNumber(number);
prize.setOdds(discSpinning.getOdds());
prizesResult.add(discSpinning);
} else if (number.compareTo(BigDecimal.ZERO) > 0) {
number = number.add(prize.getOdds());
prize.setNumber(number);
prizesResult.add(prize);
}
number = number.add(prize.getOdds());
prize.setNumber(number);
}
BigDecimal totalOdds = prizes.stream()
.map(DiscSpinning::getOdds)
@ -120,7 +104,7 @@ public class DiscSpinningController {
if (totalOdds.compareTo(new BigDecimal(100)) > 0) {
return Result.error("中奖概率总和 不可超过100");
}
discSpinningService.updateBatchById(prizesResult);
discSpinningService.updateBatchById(prizes);
return Result.success();
}