Просмотр исходного кода

[微信分账][修改]:分账恢复手续费天花板算法

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
34a738a18e
3 измененных файлов: 11 добавлений и 11 удалений
  1. +4
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java
  2. +6
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java
  3. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java

+ 4
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java Просмотреть файл

@@ -103,8 +103,8 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {

// 5. 扣减计算
Integer payment = cardInfo.getSaleAmount() * record.getDeductionAmount() / cardInfo.getAmount();
Integer dChargeFee = Math.round(payment * 1.0F * payAccount.getRate() / 10000);
Integer real_payment = payment - dChargeFee;
Double dChargeFee = Math.ceil(payment * 1.0D * payAccount.getRate() / 10000);
Integer real_payment = payment - dChargeFee.intValue();
Integer remain_real_pament = cardInfo.getRemainingShareFeeAmount()-real_payment;

Integer remaingAmount = cardInfo.getRemainingAmount()-record.getDeductionAmount();
@@ -146,8 +146,8 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {
Integer subsidyFee = (record.getDeductionAmount() - payment)* subsidyRate / 10000;
if(subsidyFee > 0) {
// 有补贴时入库
Integer dSubChargeFee = Math.round(subsidyFee * 1.0F * payAccount.getRate() / 10000);
Integer realSubsidyFee = subsidyFee - dSubChargeFee;
Double dSubChargeFee = Math.ceil(subsidyFee * 1.0D * payAccount.getRate() / 10000);
Integer realSubsidyFee = subsidyFee - dSubChargeFee.intValue();
WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy();
merchantSubsidy.setId(idWorker.nextId());
merchantSubsidy.setTenantId(record.getTenantId());


+ 6
- 6
mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java Просмотреть файл

@@ -168,8 +168,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
record.setShare(isShare.getCode());
if (isShare == EnumPayShare.YES) {
// 分账金额
Integer dChargeFee = Math.round(record.getPayAmount() * 1.0F * payAccount.getRate() / 10000);
Integer share_amount = record.getPayAmount() - dChargeFee;
Double dChargeFee = Math.ceil(record.getPayAmount() * 1.0D * payAccount.getRate() / 10000);
Integer share_amount = record.getPayAmount() - dChargeFee.intValue();
record.setShareAmount(share_amount);
}

@@ -429,8 +429,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
record.setShare(isShare.getCode());
if (isShare == EnumPayShare.YES) {
// 分账金额
Integer dChargeFee = Math.round(record.getPayAmount() * 1.0F * payAccount.getRate() / 10000);
Integer share_amount = record.getPayAmount() - dChargeFee;
Double dChargeFee = Math.ceil(record.getPayAmount() * 1.0D * payAccount.getRate() / 10000);
Integer share_amount = record.getPayAmount() - dChargeFee.intValue();
record.setShareAmount(share_amount);
if (share_amount <= 0) {
isShare = EnumPayShare.NO;
@@ -1501,8 +1501,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
public static void main(String[] args) {
Integer v = 50;
Integer rate = 6;
Integer dChargeFee = Math.round(v * 1.0F * 60 / 10000);
Integer share_amount = v - dChargeFee;
Double dChargeFee = Math.ceil(v * 1.0D * 60 / 10000);
Integer share_amount = v - dChargeFee.intValue();
System.out.println("share value " + share_amount);
}
}

+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java Просмотреть файл

@@ -208,7 +208,7 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService {
int baseScore = busRule.getInteger(WxScoreRules.SCORE); // 消费增长积分

// 4. 计算成长值
Double dScoreT = Math.ceil(order.getPayment() * 1.0d / priceCondition * baseScore);
Double dScoreT = Math.ceil(order.getPayment() * 1.0D / priceCondition * baseScore);
addScoreNumber = dScoreT.intValue();

// 5. 增长的成长值


Загрузка…
Отмена
Сохранить