Просмотр исходного кода

Merge branch 'release_toaliyun_real' of https://git.malls.iformall.com/server/formallProject into release_toaliyun_real

release_toaliyun_real
winter 1 год назад
Родитель
Сommit
51a1014056
4 измененных файлов: 201 добавлений и 15 удалений
  1. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderTypeStatistics.java
  2. +9
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOrderMapper.java
  3. +72
    -15
      mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java
  4. +118
    -0
      mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml

+ 2
- 0
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;


+ 9
- 0
mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOrderMapper.java Просмотреть файл

@@ -26,17 +26,26 @@ public interface WxLegionActivityOrderMapper extends CommonMapper<WxLegionActivi

Integer updateAuditStatus(WxLegionActivityOrder wxLegionActivityOrder);

Integer orderCount(WxLegionActivityOrder wxLegionActivityOrder);

List<LegionActivityOrderTypeStatistics> orderTypeStatistics(WxLegionActivityOrder wxLegionActivityOrder);

List<LegionActivityOrderTypeStatistics> merchantOrderCount(WxLegionActivityOrder wxLegionActivityOrder);

List<LegionActivityOrderTypeStatistics> merchantStatistics(WxLegionActivityOrder wxLegionActivityOrder);

List<LegionActivityOrderTypeStatistics> legionOrderCount(WxLegionActivityOrder wxLegionActivityOrder);

List<LegionActivityOrderTypeStatistics> legionStatistics(WxLegionActivityOrder wxLegionActivityOrder);

List<LegionActivityOrderTypeStatistics> legionDateOrderCount(WxLegionActivityOrder wxLegionActivityOrder);

List<LegionActivityOrderTypeStatistics> legionDateStatistics(WxLegionActivityOrder wxLegionActivityOrder);

List<LegionActivitySellOrder> findOrderUser(WxLegionActivityOrder wxLegionActivityOrder);



}




+ 72
- 15
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());
@@ -398,6 +402,7 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe
public Map<String, Object> handleActivityData(WxLegionActivity activity, WxLegionActivityOrder wxLegionActivityOrder) {
Map<String, Object> result = new HashMap<>();

//售卡
WxLegionActivityUser userQ = new WxLegionActivityUser();
userQ.updateTenantInfo(activity);
userQ.setActivityId(activity.getId());
@@ -408,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<LegionActivityOrderTypeStatistics> orderTypeStatistics = wxLegionActivityOrderMapper.orderTypeStatistics(orderQ);
Integer sign_order = 0,dif_legion = 0,dif_union = 0,eq_union = 0,not_union = 0;
for(LegionActivityOrderTypeStatistics statistics : orderTypeStatistics){
@@ -431,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);
@@ -440,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);
@@ -470,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<LegionActivityOrderTypeStatistics> merchantOrderCount = wxLegionActivityOrderMapper.merchantOrderCount(orderQ);
Map<Long,Integer> 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<LegionActivityOrderTypeStatistics> merchantStatistics = wxLegionActivityOrderMapper.merchantStatistics(orderQ);
Map<Long, List<LegionActivityOrderTypeStatistics>> merchantStatisticsMap = new HashMap<>();
if(merchantStatistics != null && !merchantStatistics.isEmpty()){
@@ -519,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)){
@@ -536,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);
@@ -545,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);
@@ -712,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<LegionActivityOrderTypeStatistics> legionOrderCount = wxLegionActivityOrderMapper.legionOrderCount(orderQ);
Map<Long, Integer> legionOrderCountMap = new HashMap<>();
if(legionOrderCount != null && !legionOrderCount.isEmpty()){
legionOrderCountMap = legionOrderCount.stream().collect(Collectors.toMap(LegionActivityOrderTypeStatistics::getLegionId, LegionActivityOrderTypeStatistics::getCount));
}

//军团带单
List<LegionActivityOrderTypeStatistics> legionStatistics = wxLegionActivityOrderMapper.legionStatistics(orderQ);
Map<Long, List<LegionActivityOrderTypeStatistics>> legionStatisticsMap = new HashMap<>();
if(legionStatistics != null && !legionStatistics.isEmpty()){
@@ -732,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)){
@@ -749,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());

@@ -824,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<LegionActivityOrderTypeStatistics> legionDateOrderCount = wxLegionActivityOrderMapper.legionDateOrderCount(orderQ);
Map<Long, List<LegionActivityOrderTypeStatistics>> legionDateOrderCountMap = new HashMap<>();
if(legionDateOrderCount != null && !legionDateOrderCount.isEmpty()){
legionDateOrderCountMap = legionDateOrderCount.stream().collect(groupingBy(LegionActivityOrderTypeStatistics::getLegionId));
}

