From f00e7f6503bb257bed8a0533463f0b25fa75a24e Mon Sep 17 00:00:00 2001 From: xiaohu <1901900812@qq.com> Date: Thu, 20 Feb 2025 20:33:27 +0800 Subject: [PATCH] //offline --- ...xOfflineActivityGrantAwardServiceImpl.java | 76 +++++++++++++------ 1 file changed, 51 insertions(+), 25 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java index bbdc58aba..69a6ed63f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java @@ -277,9 +277,13 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity }else{ BigDecimal orderMoneySum = wxOfflineActivityGrantAward.getRecordList().stream().map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(activityItem.getModeType())){ - orderMoneySum = wxOfflineActivityGrantAward.getRecordList().stream() - .filter(record -> activityItem.getRecordIds().contains(record.getId())) - .map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + if(activityItem.getRecordIds() != null && !activityItem.getRecordIds().isEmpty()){ + orderMoneySum = wxOfflineActivityGrantAward.getRecordList().stream() + .filter(record -> activityItem.getRecordIds().contains(record.getId())) + .map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + }else{ + orderMoneySum = BigDecimal.ZERO; + } } WxOfflineActivityAwardsItem grantAwardsItem = null; @@ -383,9 +387,14 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity }else{ BigDecimal orderMoneySum = recordList.stream().map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(activityItem.getModeType())){ - orderMoneySum = recordList.stream() - .filter(record -> activityItem.getRecordIds().contains(record.getId())) - .map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + if(activityItem.getRecordIds() != null && !activityItem.getRecordIds().isEmpty()){ + orderMoneySum = recordList.stream() + .filter(record -> activityItem.getRecordIds().contains(record.getId())) + .map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + }else{ + orderMoneySum = BigDecimal.ZERO; + } + } if(activityItem.getAwardsItemPrice() != null && activityItem.getAwardsItemPrice().compareTo(BigDecimal.ZERO) > 0){ limitCount = orderMoneySum.divide(activityItem.getAwardsItemPrice(),0, RoundingMode.HALF_DOWN).intValue(); @@ -397,7 +406,9 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity if(jointCount != 0){ Map jointCountMap = activityItem.getActivityAwardsModelSecondList().stream().collect(toMap(WxOfflineActivityAwardsModel::getMerchantCount, Function.identity())); WxOfflineActivityAwardsModel activityAwardsModel = jointCountMap.get(jointCount); - limitCount += activityAwardsModel.getAwardsCount(); + if(activityAwardsModel != null && activityAwardsModel.getAwardsCount() != null){ + limitCount += activityAwardsModel.getAwardsCount(); + } } if(activityItem.getAwardsItemLimit() != null && activityItem.getAwardsItemLimit() > 0 @@ -429,16 +440,22 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity wxOfflineActivityGrantItem.setAwardCount(wxOfflineActivityGrantItem.getAwardCount() + 1); }else{ WxOfflineActivityAwardsItem awardsItem = awardsItemMap.get(awardsGrade); - wxOfflineActivityGrantItem = createGrantItemFromGrant(activityItem, awardsItem); - grantItemMap.put(awardsGrade, wxOfflineActivityGrantItem); + if(awardsItem != null){ + wxOfflineActivityGrantItem = createGrantItemFromGrant(activityItem, awardsItem); + grantItemMap.put(awardsGrade, wxOfflineActivityGrantItem); + } } } }else{ BigDecimal orderMoneySum = recordList.stream().map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(activityItem.getModeType())){ - orderMoneySum = recordList.stream() - .filter(record -> activityItem.getRecordIds().contains(record.getId())) - .map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + if(activityItem.getRecordIds() != null && !activityItem.getRecordIds().isEmpty()){ + orderMoneySum = recordList.stream() + .filter(record -> activityItem.getRecordIds().contains(record.getId())) + .map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + }else{ + orderMoneySum = BigDecimal.ZERO; + } } Integer awardsGrade = null; for (WxOfflineActivityAwardsModel activityAwardsModel :activityItem.getActivityAwardsModelList()){ @@ -449,8 +466,10 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity } if(awardsGrade != null){ WxOfflineActivityAwardsItem awardsItem = awardsItemMap.get(awardsGrade); - WxOfflineActivityGrantItem wxOfflineActivityGrantItem = createGrantItemFromGrant(activityItem, awardsItem); - grantItemMap.put(awardsGrade, wxOfflineActivityGrantItem); + if(awardsItem != null){ + WxOfflineActivityGrantItem wxOfflineActivityGrantItem = createGrantItemFromGrant(activityItem, awardsItem); + grantItemMap.put(awardsGrade, wxOfflineActivityGrantItem); + } } } @@ -458,14 +477,17 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity if(jointCount != 0){ Map jointCountMap = activityItem.getActivityAwardsModelSecondList().stream().collect(toMap(WxOfflineActivityAwardsModel::getMerchantCount, Function.identity())); WxOfflineActivityAwardsModel activityAwardsModel = jointCountMap.get(jointCount); - - WxOfflineActivityGrantItem wxOfflineActivityGrantItem = grantItemMap.get(activityAwardsModel.getAwardsGrade()); - if(wxOfflineActivityGrantItem != null){ - wxOfflineActivityGrantItem.setAwardCount(wxOfflineActivityGrantItem.getAwardCount() + 1); - }else{ - WxOfflineActivityAwardsItem awardsItem = awardsItemMap.get(activityAwardsModel.getAwardsGrade()); - wxOfflineActivityGrantItem = createGrantItemFromGrant(activityItem, awardsItem); - grantItemMap.put(activityAwardsModel.getAwardsGrade(), wxOfflineActivityGrantItem); + if(activityAwardsModel != null && activityAwardsModel.getAwardsGrade() != null){ + WxOfflineActivityGrantItem wxOfflineActivityGrantItem = grantItemMap.get(activityAwardsModel.getAwardsGrade()); + if(wxOfflineActivityGrantItem != null){ + wxOfflineActivityGrantItem.setAwardCount(wxOfflineActivityGrantItem.getAwardCount() + 1); + }else{ + WxOfflineActivityAwardsItem awardsItem = awardsItemMap.get(activityAwardsModel.getAwardsGrade()); + if(awardsItem != null){ + wxOfflineActivityGrantItem = createGrantItemFromGrant(activityItem, awardsItem); + grantItemMap.put(activityAwardsModel.getAwardsGrade(), wxOfflineActivityGrantItem); + } + } } } @@ -749,9 +771,13 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity }else{ BigDecimal orderMoneySum = wxOfflineActivityGrantAward.getRecordList().stream().map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(activityItem.getModeType())){ - orderMoneySum = wxOfflineActivityGrantAward.getRecordList().stream() - .filter(record -> activityItem.getRecordIds().contains(record.getId())) - .map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + if(activityItem.getRecordIds() != null && !activityItem.getRecordIds().isEmpty()){ + orderMoneySum = wxOfflineActivityGrantAward.getRecordList().stream() + .filter(record -> activityItem.getRecordIds().contains(record.getId())) + .map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + }else{ + orderMoneySum = BigDecimal.ZERO; + } } WxOfflineActivityAwardsItem grantAwardsItem = null;