|
|
|
@@ -131,18 +131,20 @@ public class WxVtwoCashBackGrantAwardServiceImpl extends ServiceImpl<WxVtwoCashB |
|
|
|
if(cashBackTotal.compareTo(cashBackActivity.getCashBackLimit()) >= 0){ |
|
|
|
prop = cashBackActivity.getCashBackLimit().divide(cashBackTotal,4, RoundingMode.HALF_UP); |
|
|
|
} |
|
|
|
BigDecimal realCashBackTotal = BigDecimal.ZERO; |
|
|
|
|
|
|
|
if(prop.compareTo(BigDecimal.ONE) < 0){ |
|
|
|
for (WxVtwoCashBackGrantAward grantAward:grantAwardList){ |
|
|
|
grantAward.setCashBack(awardsRulePrice(grantAward.getCashBack().multiply(prop),cashBackActivity.getCashBackRule())); |
|
|
|
} |
|
|
|
} |
|
|
|
BigDecimal realCashBackTotal = grantAwardList.stream().map(WxVtwoCashBackGrantAward::getCashBack).reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
activityGrant.setCashBackLimit(cashBackActivity.getCashBackLimit()); |
|
|
|
activityGrant.setCashBack(realCashBackTotal); |
|
|
|
|
|
|
|
if(EnumOfflineActivityMode.ONE.getCode().equals(cashBackActivity.getAmountModel())){ |
|
|
|
//单独算税点 |
|
|
|
BigDecimal taxAmount = BigDecimal.ZERO; |
|
|
|
for (WxVtwoCashBackGrantAward grantAward:grantAwardList){ |
|
|
|
realCashBackTotal = realCashBackTotal.add(grantAward.getCashBack()); |
|
|
|
grantAward.setTaxDeductionRules(cashBackActivity.getTaxDeductionRules()); |
|
|
|
grantAward.setTaxAmount(BigDecimal.ZERO); |
|
|
|
WxVtwoActivityTaxDeductionRule taxDeductionRulesObject = cashBackActivity.getTaxDeductionRulesObject(); |
|
|
|
@@ -165,13 +167,11 @@ public class WxVtwoCashBackGrantAwardServiceImpl extends ServiceImpl<WxVtwoCashB |
|
|
|
} |
|
|
|
//税点分摊到发奖上面 |
|
|
|
for (WxVtwoCashBackGrantAward grantAward:grantAwardList){ |
|
|
|
realCashBackTotal = realCashBackTotal.add(grantAward.getCashBack()); |
|
|
|
BigDecimal taxAmountProp = grantAward.getCashBack().divide(activityGrant.getCashBack(),4,RoundingMode.HALF_UP);; |
|
|
|
grantAward.setTaxAmount(activityGrant.getTaxAmount().multiply(taxAmountProp).setScale(2, RoundingMode.HALF_UP)); |
|
|
|
} |
|
|
|
} |
|
|
|
activityGrant.setCashBackLimit(cashBackActivity.getCashBackLimit()); |
|
|
|
activityGrant.setCashBack(realCashBackTotal); |
|
|
|
|
|
|
|
activityGrant.setGrantAwardList(grantAwardList); |
|
|
|
} |
|
|
|
|
|
|
|
|