|
@@ -114,13 +114,20 @@ public class TicketBoxServiceImpl extends ServiceImpl<TicketBoxMapper, TicketBox
|
|
|
// 创建奖级
|
|
|
List<TicketAwards> ticketAwardsList = new ArrayList<>();
|
|
|
List<TicketAwardsPrize> awardsPrizeList = new ArrayList<>();
|
|
|
- for (TicketAwardsParam awardsParam : param.getAwardsList()) {
|
|
|
+ BigDecimal sumHitRate = BigDecimal.ZERO;
|
|
|
+ for (int i = 0; i < param.getAwardsList().size(); i ++) {
|
|
|
+ TicketAwardsParam awardsParam = param.getAwardsList().get(i);
|
|
|
TicketAwards ticketAwards = mapperFacade.map(awardsParam, TicketAwards.class);
|
|
|
ticketAwards.setAwardsId(bizIdGenerator.newId());
|
|
|
ticketAwards.setBoxId(ticketBox.getBoxId());
|
|
|
- BigDecimal hitRate = new BigDecimal(awardsParam.getQuantity()).divide(
|
|
|
- new BigDecimal(ticketBox.getQuantity()), 4, RoundingMode.DOWN);
|
|
|
- ticketAwards.setHitRate(hitRate);
|
|
|
+ if (i == param.getAwardsList().size() - 1) {
|
|
|
+ ticketAwards.setHitRate(new BigDecimal(100).subtract(sumHitRate));
|
|
|
+ } else {
|
|
|
+ BigDecimal hitRate = new BigDecimal(awardsParam.getQuantity() * 100).divide(
|
|
|
+ new BigDecimal(ticketBox.getQuantity()), 4, RoundingMode.DOWN);
|
|
|
+ sumHitRate.add(hitRate);
|
|
|
+ ticketAwards.setHitRate(hitRate);
|
|
|
+ }
|
|
|
ticketAwardsList.add(ticketAwards);
|
|
|
|
|
|
for (TicketAwardsPrizeParam prizeParam : awardsParam.getPrizeList()) {
|