| @@ -52,6 +52,9 @@ public class WxLegionActivityMerchantConfig extends TenantEntity { | |||||
| @TableField(value = "merchant_id") | @TableField(value = "merchant_id") | ||||
| private Long merchantId; | private Long merchantId; | ||||
| @TableField(exist = false) | |||||
| private List<Long> merchantIdList; | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private String merchantName; | private String merchantName; | ||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| @@ -14,22 +14,25 @@ public class LegionActivityMerchantStatistics implements Serializable { | |||||
| private Long merchantId; | private Long merchantId; | ||||
| @Excel(name="商铺名称",width = 20,orderNum = "1") | @Excel(name="商铺名称",width = 20,orderNum = "1") | ||||
| private String merchantName; | 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; | private String shopNumber; | ||||
| @Excel(name="售卡数量",width = 20,orderNum = "3") | |||||
| @Excel(name="售卡数量",width = 20,orderNum = "4") | |||||
| private Integer userCount; | private Integer userCount; | ||||
| @Excel(name="签单数量",width = 20,orderNum = "4") | |||||
| @Excel(name="签单数量",width = 20,orderNum = "5") | |||||
| private Integer orderCount; | private Integer orderCount; | ||||
| // @Excel(name="带单数量",width = 20,orderNum = "5") | |||||
| // @Excel(name="带单数量",width = 20,orderNum = "6") | |||||
| private Integer sellOrderCount; | private Integer sellOrderCount; | ||||
| @Excel(name="外部军团带单",width = 20,orderNum = "6") | |||||
| @Excel(name="外部军团带单",width = 20,orderNum = "7") | |||||
| private Integer difLegion; | private Integer difLegion; | ||||
| @Excel(name="内部军团不同联盟带单",width = 20,orderNum = "7") | |||||
| @Excel(name="内部军团不同联盟带单",width = 20,orderNum = "8") | |||||
| private Integer difUnion; | private Integer difUnion; | ||||
| @Excel(name="内部军团相同联盟带单",width = 20,orderNum = "8") | |||||
| @Excel(name="内部军团相同联盟带单",width = 20,orderNum = "9") | |||||
| private Integer eqUnion; | private Integer eqUnion; | ||||
| @Excel(name="内部军团无联盟带单",width = 20,orderNum = "9") | |||||
| @Excel(name="内部军团无联盟带单",width = 20,orderNum = "10") | |||||
| private Integer notUnion; | private Integer notUnion; | ||||
| @Excel(name="得分",width = 20,orderNum = "10") | |||||
| @Excel(name="得分",width = 20,orderNum = "11") | |||||
| private Double totalScore; | private Double totalScore; | ||||
| } | } | ||||
| @@ -30,6 +30,8 @@ public interface WxLegionActivityUserMapper extends CommonMapper<WxLegionActivit | |||||
| Integer selectOnlyCount(WxLegionActivityUser wxLegionActivityUser); | Integer selectOnlyCount(WxLegionActivityUser wxLegionActivityUser); | ||||
| WxLegionActivityUser selectLimitOne(WxLegionActivityUser wxLegionActivityUser); | WxLegionActivityUser selectLimitOne(WxLegionActivityUser wxLegionActivityUser); | ||||
| Integer selectCount(WxLegionActivityUser wxLegionActivityUser); | |||||
| } | } | ||||
| @@ -13,4 +13,6 @@ import java.util.Map; | |||||
| public interface WxLegionActivityMerchantConfigService { | public interface WxLegionActivityMerchantConfigService { | ||||
| Map<Long, Integer> findMerchantCount(WxLegionActivityMerchantConfig merchantConfigQ); | Map<Long, Integer> findMerchantCount(WxLegionActivityMerchantConfig merchantConfigQ); | ||||
| Map<Long, Long> findMerchantLegionMap(WxLegionActivityMerchantConfig merchantConfigQ); | |||||
| } | } | ||||
| @@ -35,7 +35,7 @@ public interface WxLegionActivityOrderService { | |||||
| Map<String, Object> getActivityData(WxLegionActivityOrder wxLegionActivityOrder); | Map<String, Object> getActivityData(WxLegionActivityOrder wxLegionActivityOrder); | ||||
| Map<String, Object> handleActivityData(WxLegionActivity wxLegionActivity, Long legionId); | |||||
| Map<String, Object> handleActivityData(WxLegionActivity wxLegionActivity, WxLegionActivityOrder wxLegionActivityOrder); | |||||
| List<LegionActivityMerchantStatistics> getActivityMerchantData(WxLegionActivityOrder wxLegionActivityOrder); | List<LegionActivityMerchantStatistics> getActivityMerchantData(WxLegionActivityOrder wxLegionActivityOrder); | ||||
| @@ -5,6 +5,7 @@ import com.iformall.domain.po.WxLegionActivityMerchantConfig; | |||||
| import com.iformall.domain.vo.LegionActivityCount; | import com.iformall.domain.vo.LegionActivityCount; | ||||
| import com.iformall.service.WxLegionActivityMerchantConfigService; | import com.iformall.service.WxLegionActivityMerchantConfigService; | ||||
| import com.iformall.mapper.WxLegionActivityMerchantConfigMapper; | import com.iformall.mapper.WxLegionActivityMerchantConfigMapper; | ||||
| import org.apache.commons.lang3.ObjectUtils; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| @@ -32,6 +33,15 @@ public class WxLegionActivityMerchantConfigServiceImpl implements WxLegionActivi | |||||
| } | } | ||||
| return activityCountList.stream().collect(Collectors.toMap(LegionActivityCount::getActivityId, LegionActivityCount::getCount)); | return activityCountList.stream().collect(Collectors.toMap(LegionActivityCount::getActivityId, LegionActivityCount::getCount)); | ||||
| } | } | ||||
| @Override | |||||
| public Map<Long, Long> findMerchantLegionMap(WxLegionActivityMerchantConfig merchantConfigQ) { | |||||
| List<WxLegionActivityMerchantConfig> list = wxLegionActivityMerchantConfigMapper.findList(merchantConfigQ); | |||||
| if (list == null || list.isEmpty()){ | |||||
| return Collections.emptyMap(); | |||||
| } | |||||
| return list.stream().collect(Collectors.toMap(WxLegionActivityMerchantConfig::getMerchantId, WxLegionActivityMerchantConfig::getLegionId)); | |||||
| } | |||||
| } | } | ||||
| @@ -54,6 +54,9 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||||
| @Autowired | @Autowired | ||||
| private WxLegionActivityMerchantConfigMapper wxLegionActivityMerchantConfigMapper; | private WxLegionActivityMerchantConfigMapper wxLegionActivityMerchantConfigMapper; | ||||
| @Autowired | |||||
| private WxLegionActivityMerchantConfigService wxLegionActivityMerchantConfigService; | |||||
| @Autowired | @Autowired | ||||
| private WxLegionActivityOfflineConfigService wxLegionActivityOfflineConfigService; | private WxLegionActivityOfflineConfigService wxLegionActivityOfflineConfigService; | ||||
| @@ -386,27 +389,31 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||||
| if(activity == null){ | if(activity == null){ | ||||
| throw new MallinkException(Result.ERROR,"未查询到活动"); | throw new MallinkException(Result.ERROR,"未查询到活动"); | ||||
| } | } | ||||
| return handleActivityData(activity,wxLegionActivityOrder.getLegionId()); | |||||
| return handleActivityData(activity,wxLegionActivityOrder); | |||||
| } | } | ||||
| @Override | @Override | ||||
| public Map<String, Object> handleActivityData(WxLegionActivity activity, Long legionId) { | |||||
| public Map<String, Object> handleActivityData(WxLegionActivity activity, WxLegionActivityOrder wxLegionActivityOrder) { | |||||
| Map<String, Object> result = new HashMap<>(); | Map<String, Object> result = new HashMap<>(); | ||||
| WxLegionActivityUser userQ = new WxLegionActivityUser(); | WxLegionActivityUser userQ = new WxLegionActivityUser(); | ||||
| userQ.updateTenantInfo(activity); | userQ.updateTenantInfo(activity); | ||||
| userQ.setActivityId(activity.getId()); | userQ.setActivityId(activity.getId()); | ||||
| userQ.setLegionId(legionId); | |||||
| userQ.setLegionId(wxLegionActivityOrder.getLegionId()); | |||||
| userQ.setStatus(EnumLegionActivityUserStatus.VALID.getCode()); | 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); | result.put("userCount",userCount); | ||||
| WxLegionActivityOrder orderQ = new WxLegionActivityOrder(); | WxLegionActivityOrder orderQ = new WxLegionActivityOrder(); | ||||
| orderQ.updateTenantInfo(activity); | orderQ.updateTenantInfo(activity); | ||||
| orderQ.setActivityId(activity.getId()); | orderQ.setActivityId(activity.getId()); | ||||
| orderQ.setCusLegionId(legionId); | |||||
| orderQ.setCusLegionId(wxLegionActivityOrder.getLegionId()); | |||||
| orderQ.setAuditStatus(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode()); | orderQ.setAuditStatus(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode()); | ||||
| orderQ.setCreateDateBegin(wxLegionActivityOrder.getCreateDateBegin()); | |||||
| orderQ.setCreateDateEnd(wxLegionActivityOrder.getCreateDateEnd()); | |||||
| List<LegionActivityOrderTypeStatistics> orderTypeStatistics = wxLegionActivityOrderMapper.orderTypeStatistics(orderQ); | List<LegionActivityOrderTypeStatistics> orderTypeStatistics = wxLegionActivityOrderMapper.orderTypeStatistics(orderQ); | ||||
| 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 : orderTypeStatistics){ | for(LegionActivityOrderTypeStatistics statistics : orderTypeStatistics){ | ||||
| @@ -453,6 +460,8 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||||
| userQ.updateTenantInfo(activity); | userQ.updateTenantInfo(activity); | ||||
| userQ.setActivityId(activity.getId()); | userQ.setActivityId(activity.getId()); | ||||
| userQ.setStatus(EnumLegionActivityUserStatus.VALID.getCode()); | userQ.setStatus(EnumLegionActivityUserStatus.VALID.getCode()); | ||||
| userQ.setCreateDateBegin(wxLegionActivityOrder.getCreateDateBegin()); | |||||
| userQ.setCreateDateEnd(wxLegionActivityOrder.getCreateDateEnd()); | |||||
| List<LegionActivityUserStatistics> merchantCountStatistics = wxLegionActivityUserMapper.merchantCountStatistics(userQ); | List<LegionActivityUserStatistics> merchantCountStatistics = wxLegionActivityUserMapper.merchantCountStatistics(userQ); | ||||
| Map<Long, Integer> merchantCountStatisticsMap = new HashMap<>(); | Map<Long, Integer> merchantCountStatisticsMap = new HashMap<>(); | ||||
| if(merchantCountStatistics != null && !merchantCountStatistics.isEmpty()){ | if(merchantCountStatistics != null && !merchantCountStatistics.isEmpty()){ | ||||
| @@ -465,6 +474,8 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||||
| 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()); | ||||
| orderQ.setCreateDateBegin(wxLegionActivityOrder.getCreateDateBegin()); | |||||
| orderQ.setCreateDateEnd(wxLegionActivityOrder.getCreateDateEnd()); | |||||
| List<LegionActivityOrderTypeStatistics> merchantStatistics = wxLegionActivityOrderMapper.merchantStatistics(orderQ); | List<LegionActivityOrderTypeStatistics> merchantStatistics = wxLegionActivityOrderMapper.merchantStatistics(orderQ); | ||||
| Map<Long, List<LegionActivityOrderTypeStatistics>> merchantStatisticsMap = new HashMap<>(); | Map<Long, List<LegionActivityOrderTypeStatistics>> merchantStatisticsMap = new HashMap<>(); | ||||
| if(merchantStatistics != null && !merchantStatistics.isEmpty()){ | if(merchantStatistics != null && !merchantStatistics.isEmpty()){ | ||||
| @@ -483,12 +494,28 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||||
| 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, String> merchantShopNumberMap = wxShopService.getMerchantShopNumberMap(activity, merchantIds, EnumYesOrNo.NO.getCode()); | ||||
| WxLegionActivityMerchantConfig merchantConfigQ = new WxLegionActivityMerchantConfig(); | |||||
| merchantConfigQ.updateTenantInfo(activity); | |||||
| merchantConfigQ.setActivityId(activity.getId()); | |||||
| merchantConfigQ.setMerchantIdList(merchantIds); | |||||
| Map<Long, Long> merchantLegionMap = wxLegionActivityMerchantConfigService.findMerchantLegionMap(merchantConfigQ); | |||||
| WxLegionActivityConfig legionConfigQ = new WxLegionActivityConfig(); | |||||
| legionConfigQ.updateTenantInfo(wxLegionActivityOrder); | |||||
| legionConfigQ.setActivityId(wxLegionActivityOrder.getActivityId()); | |||||
| Map<Long, String> legionConfigMap = wxLegionActivityConfigService.getLegionConfigMap(legionConfigQ); | |||||
| List<LegionActivityMerchantStatistics> merchantStatisticsList = new ArrayList<>(); | List<LegionActivityMerchantStatistics> merchantStatisticsList = new ArrayList<>(); | ||||
| for (Long merchantId : idAndNamesMap.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)); | ||||
| merchantS.setShopNumber(merchantShopNumberMap.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); | 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; | ||||
| @@ -128,7 +128,7 @@ public class WxLegionActivityServiceImpl implements WxLegionActivityService{ | |||||
| activity.setMerchantCount(merchantCountMap.get(activity.getId())==null?0:merchantCountMap.get(activity.getId())); | activity.setMerchantCount(merchantCountMap.get(activity.getId())==null?0:merchantCountMap.get(activity.getId())); | ||||
| //处理数量 | //处理数量 | ||||
| if(record.isNeedCount()){ | if(record.isNeedCount()){ | ||||
| activity.setActivityData(wxLegionActivityOrderService.handleActivityData(activity,null)); | |||||
| activity.setActivityData(wxLegionActivityOrderService.handleActivityData(activity,new WxLegionActivityOrder())); | |||||
| } | } | ||||
| //处理商户所属 | //处理商户所属 | ||||
| if(record.getMerchantId() != null){ | if(record.getMerchantId() != null){ | ||||
| @@ -49,6 +49,13 @@ | |||||
| and `union_id` = #{unionId} | and `union_id` = #{unionId} | ||||
| </if> | </if> | ||||
| <if test=" null != merchantIdList "> | |||||
| and merchant_id in | |||||
| <foreach collection="merchantIdList" index="index" item="midItem" open="(" separator="," close=")"> | |||||
| #{midItem} | |||||
| </foreach> | |||||
| </if> | |||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and id in | and id in | ||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | ||||
| @@ -243,6 +243,13 @@ | |||||
| <if test=" null != cusMerchantId "> | <if test=" null != cusMerchantId "> | ||||
| and `cus_merchant_id` = #{cusMerchantId} | and `cus_merchant_id` = #{cusMerchantId} | ||||
| </if> | </if> | ||||
| <if test=" null != createDateBegin"> | |||||
| and `create_date` >= #{createDateBegin} | |||||
| </if> | |||||
| <if test=" null != createDateEnd"> | |||||
| and `create_date` <= #{createDateEnd} | |||||
| </if> | |||||
| <if test=" null != auditStatus "> | <if test=" null != auditStatus "> | ||||
| and `audit_status` = #{auditStatus} | and `audit_status` = #{auditStatus} | ||||
| </if> | </if> | ||||
| @@ -271,6 +278,13 @@ | |||||
| <if test=" null != cusMerchantId "> | <if test=" null != cusMerchantId "> | ||||
| and `cus_merchant_id` = #{cusMerchantId} | and `cus_merchant_id` = #{cusMerchantId} | ||||
| </if> | </if> | ||||
| <if test=" null != createDateBegin"> | |||||
| and `create_date` >= #{createDateBegin} | |||||
| </if> | |||||
| <if test=" null != createDateEnd"> | |||||
| and `create_date` <= #{createDateEnd} | |||||
| </if> | |||||
| <if test=" null != auditStatus "> | <if test=" null != auditStatus "> | ||||
| and `audit_status` = #{auditStatus} | and `audit_status` = #{auditStatus} | ||||
| </if> | </if> | ||||
| @@ -305,6 +319,13 @@ | |||||
| <if test=" null != activityId "> | <if test=" null != activityId "> | ||||
| and o.`activity_id` = #{activityId} | and o.`activity_id` = #{activityId} | ||||
| </if> | </if> | ||||
| <if test=" null != createDateBegin"> | |||||
| and o.`create_date` >= #{createDateBegin} | |||||
| </if> | |||||
| <if test=" null != createDateEnd"> | |||||
| and o.`create_date` <= #{createDateEnd} | |||||
| </if> | |||||
| <if test=" null != auditStatus "> | <if test=" null != auditStatus "> | ||||
| and o.`audit_status` = #{auditStatus} | and o.`audit_status` = #{auditStatus} | ||||
| </if> | </if> | ||||
| @@ -196,5 +196,9 @@ | |||||
| <include refid="dynamicWhereConditions" /> | <include refid="dynamicWhereConditions" /> | ||||
| limit 1 | limit 1 | ||||
| </select> | </select> | ||||
| <select id="selectCount" parameterType="com.iformall.domain.po.WxLegionActivityUser" resultType="Integer"> | |||||
| select count(1) from wx_legion_activity_user | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||