diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityMerchantConfig.java b/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityMerchantConfig.java index 0f2a2479a..884344eb6 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityMerchantConfig.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityMerchantConfig.java @@ -52,6 +52,9 @@ public class WxLegionActivityMerchantConfig extends TenantEntity { @TableField(value = "merchant_id") private Long merchantId; + @TableField(exist = false) + private List merchantIdList; + @TableField(exist = false) private String merchantName; @TableField(exist = false) diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityMerchantStatistics.java b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityMerchantStatistics.java index 11908df33..0c814244a 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityMerchantStatistics.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityMerchantStatistics.java @@ -14,22 +14,25 @@ public class LegionActivityMerchantStatistics implements Serializable { private Long merchantId; @Excel(name="商铺名称",width = 20,orderNum = "1") private String merchantName; - @Excel(name="商铺号",width = 20,orderNum = "2") + private Long legionId; + @Excel(name="所属军团",width = 20,orderNum = "2") + private String legionName; + @Excel(name="商铺号",width = 20,orderNum = "3") private String shopNumber; - @Excel(name="售卡数量",width = 20,orderNum = "3") + @Excel(name="售卡数量",width = 20,orderNum = "4") private Integer userCount; - @Excel(name="签单数量",width = 20,orderNum = "4") + @Excel(name="签单数量",width = 20,orderNum = "5") private Integer orderCount; -// @Excel(name="带单数量",width = 20,orderNum = "5") +// @Excel(name="带单数量",width = 20,orderNum = "6") private Integer sellOrderCount; - @Excel(name="外部军团带单",width = 20,orderNum = "6") + @Excel(name="外部军团带单",width = 20,orderNum = "7") private Integer difLegion; - @Excel(name="内部军团不同联盟带单",width = 20,orderNum = "7") + @Excel(name="内部军团不同联盟带单",width = 20,orderNum = "8") private Integer difUnion; - @Excel(name="内部军团相同联盟带单",width = 20,orderNum = "8") + @Excel(name="内部军团相同联盟带单",width = 20,orderNum = "9") private Integer eqUnion; - @Excel(name="内部军团无联盟带单",width = 20,orderNum = "9") + @Excel(name="内部军团无联盟带单",width = 20,orderNum = "10") private Integer notUnion; - @Excel(name="得分",width = 20,orderNum = "10") + @Excel(name="得分",width = 20,orderNum = "11") private Double totalScore; } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityUserMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityUserMapper.java index 63e2027a2..c3d00cb83 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityUserMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityUserMapper.java @@ -30,6 +30,8 @@ public interface WxLegionActivityUserMapper extends CommonMapper findMerchantCount(WxLegionActivityMerchantConfig merchantConfigQ); + + Map findMerchantLegionMap(WxLegionActivityMerchantConfig merchantConfigQ); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOrderService.java index c2e66f331..17f2b4f86 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOrderService.java @@ -35,7 +35,7 @@ public interface WxLegionActivityOrderService { Map getActivityData(WxLegionActivityOrder wxLegionActivityOrder); - Map handleActivityData(WxLegionActivity wxLegionActivity, Long legionId); + Map handleActivityData(WxLegionActivity wxLegionActivity, WxLegionActivityOrder wxLegionActivityOrder); List getActivityMerchantData(WxLegionActivityOrder wxLegionActivityOrder); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityMerchantConfigServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityMerchantConfigServiceImpl.java index 7da8e51be..bdb3d4374 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityMerchantConfigServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityMerchantConfigServiceImpl.java @@ -5,6 +5,7 @@ import com.iformall.domain.po.WxLegionActivityMerchantConfig; import com.iformall.domain.vo.LegionActivityCount; import com.iformall.service.WxLegionActivityMerchantConfigService; import com.iformall.mapper.WxLegionActivityMerchantConfigMapper; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -32,6 +33,15 @@ public class WxLegionActivityMerchantConfigServiceImpl implements WxLegionActivi } return activityCountList.stream().collect(Collectors.toMap(LegionActivityCount::getActivityId, LegionActivityCount::getCount)); } + + @Override + public Map findMerchantLegionMap(WxLegionActivityMerchantConfig merchantConfigQ) { + List list = wxLegionActivityMerchantConfigMapper.findList(merchantConfigQ); + if (list == null || list.isEmpty()){ + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(WxLegionActivityMerchantConfig::getMerchantId, WxLegionActivityMerchantConfig::getLegionId)); + } } 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 17fdcf7cf..a21358797 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java @@ -54,6 +54,9 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe @Autowired private WxLegionActivityMerchantConfigMapper wxLegionActivityMerchantConfigMapper; + @Autowired + private WxLegionActivityMerchantConfigService wxLegionActivityMerchantConfigService; + @Autowired private WxLegionActivityOfflineConfigService wxLegionActivityOfflineConfigService; @@ -386,27 +389,31 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe if(activity == null){ throw new MallinkException(Result.ERROR,"未查询到活动"); } - return handleActivityData(activity,wxLegionActivityOrder.getLegionId()); + return handleActivityData(activity,wxLegionActivityOrder); } @Override - public Map handleActivityData(WxLegionActivity activity, Long legionId) { + public Map handleActivityData(WxLegionActivity activity, WxLegionActivityOrder wxLegionActivityOrder) { Map result = new HashMap<>(); WxLegionActivityUser userQ = new WxLegionActivityUser(); userQ.updateTenantInfo(activity); userQ.setActivityId(activity.getId()); - userQ.setLegionId(legionId); + userQ.setLegionId(wxLegionActivityOrder.getLegionId()); userQ.setStatus(EnumLegionActivityUserStatus.VALID.getCode()); - Integer userCount = wxLegionActivityUserMapper.selectCount(new QueryWrapper<>(userQ)); + userQ.setCreateDateBegin(wxLegionActivityOrder.getCreateDateBegin()); + userQ.setCreateDateEnd(wxLegionActivityOrder.getCreateDateEnd()); + Integer userCount = wxLegionActivityUserMapper.selectCount(userQ); result.put("userCount",userCount); WxLegionActivityOrder orderQ = new WxLegionActivityOrder(); orderQ.updateTenantInfo(activity); orderQ.setActivityId(activity.getId()); - orderQ.setCusLegionId(legionId); + 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){ @@ -453,6 +460,8 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe userQ.updateTenantInfo(activity); userQ.setActivityId(activity.getId()); userQ.setStatus(EnumLegionActivityUserStatus.VALID.getCode()); + userQ.setCreateDateBegin(wxLegionActivityOrder.getCreateDateBegin()); + userQ.setCreateDateEnd(wxLegionActivityOrder.getCreateDateEnd()); List merchantCountStatistics = wxLegionActivityUserMapper.merchantCountStatistics(userQ); Map merchantCountStatisticsMap = new HashMap<>(); if(merchantCountStatistics != null && !merchantCountStatistics.isEmpty()){ @@ -465,6 +474,8 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe 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()){ @@ -483,12 +494,28 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe Map idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); Map merchantShopNumberMap = wxShopService.getMerchantShopNumberMap(activity, merchantIds, EnumYesOrNo.NO.getCode()); + WxLegionActivityMerchantConfig merchantConfigQ = new WxLegionActivityMerchantConfig(); + merchantConfigQ.updateTenantInfo(activity); + merchantConfigQ.setActivityId(activity.getId()); + merchantConfigQ.setMerchantIdList(merchantIds); + Map merchantLegionMap = wxLegionActivityMerchantConfigService.findMerchantLegionMap(merchantConfigQ); + + WxLegionActivityConfig legionConfigQ = new WxLegionActivityConfig(); + legionConfigQ.updateTenantInfo(wxLegionActivityOrder); + legionConfigQ.setActivityId(wxLegionActivityOrder.getActivityId()); + Map legionConfigMap = wxLegionActivityConfigService.getLegionConfigMap(legionConfigQ); + List merchantStatisticsList = new ArrayList<>(); for (Long merchantId : idAndNamesMap.keySet()) { LegionActivityMerchantStatistics merchantS = new LegionActivityMerchantStatistics(); merchantS.setMerchantId(merchantId); merchantS.setMerchantName(idAndNamesMap.get(merchantId)); merchantS.setShopNumber(merchantShopNumberMap.get(merchantId)); + merchantS.setLegionId(merchantLegionMap.get(merchantId)==null?0L:merchantLegionMap.get(merchantId)); + merchantS.setLegionName(legionConfigMap.get(merchantS.getLegionId())); + if(StringUtils.isNotBlank(merchantS.getLegionName())){ + merchantS.setLegionName("无联盟"); + } 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; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityServiceImpl.java index 79e66cb40..0a273ac6c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityServiceImpl.java @@ -128,7 +128,7 @@ public class WxLegionActivityServiceImpl implements WxLegionActivityService{ activity.setMerchantCount(merchantCountMap.get(activity.getId())==null?0:merchantCountMap.get(activity.getId())); //处理数量 if(record.isNeedCount()){ - activity.setActivityData(wxLegionActivityOrderService.handleActivityData(activity,null)); + activity.setActivityData(wxLegionActivityOrderService.handleActivityData(activity,new WxLegionActivityOrder())); } //处理商户所属 if(record.getMerchantId() != null){ diff --git a/mallinkService/src/main/resources/mapper/WxLegionActivityMerchantConfigMapper.xml b/mallinkService/src/main/resources/mapper/WxLegionActivityMerchantConfigMapper.xml index 94b871089..394c5a9b5 100644 --- a/mallinkService/src/main/resources/mapper/WxLegionActivityMerchantConfigMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxLegionActivityMerchantConfigMapper.xml @@ -49,6 +49,13 @@ and `union_id` = #{unionId} + + and merchant_id in + + #{midItem} + + + and id in diff --git a/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml index b87eeda6a..2c4c7a916 100644 --- a/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml @@ -243,6 +243,13 @@ and `cus_merchant_id` = #{cusMerchantId} + + and `create_date` >= #{createDateBegin} + + + + and `create_date` <= #{createDateEnd} + and `audit_status` = #{auditStatus} @@ -271,6 +278,13 @@ and `cus_merchant_id` = #{cusMerchantId} + + and `create_date` >= #{createDateBegin} + + + + and `create_date` <= #{createDateEnd} + and `audit_status` = #{auditStatus} @@ -305,6 +319,13 @@ and o.`activity_id` = #{activityId} + + and o.`create_date` >= #{createDateBegin} + + + + and o.`create_date` <= #{createDateEnd} + and o.`audit_status` = #{auditStatus} diff --git a/mallinkService/src/main/resources/mapper/WxLegionActivityUserMapper.xml b/mallinkService/src/main/resources/mapper/WxLegionActivityUserMapper.xml index 84d73165c..e3ba23aad 100644 --- a/mallinkService/src/main/resources/mapper/WxLegionActivityUserMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxLegionActivityUserMapper.xml @@ -196,5 +196,9 @@ limit 1 +