| @@ -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(); | |||
| } | |||
| } | |||
| } | |||
| //签单=总订单数 | |||