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