//军团带单
List<LegionActivityOrderTypeStatistics> legionStatistics = wxLegionActivityOrderMapper.legionDateStatistics(orderQ);
Map<Long, List<LegionActivityOrderTypeStatistics>> legionStatisticsMap = new HashMap<>();
if(legionStatistics != null && !legionStatistics.isEmpty()){
@@ -846,6 +896,12 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe
if(legionDateCountList != null && !legionDateCountList.isEmpty()){
legionDateCountMap = legionDateCountList.stream().collect(Collectors.toMap(LegionActivityUserStatistics::getXTime, LegionActivityUserStatistics::getCount));
}
List<LegionActivityOrderTypeStatistics> legionOrderCountList = legionDateOrderCountMap.get(legionId);
Map<String, Integer> legionOrderCountMap = new HashMap<>();
if(legionOrderCountList != null && !legionOrderCountList.isEmpty()){
legionOrderCountMap = legionOrderCountList.stream().collect(Collectors.toMap(LegionActivityOrderTypeStatistics::getXTime, LegionActivityOrderTypeStatistics::getCount));
}

List<LegionActivityOrderTypeStatistics> legionOrderDateList = legionStatisticsMap.get(legionId);
Map<String, List<LegionActivityOrderTypeStatistics>> legionOrderDateMap = new HashMap<>();
if(legionOrderDateList != null && !legionOrderDateList.isEmpty()){
@@ -854,6 +910,7 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe
List<ActivityNoticeVo> 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){
@@ -872,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();



+ 118
- 0
mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml Просмотреть файл

@@ -222,6 +222,36 @@
GROUP BY audit_status
</select>

<select id="orderCount" parameterType="com.iformall.domain.po.WxLegionActivityOrder" resultType="java.lang.Integer">
SELECT count(1)
FROM wx_legion_activity_order
where 1 = 1
<if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != parentTenantId and '' != parentTenantId">
and `parent_tenant_id` = #{parentTenantId}
</if>
<if test=" null != activityId ">
and `activity_id` = #{activityId}
</if>
<if test=" null != legionId ">
and `legion_id` = #{legionId}
</if>
<if test=" null != merchantId ">
and `merchant_id` = #{merchantId}
</if>
<if test=" null != createDateBegin">
and `create_date` &gt;= #{createDateBegin}
</if>

<if test=" null != createDateEnd">
and `create_date` &lt;= #{createDateEnd}
</if>
<if test=" null != auditStatus ">
and `audit_status` = #{auditStatus}
</if>
</select>

<select id="orderTypeStatistics" parameterType="com.iformall.domain.po.WxLegionActivityOrder" resultType="com.iformall.domain.vo.LegionActivityOrderTypeStatistics">
SELECT order_type as 'orderType',
@@ -256,6 +286,38 @@
GROUP BY order_type
</select>

<select id="merchantOrderCount" parameterType="com.iformall.domain.po.WxLegionActivityOrder" resultType="com.iformall.domain.vo.LegionActivityOrderTypeStatistics">
SELECT merchant_id as 'merchantId',
count(1) as 'count'
FROM wx_legion_activity_order
where 1 = 1
<if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != parentTenantId and '' != parentTenantId">
and `parent_tenant_id` = #{parentTenantId}
</if>
<if test=" null != activityId ">
and `activity_id` = #{activityId}
</if>
<if test=" null != legionId ">
and `legion_id` = #{legionId}
</if>
<if test=" null != merchantId ">
and `merchant_id` = #{merchantId}
</if>
<if test=" null != createDateBegin">
and `create_date` &gt;= #{createDateBegin}
</if>

<if test=" null != createDateEnd">
and `create_date` &lt;= #{createDateEnd}
</if>
<if test=" null != auditStatus ">
and `audit_status` = #{auditStatus}
</if>
GROUP BY merchant_id
</select>

<select id="merchantStatistics" parameterType="com.iformall.domain.po.WxLegionActivityOrder" resultType="com.iformall.domain.vo.LegionActivityOrderTypeStatistics">
SELECT cus_merchant_id as 'cusMerchantId',
@@ -291,6 +353,33 @@
GROUP BY cus_merchant_id,order_type
</select>

<select id="legionOrderCount" parameterType="com.iformall.domain.po.WxLegionActivityOrder" resultType="com.iformall.domain.vo.LegionActivityOrderTypeStatistics">
SELECT legion_id as 'legionId',
count(1) as 'count'
FROM wx_legion_activity_order
where 1 = 1
<if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != parentTenantId and '' != parentTenantId">
and `parent_tenant_id` = #{parentTenantId}
</if>
<if test=" null != activityId ">
and `activity_id` = #{activityId}
</if>
<if test=" null != createDateBegin">
and `create_date` &gt;= #{createDateBegin}
</if>

<if test=" null != createDateEnd">
and `create_date` &lt;= #{createDateEnd}
</if>
<if test=" null != auditStatus ">
and `audit_status` = #{auditStatus}
</if>
GROUP BY legion_id
</select>

<select id="legionStatistics" parameterType="com.iformall.domain.po.WxLegionActivityOrder" resultType="com.iformall.domain.vo.LegionActivityOrderTypeStatistics">
SELECT cus_legion_id as 'cusLegionId',
order_type as 'orderType',
@@ -319,6 +408,34 @@
GROUP BY cus_legion_id,order_type
</select>

<select id="legionDateOrderCount" parameterType="com.iformall.domain.po.WxLegionActivityOrder" resultType="com.iformall.domain.vo.LegionActivityOrderTypeStatistics">
SELECT legion_id as 'legionId',
DATE_FORMAT(create_date,'%Y-%m-%d') as xTime,
count(1) as 'count'
FROM wx_legion_activity_order
where 1 = 1
<if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != parentTenantId and '' != parentTenantId">
and `parent_tenant_id` = #{parentTenantId}
</if>
<if test=" null != activityId ">
and `activity_id` = #{activityId}
</if>
<if test=" null != createDateBegin">
and `create_date` &gt;= #{createDateBegin}
</if>

<if test=" null != createDateEnd">
and `create_date` &lt;= #{createDateEnd}
</if>
<if test=" null != auditStatus ">
and `audit_status` = #{auditStatus}
</if>
GROUP BY legion_id,xTime
</select>

<select id="legionDateStatistics" parameterType="com.iformall.domain.po.WxLegionActivityOrder" resultType="com.iformall.domain.vo.LegionActivityOrderTypeStatistics">
SELECT cus_legion_id as 'cusLegionId',
order_type as 'orderType',
@@ -396,4 +513,5 @@
</foreach>
</if>
</select>

</mapper>

Загрузка…
Отмена
Сохранить