|
|
|
@@ -1562,27 +1562,11 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity |
|
|
|
|
|
|
|
private void grantItemLotteryDrawExport(HttpServletRequest request, HttpServletResponse response, |
|
|
|
WxOfflineActivityItem activityItem, WxOfflineActivityAwardsModel activityAwardsModel){ |
|
|
|
List<WxOfflineActivityAwardsItem> activityAwardsItemList = wxOfflineActivityAwardsItemService.getActivityAwardsItemList(activityItem.getId(), activityItem.getTenantId()); |
|
|
|
List<ExcelExportEntity> exportHead = getGrantItemExportHead(); |
|
|
|
for (int i = 0; i < activityAwardsItemList.size(); i++) { |
|
|
|
ExcelExportEntity entity_1 = new ExcelExportEntity("奖品名称","awardName_"+i,20); |
|
|
|
exportHead.add(entity_1); |
|
|
|
ExcelExportEntity entity_2 = new ExcelExportEntity("数量","awardCount_"+i,20); |
|
|
|
exportHead.add(entity_2); |
|
|
|
ExcelExportEntity entity_3 = new ExcelExportEntity("价值","awardPrice_"+i,20); |
|
|
|
exportHead.add(entity_3); |
|
|
|
ExcelExportEntity entity_4 = new ExcelExportEntity("商户承担比例(%)","mallShareRate_"+i,20); |
|
|
|
exportHead.add(entity_4); |
|
|
|
ExcelExportEntity entity_5 = new ExcelExportEntity("商管承担比例(%)","merchantShareRate_"+i,20); |
|
|
|
exportHead.add(entity_5); |
|
|
|
ExcelExportEntity entity_6 = new ExcelExportEntity("商户承担金额","realMallSharePrice_"+i,20); |
|
|
|
exportHead.add(entity_6); |
|
|
|
ExcelExportEntity entity_7 = new ExcelExportEntity("商管承担金额","realMerchantSharePrice_"+i,20); |
|
|
|
exportHead.add(entity_7); |
|
|
|
} |
|
|
|
|
|
|
|
List<Map<String,Object>> grantItemObjectList = new ArrayList<>(); |
|
|
|
|
|
|
|
List<Long> recordIds,grantIds; |
|
|
|
//单笔订单 |
|
|
|
Map<Long, List<OfflineActivityGrantItemVo>> grantItemMap; |
|
|
|
WxOfflineActivityGrantSettlement grantSettlement = new WxOfflineActivityGrantSettlement(); |
|
|
|
grantSettlement.updateTenantInfo(activityItem); |
|
|
|
grantSettlement.setActivityItemId(activityItem.getId()); |
|
|
|
@@ -1590,85 +1574,246 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity |
|
|
|
grantSettlement.setMaxMoney(activityAwardsModel.getMaxAmount()); |
|
|
|
List<OfflineActivityGrantItemVo> grantItemList = wxOfflineActivityGrantSettlementMapper.findAwardItemGrantList(grantSettlement); |
|
|
|
if(grantItemList != null && !grantItemList.isEmpty()){ |
|
|
|
Map<Long, List<OfflineActivityGrantItemVo>> grantItemMap = grantItemList.stream().collect(groupingBy(OfflineActivityGrantItemVo::getRecordId)); |
|
|
|
List<Long> recordIds = new ArrayList<>(grantItemMap.keySet()); |
|
|
|
grantItemMap = grantItemList.stream().collect(groupingBy(OfflineActivityGrantItemVo::getRecordId)); |
|
|
|
recordIds = new ArrayList<>(grantItemMap.keySet()); |
|
|
|
grantIds = grantItemList.stream().map(OfflineActivityGrantItemVo::getGrantId).distinct().collect(toList()); |
|
|
|
//订单表头 |
|
|
|
Map<Long, Long> grantItemSizeMap = grantItemList.stream().collect(groupingBy(OfflineActivityGrantItemVo::getRecordId, counting())); |
|
|
|
Long maxGrantItemSize = Collections.max(grantItemSizeMap.values()); |
|
|
|
for (int i = 0; i < maxGrantItemSize.intValue(); i++) { |
|
|
|
ExcelExportEntity entity_1 = new ExcelExportEntity("订单奖品名称","awardName_"+i,20); |
|
|
|
exportHead.add(entity_1); |
|
|
|
ExcelExportEntity entity_2 = new ExcelExportEntity("订单奖品数量","awardCount_"+i,20); |
|
|
|
exportHead.add(entity_2); |
|
|
|
ExcelExportEntity entity_3 = new ExcelExportEntity("订单奖品价值","awardPrice_"+i,20); |
|
|
|
exportHead.add(entity_3); |
|
|
|
ExcelExportEntity entity_4 = new ExcelExportEntity("商户承担比例(%)","mallShareRate_"+i,20); |
|
|
|
exportHead.add(entity_4); |
|
|
|
ExcelExportEntity entity_5 = new ExcelExportEntity("商管承担比例(%)","merchantShareRate_"+i,20); |
|
|
|
exportHead.add(entity_5); |
|
|
|
ExcelExportEntity entity_6 = new ExcelExportEntity("商户承担金额","realMallSharePrice_"+i,20); |
|
|
|
exportHead.add(entity_6); |
|
|
|
ExcelExportEntity entity_7 = new ExcelExportEntity("商管承担金额","realMerchantSharePrice_"+i,20); |
|
|
|
exportHead.add(entity_7); |
|
|
|
} |
|
|
|
|
|
|
|
}else{ |
|
|
|
grantItemMap = new HashMap<>(); |
|
|
|
recordIds = new ArrayList<>(); |
|
|
|
grantIds = new ArrayList<>(); |
|
|
|
} |
|
|
|
//联单 |
|
|
|
Map<Long, List<OfflineActivityGrantItemVo>> grantItemCountMap; |
|
|
|
Map<Long, List<String>> grantItemCountRecordMap; |
|
|
|
List<OfflineActivityGrantItemVo> grantItemCountList = wxOfflineActivityGrantSettlementMapper.findAwardItemGrantCountList(grantSettlement); |
|
|
|
if(grantItemCountList != null && !grantItemCountList.isEmpty()){ |
|
|
|
grantItemCountRecordMap = grantItemCountList.stream().collect(groupingBy(OfflineActivityGrantItemVo::getGrantItemId,Collectors.mapping(OfflineActivityGrantItemVo::getOrderNo,Collectors.toList()))); |
|
|
|
grantItemCountMap = grantItemCountList.stream().collect(groupingBy(OfflineActivityGrantItemVo::getRecordId)); |
|
|
|
List<Long> recordCountIds = grantItemCountList.stream().map(OfflineActivityGrantItemVo::getRecordId).distinct().collect(toList()); |
|
|
|
recordIds.addAll(recordCountIds); |
|
|
|
List<Long> grantCountIds = grantItemCountList.stream().map(OfflineActivityGrantItemVo::getGrantId).distinct().collect(toList()); |
|
|
|
grantIds.addAll(grantCountIds); |
|
|
|
|
|
|
|
//联单表头 |
|
|
|
Map<Long, Long> grantItemCountSizeMap = grantItemCountList.stream().collect(groupingBy(OfflineActivityGrantItemVo::getRecordId, counting())); |
|
|
|
Long maxGrantItemCountSize = Collections.max(grantItemCountSizeMap.values()); |
|
|
|
for (int i = 0; i < maxGrantItemCountSize.intValue(); i++) { |
|
|
|
ExcelExportEntity entityC_1 = new ExcelExportEntity("联单订单","countRecords_"+i,20); |
|
|
|
exportHead.add(entityC_1); |
|
|
|
ExcelExportEntity entityC_2 = new ExcelExportEntity("联单奖品名称","countAwardName_"+i,20); |
|
|
|
exportHead.add(entityC_2); |
|
|
|
ExcelExportEntity entityC_3 = new ExcelExportEntity("联单奖品数量","countAwardCount_"+i,20); |
|
|
|
exportHead.add(entityC_3); |
|
|
|
ExcelExportEntity entityC_4 = new ExcelExportEntity("联单奖品价值","countAwardPrice_"+i,20); |
|
|
|
exportHead.add(entityC_4); |
|
|
|
ExcelExportEntity entityC_5 = new ExcelExportEntity("联单实际承担价值","countRealGrantPrice_"+i,20); |
|
|
|
exportHead.add(entityC_5); |
|
|
|
ExcelExportEntity entityC_6 = new ExcelExportEntity("商户承担比例(%)","countMallShareRate_"+i,20); |
|
|
|
exportHead.add(entityC_6); |
|
|
|
ExcelExportEntity entityC_7 = new ExcelExportEntity("商管承担比例(%)","countMerchantShareRate_"+i,20); |
|
|
|
exportHead.add(entityC_7); |
|
|
|
ExcelExportEntity entityC_8 = new ExcelExportEntity("商户承担金额","countRealMallSharePrice_"+i,20); |
|
|
|
exportHead.add(entityC_8); |
|
|
|
ExcelExportEntity entityC_9 = new ExcelExportEntity("商管承担金额","countRealMerchantSharePrice_"+i,20); |
|
|
|
exportHead.add(entityC_9); |
|
|
|
} |
|
|
|
}else{ |
|
|
|
grantItemCountRecordMap = new HashMap<>(); |
|
|
|
grantItemCountMap = new HashMap<>(); |
|
|
|
} |
|
|
|
|
|
|
|
List<Map<String,Object>> grantItemObjectList = new ArrayList<>(); |
|
|
|
if(!recordIds.isEmpty()){ |
|
|
|
List<WxOfflineActivityRecord> recordList = wxOfflineActivityRecordService.selectListByIds(recordIds,activityItem); |
|
|
|
Map<Long, WxOfflineActivityRecord> recordMap = recordList.stream().collect(toMap(WxOfflineActivityRecord::getId, Function.identity())); |
|
|
|
|
|
|
|
List<Long> grantIds = grantItemList.stream().map(OfflineActivityGrantItemVo::getGrantId).distinct().collect(toList()); |
|
|
|
List<WxOfflineActivityGrantAward> grantList = this.selectListByIds(grantIds,activityItem); |
|
|
|
Map<Long, WxOfflineActivityGrantAward> grantMap = grantList.stream().collect(toMap(WxOfflineActivityGrantAward::getId, Function.identity())); |
|
|
|
|
|
|
|
recordIds.forEach(recordId -> { |
|
|
|
List<OfflineActivityGrantItemVo> recordgrantItemList = grantItemMap.get(recordId); |
|
|
|
List<OfflineActivityGrantItemVo> recordgrantItemCountList = grantItemCountMap.get(recordId); |
|
|
|
Long grantId; |
|
|
|
if(recordgrantItemList!= null && !recordgrantItemList.isEmpty()){ |
|
|
|
grantId = recordgrantItemList.get(0).getGrantId(); |
|
|
|
}else{ |
|
|
|
grantId = recordgrantItemCountList.get(0).getGrantId(); |
|
|
|
} |
|
|
|
WxOfflineActivityRecord record = recordMap.get(recordId); |
|
|
|
WxOfflineActivityGrantAward grant = grantMap.get(recordgrantItemList.get(0).getGrantId()); |
|
|
|
WxOfflineActivityGrantAward grant = grantMap.get(grantId); |
|
|
|
Map<String,Object> grantItemObject= getGrantItemExportObject(record,grant); |
|
|
|
for (int i=0;i<recordgrantItemList.size();i++){ |
|
|
|
OfflineActivityGrantItemVo grantItem = recordgrantItemList.get(i); |
|
|
|
grantItemObject.put("awardName_"+i,grantItem.getAwardName()); |
|
|
|
grantItemObject.put("awardCount_"+i,grantItem.getAwardCount()); |
|
|
|
grantItemObject.put("awardPrice_"+i,grantItem.getAwardPrice()); |
|
|
|
grantItemObject.put("mallShareRate_"+i,grantItem.getMallShareRate()); |
|
|
|
grantItemObject.put("merchantShareRate_"+i,grantItem.getMerchantShareRate()); |
|
|
|
grantItemObject.put("realMallSharePrice_"+i,grantItem.getRealMallSharePrice()); |
|
|
|
grantItemObject.put("realMerchantSharePrice_"+i,grantItem.getRealMerchantSharePrice()); |
|
|
|
} |
|
|
|
|
|
|
|
if(recordgrantItemList!= null && !recordgrantItemList.isEmpty()){ |
|
|
|
for (int i=0;i<recordgrantItemList.size();i++){ |
|
|
|
OfflineActivityGrantItemVo grantItem = recordgrantItemList.get(i); |
|
|
|
grantItemObject.put("awardName_"+i,grantItem.getAwardName()); |
|
|
|
grantItemObject.put("awardCount_"+i,grantItem.getAwardCount()); |
|
|
|
grantItemObject.put("awardPrice_"+i,grantItem.getAwardPrice()); |
|
|
|
grantItemObject.put("mallShareRate_"+i,grantItem.getMallShareRate()); |
|
|
|
grantItemObject.put("merchantShareRate_"+i,grantItem.getMerchantShareRate()); |
|
|
|
grantItemObject.put("realMallSharePrice_"+i,grantItem.getRealMallSharePrice()); |
|
|
|
grantItemObject.put("realMerchantSharePrice_"+i,grantItem.getRealMerchantSharePrice()); |
|
|
|
} |
|
|
|
} |
|
|
|
if(recordgrantItemCountList!= null && !recordgrantItemCountList.isEmpty()){ |
|
|
|
for (int i=0;i<recordgrantItemCountList.size();i++){ |
|
|
|
OfflineActivityGrantItemVo grantItemCount = recordgrantItemCountList.get(i); |
|
|
|
List<String> orderNos = grantItemCountRecordMap.get(grantItemCount.getGrantItemId()); |
|
|
|
grantItemObject.put("countRecords_"+i,String.join(";", orderNos)); |
|
|
|
grantItemObject.put("countAwardName_"+i,grantItemCount.getAwardName()); |
|
|
|
grantItemObject.put("countAwardCount_"+i,grantItemCount.getAwardCount()); |
|
|
|
grantItemObject.put("countAwardPrice_"+i,grantItemCount.getAwardPrice()); |
|
|
|
grantItemObject.put("countRealGrantPrice_"+i,grantItemCount.getRealGrantPrice()); |
|
|
|
grantItemObject.put("countMallShareRate_"+i,grantItemCount.getMallShareRate()); |
|
|
|
grantItemObject.put("countMerchantShareRate_"+i,grantItemCount.getMerchantShareRate()); |
|
|
|
grantItemObject.put("countRealMallSharePrice_"+i,grantItemCount.getRealMallSharePrice()); |
|
|
|
grantItemObject.put("countRealMerchantSharePrice_"+i,grantItemCount.getRealMerchantSharePrice()); |
|
|
|
} |
|
|
|
} |
|
|
|
grantItemObjectList.add(grantItemObject); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
excelService.exportExcel(exportHead, grantItemObjectList, null, "抽奖活动发放明细", "抽奖活动发放明细.xlsx",true, response); |
|
|
|
} |
|
|
|
|
|
|
|
private void grantItemGiftExport(HttpServletRequest request, HttpServletResponse response, |
|
|
|
WxOfflineActivityItem activityItem, WxOfflineActivityAwardsItem wxOfflineActivityAwardsItem){ |
|
|
|
List<ExcelExportEntity> exportHead = getGrantItemExportHead(); |
|
|
|
ExcelExportEntity entity_1 = new ExcelExportEntity("奖品名称","awardName",20); |
|
|
|
exportHead.add(entity_1); |
|
|
|
ExcelExportEntity entity_2 = new ExcelExportEntity("数量","awardCount",20); |
|
|
|
exportHead.add(entity_2); |
|
|
|
ExcelExportEntity entity_3 = new ExcelExportEntity("价值","awardPrice",20); |
|
|
|
exportHead.add(entity_3); |
|
|
|
ExcelExportEntity entity_4 = new ExcelExportEntity("商户承担比例(%)","mallShareRate",20); |
|
|
|
exportHead.add(entity_4); |
|
|
|
ExcelExportEntity entity_5 = new ExcelExportEntity("商管承担比例(%)","merchantShareRate",20); |
|
|
|
exportHead.add(entity_5); |
|
|
|
ExcelExportEntity entity_6 = new ExcelExportEntity("商户承担金额","realMallSharePrice",20); |
|
|
|
exportHead.add(entity_6); |
|
|
|
ExcelExportEntity entity_7 = new ExcelExportEntity("商管承担金额","realMerchantSharePrice",20); |
|
|
|
exportHead.add(entity_7); |
|
|
|
|
|
|
|
List<Map<String,Object>> grantItemObjectList = new ArrayList<>(); |
|
|
|
|
|
|
|
List<Long> recordIds,grantIds; |
|
|
|
//单笔订单 |
|
|
|
Map<Long, OfflineActivityGrantItemVo> grantItemMap; |
|
|
|
WxOfflineActivityGrantSettlement grantSettlement = new WxOfflineActivityGrantSettlement(); |
|
|
|
grantSettlement.updateTenantInfo(activityItem); |
|
|
|
grantSettlement.setActivityItemId(activityItem.getId()); |
|
|
|
grantSettlement.setAwardItamId(wxOfflineActivityAwardsItem.getId()); |
|
|
|
List<OfflineActivityGrantItemVo> grantItemList = wxOfflineActivityGrantSettlementMapper.findAwardItemGrantList(grantSettlement); |
|
|
|
|
|
|
|
if(grantItemList != null && !grantItemList.isEmpty()){ |
|
|
|
List<Long> recordIds = grantItemList.stream().map(OfflineActivityGrantItemVo::getRecordId).distinct().collect(toList()); |
|
|
|
List<WxOfflineActivityRecord> recordList = wxOfflineActivityRecordService.selectListByIds(recordIds,activityItem); |
|
|
|
grantItemMap = grantItemList.stream().collect(toMap(OfflineActivityGrantItemVo::getRecordId, Function.identity())); |
|
|
|
recordIds = new ArrayList<>(grantItemMap.keySet()); |
|
|
|
grantIds = grantItemList.stream().map(OfflineActivityGrantItemVo::getGrantId).distinct().collect(toList()); |
|
|
|
//订单表头 |
|
|
|
ExcelExportEntity entity_1 = new ExcelExportEntity("订单奖品名称","awardName",20); |
|
|
|
exportHead.add(entity_1); |
|
|
|
ExcelExportEntity entity_2 = new ExcelExportEntity("订单奖品数量","awardCount",20); |
|
|
|
exportHead.add(entity_2); |
|
|
|
ExcelExportEntity entity_3 = new ExcelExportEntity("订单奖品价值","awardPrice",20); |
|
|
|
exportHead.add(entity_3); |
|
|
|
ExcelExportEntity entity_4 = new ExcelExportEntity("商户承担比例(%)","mallShareRate",20); |
|
|
|
exportHead.add(entity_4); |
|
|
|
ExcelExportEntity entity_5 = new ExcelExportEntity("商管承担比例(%)","merchantShareRate",20); |
|
|
|
exportHead.add(entity_5); |
|
|
|
ExcelExportEntity entity_6 = new ExcelExportEntity("商户承担金额","realMallSharePrice",20); |
|
|
|
exportHead.add(entity_6); |
|
|
|
ExcelExportEntity entity_7 = new ExcelExportEntity("商管承担金额","realMerchantSharePrice",20); |
|
|
|
exportHead.add(entity_7); |
|
|
|
}else{ |
|
|
|
grantItemMap = new HashMap<>(); |
|
|
|
recordIds = new ArrayList<>(); |
|
|
|
grantIds = new ArrayList<>(); |
|
|
|
} |
|
|
|
//联单 |
|
|
|
Map<Long, OfflineActivityGrantItemVo> grantItemCountMap; |
|
|
|
Map<Long, List<String>> grantItemCountRecordMap; |
|
|
|
List<OfflineActivityGrantItemVo> grantItemCountList = wxOfflineActivityGrantSettlementMapper.findAwardItemGrantCountList(grantSettlement); |
|
|
|
if(grantItemCountList != null && !grantItemCountList.isEmpty()){ |
|
|
|
grantItemCountRecordMap = grantItemCountList.stream().collect(groupingBy(OfflineActivityGrantItemVo::getGrantItemId,Collectors.mapping(OfflineActivityGrantItemVo::getOrderNo,Collectors.toList()))); |
|
|
|
grantItemCountMap = grantItemCountList.stream().collect(toMap(OfflineActivityGrantItemVo::getRecordId, Function.identity())); |
|
|
|
List<Long> recordCountIds = grantItemCountList.stream().map(OfflineActivityGrantItemVo::getRecordId).distinct().collect(toList()); |
|
|
|
recordIds.addAll(recordCountIds); |
|
|
|
List<Long> grantCountIds = grantItemCountList.stream().map(OfflineActivityGrantItemVo::getGrantId).distinct().collect(toList()); |
|
|
|
grantIds.addAll(grantCountIds); |
|
|
|
|
|
|
|
//联单表头 |
|
|
|
ExcelExportEntity entityC_1 = new ExcelExportEntity("联单订单","countRecords",20); |
|
|
|
exportHead.add(entityC_1); |
|
|
|
ExcelExportEntity entityC_2 = new ExcelExportEntity("联单奖品名称","countAwardName",20); |
|
|
|
exportHead.add(entityC_2); |
|
|
|
ExcelExportEntity entityC_3 = new ExcelExportEntity("联单奖品数量","countAwardCount",20); |
|
|
|
exportHead.add(entityC_3); |
|
|
|
ExcelExportEntity entityC_4 = new ExcelExportEntity("联单奖品价值","countAwardPrice",20); |
|
|
|
exportHead.add(entityC_4); |
|
|
|
ExcelExportEntity entityC_5 = new ExcelExportEntity("联单实际承担价值","countRealGrantPrice",20); |
|
|
|
exportHead.add(entityC_5); |
|
|
|
ExcelExportEntity entityC_6 = new ExcelExportEntity("商户承担比例(%)","countMallShareRate",20); |
|
|
|
exportHead.add(entityC_6); |
|
|
|
ExcelExportEntity entityC_7 = new ExcelExportEntity("商管承担比例(%)","countMerchantShareRate",20); |
|
|
|
exportHead.add(entityC_7); |
|
|
|
ExcelExportEntity entityC_8 = new ExcelExportEntity("商户承担金额","countRealMallSharePrice",20); |
|
|
|
exportHead.add(entityC_8); |
|
|
|
ExcelExportEntity entityC_9 = new ExcelExportEntity("商管承担金额","countRealMerchantSharePrice",20); |
|
|
|
exportHead.add(entityC_9); |
|
|
|
}else{ |
|
|
|
grantItemCountRecordMap = new HashMap<>(); |
|
|
|
grantItemCountMap = new HashMap<>(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<Map<String,Object>> grantItemObjectList = new ArrayList<>(); |
|
|
|
if(!recordIds.isEmpty()) { |
|
|
|
List<WxOfflineActivityRecord> recordList = wxOfflineActivityRecordService.selectListByIds(recordIds, activityItem); |
|
|
|
Map<Long, WxOfflineActivityRecord> recordMap = recordList.stream().collect(toMap(WxOfflineActivityRecord::getId, Function.identity())); |
|
|
|
List<Long> grantIds = grantItemList.stream().map(OfflineActivityGrantItemVo::getGrantId).distinct().collect(toList()); |
|
|
|
List<WxOfflineActivityGrantAward> grantList = this.selectListByIds(grantIds,activityItem); |
|
|
|
|
|
|
|
List<WxOfflineActivityGrantAward> grantList = this.selectListByIds(grantIds, activityItem); |
|
|
|
Map<Long, WxOfflineActivityGrantAward> grantMap = grantList.stream().collect(toMap(WxOfflineActivityGrantAward::getId, Function.identity())); |
|
|
|
grantItemList.forEach(grantItem->{ |
|
|
|
WxOfflineActivityRecord record = recordMap.get(grantItem.getRecordId()); |
|
|
|
WxOfflineActivityGrantAward grant = grantMap.get(grantItem.getGrantId()); |
|
|
|
Map<String,Object> grantItemObject= getGrantItemExportObject(record,grant); |
|
|
|
grantItemObject.put("awardName",grantItem.getAwardName()); |
|
|
|
grantItemObject.put("awardCount",grantItem.getAwardCount()); |
|
|
|
grantItemObject.put("awardPrice",grantItem.getAwardPrice()); |
|
|
|
grantItemObject.put("mallShareRate",grantItem.getMallShareRate()); |
|
|
|
grantItemObject.put("merchantShareRate",grantItem.getMerchantShareRate()); |
|
|
|
grantItemObject.put("realMallSharePrice",grantItem.getRealMallSharePrice()); |
|
|
|
grantItemObject.put("realMerchantSharePrice",grantItem.getRealMerchantSharePrice()); |
|
|
|
|
|
|
|
recordIds.forEach(recordId -> { |
|
|
|
OfflineActivityGrantItemVo grantItem = grantItemMap.get(recordId); |
|
|
|
OfflineActivityGrantItemVo grantItemCount = grantItemCountMap.get(recordId); |
|
|
|
Long grantId; |
|
|
|
if(grantItem != null){ |
|
|
|
grantId = grantItem.getGrantId(); |
|
|
|
}else{ |
|
|
|
grantId = grantItemCount.getGrantId(); |
|
|
|
} |
|
|
|
WxOfflineActivityRecord record = recordMap.get(recordId); |
|
|
|
WxOfflineActivityGrantAward grant = grantMap.get(grantId); |
|
|
|
|
|
|
|
Map<String,Object> grantItemObject= getGrantItemExportObject(record,grant); |
|
|
|
if(grantItem != null){ |
|
|
|
grantItemObject.put("awardName",grantItem.getAwardName()); |
|
|
|
grantItemObject.put("awardCount",grantItem.getAwardCount()); |
|
|
|
grantItemObject.put("awardPrice",grantItem.getAwardPrice()); |
|
|
|
grantItemObject.put("mallShareRate",grantItem.getMallShareRate()); |
|
|
|
grantItemObject.put("merchantShareRate",grantItem.getMerchantShareRate()); |
|
|
|
grantItemObject.put("realMallSharePrice",grantItem.getRealMallSharePrice()); |
|
|
|
grantItemObject.put("realMerchantSharePrice",grantItem.getRealMerchantSharePrice()); |
|
|
|
} |
|
|
|
if(grantItemCount != null){ |
|
|
|
List<String> orderNos = grantItemCountRecordMap.get(grantItemCount.getGrantItemId()); |
|
|
|
grantItemObject.put("countRecords",String.join(";", orderNos)); |
|
|
|
grantItemObject.put("countAwardName",grantItemCount.getAwardName()); |
|
|
|
grantItemObject.put("countAwardCount",grantItemCount.getAwardCount()); |
|
|
|
grantItemObject.put("countAwardPrice",grantItemCount.getAwardPrice()); |
|
|
|
grantItemObject.put("countRealGrantPrice",grantItemCount.getRealGrantPrice()); |
|
|
|
grantItemObject.put("countMallShareRate",grantItemCount.getMallShareRate()); |
|
|
|
grantItemObject.put("countMerchantShareRate",grantItemCount.getMerchantShareRate()); |
|
|
|
grantItemObject.put("countRealMallSharePrice",grantItemCount.getRealMallSharePrice()); |
|
|
|
grantItemObject.put("countRealMerchantSharePrice",grantItemCount.getRealMerchantSharePrice()); |
|
|
|
} |
|
|
|
grantItemObjectList.add(grantItemObject); |
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
excelService.exportExcel(exportHead, grantItemObjectList, null, "赠礼活动发放明细", "赠礼活动发放明细.xlsx",true, response); |
|
|
|
@@ -1677,51 +1822,136 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity |
|
|
|
private void grantItemCashbackExport(HttpServletRequest request, HttpServletResponse response, |
|
|
|
WxOfflineActivityItem activityItem, WxOfflineActivityAwardsItem wxOfflineActivityAwardsItem){ |
|
|
|
List<ExcelExportEntity> exportHead = getGrantItemExportHead(); |
|
|
|
ExcelExportEntity entity_1 = new ExcelExportEntity("返现名称","awardName",20); |
|
|
|
exportHead.add(entity_1); |
|
|
|
// ExcelExportEntity entity_2 = new ExcelExportEntity("数量","awardCount",20); |
|
|
|
// exportHead.add(entity_2); |
|
|
|
ExcelExportEntity entity_2 = new ExcelExportEntity("返现比例(%)","cashBackRatio",20); |
|
|
|
exportHead.add(entity_2); |
|
|
|
ExcelExportEntity entity_3 = new ExcelExportEntity("返现金额","awardPrice",20); |
|
|
|
exportHead.add(entity_3); |
|
|
|
ExcelExportEntity entity_4 = new ExcelExportEntity("商户承担比例(%)","mallShareRate",20); |
|
|
|
exportHead.add(entity_4); |
|
|
|
ExcelExportEntity entity_5 = new ExcelExportEntity("商管承担比例(%)","merchantShareRate",20); |
|
|
|
exportHead.add(entity_5); |
|
|
|
ExcelExportEntity entity_6 = new ExcelExportEntity("商户承担金额","realMallSharePrice",20); |
|
|
|
exportHead.add(entity_6); |
|
|
|
ExcelExportEntity entity_7 = new ExcelExportEntity("商管承担金额","realMerchantSharePrice",20); |
|
|
|
exportHead.add(entity_7); |
|
|
|
|
|
|
|
List<Map<String,Object>> grantItemObjectList = new ArrayList<>(); |
|
|
|
|
|
|
|
List<Long> recordIds,grantIds; |
|
|
|
//单笔订单 |
|
|
|
Map<Long, OfflineActivityGrantItemVo> grantItemMap; |
|
|
|
WxOfflineActivityGrantSettlement grantSettlement = new WxOfflineActivityGrantSettlement(); |
|
|
|
grantSettlement.updateTenantInfo(activityItem); |
|
|
|
grantSettlement.setActivityItemId(activityItem.getId()); |
|
|
|
grantSettlement.setAwardItamId(wxOfflineActivityAwardsItem.getId()); |
|
|
|
List<OfflineActivityGrantItemVo> grantItemList = wxOfflineActivityGrantSettlementMapper.findAwardItemGrantList(grantSettlement); |
|
|
|
|
|
|
|
if(grantItemList != null && !grantItemList.isEmpty()){ |
|
|
|
List<Long> recordIds = grantItemList.stream().map(OfflineActivityGrantItemVo::getRecordId).distinct().collect(toList()); |
|
|
|
List<WxOfflineActivityRecord> recordList = wxOfflineActivityRecordService.selectListByIds(recordIds,activityItem); |
|
|
|
grantItemMap = grantItemList.stream().collect(toMap(OfflineActivityGrantItemVo::getRecordId, Function.identity())); |
|
|
|
recordIds = new ArrayList<>(grantItemMap.keySet()); |
|
|
|
grantIds = grantItemList.stream().map(OfflineActivityGrantItemVo::getGrantId).distinct().collect(toList()); |
|
|
|
//订单表头 |
|
|
|
ExcelExportEntity entity_1 = new ExcelExportEntity("订单返现名称","awardName",20); |
|
|
|
exportHead.add(entity_1); |
|
|
|
// ExcelExportEntity entity_2 = new ExcelExportEntity("数量","awardCount",20); |
|
|
|
// exportHead.add(entity_2); |
|
|
|
ExcelExportEntity entity_2 = new ExcelExportEntity("订单返现比例(%)","cashBackRatio",20); |
|
|
|
exportHead.add(entity_2); |
|
|
|
ExcelExportEntity entity_3 = new ExcelExportEntity("订单返现金额","awardPrice",20); |
|
|
|
exportHead.add(entity_3); |
|
|
|
ExcelExportEntity entity_4 = new ExcelExportEntity("商户承担比例(%)","mallShareRate",20); |
|
|
|
exportHead.add(entity_4); |
|
|
|
ExcelExportEntity entity_5 = new ExcelExportEntity("商管承担比例(%)","merchantShareRate",20); |
|
|
|
exportHead.add(entity_5); |
|
|
|
ExcelExportEntity entity_6 = new ExcelExportEntity("商户承担金额","realMallSharePrice",20); |
|
|
|
exportHead.add(entity_6); |
|
|
|
ExcelExportEntity entity_7 = new ExcelExportEntity("商管承担金额","realMerchantSharePrice",20); |
|
|
|
exportHead.add(entity_7); |
|
|
|
ExcelExportEntity entity_8 = new ExcelExportEntity("税点金额起点","startingTaxPoint",20); |
|
|
|
exportHead.add(entity_8); |
|
|
|
ExcelExportEntity entity_9 = new ExcelExportEntity("税点比例(%)","taxPoints",20); |
|
|
|
exportHead.add(entity_9); |
|
|
|
ExcelExportEntity entity_10 = new ExcelExportEntity("税点金额","taxPointsAmount",20); |
|
|
|
exportHead.add(entity_10); |
|
|
|
ExcelExportEntity entity_11 = new ExcelExportEntity("实际返现金额","realCashBackPrice",20); |
|
|
|
exportHead.add(entity_11); |
|
|
|
}else{ |
|
|
|
grantItemMap = new HashMap<>(); |
|
|
|
recordIds = new ArrayList<>(); |
|
|
|
grantIds = new ArrayList<>(); |
|
|
|
} |
|
|
|
//联单 |
|
|
|
Map<Long, OfflineActivityGrantItemVo> grantItemCountMap; |
|
|
|
Map<Long, List<String>> grantItemCountRecordMap; |
|
|
|
List<OfflineActivityGrantItemVo> grantItemCountList = wxOfflineActivityGrantSettlementMapper.findAwardItemGrantCountList(grantSettlement); |
|
|
|
if(grantItemCountList != null && !grantItemCountList.isEmpty()){ |
|
|
|
grantItemCountRecordMap = grantItemCountList.stream().collect(groupingBy(OfflineActivityGrantItemVo::getGrantItemId,Collectors.mapping(OfflineActivityGrantItemVo::getOrderNo,Collectors.toList()))); |
|
|
|
grantItemCountMap = grantItemCountList.stream().collect(toMap(OfflineActivityGrantItemVo::getRecordId, Function.identity())); |
|
|
|
List<Long> recordCountIds = grantItemCountList.stream().map(OfflineActivityGrantItemVo::getRecordId).distinct().collect(toList()); |
|
|
|
recordIds.addAll(recordCountIds); |
|
|
|
List<Long> grantCountIds = grantItemCountList.stream().map(OfflineActivityGrantItemVo::getGrantId).distinct().collect(toList()); |
|
|
|
grantIds.addAll(grantCountIds); |
|
|
|
|
|
|
|
//联单表头 |
|
|
|
ExcelExportEntity entityC_1 = new ExcelExportEntity("联单订单","countRecords",20); |
|
|
|
exportHead.add(entityC_1); |
|
|
|
ExcelExportEntity entityC_2 = new ExcelExportEntity("联单返现名称","countAwardName",20); |
|
|
|
exportHead.add(entityC_2); |
|
|
|
// ExcelExportEntity entityC_3 = new ExcelExportEntity("联单数量","countAwardCount",20); |
|
|
|
// exportHead.add(entityC_3); |
|
|
|
ExcelExportEntity entityC_3 = new ExcelExportEntity("联单返现比例(%)","countCashBackRatio",20); |
|
|
|
exportHead.add(entityC_3); |
|
|
|
ExcelExportEntity entityC_4 = new ExcelExportEntity("联单返现金额","countAwardPrice",20); |
|
|
|
exportHead.add(entityC_4); |
|
|
|
ExcelExportEntity entityC_5 = new ExcelExportEntity("联单实际承担金额","countRealGrantPrice",20); |
|
|
|
exportHead.add(entityC_5); |
|
|
|
ExcelExportEntity entityC_6 = new ExcelExportEntity("商户承担比例(%)","countMallShareRate",20); |
|
|
|
exportHead.add(entityC_6); |
|
|
|
ExcelExportEntity entityC_7 = new ExcelExportEntity("商管承担比例(%)","countMerchantShareRate",20); |
|
|
|
exportHead.add(entityC_7); |
|
|
|
ExcelExportEntity entityC_8 = new ExcelExportEntity("商户承担金额","countRealMallSharePrice",20); |
|
|
|
exportHead.add(entityC_8); |
|
|
|
ExcelExportEntity entityC_9 = new ExcelExportEntity("商管承担金额","countRealMerchantSharePrice",20); |
|
|
|
exportHead.add(entityC_9); |
|
|
|
}else{ |
|
|
|
grantItemCountRecordMap = new HashMap<>(); |
|
|
|
grantItemCountMap = new HashMap<>(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<Map<String,Object>> grantItemObjectList = new ArrayList<>(); |
|
|
|
if(!recordIds.isEmpty()) { |
|
|
|
List<WxOfflineActivityRecord> recordList = wxOfflineActivityRecordService.selectListByIds(recordIds, activityItem); |
|
|
|
Map<Long, WxOfflineActivityRecord> recordMap = recordList.stream().collect(toMap(WxOfflineActivityRecord::getId, Function.identity())); |
|
|
|
List<Long> grantIds = grantItemList.stream().map(OfflineActivityGrantItemVo::getGrantId).distinct().collect(toList()); |
|
|
|
List<WxOfflineActivityGrantAward> grantList = this.selectListByIds(grantIds,activityItem); |
|
|
|
|
|
|
|
List<WxOfflineActivityGrantAward> grantList = this.selectListByIds(grantIds, activityItem); |
|
|
|
Map<Long, WxOfflineActivityGrantAward> grantMap = grantList.stream().collect(toMap(WxOfflineActivityGrantAward::getId, Function.identity())); |
|
|
|
grantItemList.forEach(grantItem->{ |
|
|
|
WxOfflineActivityRecord record = recordMap.get(grantItem.getRecordId()); |
|
|
|
WxOfflineActivityGrantAward grant = grantMap.get(grantItem.getGrantId()); |
|
|
|
|
|
|
|
recordIds.forEach(recordId -> { |
|
|
|
OfflineActivityGrantItemVo grantItem = grantItemMap.get(recordId); |
|
|
|
OfflineActivityGrantItemVo grantItemCount = grantItemCountMap.get(recordId); |
|
|
|
Long grantId; |
|
|
|
if(grantItem != null){ |
|
|
|
grantId = grantItem.getGrantId(); |
|
|
|
}else{ |
|
|
|
grantId = grantItemCount.getGrantId(); |
|
|
|
} |
|
|
|
WxOfflineActivityRecord record = recordMap.get(recordId); |
|
|
|
WxOfflineActivityGrantAward grant = grantMap.get(grantId); |
|
|
|
|
|
|
|
Map<String,Object> grantItemObject= getGrantItemExportObject(record,grant); |
|
|
|
grantItemObject.put("awardName",grantItem.getAwardName()); |
|
|
|
if(grantItem != null){ |
|
|
|
grantItemObject.put("awardName",grantItem.getAwardName()); |
|
|
|
// grantItemObject.put("awardCount",grantItem.getAwardCount()); |
|
|
|
grantItemObject.put("cashBackRatio",grantItem.getCashBackRatio()); |
|
|
|
grantItemObject.put("awardPrice",grantItem.getAwardPrice()); |
|
|
|
grantItemObject.put("mallShareRate",grantItem.getMallShareRate()); |
|
|
|
grantItemObject.put("merchantShareRate",grantItem.getMerchantShareRate()); |
|
|
|
grantItemObject.put("realMallSharePrice",grantItem.getRealMallSharePrice()); |
|
|
|
grantItemObject.put("realMerchantSharePrice",grantItem.getRealMerchantSharePrice()); |
|
|
|
|
|
|
|
grantItemObject.put("cashBackRatio",grantItem.getCashBackRatio()); |
|
|
|
grantItemObject.put("awardPrice",grantItem.getAwardPrice()); |
|
|
|
grantItemObject.put("mallShareRate",grantItem.getMallShareRate()); |
|
|
|
grantItemObject.put("merchantShareRate",grantItem.getMerchantShareRate()); |
|
|
|
grantItemObject.put("realMallSharePrice",grantItem.getRealMallSharePrice()); |
|
|
|
grantItemObject.put("realMerchantSharePrice",grantItem.getRealMerchantSharePrice()); |
|
|
|
grantItemObject.put("startingTaxPoint",grantItem.getStartingTaxPoint()); |
|
|
|
grantItemObject.put("taxPoints",grantItem.getTaxPoints()); |
|
|
|
grantItemObject.put("taxPointsAmount",grantItem.getTaxPointsAmount()); |
|
|
|
grantItemObject.put("realCashBackPrice",grantItem.getAwardPrice().subtract(grantItem.getTaxPointsAmount())); |
|
|
|
} |
|
|
|
if(grantItemCount != null){ |
|
|
|
List<String> orderNos = grantItemCountRecordMap.get(grantItemCount.getGrantItemId()); |
|
|
|
grantItemObject.put("countRecords",String.join(";", orderNos)); |
|
|
|
grantItemObject.put("countAwardName",grantItemCount.getAwardName()); |
|
|
|
// grantItemObject.put("countAwardCount",grantItemCount.getAwardCount()); |
|
|
|
grantItemObject.put("countCashBackRatio",grantItemCount.getCashBackRatio()); |
|
|
|
grantItemObject.put("countAwardPrice",grantItemCount.getAwardPrice()); |
|
|
|
grantItemObject.put("countRealGrantPrice",grantItemCount.getRealGrantPrice()); |
|
|
|
grantItemObject.put("countMallShareRate",grantItemCount.getMallShareRate()); |
|
|
|
grantItemObject.put("countMerchantShareRate",grantItemCount.getMerchantShareRate()); |
|
|
|
grantItemObject.put("countRealMallSharePrice",grantItemCount.getRealMallSharePrice()); |
|
|
|
grantItemObject.put("countRealMerchantSharePrice",grantItemCount.getRealMerchantSharePrice()); |
|
|
|
} |
|
|
|
grantItemObjectList.add(grantItemObject); |
|
|
|
}); |
|
|
|
} |
|
|
|
|