| @@ -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<Integer, WxOfflineActivityAwardsModel> 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<Integer, WxOfflineActivityAwardsModel> 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; | |||