| @@ -277,9 +277,13 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||||
| }else{ | }else{ | ||||
| BigDecimal orderMoneySum = wxOfflineActivityGrantAward.getRecordList().stream().map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); | BigDecimal orderMoneySum = wxOfflineActivityGrantAward.getRecordList().stream().map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); | ||||
| if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(activityItem.getModeType())){ | 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; | WxOfflineActivityAwardsItem grantAwardsItem = null; | ||||
| @@ -383,9 +387,14 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||||
| }else{ | }else{ | ||||
| BigDecimal orderMoneySum = recordList.stream().map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); | BigDecimal orderMoneySum = recordList.stream().map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); | ||||
| if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(activityItem.getModeType())){ | 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){ | if(activityItem.getAwardsItemPrice() != null && activityItem.getAwardsItemPrice().compareTo(BigDecimal.ZERO) > 0){ | ||||
| limitCount = orderMoneySum.divide(activityItem.getAwardsItemPrice(),0, RoundingMode.HALF_DOWN).intValue(); | limitCount = orderMoneySum.divide(activityItem.getAwardsItemPrice(),0, RoundingMode.HALF_DOWN).intValue(); | ||||
| @@ -397,7 +406,9 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||||
| if(jointCount != 0){ | if(jointCount != 0){ | ||||
| Map<Integer, WxOfflineActivityAwardsModel> jointCountMap = activityItem.getActivityAwardsModelSecondList().stream().collect(toMap(WxOfflineActivityAwardsModel::getMerchantCount, Function.identity())); | Map<Integer, WxOfflineActivityAwardsModel> jointCountMap = activityItem.getActivityAwardsModelSecondList().stream().collect(toMap(WxOfflineActivityAwardsModel::getMerchantCount, Function.identity())); | ||||
| WxOfflineActivityAwardsModel activityAwardsModel = jointCountMap.get(jointCount); | WxOfflineActivityAwardsModel activityAwardsModel = jointCountMap.get(jointCount); | ||||
| limitCount += activityAwardsModel.getAwardsCount(); | |||||
| if(activityAwardsModel != null && activityAwardsModel.getAwardsCount() != null){ | |||||
| limitCount += activityAwardsModel.getAwardsCount(); | |||||
| } | |||||
| } | } | ||||
| if(activityItem.getAwardsItemLimit() != null && activityItem.getAwardsItemLimit() > 0 | if(activityItem.getAwardsItemLimit() != null && activityItem.getAwardsItemLimit() > 0 | ||||
| @@ -429,16 +440,22 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||||
| wxOfflineActivityGrantItem.setAwardCount(wxOfflineActivityGrantItem.getAwardCount() + 1); | wxOfflineActivityGrantItem.setAwardCount(wxOfflineActivityGrantItem.getAwardCount() + 1); | ||||
| }else{ | }else{ | ||||
| WxOfflineActivityAwardsItem awardsItem = awardsItemMap.get(awardsGrade); | 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{ | }else{ | ||||
| BigDecimal orderMoneySum = recordList.stream().map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); | BigDecimal orderMoneySum = recordList.stream().map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); | ||||
| if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(activityItem.getModeType())){ | 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; | Integer awardsGrade = null; | ||||
| for (WxOfflineActivityAwardsModel activityAwardsModel :activityItem.getActivityAwardsModelList()){ | for (WxOfflineActivityAwardsModel activityAwardsModel :activityItem.getActivityAwardsModelList()){ | ||||
| @@ -449,8 +466,10 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||||
| } | } | ||||
| if(awardsGrade != null){ | if(awardsGrade != null){ | ||||
| WxOfflineActivityAwardsItem awardsItem = awardsItemMap.get(awardsGrade); | 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){ | if(jointCount != 0){ | ||||
| Map<Integer, WxOfflineActivityAwardsModel> jointCountMap = activityItem.getActivityAwardsModelSecondList().stream().collect(toMap(WxOfflineActivityAwardsModel::getMerchantCount, Function.identity())); | Map<Integer, WxOfflineActivityAwardsModel> jointCountMap = activityItem.getActivityAwardsModelSecondList().stream().collect(toMap(WxOfflineActivityAwardsModel::getMerchantCount, Function.identity())); | ||||
| WxOfflineActivityAwardsModel activityAwardsModel = jointCountMap.get(jointCount); | 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{ | }else{ | ||||
| BigDecimal orderMoneySum = wxOfflineActivityGrantAward.getRecordList().stream().map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); | BigDecimal orderMoneySum = wxOfflineActivityGrantAward.getRecordList().stream().map(WxOfflineActivityRecord::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); | ||||
| if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(activityItem.getModeType())){ | 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; | WxOfflineActivityAwardsItem grantAwardsItem = null; | ||||