|  | @@ -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);
 | 
	
		
			
				|  |  |          }
 |