Bläddra i källkod

回传策略的 bug

wcc 1 år sedan
förälder
incheckning
1d6d2e5923

+ 18 - 21
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameOceanengineOrderLogServiceImpl.java

@@ -63,27 +63,24 @@ public class GameOceanengineOrderLogServiceImpl extends ServiceImpl<GameOceaneng
             } else {
                 GameBackPolicy gameBackPolicy = gameBackPolicyService.getById(orderLog.getBackPolicyId());
                 doBack = BackPolicyUtil.backOrder(orderLog.getOrderNo(), gameBackPolicy, orderLog.getAmount(),
-                        () -> {
-                            return count(new LambdaQueryWrapper<GameOceanengineOrderLog>()
-                                    .eq(GameOceanengineOrderLog::getGameId, orderLog.getGameId())
-                                    .eq(GameOceanengineOrderLog::getAppId, orderLog.getAppId())
-                                    .eq(GameOceanengineOrderLog::getAccountId, orderLog.getAccountId())
-                                    .eq(GameOceanengineOrderLog::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
-                                    .eq(GameOceanengineOrderLog::getOpenId, orderLog.getOpenId())
-                                    .last("limit 1")
-                            ) < 1;
-                        },
-                        backUnit -> {
-                            return Long.valueOf(list(new LambdaQueryWrapper<GameOceanengineOrderLog>()
-                                            .eq(GameOceanengineOrderLog::getGameId, orderLog.getGameId())
-                                            .eq(GameOceanengineOrderLog::getAppId, orderLog.getAppId())
-                                            .eq(GameOceanengineOrderLog::getAccountId, orderLog.getAccountId())
-                                            .eq(GameOceanengineOrderLog::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
-                                            .orderByDesc(GameOceanengineOrderLog::getCreateTime)
-                                            .last("limit " + backUnit)
-                                    ).stream().filter(log -> log.getOrderStatus().equals(BackStatusEnum.SUCCESS.getBackStatus())).count()
-                            ).intValue();
-                        });
+                        () -> count(new LambdaQueryWrapper<GameOceanengineOrderLog>()
+                                .eq(GameOceanengineOrderLog::getGameId, orderLog.getGameId())
+                                .eq(GameOceanengineOrderLog::getAppId, orderLog.getAppId())
+                                .eq(GameOceanengineOrderLog::getAccountId, orderLog.getAccountId())
+                                .eq(GameOceanengineOrderLog::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
+                                .eq(GameOceanengineOrderLog::getOpenId, orderLog.getOpenId())
+                                .last("limit 1")
+                        ) < 1,
+                        backUnit -> Long.valueOf(list(new LambdaQueryWrapper<GameOceanengineOrderLog>()
+                                        .eq(GameOceanengineOrderLog::getGameId, orderLog.getGameId())
+                                        .eq(GameOceanengineOrderLog::getAppId, orderLog.getAppId())
+                                        .eq(GameOceanengineOrderLog::getAccountId, orderLog.getAccountId())
+                                        .eq(GameOceanengineOrderLog::getBackPolicyId, gameBackPolicy.getId())
+                                        .eq(GameOceanengineOrderLog::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
+                                        .orderByDesc(GameOceanengineOrderLog::getCreateTime)
+                                        .last("limit " + backUnit)
+                                ).stream().filter(log -> log.getBackStatus().equals(BackStatusEnum.SUCCESS.getBackStatus())).count()
+                        ).intValue());
                 orderLog.setAmount(BackPolicyUtil.lowRechargeLevel(orderLog.getAmount(), gameBackPolicy.getLevelDown()));
             }
         }

+ 10 - 8
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentMiniGameOrderServiceImpl.java

@@ -73,14 +73,16 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
                             .eq(GameTencentMiniGameOrder::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
                             .eq(GameTencentMiniGameOrder::getWechatOpenid, orderLog.getWechatOpenid())
                             .last("limit 1")
-                    ) < 1, backUnit -> Long.valueOf(count(new LambdaQueryWrapper<GameTencentMiniGameOrder>()
-                            .eq(GameTencentMiniGameOrder::getGameId, orderLog.getGameId())
-                            .eq(GameTencentMiniGameOrder::getWechatAppId, orderLog.getWechatAppId())
-                            .eq(GameTencentMiniGameOrder::getAdAccountId, orderLog.getAdAccountId())
-                            .eq(GameTencentMiniGameOrder::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
-                            .orderByDesc(GameTencentMiniGameOrder::getCreateTime)
-                            .last("limit " + backUnit)
-                    )).intValue());
+                    ) < 1, backUnit -> Long.valueOf(list(new LambdaQueryWrapper<GameTencentMiniGameOrder>()
+                                    .eq(GameTencentMiniGameOrder::getGameId, orderLog.getGameId())
+                                    .eq(GameTencentMiniGameOrder::getWechatAppId, orderLog.getWechatAppId())
+                                    .eq(GameTencentMiniGameOrder::getAdAccountId, orderLog.getAdAccountId())
+                                    .eq(GameTencentMiniGameOrder::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
+                                    .eq(GameTencentMiniGameOrder::getBackPolicyId, gameBackPolicy.getId())
+                                    .orderByDesc(GameTencentMiniGameOrder::getCreateTime)
+                                    .last("limit " + backUnit)
+                            ).stream().filter(log -> log.getBackStatus().equals(BackStatusEnum.SUCCESS.getBackStatus())).count()
+                    ).intValue());
             orderLog.setRechargeMoney(BackPolicyUtil.lowRechargeLevel(orderLog.getRechargeMoney(), gameBackPolicy.getLevelDown()));
         }
         if (doBack) {

+ 10 - 8
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentOrderServiceImpl.java

@@ -83,14 +83,16 @@ public class GameTencentOrderServiceImpl extends ServiceImpl<GameTencentOrderMap
                             .eq(GameTencentOrder::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
                             .eq(GameTencentOrder::getWechatOpenid, orderLog.getWechatOpenid())
                             .last("limit 1")
-                    ) < 1, backUnit -> Long.valueOf(count(new LambdaQueryWrapper<GameTencentOrder>()
-                            .eq(GameTencentOrder::getGameId, orderLog.getGameId())
-                            .eq(GameTencentOrder::getWechatAppId, orderLog.getWechatAppId())
-                            .eq(GameTencentOrder::getAdAccountId, orderLog.getAdAccountId())
-                            .eq(GameTencentOrder::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
-                            .orderByDesc(GameTencentOrder::getCreateTime)
-                            .last("limit " + backUnit)
-                    )).intValue());
+                    ) < 1, backUnit -> Long.valueOf(list(new LambdaQueryWrapper<GameTencentOrder>()
+                                    .eq(GameTencentOrder::getGameId, orderLog.getGameId())
+                                    .eq(GameTencentOrder::getWechatAppId, orderLog.getWechatAppId())
+                                    .eq(GameTencentOrder::getAdAccountId, orderLog.getAdAccountId())
+                                    .eq(GameTencentOrder::getBackPolicyId, gameBackPolicy.getId())
+                                    .eq(GameTencentOrder::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
+                                    .orderByDesc(GameTencentOrder::getCreateTime)
+                                    .last("limit " + backUnit)
+                            ).stream().filter(log -> log.getIsBack().equals(BackStatusEnum.SUCCESS.getBackStatus())).count()
+                    ).intValue());
             orderLog.setRechargeMoney(BackPolicyUtil.lowRechargeLevel(orderLog.getRechargeMoney(), gameBackPolicy.getLevelDown()));
         }
         if (doBack) {