Преглед на файлове

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

lth преди 1 година
родител
ревизия
ea5024cfeb
променени са 1 файла, в които са добавени 18 реда и са изтрити 9 реда
  1. 18 9
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameDataServiceImpl.java

+ 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());
                 }