| @@ -0,0 +1,93 @@ | |||
| package com.iformall.controller.market; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.annotation.ApiVersion; | |||
| import com.iformall.common.ErrorCode; | |||
| import com.iformall.common.Result; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.constant.SwaggerConstant; | |||
| import com.iformall.controller.base.BaseController; | |||
| import com.iformall.domain.po.WxLegionActivity; | |||
| import com.iformall.domain.po.WxLegionActivityConfig; | |||
| import com.iformall.domain.po.WxLegionActivityMerchantConfig; | |||
| import com.iformall.domain.po.WxLegionActivityOrder; | |||
| import com.iformall.domain.po.base.BaseEntity.SortField; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.domain.vo.LegionActivityStatistics; | |||
| import com.iformall.enums.EnumLegionActivityStatus; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.service.WxLegionActivityConfigService; | |||
| import com.iformall.service.WxLegionActivityOrderService; | |||
| import com.iformall.service.WxLegionActivityService; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiImplicitParam; | |||
| import io.swagger.annotations.ApiImplicitParams; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import javax.servlet.http.HttpServletResponse; | |||
| import java.util.ArrayList; | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| /** | |||
| * @author alascor | |||
| * | |||
| */ | |||
| @RestController | |||
| @RequestMapping("/legionNotic") | |||
| @Api(tags = "军团活动看板相关接口") | |||
| public class WxLegionActivityNoticeController extends BaseController { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| private WxLegionActivityOrderService wxLegionActivityOrderService; | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("查询军团活动数据") | |||
| @GetMapping("legionData") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData getLegionData(@ModelAttribute WxLegionActivityOrder wxLegionActivityOrder) { | |||
| if(wxLegionActivityOrder.getActivityId() == null){ | |||
| throw new MallinkException(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantInfo); | |||
| List<LegionActivityStatistics> activityData = wxLegionActivityOrderService.getLegionData(wxLegionActivityOrder); | |||
| return new ResultData(activityData); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("导出军团活动数据") | |||
| @GetMapping("/exportLegionData") | |||
| public void exportLegionData(@ModelAttribute WxLegionActivityOrder wxLegionActivityOrder, HttpServletRequest request, HttpServletResponse response) { | |||
| if (null == wxLegionActivityOrder) wxLegionActivityOrder = new WxLegionActivityOrder(); | |||
| if(wxLegionActivityOrder.getActivityId() == null){ | |||
| throw new MallinkException(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantInfo); | |||
| wxLegionActivityOrderService.exportLegionData(request,response,wxLegionActivityOrder); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("查询军团活动数据") | |||
| @GetMapping("legionDaysData") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData getLegionDaysData(@ModelAttribute WxLegionActivityOrder wxLegionActivityOrder) { | |||
| if(wxLegionActivityOrder.getActivityId() == null){ | |||
| throw new MallinkException(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantInfo); | |||
| List<LegionActivityStatistics> activityData = wxLegionActivityOrderService.getLegionDaysData(wxLegionActivityOrder); | |||
| return new ResultData(activityData); | |||
| } | |||
| } | |||
| @@ -0,0 +1,25 @@ | |||
| package com.iformall.domain.vo; | |||
| import lombok.Data; | |||
| import java.io.Serializable; | |||
| import java.math.BigDecimal; | |||
| @Data | |||
| public class ActivityNoticeBo implements Serializable { | |||
| private static final long serialVersionUID = 1L; | |||
| //名称 | |||
| private String name; | |||
| //数量 | |||
| private Integer count; | |||
| //百分比 | |||
| private String percentage; | |||
| //序号 | |||
| private Integer sortNum; | |||
| private Double score; | |||
| private BigDecimal price; | |||
| } | |||
| @@ -0,0 +1,26 @@ | |||
| package com.iformall.domain.vo; | |||
| import lombok.Data; | |||
| import java.io.Serializable; | |||
| import java.math.BigDecimal; | |||
| import java.text.DecimalFormat; | |||
| @Data | |||
| public class ActivityNoticeVo implements Serializable { | |||
| private static final long serialVersionUID = 1L; | |||
| //名称 | |||
| private String name; | |||
| //数量 | |||
| private Integer count; | |||
| //百分比 | |||
| private String percentage; | |||
| //序号 | |||
| private Integer sortNum; | |||
| private Double score; | |||
| private BigDecimal price; | |||
| } | |||
| @@ -10,6 +10,8 @@ public class LegionActivityOrderTypeStatistics implements Serializable { | |||
| private static final long serialVersionUID = 1L; | |||
| private Long cusMerchantId; | |||
| private Long cusLegionId; | |||
| private Integer orderType; | |||
| private String xTime; | |||
| private Integer count; | |||
| } | |||
| @@ -0,0 +1,36 @@ | |||
| package com.iformall.domain.vo; | |||
| import cn.afterturn.easypoi.excel.annotation.Excel; | |||
| import lombok.Data; | |||
| import java.io.Serializable; | |||
| import java.util.List; | |||
| @Data | |||
| public class LegionActivityStatistics implements Serializable { | |||
| private static final long serialVersionUID = 1L; | |||
| private Long legionId; | |||
| @Excel(name="军团名称",width = 20,orderNum = "2") | |||
| private String legionName; | |||
| @Excel(name="售卡数量",width = 20,orderNum = "4") | |||
| private Integer userCount; | |||
| @Excel(name="签单数量",width = 20,orderNum = "5") | |||
| private Integer orderCount; | |||
| @Excel(name="带单数量",width = 20,orderNum = "6") | |||
| private Integer sellOrderCount; | |||
| @Excel(name="售卡积分",width = 20,orderNum = "7") | |||
| private Double userScore; | |||
| @Excel(name="签单积分",width = 20,orderNum = "8") | |||
| private Double orderScore; | |||
| @Excel(name="带单积分",width = 20,orderNum = "9") | |||
| private Double sellOrderScore; | |||
| @Excel(name="总积分",width = 20,orderNum = "11") | |||
| private Double totalScore; | |||
| private List<ActivityNoticeVo> noticeVoList; | |||
| } | |||
| @@ -10,5 +10,7 @@ public class LegionActivityUserStatistics implements Serializable { | |||
| private static final long serialVersionUID = 1L; | |||
| private Long merchantId; | |||
| private Long LegionId; | |||
| private String xTime; | |||
| private Integer count; | |||
| } | |||
| @@ -30,7 +30,13 @@ public interface WxLegionActivityOrderMapper extends CommonMapper<WxLegionActivi | |||
| List<LegionActivityOrderTypeStatistics> merchantStatistics(WxLegionActivityOrder wxLegionActivityOrder); | |||
| List<LegionActivityOrderTypeStatistics> legionStatistics(WxLegionActivityOrder wxLegionActivityOrder); | |||
| List<LegionActivityOrderTypeStatistics> legionDateStatistics(WxLegionActivityOrder wxLegionActivityOrder); | |||
| List<LegionActivitySellOrder> findOrderUser(WxLegionActivityOrder wxLegionActivityOrder); | |||
| } | |||
| @@ -32,6 +32,10 @@ public interface WxLegionActivityUserMapper extends CommonMapper<WxLegionActivit | |||
| WxLegionActivityUser selectLimitOne(WxLegionActivityUser wxLegionActivityUser); | |||
| Integer selectCount(WxLegionActivityUser wxLegionActivityUser); | |||
| List<LegionActivityUserStatistics> selectCountGroupLegion(WxLegionActivityUser wxLegionActivityUser); | |||
| List<LegionActivityUserStatistics> selectCountGroupLegionDate(WxLegionActivityUser wxLegionActivityUser); | |||
| } | |||
| @@ -8,6 +8,7 @@ import com.iformall.domain.po.WxOfflineActivityRecord; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.domain.vo.LegionActivityMerchantStatistics; | |||
| import com.iformall.domain.vo.LegionActivitySellOrder; | |||
| import com.iformall.domain.vo.LegionActivityStatistics; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import javax.servlet.http.HttpServletResponse; | |||
| @@ -46,4 +47,10 @@ public interface WxLegionActivityOrderService { | |||
| void exportActivitySellOrder(HttpServletRequest request, HttpServletResponse response, WxLegionActivityOrder wxLegionActivityOrder); | |||
| void batchAudiPass(TenantEntity tenantEntity, List<Long> ids, Long userId); | |||
| List<LegionActivityStatistics> getLegionData(WxLegionActivityOrder wxLegionActivityOrder); | |||
| void exportLegionData(HttpServletRequest request, HttpServletResponse response, WxLegionActivityOrder wxLegionActivityOrder); | |||
| List<LegionActivityStatistics> getLegionDaysData(WxLegionActivityOrder wxLegionActivityOrder); | |||
| } | |||
| @@ -15,6 +15,7 @@ import com.iformall.enums.*; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.mapper.*; | |||
| import com.iformall.service.*; | |||
| import com.iformall.utils.DateUtils; | |||
| import jodd.util.StringUtil; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| @@ -684,6 +685,211 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||
| } | |||
| wxLegionActivityOfflineConfigService.syncOfflineActivityRecord(syncOrders); | |||
| } | |||
| @Override | |||
| public List<LegionActivityStatistics> getLegionData(WxLegionActivityOrder wxLegionActivityOrder) { | |||
| WxLegionActivity activity = wxLegionActivityMapper.selectById(wxLegionActivityOrder.getActivityId(), wxLegionActivityOrder.getTenantId()); | |||
| if(activity == null){ | |||
| throw new MallinkException(Result.ERROR,"未查询到活动"); | |||
| } | |||
| //军团 | |||
| WxLegionActivityConfig legionConfigQ = new WxLegionActivityConfig(); | |||
| legionConfigQ.updateTenantInfo(wxLegionActivityOrder); | |||
| legionConfigQ.setActivityId(wxLegionActivityOrder.getActivityId()); | |||
| legionConfigQ.setParentId(0L); | |||
| Map<Long, String> legionConfigMap = wxLegionActivityConfigService.getLegionConfigMap(legionConfigQ); | |||
| //军团用户 | |||
| WxLegionActivityUser userQ = new WxLegionActivityUser(); | |||
| userQ.updateTenantInfo(activity); | |||
| userQ.setActivityId(activity.getId()); | |||
| userQ.setStatus(EnumLegionActivityUserStatus.VALID.getCode()); | |||
| userQ.setCreateDateBegin(wxLegionActivityOrder.getCreateDateBegin()); | |||
| userQ.setCreateDateEnd(wxLegionActivityOrder.getCreateDateEnd()); | |||
| List<LegionActivityUserStatistics> legionCountList = wxLegionActivityUserMapper.selectCountGroupLegion(userQ); | |||
| Map<Long, Integer> legionCountMap = new HashMap<>(); | |||
| if(legionCountList != null && !legionCountList.isEmpty()){ | |||
| 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> legionStatistics = wxLegionActivityOrderMapper.legionStatistics(orderQ); | |||
| Map<Long, List<LegionActivityOrderTypeStatistics>> legionStatisticsMap = new HashMap<>(); | |||
| if(legionStatistics != null && !legionStatistics.isEmpty()){ | |||
| legionStatisticsMap = legionStatistics.stream().collect(groupingBy(LegionActivityOrderTypeStatistics::getCusLegionId)); | |||
| } | |||
| List<LegionActivityStatistics> legionStatisticsList = new ArrayList<>(); | |||
| for (Long legionId : legionConfigMap.keySet()) { | |||
| LegionActivityStatistics legionS = new LegionActivityStatistics(); | |||
| legionS.setLegionId(legionId); | |||
| legionS.setLegionName(legionConfigMap.get(legionId)); | |||
| Integer userCount = legionCountMap.get(legionId)==null?0:legionCountMap.get(legionId); | |||
| legionS.setUserCount(userCount); | |||
| 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)){ | |||
| 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(); | |||
| } | |||
| } | |||
| } | |||
| //签单=总订单数 | |||
| 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.setSellOrderScore(dif_legion*activity.getDifLegionOrder()+dif_union*activity.getDifUnionOrder() | |||
| +eq_union*activity.getEqUnionOrder()+not_union*activity.getNotUnionOrder()); | |||
| Double total_score = legionS.getUserScore() + legionS.getOrderScore() + legionS.getSellOrderScore(); | |||
| legionS.setTotalScore(total_score); | |||
| legionStatisticsList.add(legionS); | |||
| } | |||
| return legionStatisticsList; | |||
| } | |||
| @Override | |||
| public void exportLegionData(HttpServletRequest request, HttpServletResponse response, WxLegionActivityOrder wxLegionActivityOrder) { | |||
| List<LegionActivityStatistics> legionData = getLegionData(wxLegionActivityOrder); | |||
| excelService.exportExcel(legionData, null, "军团活动数据", LegionActivityStatistics.class, "军团活动数据.xlsx", response, false); | |||
| } | |||
| @Override | |||
| public List<LegionActivityStatistics> getLegionDaysData(WxLegionActivityOrder wxLegionActivityOrder) { | |||
| WxLegionActivity activity = wxLegionActivityMapper.selectById(wxLegionActivityOrder.getActivityId(), wxLegionActivityOrder.getTenantId()); | |||
| if(activity == null){ | |||
| throw new MallinkException(Result.ERROR,"未查询到活动"); | |||
| } | |||
| //军团 | |||
| WxLegionActivityConfig legionConfigQ = new WxLegionActivityConfig(); | |||
| legionConfigQ.updateTenantInfo(wxLegionActivityOrder); | |||
| legionConfigQ.setActivityId(wxLegionActivityOrder.getActivityId()); | |||
| legionConfigQ.setParentId(0L); | |||
| Map<Long, String> legionConfigMap = wxLegionActivityConfigService.getLegionConfigMap(legionConfigQ); | |||
| if(wxLegionActivityOrder.getCreateDateBegin() == null || wxLegionActivityOrder.getCreateDateBegin().before(activity.getStartTime())){ | |||
| wxLegionActivityOrder.setCreateDateBegin(activity.getStartTime()); | |||
| } | |||
| if(wxLegionActivityOrder.getCreateDateEnd() == null || wxLegionActivityOrder.getCreateDateEnd().after(activity.getEndTime())){ | |||
| wxLegionActivityOrder.setCreateDateEnd(activity.getEndTime()); | |||
| } | |||
| Date now = new Date(); | |||
| if(wxLegionActivityOrder.getCreateDateEnd().after(now)){ | |||
| wxLegionActivityOrder.setCreateDateEnd(now); | |||
| } | |||
| List<LegionActivityStatistics> legionStatisticsList = new ArrayList<>(); | |||
| if(wxLegionActivityOrder.getCreateDateBegin().after(wxLegionActivityOrder.getCreateDateEnd())){ | |||
| for (Long legionId : legionConfigMap.keySet()) { | |||
| LegionActivityStatistics legionS = new LegionActivityStatistics(); | |||
| legionS.setLegionId(legionId); | |||
| legionS.setLegionName(legionConfigMap.get(legionId)); | |||
| legionStatisticsList.add(legionS); | |||
| } | |||
| return legionStatisticsList; | |||
| } | |||
| List<String> tjTimeList = DateUtils.getTjTimeList(DateUtils.date2String(wxLegionActivityOrder.getCreateDateBegin(),"yyyy-MM-dd"), | |||
| DateUtils.date2String(wxLegionActivityOrder.getCreateDateEnd(),"yyyy-MM-dd"), "0"); | |||
| //军团用户 | |||
| WxLegionActivityUser userQ = new WxLegionActivityUser(); | |||
| userQ.updateTenantInfo(activity); | |||
| userQ.setActivityId(activity.getId()); | |||
| userQ.setStatus(EnumLegionActivityUserStatus.VALID.getCode()); | |||
| userQ.setCreateDateBegin(wxLegionActivityOrder.getCreateDateBegin()); | |||
| userQ.setCreateDateEnd(wxLegionActivityOrder.getCreateDateEnd()); | |||
| List<LegionActivityUserStatistics> legionCountList = wxLegionActivityUserMapper.selectCountGroupLegionDate(userQ); | |||
| Map<Long, List<LegionActivityUserStatistics>> legionCountMap = new HashMap<>(); | |||
| if(legionCountList != null && !legionCountList.isEmpty()){ | |||
| 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> legionStatistics = wxLegionActivityOrderMapper.legionDateStatistics(orderQ); | |||
| Map<Long, List<LegionActivityOrderTypeStatistics>> legionStatisticsMap = new HashMap<>(); | |||
| if(legionStatistics != null && !legionStatistics.isEmpty()){ | |||
| legionStatisticsMap = legionStatistics.stream().collect(groupingBy(LegionActivityOrderTypeStatistics::getCusLegionId)); | |||
| } | |||
| for (Long legionId : legionConfigMap.keySet()) { | |||
| LegionActivityStatistics legionS = new LegionActivityStatistics(); | |||
| legionS.setLegionId(legionId); | |||
| legionS.setLegionName(legionConfigMap.get(legionId)); | |||
| List<LegionActivityUserStatistics> legionDateCountList = legionCountMap.get(legionId); | |||
| Map<String, Integer> legionDateCountMap = new HashMap<>(); | |||
| if(legionDateCountList != null && !legionDateCountList.isEmpty()){ | |||
| legionDateCountMap = legionDateCountList.stream().collect(Collectors.toMap(LegionActivityUserStatistics::getXTime, LegionActivityUserStatistics::getCount)); | |||
| } | |||
| List<LegionActivityOrderTypeStatistics> legionOrderDateList = legionStatisticsMap.get(legionId); | |||
| Map<String, List<LegionActivityOrderTypeStatistics>> legionOrderDateMap = new HashMap<>(); | |||
| if(legionOrderDateList != null && !legionOrderDateList.isEmpty()){ | |||
| legionOrderDateMap = legionOrderDateList.stream().collect(groupingBy(LegionActivityOrderTypeStatistics::getXTime)); | |||
| } | |||
| List<ActivityNoticeVo> activityNoticeVoList = new ArrayList<>(); | |||
| for (String date : tjTimeList) { | |||
| Integer userCount = legionDateCountMap.get(date)==null?0:legionDateCountMap.get(date); | |||
| Integer sign_order = 0,dif_legion = 0,dif_union = 0,eq_union = 0,not_union = 0; | |||
| if(legionOrderDateMap.get(date) != null){ | |||
| for(LegionActivityOrderTypeStatistics statistics : legionOrderDateMap.get(date)){ | |||
| 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(); | |||
| } | |||
| } | |||
| } | |||
| //签单=总订单数 | |||
| 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() | |||
| +dif_legion*activity.getDifLegionOrder()+dif_union*activity.getDifUnionOrder() | |||
| +eq_union*activity.getEqUnionOrder()+not_union*activity.getNotUnionOrder(); | |||
| ActivityNoticeVo noticeVo = new ActivityNoticeVo(); | |||
| noticeVo.setName(date.substring(5).replace("-", "/")); | |||
| noticeVo.setScore(total_score); | |||
| activityNoticeVoList.add(noticeVo); | |||
| } | |||
| legionS.setNoticeVoList(activityNoticeVoList); | |||
| legionStatisticsList.add(legionS); | |||
| } | |||
| return legionStatisticsList; | |||
| } | |||
| } | |||
| @@ -288,7 +288,64 @@ | |||
| <if test=" null != auditStatus "> | |||
| and `audit_status` = #{auditStatus} | |||
| </if> | |||
| GROUP BY merchant_id,order_type | |||
| GROUP BY cus_merchant_id,order_type | |||
| </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', | |||
| 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` >= #{createDateBegin} | |||
| </if> | |||
| <if test=" null != createDateEnd"> | |||
| and `create_date` <= #{createDateEnd} | |||
| </if> | |||
| <if test=" null != auditStatus "> | |||
| and `audit_status` = #{auditStatus} | |||
| </if> | |||
| GROUP BY cus_legion_id,order_type | |||
| </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', | |||
| 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` >= #{createDateBegin} | |||
| </if> | |||
| <if test=" null != createDateEnd"> | |||
| and `create_date` <= #{createDateEnd} | |||
| </if> | |||
| <if test=" null != auditStatus "> | |||
| and `audit_status` = #{auditStatus} | |||
| </if> | |||
| GROUP BY cus_legion_id,order_type,xTime | |||
| </select> | |||
| <select id="findOrderUser" parameterType="com.iformall.domain.po.WxLegionActivityOrder" resultType="com.iformall.domain.vo.LegionActivitySellOrder"> | |||
| @@ -140,6 +140,65 @@ | |||
| GROUP BY merchant_id | |||
| </select> | |||
| <select id="selectCountGroupLegion" parameterType="com.iformall.domain.po.WxLegionActivityUser" resultType="com.iformall.domain.vo.LegionActivityUserStatistics"> | |||
| SELECT legion_id as 'legionId', | |||
| count(1) as 'count' | |||
| FROM wx_legion_activity_user | |||
| 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` >= #{createDateBegin} | |||
| </if> | |||
| <if test=" null != createDateEnd"> | |||
| and `create_date` <= #{createDateEnd} | |||
| </if> | |||
| <if test=" null != status "> | |||
| and `status` = #{status} | |||
| </if> | |||
| GROUP BY legion_id | |||
| </select> | |||
| <select id="selectCountGroupLegionDate" parameterType="com.iformall.domain.po.WxLegionActivityUser" resultType="com.iformall.domain.vo.LegionActivityUserStatistics"> | |||
| SELECT legion_id as 'legionId', | |||
| DATE_FORMAT(create_date,'%Y-%m-%d') as xTime, | |||
| count(1) as 'count' | |||
| FROM wx_legion_activity_user | |||
| 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` >= #{createDateBegin} | |||
| </if> | |||
| <if test=" null != createDateEnd"> | |||
| and `create_date` <= #{createDateEnd} | |||
| </if> | |||
| <if test=" null != status "> | |||
| and `status` = #{status} | |||
| </if> | |||
| GROUP BY legion_id,xTime | |||
| </select> | |||
| <update id="updateStatus" parameterType="com.iformall.domain.po.WxLegionActivityUser"> | |||
| update wx_legion_activity_user | |||
| set `status` = #{status}, | |||
| @@ -201,4 +260,5 @@ | |||
| <include refid="dynamicWhereConditions" /> | |||
| </select> | |||
| </mapper> | |||