Merge remote-tracking branch 'origin/test' into test

This commit is contained in:
Tankaikai
2025-01-13 16:59:48 +08:00

View File

@@ -70,26 +70,20 @@ public class DiscSpinningController {
@PostMapping("/discSpinning/insertDiscSpinning") @PostMapping("/discSpinning/insertDiscSpinning")
@ApiOperation("添加大转盘") @ApiOperation("添加大转盘")
@Transactional
public Result insertDiscSpinning(@RequestBody DiscSpinning discSpinning) { public Result insertDiscSpinning(@RequestBody DiscSpinning discSpinning) {
discSpinning.setCreateTime(DateUtils.format(new Date()));
discSpinning.setNumber(discSpinning.getOdds());
discSpinningService.save(discSpinning);
List<DiscSpinning> prizes = discSpinningService.list(new QueryWrapper<DiscSpinning>().eq("disc_type", discSpinning.getDiscType()).orderByAsc("type", "id")); List<DiscSpinning> prizes = discSpinningService.list(new QueryWrapper<DiscSpinning>().eq("disc_type", discSpinning.getDiscType()).orderByAsc("type", "id"));
BigDecimal number = BigDecimal.ZERO; BigDecimal number = BigDecimal.ZERO;
for (DiscSpinning prize : prizes) { for (DiscSpinning prize : prizes) {
number = number.add(prize.getOdds()); number = number.add(prize.getOdds());
prize.setNumber(number); prize.setNumber(number);
} }
BigDecimal totalOdds = prizes.stream() discSpinning.setNumber(number.add(discSpinning.getOdds()));
.map(DiscSpinning::getOdds) if (discSpinning.getNumber().compareTo(new BigDecimal(100)) > 0) {
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
if (totalOdds.compareTo(new BigDecimal(100)) > 0) {
return Result.error("中奖概率总和 不可超过100"); return Result.error("中奖概率总和 不可超过100");
} }
discSpinningService.updateBatchById(prizes); discSpinning.setCreateTime(DateUtils.format(new Date()));
discSpinning.setNumber(discSpinning.getOdds());
discSpinningService.save(discSpinning);
return Result.success(); return Result.success();
} }
@@ -102,7 +96,6 @@ public class DiscSpinningController {
@PostMapping("/discSpinning/updateDiscSpinning") @PostMapping("/discSpinning/updateDiscSpinning")
@ApiOperation("修改大转盘") @ApiOperation("修改大转盘")
public Result updateDiscSpinning(@RequestBody DiscSpinning discSpinning) { public Result updateDiscSpinning(@RequestBody DiscSpinning discSpinning) {
// DiscSpinning current = discSpinningService.getById(discSpinning.getId());
List<DiscSpinning> prizes = discSpinningService.list(new QueryWrapper<DiscSpinning>().eq("disc_type", discSpinning.getDiscType()).orderByAsc("type", "id")); List<DiscSpinning> prizes = discSpinningService.list(new QueryWrapper<DiscSpinning>().eq("disc_type", discSpinning.getDiscType()).orderByAsc("type", "id"));
List<DiscSpinning> upPrizes = new ArrayList<>(); List<DiscSpinning> upPrizes = new ArrayList<>();
BigDecimal number = BigDecimal.ZERO; BigDecimal number = BigDecimal.ZERO;
@@ -118,12 +111,7 @@ public class DiscSpinningController {
upPrizes.add(prize); upPrizes.add(prize);
} }
} }
if (number.compareTo(new BigDecimal(100)) > 0) {
BigDecimal totalOdds = prizes.stream()
.map(DiscSpinning::getOdds)
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
if (totalOdds.compareTo(new BigDecimal(100)) > 0) {
return Result.error("中奖概率总和 不可超过100"); return Result.error("中奖概率总和 不可超过100");
} }
discSpinningService.updateBatchById(upPrizes); discSpinningService.updateBatchById(upPrizes);