Browse Source

[砍价][修改]:砍价算法修改

release_toaliyun_real
Stormeye Wu 7 years ago
parent
commit
ecbfb0cf26
1 changed files with 7 additions and 5 deletions
  1. +7
    -5
      mallinkService/src/main/java/com/iformall/utils/PressUtils.java

+ 7
- 5
mallinkService/src/main/java/com/iformall/utils/PressUtils.java View File

@@ -20,7 +20,7 @@ public class PressUtils {
/**
* randomPressValue
* @param total 砍价总钱数(分)
* @param left_total 砍价总钱数(分)
* @param left_total 剩余砍价总钱数(分)
* @param limit_num 砍价限制次数
* @param limit_index 砍价index
* @return
@@ -29,14 +29,14 @@ public class PressUtils {
BigDecimal tt = BigDecimal.valueOf(total * 1.0D / 100).setScale(scale, RoundingMode.HALF_UP);
BigDecimal lt = BigDecimal.valueOf(left_total* 1.0D / 100);
StatelessReduceRule rule = new DefaultStatelessReduceRule();
BigDecimal current = rule.getReduce(tt, tt.subtract(lt), limit_num,limit_num - limit_index, scale);
BigDecimal current = rule.getReduce(tt, lt, limit_num,limit_num - limit_index, scale);
return current.intValue() * 100;
}

/**
* stateLessPressValue 优先 1/3砍掉一半
* @param total 砍价总钱数(分)
* @param left_total 砍价总钱数(分)
* @param left_total 剩余砍价总钱数(分)
* @param limit_num 砍价限制次数
* @param limit_index 砍价index
* @return
@@ -45,12 +45,14 @@ public class PressUtils {
BigDecimal tt = BigDecimal.valueOf(total * 1.0D / 100).setScale(scale, RoundingMode.HALF_UP);
BigDecimal lt = BigDecimal.valueOf(left_total* 1.0D / 100);
StatelessReduceRule rule = new StatelessPingReduceRule();
BigDecimal current = rule.getReduce(tt, tt.subtract(lt), limit_num, limit_num - limit_index, scale);
BigDecimal current = rule.getReduce(tt, lt, limit_num, limit_num - limit_index, scale);
return current.intValue() * 100;
}

public static void main(String[] args) {
int iValue = stateLessPressValue( 1800, 1800, 5, 0);
int IValue = randomPressValue(2000, 300, 5, 4);
System.out.println(IValue);
int iValue = stateLessPressValue( 2000, 400, 5, 4);
System.out.println(iValue);
}



Loading…
Cancel
Save