Browse Source

修改内容:游戏数据每日总计

lth 1 year ago
parent
commit
ea5024cfeb

+ 18 - 9
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameDataServiceImpl.java

@@ -985,25 +985,34 @@ public class GameDataServiceImpl implements IGameDataService {
                     dayNTotalFieldMap.getT2().set(vo, RechargeTrendVO.builder()
                             .rechargeMoney(dNAmount)
                             .rechargeUserCount(Long.valueOf(temps[2]))
-                            .increase(dNAmount.divide(vo.getCost(), 4, RoundingMode.HALF_UP))
-                            .back(d1ToDNTotalAmount.divide(vo.getCost(), 4, RoundingMode.HALF_UP))
-                            .multiples(d1ToDNTotalAmount.divide(buyAmountD1, 4, RoundingMode.HALF_UP))
+                            .increase(vo.getCost().compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
+                                    dNAmount.divide(vo.getCost(), 4, RoundingMode.HALF_UP))
+                            .back(vo.getCost().compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
+                                    d1ToDNTotalAmount.divide(vo.getCost(), 4, RoundingMode.HALF_UP))
+                            .multiples(buyAmountD1.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
+                                    d1ToDNTotalAmount.divide(buyAmountD1, 4, RoundingMode.HALF_UP))
                             .build());
                 } else if (temps[3].equals("nature")) {
                     dayNTotalFieldMap.getT2().set(vo, RechargeTrendVO.builder()
                             .rechargeMoney(dNAmount)
                             .rechargeUserCount(Long.valueOf(temps[2]))
-                            .increase(dNAmount.divide(vo.getCost(), 4, RoundingMode.HALF_UP))
-                            .back(d1ToDNTotalAmount.divide(vo.getCost(), 4, RoundingMode.HALF_UP))
-                            .multiples(d1ToDNTotalAmount.divide(natureAmountD1, 4, RoundingMode.HALF_UP))
+                            .increase(vo.getCost().compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
+                                    dNAmount.divide(vo.getCost(), 4, RoundingMode.HALF_UP))
+                            .back(vo.getCost().compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
+                                    d1ToDNTotalAmount.divide(vo.getCost(), 4, RoundingMode.HALF_UP))
+                            .multiples(natureAmountD1.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
+                                    d1ToDNTotalAmount.divide(natureAmountD1, 4, RoundingMode.HALF_UP))
                             .build());
                 } else {
                     dayNTotalFieldMap.getT2().set(vo, RechargeTrendVO.builder()
                             .rechargeMoney(dNAmount)
                             .rechargeUserCount(Long.valueOf(temps[2]))
-                            .increase(dNAmount.divide(vo.getCost(), 4, RoundingMode.HALF_UP))
-                            .back(d1ToDNTotalAmount.divide(vo.getCost(), 4, RoundingMode.HALF_UP))
-                            .multiples(d1ToDNTotalAmount.divide(amountD1, 4, RoundingMode.HALF_UP))
+                            .increase(vo.getCost().compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
+                                    dNAmount.divide(vo.getCost(), 4, RoundingMode.HALF_UP))
+                            .back(vo.getCost().compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
+                                    d1ToDNTotalAmount.divide(vo.getCost(), 4, RoundingMode.HALF_UP))
+                            .multiples(amountD1.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
+                                    d1ToDNTotalAmount.divide(amountD1, 4, RoundingMode.HALF_UP))
                             .build());
                 }