|
@@ -31,7 +31,7 @@ public class BackPolicyUtil {
|
|
* @param lastBackFunction 在指定最近订单数量内是否有订单回传过
|
|
* @param lastBackFunction 在指定最近订单数量内是否有订单回传过
|
|
* @return <是否回传, 回传金额>
|
|
* @return <是否回传, 回传金额>
|
|
*/
|
|
*/
|
|
- public static boolean backOrder(String orderId, GameBackPolicy gameBackPolicy, long rechargeMoney, LocalDateTime payTime, LocalDateTime regTime, FirstOrder firstOrder, Function<Integer, Integer> lastBackFunction) {
|
|
|
|
|
|
+ public static boolean backOrder(String orderId, GameBackPolicy gameBackPolicy, long rechargeMoney, boolean isFirstOrder, LocalDateTime payTime, LocalDateTime regTime, LastBackFunction lastBackFunction) {
|
|
if (null == gameBackPolicy) {
|
|
if (null == gameBackPolicy) {
|
|
log.error("订单 id[{}]通过回传策略[null]判断后,是否回传:{}.", orderId, true);
|
|
log.error("订单 id[{}]通过回传策略[null]判断后,是否回传:{}.", orderId, true);
|
|
return true;
|
|
return true;
|
|
@@ -69,6 +69,7 @@ public class BackPolicyUtil {
|
|
rechargeType = gameBackPolicy.getRechargeOtherMoneyType();
|
|
rechargeType = gameBackPolicy.getRechargeOtherMoneyType();
|
|
rechargeRate = gameBackPolicy.getRechargeOtherMoneyRate();
|
|
rechargeRate = gameBackPolicy.getRechargeOtherMoneyRate();
|
|
}
|
|
}
|
|
|
|
+ boolean firstPolicy = false;
|
|
Integer backType;
|
|
Integer backType;
|
|
String backRate;
|
|
String backRate;
|
|
if (firstType.equals(rechargeType) && firstRate.equalsIgnoreCase(rechargeRate)) {
|
|
if (firstType.equals(rechargeType) && firstRate.equalsIgnoreCase(rechargeRate)) {
|
|
@@ -76,10 +77,11 @@ public class BackPolicyUtil {
|
|
backType = firstType;
|
|
backType = firstType;
|
|
backRate = firstRate;
|
|
backRate = firstRate;
|
|
} else {
|
|
} else {
|
|
- if (firstOrder.isFirstOrder()) {
|
|
|
|
|
|
+ if (isFirstOrder) {
|
|
log.error("订单{}是首单", orderId);
|
|
log.error("订单{}是首单", orderId);
|
|
backType = firstType;
|
|
backType = firstType;
|
|
backRate = firstRate;
|
|
backRate = firstRate;
|
|
|
|
+ firstPolicy = true;
|
|
} else {
|
|
} else {
|
|
log.error("订单{}不是首单", orderId);
|
|
log.error("订单{}不是首单", orderId);
|
|
backType = rechargeType;
|
|
backType = rechargeType;
|
|
@@ -99,7 +101,7 @@ public class BackPolicyUtil {
|
|
log.error("订单 id[{}]通过回传策略[{}]判断后,是否回传:{}.", orderId, gameBackPolicy.getId(), true);
|
|
log.error("订单 id[{}]通过回传策略[{}]判断后,是否回传:{}.", orderId, gameBackPolicy.getId(), true);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
- int isBackCount = lastBackFunction.apply(backCount + ignoreCount - 1);
|
|
|
|
|
|
+ int isBackCount = lastBackFunction.getLastBackCount(backCount + ignoreCount - 1, firstPolicy);
|
|
log.error("订单 id[{}]通过回传策略[{}]判断后,是否回传:{}.", orderId, gameBackPolicy.getId(), (isBackCount < backCount));
|
|
log.error("订单 id[{}]通过回传策略[{}]判断后,是否回传:{}.", orderId, gameBackPolicy.getId(), (isBackCount < backCount));
|
|
return isBackCount < backCount;
|
|
return isBackCount < backCount;
|
|
} else if (Objects.equals(backType, GameBackPolicy.POLICY_TYPE_RANDOM_RATE)) {
|
|
} else if (Objects.equals(backType, GameBackPolicy.POLICY_TYPE_RANDOM_RATE)) {
|
|
@@ -148,7 +150,7 @@ public class BackPolicyUtil {
|
|
return RECHARGE_LEVEL[level];
|
|
return RECHARGE_LEVEL[level];
|
|
}
|
|
}
|
|
|
|
|
|
- public interface FirstOrder {
|
|
|
|
- boolean isFirstOrder();
|
|
|
|
|
|
+ public interface LastBackFunction {
|
|
|
|
+ int getLastBackCount(int backUnit, boolean isFirstOrder);
|
|
}
|
|
}
|
|
}
|
|
}
|