diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java index 156ce342d..769fa1385 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java @@ -157,6 +157,9 @@ public class WxOfflineActivityItem extends TenantEntity { */ @TableField(exist = false) private List activityAwardsItemList; + /** + * 联单奖项 + */ @TableField(exist = false) private List activityAwardsItemSecondList; /** 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 ae0c98211..7d5f870c8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java @@ -621,7 +621,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity private void handlerGrantData(WxOfflineActivity activity,WxOfflineActivityGrantAward wxOfflineActivityGrantAward,boolean isForPage){ List wxOfflineActivityRecords = null; - if (null != wxOfflineActivityGrantAward.getRecordIds() && wxOfflineActivityGrantAward.getRecordIds().size() > 0 ) { + if (null != wxOfflineActivityGrantAward.getRecordIds() && !wxOfflineActivityGrantAward.getRecordIds().isEmpty()) { wxOfflineActivityRecords = wxOfflineActivityRecordMapper.selectBatchIds(wxOfflineActivityGrantAward.getRecordIds()); }else { WxOfflineActivityRecord recordQ = new WxOfflineActivityRecord(); @@ -683,22 +683,21 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity } private void handlerGrantItem(WxOfflineActivity activity, WxOfflineActivityGrantAward wxOfflineActivityGrantAward){ - if(wxOfflineActivityGrantAward.getActivityItemList() == null){ + if(wxOfflineActivityGrantAward.getActivityItemList() == null || wxOfflineActivityGrantAward.getActivityItemList().isEmpty()){ throw new MallinkException(Result.ERROR, "请检查活动项参数"); } - Map grantActivityItemMap = new HashMap<>(); - if(wxOfflineActivityGrantAward.getActivityItemList() != null && !wxOfflineActivityGrantAward.getActivityItemList().isEmpty()){ - grantActivityItemMap = wxOfflineActivityGrantAward.getActivityItemList().stream().collect(toMap(WxOfflineActivityItem::getId, Function.identity())); - } + Map grantActivityItemMap = wxOfflineActivityGrantAward.getActivityItemList().stream().collect(toMap(WxOfflineActivityItem::getId, Function.identity())); List activityItemList = wxOfflineActivityItemService.getActivityItemList(activity.getId(), activity.getTenantId()); int i = 0;//检查活动奖项 for (WxOfflineActivityItem activityItem : activityItemList) { - - Map awardsItemMap = activityItem.getActivityAwardsItemList().stream().collect(toMap(WxOfflineActivityAwardsItem::getId, Function.identity())); WxOfflineActivityItem grantActivityItem = grantActivityItemMap.get(activityItem.getId()); + if(grantActivityItem == null){ + continue; + } + Map awardsItemMap = activityItem.getActivityAwardsItemList().stream().collect(toMap(WxOfflineActivityAwardsItem::getId, Function.identity())); //订单参数处理 if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(activityItem.getModeType())){ if(grantActivityItem.getRecordIds() == null || grantActivityItem.getRecordIds().isEmpty()){ @@ -740,7 +739,16 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity if(awardsItem == null){ throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数"); } - handlerGrantItem(grantGrantItem,EnumOfflineActivityAwardsModeType.AMOUNT,activity,activityItem,awardsItem); + //todo 区分订单、金额、联单 handlerGrantRule() + EnumOfflineActivityAwardsModeType modeType = EnumOfflineActivityAwardsModeType.AMOUNT; + if(grantGrantItem.getRecordId() == null || grantGrantItem.getRecordId().equals(0L)){ + grantGrantItem.setRecordId(null); + }else if(grantGrantItem.getRecordId().equals(-1L)){ + grantGrantItem.setRecordId(null); + modeType = EnumOfflineActivityAwardsModeType.COUNT; + } + + handlerGrantItem(grantGrantItem,modeType,activity,activityItem,awardsItem); } activityItem.setActivityGrantItemList(activityGrantItemList); @@ -774,6 +782,16 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity grantRule.setActivityItemName(activityItem.getName()); grantRule.setActivityItemType(activityItem.getType()); grantRule.setAwardsItemLimit(awardsItemLimit); + + if(EnumOfflineActivityAwardsModeType.AMOUNT.equals(modeType)){ + if(grantRule.getRecordId() == null){ + grantRule.setRecordId(0L); + } + + } else if (EnumOfflineActivityAwardsModeType.COUNT.equals(modeType)) { + grantRule.setRecordId(-1L); + } + } private void handlerGrantItem(WxOfflineActivityGrantItem grantGrantItem,EnumOfflineActivityAwardsModeType modeType,WxOfflineActivity activity,WxOfflineActivityItem activityItem,WxOfflineActivityAwardsItem awardsItem){