| @@ -380,33 +380,45 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||||
| throw new MallinkException(Result.ERROR,"未查询到活动"); | 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(); | WxLegionActivityOrder orderQ = new WxLegionActivityOrder(); | ||||
| orderQ.updateTenantInfo(activity); | orderQ.updateTenantInfo(activity); | ||||
| orderQ.setActivityId(activity.getId()); | orderQ.setActivityId(activity.getId()); | ||||
| orderQ.setAuditStatus(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode()); | orderQ.setAuditStatus(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode()); | ||||
| List<LegionActivityOrderTypeStatistics> merchantStatistics = wxLegionActivityOrderMapper.merchantStatistics(orderQ); | 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(); | 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(); | WxMerchant merchantQ = new WxMerchant(); | ||||
| merchantQ.updateTenantInfo(activity); | merchantQ.updateTenantInfo(activity); | ||||
| merchantQ.setIds(merchantIds); | merchantQ.setIds(merchantIds); | ||||
| Map<Long, String> idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); | 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<>(); | List<LegionActivityMerchantStatistics> merchantStatisticsList = new ArrayList<>(); | ||||
| for (Long merchantId : merchantStatisticsMap.keySet()) { | |||||
| for (Long merchantId : idAndNamesMap.keySet()) { | |||||
| LegionActivityMerchantStatistics merchantS = new LegionActivityMerchantStatistics(); | LegionActivityMerchantStatistics merchantS = new LegionActivityMerchantStatistics(); | ||||
| merchantS.setMerchantId(merchantId); | merchantS.setMerchantId(merchantId); | ||||
| merchantS.setMerchantName(idAndNamesMap.get(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); | Integer userCount = merchantCountStatisticsMap.get(merchantId)==null?0:merchantCountStatisticsMap.get(merchantId); | ||||
| merchantS.setUserCount(userCount); | merchantS.setUserCount(userCount); | ||||
| Integer sign_order = 0,dif_legion = 0,dif_union = 0,eq_union = 0,not_union = 0; | 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(); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| //签单=总订单数 | //签单=总订单数 | ||||