|
|
|
@@ -380,33 +380,45 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe |
|
|
|
throw new MallinkException(Result.ERROR,"未查询到活动"); |
|
|
|
} |
|
|
|
|
|
|
|
List<Long> merchantIds = new ArrayList<>(); |
|
|
|
|
|
|
|
//用户 |
|
|
|
WxLegionActivityUser userQ = new WxLegionActivityUser(); |
|
|
|
userQ.updateTenantInfo(activity); |
|
|
|
userQ.setActivityId(activity.getId()); |
|
|
|
userQ.setStatus(EnumLegionActivityUserStatus.VALID.getCode()); |
|
|
|
List<LegionActivityUserStatistics> merchantCountStatistics = wxLegionActivityUserMapper.merchantCountStatistics(userQ); |
|
|
|
Map<Long, Integer> merchantCountStatisticsMap = new HashMap<>(); |
|
|
|
if(merchantCountStatistics != null && !merchantCountStatistics.isEmpty()){ |
|
|
|
merchantIds.addAll(merchantCountStatistics.stream().map(LegionActivityUserStatistics::getMerchantId).distinct().collect(Collectors.toList())); |
|
|
|
merchantCountStatisticsMap = merchantCountStatistics.stream().collect(Collectors.toMap(LegionActivityUserStatistics::getMerchantId, LegionActivityUserStatistics::getCount)); |
|
|
|
} |
|
|
|
|
|
|
|
//订单 |
|
|
|
WxLegionActivityOrder orderQ = new WxLegionActivityOrder(); |
|
|
|
orderQ.updateTenantInfo(activity); |
|
|
|
orderQ.setActivityId(activity.getId()); |
|
|
|
orderQ.setAuditStatus(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode()); |
|
|
|
List<LegionActivityOrderTypeStatistics> merchantStatistics = wxLegionActivityOrderMapper.merchantStatistics(orderQ); |
|
|
|
if(merchantStatistics == null || merchantStatistics.isEmpty()){ |
|
|
|
Map<Long, List<LegionActivityOrderTypeStatistics>> merchantStatisticsMap = new HashMap<>(); |
|
|
|
if(merchantStatistics != null && !merchantStatistics.isEmpty()){ |
|
|
|
merchantIds.addAll(merchantStatistics.stream().map(LegionActivityOrderTypeStatistics::getMerchantId).distinct().collect(Collectors.toList())); |
|
|
|
merchantStatisticsMap = merchantStatistics.stream().collect(groupingBy(LegionActivityOrderTypeStatistics::getMerchantId)); |
|
|
|
} |
|
|
|
if(merchantIds.isEmpty()){ |
|
|
|
return Collections.emptyList(); |
|
|
|
} |
|
|
|
|
|
|
|
List<Long> merchantIds = merchantStatistics.stream().map(LegionActivityOrderTypeStatistics::getMerchantId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); |
|
|
|
merchantIds = merchantIds.stream().distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
WxMerchant merchantQ = new WxMerchant(); |
|
|
|
merchantQ.updateTenantInfo(activity); |
|
|
|
merchantQ.setIds(merchantIds); |
|
|
|
Map<Long, String> idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); |
|
|
|
Map<Long,String> merchantShopNumberMap = wxShopService.getMerchantShopNumberMap(activity, merchantIds, EnumYesOrNo.NO.getCode()); |
|
|
|
|
|
|
|
Map<Long, List<LegionActivityOrderTypeStatistics>> merchantStatisticsMap = merchantStatistics.stream().collect(groupingBy(LegionActivityOrderTypeStatistics::getMerchantId)); |
|
|
|
|
|
|
|
WxLegionActivityUser userQ = new WxLegionActivityUser(); |
|
|
|
userQ.updateTenantInfo(activity); |
|
|
|
userQ.setActivityId(activity.getId()); |
|
|
|
userQ.setStatus(EnumLegionActivityUserStatus.VALID.getCode()); |
|
|
|
List<LegionActivityUserStatistics> merchantCountStatistics = wxLegionActivityUserMapper.merchantCountStatistics(userQ); |
|
|
|
Map<Long, Integer> merchantCountStatisticsMap = merchantCountStatistics.stream().collect(Collectors.toMap(LegionActivityUserStatistics::getMerchantId, LegionActivityUserStatistics::getCount)); |
|
|
|
Map<Long, String> merchantShopNumberMap = wxShopService.getMerchantShopNumberMap(activity, merchantIds, EnumYesOrNo.NO.getCode()); |
|
|
|
|
|
|
|
List<LegionActivityMerchantStatistics> merchantStatisticsList = new ArrayList<>(); |
|
|
|
for (Long merchantId : merchantStatisticsMap.keySet()) { |
|
|
|
for (Long merchantId : idAndNamesMap.keySet()) { |
|
|
|
LegionActivityMerchantStatistics merchantS = new LegionActivityMerchantStatistics(); |
|
|
|
merchantS.setMerchantId(merchantId); |
|
|
|
merchantS.setMerchantName(idAndNamesMap.get(merchantId)); |
|
|
|
@@ -414,17 +426,19 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe |
|
|
|
Integer userCount = merchantCountStatisticsMap.get(merchantId)==null?0:merchantCountStatisticsMap.get(merchantId); |
|
|
|
merchantS.setUserCount(userCount); |
|
|
|
Integer sign_order = 0,dif_legion = 0,dif_union = 0,eq_union = 0,not_union = 0; |
|
|
|
for(LegionActivityOrderTypeStatistics statistics : merchantStatisticsMap.get(merchantId)){ |
|
|
|
if(EnumLegionActivityOrderType.SIGN_ORDER.getCode().equals(statistics.getOrderType())){ |
|
|
|
sign_order = statistics.getCount(); |
|
|
|
}else if (EnumLegionActivityOrderType.DIF_LEGION.getCode().equals(statistics.getOrderType())){ |
|
|
|
dif_legion = statistics.getCount(); |
|
|
|
}else if(EnumLegionActivityOrderType.DIF_UNION.getCode().equals(statistics.getOrderType())){ |
|
|
|
dif_union = statistics.getCount(); |
|
|
|
}else if(EnumLegionActivityOrderType.EQ_UNION.getCode().equals(statistics.getOrderType())){ |
|
|
|
eq_union = statistics.getCount(); |
|
|
|
}else if(EnumLegionActivityOrderType.NOT_UNION.getCode().equals(statistics.getOrderType())){ |
|
|
|
not_union = statistics.getCount(); |
|
|
|
if(merchantStatisticsMap.get(merchantId) != null){ |
|
|
|
for(LegionActivityOrderTypeStatistics statistics : merchantStatisticsMap.get(merchantId)){ |
|
|
|
if(EnumLegionActivityOrderType.SIGN_ORDER.getCode().equals(statistics.getOrderType())){ |
|
|
|
sign_order = statistics.getCount(); |
|
|
|
}else if (EnumLegionActivityOrderType.DIF_LEGION.getCode().equals(statistics.getOrderType())){ |
|
|
|
dif_legion = statistics.getCount(); |
|
|
|
}else if(EnumLegionActivityOrderType.DIF_UNION.getCode().equals(statistics.getOrderType())){ |
|
|
|
dif_union = statistics.getCount(); |
|
|
|
}else if(EnumLegionActivityOrderType.EQ_UNION.getCode().equals(statistics.getOrderType())){ |
|
|
|
eq_union = statistics.getCount(); |
|
|
|
}else if(EnumLegionActivityOrderType.NOT_UNION.getCode().equals(statistics.getOrderType())){ |
|
|
|
not_union = statistics.getCount(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
//签单=总订单数 |
|
|
|
|