/**
* 功能描述:阶梯计算奖金,具体规则可以直接在变量levels变更
* @author:link
* @param basePrize 总奖金数
* @return BigDecimal 根据阶梯计算后的奖金数
* 2016年10月21日 下午2:50:45
*/
public BigDecimal rewardCaculate(BigDecimal basePrize){
BigDecimal fullPrize=new BigDecimal(0);
if(basePrize.compareTo(levels[0])<1) return fullPrize;
for(int i=2;i<levels.length;i+=2){
//如果已经小于指定阶梯的界限点,则表示已经到顶了
if(basePrize.compareTo(levels[i])<1){
fullPrize=fullPrize.add(basePrize.subtract(levels[i-2]).multiply(levels[i+1]));
break;
}else{
fullPrize=fullPrize.add(levels[i].subtract(levels[i-2]).multiply(levels[i+1]));
}
}
return fullPrize;
}
private BigDecimal[] levels=new BigDecimal[]{
new BigDecimal(3_5000d),new BigDecimal(0.0),
new BigDecimal(5_0000d),new BigDecimal(0.1),
new BigDecimal(10_0000d),new BigDecimal(0.15),
new BigDecimal(15_0000d),new BigDecimal(0.2),
new BigDecimal(20_0000d),new BigDecimal(0.25),
new BigDecimal(25_0000d),new BigDecimal(0.3),
new BigDecimal(30_0000d),new BigDecimal(0.35),
new BigDecimal(35_0000d),new BigDecimal(0.4),
new BigDecimal(40_0000d),new BigDecimal(0.45),
new BigDecimal(45_0000d),new BigDecimal(0.5),
new BigDecimal(50_0000d),new BigDecimal(0.5),
new BigDecimal(60_0000d),new BigDecimal(0.5)
};
阶梯级收费算法
最新推荐文章于 2024-07-13 03:21:49 发布