From 8e640fe8c612f77264cb76e64e1e6e77aa3199b0 Mon Sep 17 00:00:00 2001 From: xiaohu <1901900812@qq.com> Date: Fri, 4 Oct 2024 02:30:40 +0800 Subject: [PATCH] //legionActivity --- .../WxLegionActivityOrderServiceImpl.java | 62 ++++++++++++------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java index 70f9d1dac..156a941b4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java @@ -380,33 +380,45 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe throw new MallinkException(Result.ERROR,"未查询到活动"); } + List merchantIds = new ArrayList<>(); + + //用户 + WxLegionActivityUser userQ = new WxLegionActivityUser(); + userQ.updateTenantInfo(activity); + userQ.setActivityId(activity.getId()); + userQ.setStatus(EnumLegionActivityUserStatus.VALID.getCode()); + List merchantCountStatistics = wxLegionActivityUserMapper.merchantCountStatistics(userQ); + Map 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 merchantStatistics = wxLegionActivityOrderMapper.merchantStatistics(orderQ); - if(merchantStatistics == null || merchantStatistics.isEmpty()){ + Map> 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 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 idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); - Map merchantShopNumberMap = wxShopService.getMerchantShopNumberMap(activity, merchantIds, EnumYesOrNo.NO.getCode()); - - Map> merchantStatisticsMap = merchantStatistics.stream().collect(groupingBy(LegionActivityOrderTypeStatistics::getMerchantId)); - - WxLegionActivityUser userQ = new WxLegionActivityUser(); - userQ.updateTenantInfo(activity); - userQ.setActivityId(activity.getId()); - userQ.setStatus(EnumLegionActivityUserStatus.VALID.getCode()); - List merchantCountStatistics = wxLegionActivityUserMapper.merchantCountStatistics(userQ); - Map merchantCountStatisticsMap = merchantCountStatistics.stream().collect(Collectors.toMap(LegionActivityUserStatistics::getMerchantId, LegionActivityUserStatistics::getCount)); + Map merchantShopNumberMap = wxShopService.getMerchantShopNumberMap(activity, merchantIds, EnumYesOrNo.NO.getCode()); List 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(); + } } } //签单=总订单数