|
@@ -112,7 +112,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
// 此处使用用户最近一次的重新染色时间
|
|
|
userLog.getCreateTime(),
|
|
|
orderLog.getWechatOpenid(),
|
|
|
- new TencentMiniGameOrderBackPolicyCheck(this, gameBackPolicy, userLog, orderLog));
|
|
|
+ new TencentMiniGameOrderBackPolicyCheck(this, gameBackPolicy, userLog, orderLog, BackTypeEnum.BACK_API));
|
|
|
boolean doBack = backInfo.first;
|
|
|
Long backMoney = backInfo.second;
|
|
|
String backMsg = backInfo.third;
|
|
@@ -189,7 +189,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
// 此处使用用户最近一次的重新染色时间
|
|
|
userLog.getCreateTime(),
|
|
|
orderLog.getWechatOpenid(),
|
|
|
- new TencentMiniGameOrderBackPolicyCheck(this, gameBackPolicy, userLog, orderLog));
|
|
|
+ new TencentMiniGameOrderBackPolicyCheck(this, gameBackPolicy, userLog, orderLog, BackTypeEnum.BACK_MEDIA_SDK));
|
|
|
boolean doBack = backInfo.first;
|
|
|
Long backMoney = backInfo.second;
|
|
|
String backMsg = backInfo.third;
|
|
@@ -412,15 +412,16 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
private final GameBackPolicy gameBackPolicy;
|
|
|
private final GameTencentMiniGameUser userLog;
|
|
|
private final GameTencentMiniGameOrder orderLog;
|
|
|
+ private final BackTypeEnum backTypeEnum;
|
|
|
|
|
|
public TencentMiniGameOrderBackPolicyCheck(IGameTencentMiniGameOrderService gameTencentMiniGameOrderService,
|
|
|
- GameBackPolicy gameBackPolicy,
|
|
|
- GameTencentMiniGameUser userLog,
|
|
|
- GameTencentMiniGameOrder orderLog) {
|
|
|
+ GameBackPolicy gameBackPolicy, GameTencentMiniGameUser userLog,
|
|
|
+ GameTencentMiniGameOrder orderLog, BackTypeEnum backTypeEnum) {
|
|
|
this.gameTencentMiniGameOrderService = gameTencentMiniGameOrderService;
|
|
|
this.gameBackPolicy = gameBackPolicy;
|
|
|
this.orderLog = orderLog;
|
|
|
this.userLog = userLog;
|
|
|
+ this.backTypeEnum = backTypeEnum;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -435,6 +436,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
.eq(GameTencentMiniGameOrder::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
|
|
|
.eq(GameTencentMiniGameOrder::getIsFirstOrder, firstPolicy)
|
|
|
.ne(GameTencentMiniGameOrder::getOrderId, orderLog.getOrderId())
|
|
|
+ .eq(GameTencentMiniGameOrder::getBackType, backTypeEnum.getBackType())
|
|
|
.orderByDesc(GameTencentMiniGameOrder::getCreateTime)
|
|
|
.last("limit " + numberOfRound)
|
|
|
).stream().filter(log -> log.getBackStatus().equals(BackStatusEnum.SUCCESS.getBackStatus())).count();
|
|
@@ -448,6 +450,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
.apply(firstPolicy, "date(recharge_time) = date(pay_time)")
|
|
|
.apply(!firstPolicy, "date(recharge_time) != date(pay_time)")
|
|
|
.ne(GameTencentMiniGameOrder::getOrderId, orderLog.getOrderId())
|
|
|
+ .eq(GameTencentMiniGameOrder::getBackType, backTypeEnum.getBackType())
|
|
|
.orderByDesc(GameTencentMiniGameOrder::getCreateTime)
|
|
|
.last("limit " + numberOfRound)
|
|
|
).stream().filter(log -> log.getBackStatus().equals(BackStatusEnum.SUCCESS.getBackStatus())).count();
|
|
@@ -461,6 +464,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
.apply(firstPolicy, "TIMESTAMPDIFF(HOUR, recharge_time, pay_time) < 24")
|
|
|
.apply(!firstPolicy, "TIMESTAMPDIFF(HOUR, recharge_time, pay_time) >= 24")
|
|
|
.ne(GameTencentMiniGameOrder::getOrderId, orderLog.getOrderId())
|
|
|
+ .eq(GameTencentMiniGameOrder::getBackType, backTypeEnum.getBackType())
|
|
|
.orderByDesc(GameTencentMiniGameOrder::getCreateTime)
|
|
|
.last("limit " + numberOfRound)
|
|
|
).stream().filter(log -> log.getBackStatus().equals(BackStatusEnum.SUCCESS.getBackStatus())).count();
|
|
@@ -474,6 +478,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
.apply(firstPolicy, "TIMESTAMPDIFF(HOUR, recharge_time, pay_time) < 48")
|
|
|
.apply(!firstPolicy, "TIMESTAMPDIFF(HOUR, recharge_time, pay_time) >= 48")
|
|
|
.ne(GameTencentMiniGameOrder::getOrderId, orderLog.getOrderId())
|
|
|
+ .eq(GameTencentMiniGameOrder::getBackType, backTypeEnum.getBackType())
|
|
|
.orderByDesc(GameTencentMiniGameOrder::getCreateTime)
|
|
|
.last("limit " + numberOfRound)
|
|
|
).stream().filter(log -> log.getBackStatus().equals(BackStatusEnum.SUCCESS.getBackStatus())).count();
|
|
@@ -485,6 +490,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
.eq(GameTencentMiniGameOrder::getBackPolicyId, gameBackPolicy.getId())
|
|
|
.eq(GameTencentMiniGameOrder::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
|
|
|
.ne(GameTencentMiniGameOrder::getOrderId, orderLog.getOrderId())
|
|
|
+ .eq(GameTencentMiniGameOrder::getBackType, backTypeEnum.getBackType())
|
|
|
.orderByDesc(GameTencentMiniGameOrder::getCreateTime)
|
|
|
.last("limit " + numberOfRound)
|
|
|
).stream().filter(log -> log.getBackStatus().equals(BackStatusEnum.SUCCESS.getBackStatus())).count();
|
|
@@ -510,6 +516,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
.eq(GameTencentMiniGameOrder::getWechatOpenid, userId)
|
|
|
.eq(GameTencentMiniGameOrder::getIsFirstOrder, firstPolicy)
|
|
|
.ne(GameTencentMiniGameOrder::getOrderId, orderLog.getOrderId())
|
|
|
+ .eq(GameTencentMiniGameOrder::getBackType, backTypeEnum.getBackType())
|
|
|
);
|
|
|
} else if (backUnit == BackUnitEnum.UNIT_DAY) {
|
|
|
return gameTencentMiniGameOrderService.count(new LambdaQueryWrapper<GameTencentMiniGameOrder>()
|
|
@@ -523,6 +530,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
.apply(firstPolicy, "date(recharge_time) = date(pay_time)")
|
|
|
.apply(!firstPolicy, "date(recharge_time) != date(pay_time)")
|
|
|
.ne(GameTencentMiniGameOrder::getOrderId, orderLog.getOrderId())
|
|
|
+ .eq(GameTencentMiniGameOrder::getBackType, backTypeEnum.getBackType())
|
|
|
);
|
|
|
} else if (backUnit == BackUnitEnum.UNIT_TIME_DAY) {
|
|
|
return gameTencentMiniGameOrderService.count(new LambdaQueryWrapper<GameTencentMiniGameOrder>()
|
|
@@ -536,6 +544,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
.apply(firstPolicy, "TIMESTAMPDIFF(HOUR, recharge_time, pay_time) < 24")
|
|
|
.apply(!firstPolicy, "TIMESTAMPDIFF(HOUR, recharge_time, pay_time) >= 24")
|
|
|
.ne(GameTencentMiniGameOrder::getOrderId, orderLog.getOrderId())
|
|
|
+ .eq(GameTencentMiniGameOrder::getBackType, backTypeEnum.getBackType())
|
|
|
);
|
|
|
} else if (backUnit == BackUnitEnum.UNIT_TIME_2DAY) {
|
|
|
return gameTencentMiniGameOrderService.count(new LambdaQueryWrapper<GameTencentMiniGameOrder>()
|
|
@@ -549,6 +558,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
.apply(firstPolicy, "TIMESTAMPDIFF(HOUR, recharge_time, pay_time) < 48")
|
|
|
.apply(!firstPolicy, "TIMESTAMPDIFF(HOUR, recharge_time, pay_time) >= 48")
|
|
|
.ne(GameTencentMiniGameOrder::getOrderId, orderLog.getOrderId())
|
|
|
+ .eq(GameTencentMiniGameOrder::getBackType, backTypeEnum.getBackType())
|
|
|
);
|
|
|
} else if (backUnit == BackUnitEnum.LARGE_AMOUNT) {
|
|
|
return gameTencentMiniGameOrderService.count(new LambdaQueryWrapper<GameTencentMiniGameOrder>()
|
|
@@ -560,6 +570,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
.eq(GameTencentMiniGameOrder::getBackStatus, BackStatusEnum.SUCCESS.getBackStatus())
|
|
|
.eq(GameTencentMiniGameOrder::getWechatOpenid, userId)
|
|
|
.ne(GameTencentMiniGameOrder::getOrderId, orderLog.getOrderId())
|
|
|
+ .eq(GameTencentMiniGameOrder::getBackType, backTypeEnum.getBackType())
|
|
|
);
|
|
|
} else {
|
|
|
throw new RuntimeException("不支持的回传单位[" + backUnit.getValue() + "]");
|
|
@@ -577,6 +588,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
.eq(GameTencentMiniGameOrder::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
|
|
|
.apply("TIMESTAMPDIFF(MINUTE, recharge_time, pay_time) > {0}", markUpTime)
|
|
|
.ne(GameTencentMiniGameOrder::getOrderId, orderLog.getOrderId())
|
|
|
+ .eq(GameTencentMiniGameOrder::getBackType, backTypeEnum.getBackType())
|
|
|
.orderByDesc(GameTencentMiniGameOrder::getCreateTime)
|
|
|
.last("limit " + numberOfRound)
|
|
|
).stream().filter(log -> log.getBackStatus().equals(BackStatusEnum.SUCCESS.getBackStatus())).count();
|
|
@@ -594,6 +606,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
.eq(GameTencentMiniGameOrder::getWechatOpenid, userId)
|
|
|
.apply("TIMESTAMPDIFF(MINUTE, recharge_time, pay_time) > {0}", markUpTime)
|
|
|
.ne(GameTencentMiniGameOrder::getOrderId, orderLog.getOrderId())
|
|
|
+ .eq(GameTencentMiniGameOrder::getBackType, backTypeEnum.getBackType())
|
|
|
);
|
|
|
}
|
|
|
|
|
@@ -608,6 +621,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
|
|
|
.eq(GameTencentMiniGameOrder::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
|
|
|
.eq(GameTencentMiniGameOrder::getWechatOpenid, orderLog.getWechatOpenid())
|
|
|
.ne(GameTencentMiniGameOrder::getOrderId, orderLog.getOrderId())
|
|
|
+ .eq(GameTencentMiniGameOrder::getBackType, backTypeEnum.getBackType())
|
|
|
);
|
|
|
return ObjectUtil.objToLong(data.get("recharge_money"), 0L);
|
|
|
}
|