|
@@ -143,6 +143,29 @@ public class UserTicketController extends BaseApiController {
|
|
|
}
|
|
|
ticketAwardsLabelVOS.add(ticketAwardsLabelVO);
|
|
|
}
|
|
|
+ if (CollectionUtils.isNotEmpty(ticketAwardsLabelVOS)) {
|
|
|
+ // 精度问题处理
|
|
|
+ int maxIndex = 0;
|
|
|
+ BigDecimal maxHitRate = BigDecimal.valueOf(100);
|
|
|
+ for (int i = 0; i < ticketAwardsLabelVOS.size(); i++) {
|
|
|
+ TicketAwardsLabelVO ticketAwardsLabelVO = ticketAwardsLabelVOS.get(i);
|
|
|
+ if (BigDecimal.ZERO.equals(ticketAwardsLabelVO.getHitRate())) {
|
|
|
+ ticketAwardsLabelVO.setHitRate(BigDecimal.valueOf(0.1));
|
|
|
+ }
|
|
|
+ if (ticketAwardsLabelVO.getHitRate().compareTo(ticketAwardsLabelVOS.get(maxIndex).getHitRate()) > 0) {
|
|
|
+ maxIndex = i;
|
|
|
+ }
|
|
|
+ maxHitRate = maxHitRate.subtract(ticketAwardsLabelVO.getHitRate());
|
|
|
+ }
|
|
|
+ if (maxHitRate.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ TicketAwardsLabelVO ticketAwardsLabelVO = ticketAwardsLabelVOS.get(maxIndex);
|
|
|
+ ticketAwardsLabelVO.setHitRate(ticketAwardsLabelVO.getHitRate().subtract(maxHitRate));
|
|
|
+ } else {
|
|
|
+ TicketAwardsLabelVO ticketAwardsLabelVO = ticketAwardsLabelVOS.get(maxIndex);
|
|
|
+ ticketAwardsLabelVO.setHitRate(ticketAwardsLabelVO.getHitRate().add(maxHitRate));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
ticketBoxVO.setTicketAwardsLabelList(ticketAwardsLabelVOS);
|
|
|
|
|
|
List<TicketAwardsPrizeVO> ticketAwardsPrizeVOS = ticketAwardsPrizeService.listPrizeVO(ticketBox.getBoxId());
|