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

//OfflineActivity

release_toaliyun_real
xiaohu 1 год назад
Родитель
Сommit
ee8b4074d1
2 измененных файлов: 13 добавлений и 5 удалений
  1. +2
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java
  2. +11
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java

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

@@ -45,7 +45,8 @@ public class WxOfflineActivityGrantItemServiceImpl implements WxOfflineActivityG
grantGrantItem.setCreateDate(now);
grantGrantItem.setUpdateDate(now);
if(EnumOfflineActivityType.CASHBACK.getCode().equals(grantGrantItem.getActivityItemType())){
BigDecimal awardPrice = new BigDecimal(wxOfflineActivityGrantAward.getOrderMoneySum()).multiply(grantGrantItem.getCashBackRatio());
BigDecimal awardPrice = new BigDecimal(wxOfflineActivityGrantAward.getOrderMoneySum())
.multiply(grantGrantItem.getCashBackRatio().divide(new BigDecimal(100)));
if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(grantGrantItem.getAwardsItemRule())){
grantGrantItem.setAwardPrice(awardPrice.setScale(0, BigDecimal.ROUND_HALF_UP).intValue());
} else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(grantGrantItem.getAwardsItemRule())) {


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

@@ -58,10 +58,13 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct
//获取订单占比(占比最少的订单用减法,尽量减少误差)
List<WxOfflineActivityRecord> recordDescList = wxOfflineActivityGrantAward.getRecordList().stream().sorted(Comparator.comparingInt(WxOfflineActivityRecord::getOrderMoney).reversed()).collect(Collectors.toList());
int size = recordDescList.size() - 1;
BigDecimal lastRatio = BigDecimal.ONE;
BigDecimal lastRatio = new BigDecimal(100);
for(int i=0; i<size; i++){
WxOfflineActivityRecord record = recordDescList.get(i);
BigDecimal orderRatio = new BigDecimal(record.getOrderMoney()).divide(new BigDecimal(wxOfflineActivityGrantAward.getOrderMoneySum()), 2, RoundingMode.HALF_UP);
BigDecimal orderRatio = new BigDecimal(record.getOrderMoney())
.divide(new BigDecimal(wxOfflineActivityGrantAward.getOrderMoneySum()))
.multiply(new BigDecimal(100))
.setScale(2, RoundingMode.HALF_UP);
record.setOrderRatio(orderRatio);
lastRatio = lastRatio.subtract(orderRatio);
}
@@ -103,14 +106,18 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct
WxOfflineActivityGrantSettlement settlement = itemSettlementList.get(i);
int realGrantPrice = new BigDecimal(wxOfflineActivityGrantItem.getAwardPrice()).multiply(settlement.getOrderRatio()).setScale(0, RoundingMode.HALF_UP).intValue();
settlement.setRealGrantPrice(realGrantPrice);
settlement.setRealMallSharePrice(new BigDecimal(settlement.getRealGrantPrice()).multiply(settlement.getMallShareRate()).setScale(0, BigDecimal.ROUND_HALF_UP).intValue());
settlement.setRealMallSharePrice(new BigDecimal(settlement.getRealGrantPrice())
.multiply(settlement.getMallShareRate().divide(new BigDecimal(100)))
.setScale(0, RoundingMode.HALF_UP).intValue());
settlement.setRealMerchantSharePrice(settlement.getRealGrantPrice() - settlement.getRealMallSharePrice());

lastGrantPrice = lastGrantPrice - realGrantPrice;
}
WxOfflineActivityGrantSettlement lastSettlement = itemSettlementList.get(itemSize);
lastSettlement.setRealGrantPrice(lastGrantPrice);
lastSettlement.setRealMallSharePrice(new BigDecimal(lastSettlement.getRealGrantPrice()).multiply(lastSettlement.getMallShareRate()).setScale(0, BigDecimal.ROUND_HALF_UP).intValue());
lastSettlement.setRealMallSharePrice(new BigDecimal(lastSettlement.getRealGrantPrice())
.multiply(lastSettlement.getMallShareRate().divide(new BigDecimal(100)))
.setScale(0, RoundingMode.HALF_UP).intValue());
lastSettlement.setRealMerchantSharePrice(lastSettlement.getRealGrantPrice() - lastSettlement.getRealMallSharePrice());

settlementList.addAll(itemSettlementList);


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