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