From eb6d2d6a37cc77fbae1f90227a62ff500d37d5ae Mon Sep 17 00:00:00 2001 From: xiaohu <1901900812@qq.com> Date: Sun, 5 Jan 2025 13:59:35 +0800 Subject: [PATCH 1/2] //legionActivity --- .../WxLegionActivityNoticeController.java | 93 ++++++++ .../iformall/domain/vo/ActivityNoticeBo.java | 25 +++ .../iformall/domain/vo/ActivityNoticeVo.java | 26 +++ .../vo/LegionActivityOrderTypeStatistics.java | 2 + .../domain/vo/LegionActivityStatistics.java | 36 +++ .../vo/LegionActivityUserStatistics.java | 2 + .../mapper/WxLegionActivityOrderMapper.java | 6 + .../mapper/WxLegionActivityUserMapper.java | 4 + .../service/WxLegionActivityOrderService.java | 7 + .../WxLegionActivityOrderServiceImpl.java | 206 ++++++++++++++++++ .../mapper/WxLegionActivityOrderMapper.xml | 59 ++++- .../mapper/WxLegionActivityUserMapper.xml | 60 +++++ 12 files changed, 525 insertions(+), 1 deletion(-) create mode 100644 mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityNoticeController.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/ActivityNoticeBo.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/ActivityNoticeVo.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityStatistics.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityNoticeController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityNoticeController.java new file mode 100644 index 000000000..9c13a5ae8 --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityNoticeController.java @@ -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 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 activityData = wxLegionActivityOrderService.getLegionDaysData(wxLegionActivityOrder); + return new ResultData(activityData); + } + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/ActivityNoticeBo.java b/mallinkService/src/main/java/com/iformall/domain/vo/ActivityNoticeBo.java new file mode 100644 index 000000000..6f328a96b --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/ActivityNoticeBo.java @@ -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; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/ActivityNoticeVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/ActivityNoticeVo.java new file mode 100644 index 000000000..d74ad7455 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/ActivityNoticeVo.java @@ -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; +} 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 dc1ba6a54..f8e515369 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderTypeStatistics.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderTypeStatistics.java @@ -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; } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityStatistics.java b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityStatistics.java new file mode 100644 index 000000000..2674fbc1b --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityStatistics.java @@ -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 noticeVoList; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityUserStatistics.java b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityUserStatistics.java index cdc5ca7d1..bc10fb742 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityUserStatistics.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityUserStatistics.java @@ -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; } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOrderMapper.java index 1e500eb68..da6d27c58 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOrderMapper.java @@ -30,7 +30,13 @@ public interface WxLegionActivityOrderMapper extends CommonMapper merchantStatistics(WxLegionActivityOrder wxLegionActivityOrder); + List legionStatistics(WxLegionActivityOrder wxLegionActivityOrder); + + List legionDateStatistics(WxLegionActivityOrder wxLegionActivityOrder); + List findOrderUser(WxLegionActivityOrder wxLegionActivityOrder); + + } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityUserMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityUserMapper.java index c3d00cb83..5343efad7 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityUserMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityUserMapper.java @@ -32,6 +32,10 @@ public interface WxLegionActivityUserMapper extends CommonMapper selectCountGroupLegion(WxLegionActivityUser wxLegionActivityUser); + + List selectCountGroupLegionDate(WxLegionActivityUser wxLegionActivityUser); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOrderService.java index 17f2b4f86..1b2d11302 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOrderService.java @@ -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 ids, Long userId); + + List getLegionData(WxLegionActivityOrder wxLegionActivityOrder); + + void exportLegionData(HttpServletRequest request, HttpServletResponse response, WxLegionActivityOrder wxLegionActivityOrder); + + List getLegionDaysData(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 965af393b..b8ea9afe6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java @@ -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 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 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 legionCountList = wxLegionActivityUserMapper.selectCountGroupLegion(userQ); + Map 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 legionStatistics = wxLegionActivityOrderMapper.legionStatistics(orderQ); + Map> legionStatisticsMap = new HashMap<>(); + if(legionStatistics != null && !legionStatistics.isEmpty()){ + legionStatisticsMap = legionStatistics.stream().collect(groupingBy(LegionActivityOrderTypeStatistics::getCusLegionId)); + } + + List 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 legionData = getLegionData(wxLegionActivityOrder); + excelService.exportExcel(legionData, null, "军团活动数据", LegionActivityStatistics.class, "军团活动数据.xlsx", response, false); + } + + @Override + public List 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 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 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 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 legionCountList = wxLegionActivityUserMapper.selectCountGroupLegionDate(userQ); + Map> 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 legionStatistics = wxLegionActivityOrderMapper.legionDateStatistics(orderQ); + Map> 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 legionDateCountList = legionCountMap.get(legionId); + Map legionDateCountMap = new HashMap<>(); + if(legionDateCountList != null && !legionDateCountList.isEmpty()){ + legionDateCountMap = legionDateCountList.stream().collect(Collectors.toMap(LegionActivityUserStatistics::getXTime, LegionActivityUserStatistics::getCount)); + } + List legionOrderDateList = legionStatisticsMap.get(legionId); + Map> legionOrderDateMap = new HashMap<>(); + if(legionOrderDateList != null && !legionOrderDateList.isEmpty()){ + legionOrderDateMap = legionOrderDateList.stream().collect(groupingBy(LegionActivityOrderTypeStatistics::getXTime)); + } + List 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; + } } diff --git a/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml index 2c4c7a916..6beca5067 100644 --- a/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml @@ -288,7 +288,64 @@ and `audit_status` = #{auditStatus} - GROUP BY merchant_id,order_type + GROUP BY cus_merchant_id,order_type + + + + + + + + + update wx_legion_activity_user set `status` = #{status}, @@ -201,4 +260,5 @@ + From 0463c7ed248a0e17d0dfe3bcd60bb5ed9a43cd74 Mon Sep 17 00:00:00 2001 From: xiaohu <1901900812@qq.com> Date: Sun, 5 Jan 2025 14:58:15 +0800 Subject: [PATCH 2/2] //Activity --- .../controller/market/WxLegionActivityController.java | 11 +++++++++++ .../market/WxOfflineActivityController.java | 10 ++++++++++ .../com/iformall/service/WxLegionActivityService.java | 2 ++ .../service/WxOfflineActivityItemService.java | 2 ++ .../iformall/service/WxOfflineActivityService.java | 2 ++ .../service/impl/WxLegionActivityServiceImpl.java | 11 +++++++++++ .../impl/WxOfflineActivityItemServiceImpl.java | 9 +++++++++ .../service/impl/WxOfflineActivityServiceImpl.java | 10 ++++++++++ 8 files changed, 57 insertions(+) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityController.java index c4e48cdea..53390b8b9 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityController.java @@ -159,4 +159,15 @@ public class WxLegionActivityController extends BaseController { return new ResultData(legionConfigList); } + @ApiVersion(group = SwaggerConstant.V_2_0_0) + @ApiOperation("查询基础信息") + @GetMapping("getBasicById") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) + public ResultData getBasicById(Long id) { + TenantEntity tenantInfo = getTenantInfo(); + WxLegionActivity activity = wxLegionActivityService.getBasicById(id, tenantInfo.getTenantId()); + return new ResultData(activity); + } + } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityController.java index 2177c8bc4..7cd58ffa7 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityController.java @@ -201,4 +201,14 @@ public class WxOfflineActivityController extends BaseController { wxOfflineActivityGrantAwardService.activityGrantExport(request,response,wxOfflineActivity); } + @ApiOperation("查询基础信息") + @GetMapping("getBasicById") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) + public ResultData getBasicById(Long id) { + TenantEntity tenantInfo = getTenantInfo(); + WxOfflineActivity activity = wxOfflineActivityService.getBasicById(id, tenantInfo.getTenantId()); + return new ResultData(activity); + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxLegionActivityService.java b/mallinkService/src/main/java/com/iformall/service/WxLegionActivityService.java index f1ba33acf..945801cae 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxLegionActivityService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxLegionActivityService.java @@ -21,4 +21,6 @@ public interface WxLegionActivityService { WxLegionActivity getInfoById(Long id, String tenantId); void delMerchant(WxLegionActivity wxLegionActivity); + + WxLegionActivity getBasicById(Long id, String tenantId); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityItemService.java b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityItemService.java index 162f950fe..75b6bd897 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityItemService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityItemService.java @@ -15,4 +15,6 @@ public interface WxOfflineActivityItemService { void saveOrUpdateFromActivity(WxOfflineActivity wxOfflineActivity, List activityItemList); List getActivityItemList(Long activityId, String tenantId); + + List getActivityItemBasicList(Long activityId, String tenantId); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityService.java b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityService.java index 118656272..da7e633ce 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityService.java @@ -33,4 +33,6 @@ public interface WxOfflineActivityService{ int getCountWidthCredit(WxOfflineActivity wxOfflineActivity); WxOfflineActivity selectCreditActivityOne(TenantEntity tenantEntity, Date orderDate); + + WxOfflineActivity getBasicById(Long id, String tenantId); } 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 0a273ac6c..690dda55f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityServiceImpl.java @@ -277,6 +277,17 @@ public class WxLegionActivityServiceImpl implements WxLegionActivityService{ wxLegionActivityOrderMapper.updateAuditStatus(activityOrder); } + + @Override + public WxLegionActivity getBasicById(Long id, String tenantId) { + WxLegionActivity activity = wxLegionActivityMapper.selectById(id, tenantId); + if(activity == null){ + return activity; + } + //获取军团配置 + activity.setLegionList(wxLegionActivityConfigService.findLegionList(id,tenantId)); + return activity; + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java index ac4f88e64..912c9896f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java @@ -93,6 +93,15 @@ public class WxOfflineActivityItemServiceImpl implements WxOfflineActivityItemSe } return itemList; } + + @Override + public List getActivityItemBasicList(Long activityId, String tenantId) { + WxOfflineActivityItem activityItemQuery = new WxOfflineActivityItem(); + activityItemQuery.setActivityId(activityId); + activityItemQuery.setTenantId(tenantId); + List itemList = wxOfflineActivityItemMapper.findList(activityItemQuery); + return itemList; + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java index d26dc24d3..f4883c1e2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java @@ -176,6 +176,16 @@ public class WxOfflineActivityServiceImpl implements WxOfflineActivityService{ wxOfflineActivity.setCreditOnOff(EnumYesOrNo.YES.getCode()); return wxOfflineActivityMapper.selectCreditActivityOne(wxOfflineActivity); } + + @Override + public WxOfflineActivity getBasicById(Long id, String tenantId) { + WxOfflineActivity wxOfflineActivity = wxOfflineActivityMapper.selectById(id, tenantId); + if (wxOfflineActivity == null) { + return null; + } + wxOfflineActivity.setActivityItemList(wxOfflineActivityItemService.getActivityItemBasicList(wxOfflineActivity.getId(),tenantId)); + return wxOfflineActivity; + } }