From 8a25712b7efd33d04337e121e5ddc479c779a8c7 Mon Sep 17 00:00:00 2001 From: xiaohu <1901900812@qq.com> Date: Thu, 16 Jan 2025 00:33:23 +0800 Subject: [PATCH 1/2] //Activitybug --- .../service/impl/WxLegionActivityOrderServiceImpl.java | 4 ++++ 1 file changed, 4 insertions(+) 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 b8ea9afe6..6146e537d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java @@ -205,6 +205,10 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe if(StringUtil.isBlank(wxLegionActivityOrder.getCusAddress())){ wxLegionActivityOrder.setCusAddress(user.getAddress()); } + wxLegionActivityOrder.setCusMerchantId(user.getMerchantId()); + wxLegionActivityOrder.setCusLegionId(user.getLegionId()); + wxLegionActivityOrder.setCusUnionId(user.getUnionId()); + WxLegionActivityMerchantConfig merchantConfigQuery = new WxLegionActivityMerchantConfig(); merchantConfigQuery.updateTenantInfo(wxLegionActivityOrder); merchantConfigQuery.setActivityId(wxLegionActivityOrder.getActivityId()); From e0a3950d62e1b3b4f7cc4ce198e1e032b7d36a99 Mon Sep 17 00:00:00 2001 From: xiaohu <1901900812@qq.com> Date: Sun, 19 Jan 2025 23:21:40 +0800 Subject: [PATCH 2/2] //legion --- .../vo/LegionActivityOrderTypeStatistics.java | 2 + .../mapper/WxLegionActivityOrderMapper.java | 9 ++ .../WxLegionActivityOrderServiceImpl.java | 83 +++++++++--- .../mapper/WxLegionActivityOrderMapper.xml | 118 ++++++++++++++++++ 4 files changed, 197 insertions(+), 15 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderTypeStatistics.java b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderTypeStatistics.java index f8e515369..0b79bcc9b 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderTypeStatistics.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderTypeStatistics.java @@ -9,6 +9,8 @@ public class LegionActivityOrderTypeStatistics implements Serializable { private static final long serialVersionUID = 1L; + private Long merchantId; + private Long legionId; private Long cusMerchantId; private Long cusLegionId; private Integer orderType; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOrderMapper.java index da6d27c58..df1b2e22a 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOrderMapper.java @@ -26,17 +26,26 @@ public interface WxLegionActivityOrderMapper extends CommonMapper orderTypeStatistics(WxLegionActivityOrder wxLegionActivityOrder); + List merchantOrderCount(WxLegionActivityOrder wxLegionActivityOrder); + List merchantStatistics(WxLegionActivityOrder wxLegionActivityOrder); + List legionOrderCount(WxLegionActivityOrder wxLegionActivityOrder); + List legionStatistics(WxLegionActivityOrder wxLegionActivityOrder); + List legionDateOrderCount(WxLegionActivityOrder wxLegionActivityOrder); + List legionDateStatistics(WxLegionActivityOrder wxLegionActivityOrder); List findOrderUser(WxLegionActivityOrder wxLegionActivityOrder); + } 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 6146e537d..384c18f09 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java @@ -402,6 +402,7 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe public Map handleActivityData(WxLegionActivity activity, WxLegionActivityOrder wxLegionActivityOrder) { Map result = new HashMap<>(); + //售卡 WxLegionActivityUser userQ = new WxLegionActivityUser(); userQ.updateTenantInfo(activity); userQ.setActivityId(activity.getId()); @@ -412,13 +413,25 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe Integer userCount = wxLegionActivityUserMapper.selectCount(userQ); result.put("userCount",userCount); + //签单 WxLegionActivityOrder orderQ = new WxLegionActivityOrder(); orderQ.updateTenantInfo(activity); orderQ.setActivityId(activity.getId()); - orderQ.setCusLegionId(wxLegionActivityOrder.getLegionId()); + orderQ.setLegionId(wxLegionActivityOrder.getLegionId()); orderQ.setAuditStatus(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode()); orderQ.setCreateDateBegin(wxLegionActivityOrder.getCreateDateBegin()); orderQ.setCreateDateEnd(wxLegionActivityOrder.getCreateDateEnd()); + Integer orderCount = wxLegionActivityOrderMapper.orderCount(orderQ); + result.put("orderCount",orderCount); + + //带单 +// orderQ.updateTenantInfo(activity); +// orderQ.setActivityId(activity.getId()); + orderQ.setLegionId(null); + orderQ.setCusLegionId(wxLegionActivityOrder.getLegionId()); +// orderQ.setAuditStatus(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode()); +// orderQ.setCreateDateBegin(wxLegionActivityOrder.getCreateDateBegin()); +// orderQ.setCreateDateEnd(wxLegionActivityOrder.getCreateDateEnd()); List orderTypeStatistics = wxLegionActivityOrderMapper.orderTypeStatistics(orderQ); Integer sign_order = 0,dif_legion = 0,dif_union = 0,eq_union = 0,not_union = 0; for(LegionActivityOrderTypeStatistics statistics : orderTypeStatistics){ @@ -435,8 +448,8 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe } } //签单=总订单数 - Integer order_count = sign_order+dif_legion+dif_union+eq_union+not_union; - result.put("orderCount",order_count); +// Integer order_count = sign_order+dif_legion+dif_union+eq_union+not_union; +// result.put("orderCount",order_count); //带单 result.put("sellOrderCount",dif_legion+dif_union+eq_union+not_union); result.put("difLegion",dif_legion); @@ -444,7 +457,7 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe result.put("difUnion",dif_union); result.put("notUnion",not_union); - Double total_score = userCount*activity.getSellingCard()+order_count*activity.getSignOrder() + Double total_score = userCount*activity.getSellingCard()+orderCount*activity.getSignOrder() +dif_legion*activity.getDifLegionOrder()+dif_union*activity.getDifUnionOrder() +eq_union*activity.getEqUnionOrder()+not_union*activity.getNotUnionOrder(); result.put("totalScore",total_score); @@ -474,13 +487,26 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe 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()); orderQ.setCreateDateBegin(wxLegionActivityOrder.getCreateDateBegin()); orderQ.setCreateDateEnd(wxLegionActivityOrder.getCreateDateEnd()); + List merchantOrderCount = wxLegionActivityOrderMapper.merchantOrderCount(orderQ); + Map merchantOrderCountMap = new HashMap<>(); + if(merchantOrderCount != null && !merchantOrderCount.isEmpty()){ + merchantIds.addAll(merchantOrderCount.stream().map(LegionActivityOrderTypeStatistics::getMerchantId).distinct().collect(Collectors.toList())); + merchantOrderCountMap = merchantOrderCount.stream().collect(Collectors.toMap(LegionActivityOrderTypeStatistics::getMerchantId, LegionActivityOrderTypeStatistics::getCount)); + } + + //带单 +// orderQ.updateTenantInfo(activity); +// orderQ.setActivityId(activity.getId()); +// orderQ.setAuditStatus(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode()); +// orderQ.setCreateDateBegin(wxLegionActivityOrder.getCreateDateBegin()); +// orderQ.setCreateDateEnd(wxLegionActivityOrder.getCreateDateEnd()); List merchantStatistics = wxLegionActivityOrderMapper.merchantStatistics(orderQ); Map> merchantStatisticsMap = new HashMap<>(); if(merchantStatistics != null && !merchantStatistics.isEmpty()){ @@ -523,6 +549,9 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe } Integer userCount = merchantCountStatisticsMap.get(merchantId)==null?0:merchantCountStatisticsMap.get(merchantId); merchantS.setUserCount(userCount); + Integer orderCount = merchantOrderCountMap.get(merchantId)==null?0:merchantOrderCountMap.get(merchantId); + merchantS.setOrderCount(orderCount); + Integer sign_order = 0,dif_legion = 0,dif_union = 0,eq_union = 0,not_union = 0; if(merchantStatisticsMap.get(merchantId) != null){ for(LegionActivityOrderTypeStatistics statistics : merchantStatisticsMap.get(merchantId)){ @@ -540,8 +569,8 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe } } //签单=总订单数 - Integer order_count = sign_order+dif_legion+dif_union+eq_union+not_union; - merchantS.setOrderCount(order_count); +// Integer order_count = sign_order+dif_legion+dif_union+eq_union+not_union; +// merchantS.setOrderCount(order_count); //带单 merchantS.setSellOrderCount(dif_legion+dif_union+eq_union+not_union); merchantS.setDifLegion(dif_legion); @@ -549,7 +578,7 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe merchantS.setDifUnion(dif_union); merchantS.setNotUnion(not_union); - Double total_score = userCount*activity.getSellingCard()+order_count*activity.getSignOrder() + Double total_score = userCount*activity.getSellingCard()+orderCount*activity.getSignOrder() +dif_legion*activity.getDifLegionOrder()+dif_union*activity.getDifUnionOrder() +eq_union*activity.getEqUnionOrder()+not_union*activity.getNotUnionOrder(); merchantS.setTotalScore(total_score); @@ -716,13 +745,20 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe legionCountMap = legionCountList.stream().collect(Collectors.toMap(LegionActivityUserStatistics::getLegionId, LegionActivityUserStatistics::getCount)); } - //军团订单 + //军团签单 WxLegionActivityOrder orderQ = new WxLegionActivityOrder(); orderQ.updateTenantInfo(activity); orderQ.setActivityId(activity.getId()); orderQ.setAuditStatus(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode()); orderQ.setCreateDateBegin(wxLegionActivityOrder.getCreateDateBegin()); orderQ.setCreateDateEnd(wxLegionActivityOrder.getCreateDateEnd()); + List legionOrderCount = wxLegionActivityOrderMapper.legionOrderCount(orderQ); + Map legionOrderCountMap = new HashMap<>(); + if(legionOrderCount != null && !legionOrderCount.isEmpty()){ + legionOrderCountMap = legionOrderCount.stream().collect(Collectors.toMap(LegionActivityOrderTypeStatistics::getLegionId, LegionActivityOrderTypeStatistics::getCount)); + } + + //军团带单 List legionStatistics = wxLegionActivityOrderMapper.legionStatistics(orderQ); Map> legionStatisticsMap = new HashMap<>(); if(legionStatistics != null && !legionStatistics.isEmpty()){ @@ -736,6 +772,9 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe legionS.setLegionName(legionConfigMap.get(legionId)); Integer userCount = legionCountMap.get(legionId)==null?0:legionCountMap.get(legionId); legionS.setUserCount(userCount); + Integer orderCount = legionOrderCountMap.get(legionId)==null?0:legionOrderCountMap.get(legionId); + legionS.setOrderCount(orderCount); + Integer sign_order = 0,dif_legion = 0,dif_union = 0,eq_union = 0,not_union = 0; if(legionStatisticsMap.get(legionId) != null){ for(LegionActivityOrderTypeStatistics statistics : legionStatisticsMap.get(legionId)){ @@ -753,13 +792,13 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe } } //签单=总订单数 - Integer order_count = sign_order+dif_legion+dif_union+eq_union+not_union; - legionS.setOrderCount(order_count); +// Integer order_count = sign_order+dif_legion+dif_union+eq_union+not_union; +// legionS.setOrderCount(order_count); //带单 legionS.setSellOrderCount(dif_legion+dif_union+eq_union+not_union); legionS.setUserScore(userCount*activity.getSellingCard()); - legionS.setOrderScore(order_count*activity.getSignOrder()); + legionS.setOrderScore(orderCount*activity.getSignOrder()); legionS.setSellOrderScore(dif_legion*activity.getDifLegionOrder()+dif_union*activity.getDifUnionOrder() +eq_union*activity.getEqUnionOrder()+not_union*activity.getNotUnionOrder()); @@ -828,13 +867,20 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe legionCountMap = legionCountList.stream().collect(groupingBy(LegionActivityUserStatistics::getLegionId)); } - //军团订单 + //军团签单 WxLegionActivityOrder orderQ = new WxLegionActivityOrder(); orderQ.updateTenantInfo(activity); orderQ.setActivityId(activity.getId()); orderQ.setAuditStatus(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode()); orderQ.setCreateDateBegin(wxLegionActivityOrder.getCreateDateBegin()); orderQ.setCreateDateEnd(wxLegionActivityOrder.getCreateDateEnd()); + List legionDateOrderCount = wxLegionActivityOrderMapper.legionDateOrderCount(orderQ); + Map> legionDateOrderCountMap = new HashMap<>(); + if(legionDateOrderCount != null && !legionDateOrderCount.isEmpty()){ + legionDateOrderCountMap = legionDateOrderCount.stream().collect(groupingBy(LegionActivityOrderTypeStatistics::getLegionId)); + } + + //军团带单 List legionStatistics = wxLegionActivityOrderMapper.legionDateStatistics(orderQ); Map> legionStatisticsMap = new HashMap<>(); if(legionStatistics != null && !legionStatistics.isEmpty()){ @@ -850,6 +896,12 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe if(legionDateCountList != null && !legionDateCountList.isEmpty()){ legionDateCountMap = legionDateCountList.stream().collect(Collectors.toMap(LegionActivityUserStatistics::getXTime, LegionActivityUserStatistics::getCount)); } + List legionOrderCountList = legionDateOrderCountMap.get(legionId); + Map legionOrderCountMap = new HashMap<>(); + if(legionOrderCountList != null && !legionOrderCountList.isEmpty()){ + legionOrderCountMap = legionOrderCountList.stream().collect(Collectors.toMap(LegionActivityOrderTypeStatistics::getXTime, LegionActivityOrderTypeStatistics::getCount)); + } + List legionOrderDateList = legionStatisticsMap.get(legionId); Map> legionOrderDateMap = new HashMap<>(); if(legionOrderDateList != null && !legionOrderDateList.isEmpty()){ @@ -858,6 +910,7 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe List activityNoticeVoList = new ArrayList<>(); for (String date : tjTimeList) { Integer userCount = legionDateCountMap.get(date)==null?0:legionDateCountMap.get(date); + Integer orderCount = legionOrderCountMap.get(date)==null?0:legionOrderCountMap.get(date); Integer sign_order = 0,dif_legion = 0,dif_union = 0,eq_union = 0,not_union = 0; if(legionOrderDateMap.get(date) != null){ @@ -876,11 +929,11 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe } } //签单=总订单数 - Integer order_count = sign_order+dif_legion+dif_union+eq_union+not_union; +// Integer order_count = sign_order+dif_legion+dif_union+eq_union+not_union; //带单 // Integer sell_order_count = dif_legion+dif_union+eq_union+not_union; //总分 - Double total_score = userCount*activity.getSellingCard()+order_count*activity.getSignOrder() + Double total_score = userCount*activity.getSellingCard()+orderCount*activity.getSignOrder() +dif_legion*activity.getDifLegionOrder()+dif_union*activity.getDifUnionOrder() +eq_union*activity.getEqUnionOrder()+not_union*activity.getNotUnionOrder(); diff --git a/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml index 6beca5067..2fda121d5 100644 --- a/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml @@ -222,6 +222,36 @@ GROUP BY audit_status + + + + + + +