...
|
...
|
@@ -33,13 +33,16 @@ public abstract class AbsSellerOrderComputeHandler implements OrderComputeHandle |
|
|
private Double packageFee ;
|
|
|
|
|
|
@Override
|
|
|
public SellerOrderComputeResult compute(BigDecimal prdPrice){
|
|
|
public SellerOrderComputeResult compute(BigDecimal prdPrice,
|
|
|
SellerOrderComputeResult personalComputeConfig){
|
|
|
|
|
|
//保证金(28-200(按照卖家发布商品的货款金额5%计算,最低28,封顶200))
|
|
|
EarnestMoney earnestMoney = calEarnestMoney(prdPrice);
|
|
|
//init fee rate
|
|
|
ServiceFeeRate serviceFeeRate = buildServiceFeeRate();
|
|
|
PlatformFeeDto platformFeeDto = calPlatformFee(prdPrice, serviceFeeRate);
|
|
|
ServiceFeeRate psfr = personalComputeConfig!=null ? personalComputeConfig.getServiceFeeRate() : null;
|
|
|
ServiceFeeRate serviceFeeRate = buildServiceFeeRate(psfr);
|
|
|
PlatformFeeDto ppf = personalComputeConfig!=null ? personalComputeConfig.getPlatformFee() : null;
|
|
|
PlatformFeeDto platformFeeDto = calPlatformFee(prdPrice, serviceFeeRate, ppf);
|
|
|
BigDecimal bankTransferFee = calBankTransferFee(prdPrice, serviceFeeRate.getPayChannelRate());
|
|
|
logger.info("in SellerOrder Compute, prdPrice {}, platformFee {}, bankTransferFee {}",
|
|
|
prdPrice, platformFeeDto, bankTransferFee);
|
...
|
...
|
@@ -49,7 +52,7 @@ public abstract class AbsSellerOrderComputeHandler implements OrderComputeHandle |
|
|
result.setEarnestMoney(earnestMoney);
|
|
|
result.setPlatformFee(platformFeeDto);
|
|
|
result.setIncome(halfUp(income));
|
|
|
//TODO 根据配置文件
|
|
|
//根据配置文件
|
|
|
result.setServiceFeeRate(serviceFeeRate);
|
|
|
result.setBankTransferfee(bankTransferFee);
|
|
|
result.setPenaltyFeeRate(buildStagedCollection());
|
...
|
...
|
@@ -93,6 +96,8 @@ public abstract class AbsSellerOrderComputeHandler implements OrderComputeHandle |
|
|
return halfUp(prdPrice.multiply(payServiceFeeRate));
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 通过相加得出的数据
|
|
|
* 服务费参与计算后需要考虑精度问题(四舍五入)
|
...
|
...
|
|