From b8a9e73f378270b4ab9b624374e470321f312b8e Mon Sep 17 00:00:00 2001 From: xiaohu <1901900812@qq.com> Date: Tue, 25 Feb 2025 22:41:44 +0800 Subject: [PATCH] //offline --- ...ineActivityGrantSettlementServiceImpl.java | 67 ++++++++++--------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java index 956ed7de6..8ee18471e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java @@ -8,6 +8,7 @@ import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.OfflineActivitySettlement; import com.iformall.domain.vo.OfflineActivitySettlementStatistics; +import com.iformall.enums.EnumOfflineActivityAwardsModeType; import com.iformall.enums.EnumOfflineActivityMode; import com.iformall.enums.EnumOfflineActivityStatus; import com.iformall.enums.EnumYesOrNo; @@ -59,44 +60,42 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct Date now = new Date(); Map recordMap = wxOfflineActivityGrantAward.getRecordList().stream().collect(Collectors.toMap(WxOfflineActivityRecord::getId, Function.identity())); - //获取订单占比(占比最少的订单用减法,尽量减少误差) -// List recordDescList = wxOfflineActivityGrantAward.getRecordList().stream().sorted(Comparator.comparing(WxOfflineActivityRecord::getOrderMoney).reversed()).collect(Collectors.toList()); -// int size = recordDescList.size() - 1; -// BigDecimal lastRatio = new BigDecimal(100); -// for(int i=0; i allRecordDescList = wxOfflineActivityGrantAward.getRecordList().stream().sorted(Comparator.comparing(WxOfflineActivityRecord::getOrderMoney).reversed()).collect(Collectors.toList()); + int allsize = allRecordDescList.size() - 1; + BigDecimal allLastRatio = new BigDecimal(100); + for(int i=0; i recordDescList = activityItem.getRecordList().stream().sorted(Comparator.comparing(WxOfflineActivityRecord::getOrderMoney).reversed()).collect(Collectors.toList()); -// if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(activityItem.getModeType()) -// && activityItem.getRecordIds() != null && !activityItem.getRecordIds().isEmpty()){ -// recordDescList = wxOfflineActivityGrantAward.getRecordList().stream() -// .filter(record -> activityItem.getRecordIds().contains(record.getId())) -// .sorted(Comparator.comparing(WxOfflineActivityRecord::getOrderMoney).reversed()).collect(Collectors.toList()); -// } - BigDecimal orderMoneySum = recordDescList.stream().map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); - int size = recordDescList.size() - 1; - BigDecimal lastRatio = new BigDecimal(100); - for(int i=0; i itemSettlementList = new ArrayList<>(); @@ -133,7 +132,11 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct settlement.setUpdateDate(now); itemSettlementList.add(settlement); }else{ - for (WxOfflineActivityRecord record : recordDescList){ + List countRecordDescList = allRecordDescList; + if(EnumOfflineActivityAwardsModeType.AMOUNT.getCode().equals(wxOfflineActivityGrantItem.getGrantAwardsMode())){ + countRecordDescList = recordDescList; + } + for (WxOfflineActivityRecord record : countRecordDescList){ WxOfflineActivityGrantSettlement settlement = new WxOfflineActivityGrantSettlement(); settlement.setId(idWorker.nextId()); settlement.updateTenantInfo(wxOfflineActivityGrantItem);