From 126d8598676594e73bf50ba0c3e5b3035dafddbb Mon Sep 17 00:00:00 2001 From: xiaohu <1901900812@qq.com> Date: Tue, 15 Oct 2024 11:31:05 +0800 Subject: [PATCH] //legionActivity --- .../WxLegionActivityOrderController.java | 17 ++++++ .../WxLegionActivityOrderController.java | 2 +- .../domain/po/WxLegionActivityOrder.java | 2 + .../vo/LegionActivityOrderStatistics.java | 1 + .../mapper/WxLegionActivityUserMapper.java | 2 + .../service/WxLegionActivityOrderService.java | 2 +- .../WxLegionActivityOrderServiceImpl.java | 52 ++++++++++++++++--- .../mapper/WxLegionActivityOrderMapper.xml | 7 ++- .../mapper/WxLegionActivityUserMapper.xml | 6 +++ 9 files changed, 82 insertions(+), 9 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityOrderController.java index e351227f4..bf2232e66 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityOrderController.java @@ -146,6 +146,23 @@ public class WxLegionActivityOrderController extends BaseController { return new ResultData(); } + @ApiVersion(group = SwaggerConstant.V_2_0_0) + @ApiOperation("参加活动用户订单统计") + @GetMapping("statistics") + public ResultData statisticsCount(@ModelAttribute WxLegionActivityOrder wxLegionActivityOrder) { + if(wxLegionActivityOrder.getActivityId() == null){ + return new ResultData(Result.ERROR,"活动ID不能为空"); + } + if(StringUtil.isBlank(wxLegionActivityOrder.getCusPhone())){ + return new ResultData(Result.ERROR,"请输入用户手机号"); + } + + TenantEntity tenantInfo = getTenantInfo(); + wxLegionActivityOrder.updateTenantInfo(tenantInfo); + Map statisticsMap = wxLegionActivityOrderService.getStatistics(wxLegionActivityOrder); + return new ResultData(statisticsMap); + } + @ApiVersion(group = SwaggerConstant.V_2_0_0) @ApiOperation("查询详情") @GetMapping("getInfoById") diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityOrderController.java index 422a361f7..bbb360d50 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityOrderController.java @@ -113,7 +113,7 @@ public class WxLegionActivityOrderController extends BaseController { TenantEntity tenantInfo = getTenantInfo(); wxLegionActivityOrder.updateTenantInfo(tenantInfo); wxLegionActivityOrder.setMerchantId(getLoginBUser().getMerchantId()); - Map statisticsMap = wxLegionActivityOrderService.getStatistics(wxLegionActivityOrder); + Map statisticsMap = wxLegionActivityOrderService.getStatistics(wxLegionActivityOrder); return new ResultData(statisticsMap); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOrder.java index fc4c9245e..f38eee545 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOrder.java @@ -196,6 +196,8 @@ public class WxLegionActivityOrder extends TenantEntity { */ @TableField(value = "audit_by") private Long auditBy; + @TableField(exist = false) + private String auditByName; /** * 审核时间 diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderStatistics.java b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderStatistics.java index 797a20e0e..01f408160 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderStatistics.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderStatistics.java @@ -12,4 +12,5 @@ public class LegionActivityOrderStatistics implements Serializable { private Integer auditStatus; private Integer count; + private BigDecimal sumMoney; } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityUserMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityUserMapper.java index c0dcb1442..63e2027a2 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityUserMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityUserMapper.java @@ -28,6 +28,8 @@ public interface WxLegionActivityUserMapper extends CommonMapper getStatistics(WxLegionActivityOrder wxLegionActivityOrder); + Map getStatistics(WxLegionActivityOrder wxLegionActivityOrder); void exportData(HttpServletRequest request, HttpServletResponse response, 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 30cc95f35..1d9fc62d8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java @@ -22,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -65,6 +66,9 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe @Autowired private WxShopService wxShopService; + @Autowired + private MallUserInfoService mallUserInfoService; + @Autowired private ExcelService excelService; @Autowired @@ -119,14 +123,21 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe } List merchantIds = wxLegionActivityOrders.stream().map(WxLegionActivityOrder::getMerchantId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); + List adminUserIds = wxLegionActivityOrders.stream().map(WxLegionActivityOrder::getAuditBy).filter(Objects::nonNull).distinct().collect(Collectors.toList()); List userIds = wxLegionActivityOrders.stream().map(WxLegionActivityOrder::getCusId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); - Map merchantMap = new HashMap<>(); + Map merchantMap = new HashMap<>(); if(!merchantIds.isEmpty()){ WxMerchant merchantQ = new WxMerchant(); merchantQ.updateTenantInfo(wxLegionActivityOrder); merchantQ.setIds(merchantIds); - merchantMap = wxMerchantService.getIdAndNamesMap(merchantQ); + merchantMap = wxMerchantService.findMerchantMap(merchantQ); + } + Map userMap = new HashMap<>(); + if(!adminUserIds.isEmpty()){ + MallUserInfo userInfoQ = new MallUserInfo(); + userInfoQ.updateTenantInfo(wxLegionActivityOrder); + userMap = mallUserInfoService.getUserMap(userInfoQ); } Map activityUserMap = new HashMap<>(); if(!userIds.isEmpty()){ @@ -141,12 +152,19 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe Map legionConfigMap = wxLegionActivityConfigService.getLegionConfigMap(legionConfigQ); for (WxLegionActivityOrder legionActivityOrder : wxLegionActivityOrders) { + if(legionActivityOrder.getMerchantId() != null){ + WxMerchant merchant = merchantMap.get(legionActivityOrder.getMerchantId()); + legionActivityOrder.setMerchantName(merchant.getName()); + } + if(legionActivityOrder.getAuditBy() != null){ + legionActivityOrder.setAuditByName(userMap.get(legionActivityOrder.getAuditBy()).getName()); + } WxLegionActivityUser user = activityUserMap.get(legionActivityOrder.getCusId()); if (null != user) { legionActivityOrder.setCusPhone(user.getPhone()); legionActivityOrder.setCusVipNum(user.getVipNum()); } - legionActivityOrder.setMerchantName(merchantMap.get(legionActivityOrder.getMerchantId())); + if(legionActivityOrder.getLegionId().equals(0L)){ legionActivityOrder.setLegionName("未参加活动"); legionActivityOrder.setUnionName("未参加活动"); @@ -278,15 +296,36 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe } @Override - public Map getStatistics(WxLegionActivityOrder wxLegionActivityOrder) { - List auditStatusStatistics = wxLegionActivityOrderMapper.auditStatusStatistics(wxLegionActivityOrder); - Map result = new HashMap<>(); + public Map getStatistics(WxLegionActivityOrder wxLegionActivityOrder) { + Map result = new HashMap<>(); Integer audting = 0, audi_success = 0, audt_fail = 0, invalid = 0; + BigDecimal sum_success = BigDecimal.ZERO, sum_fail = BigDecimal.ZERO; + + if(StringUtils.isNotBlank(wxLegionActivityOrder.getCusPhone())){ + WxLegionActivityUser activityUserQ = new WxLegionActivityUser(); + activityUserQ.setActivityId(wxLegionActivityOrder.getActivityId()); + activityUserQ.setPhone(wxLegionActivityOrder.getCusPhone()); + WxLegionActivityUser user = wxLegionActivityUserMapper.selectLimitOne(activityUserQ); + if(user == null){ + result.put("cus_name","查无此人"); + result.put("cus_phone",wxLegionActivityOrder.getCusPhone()); + return result; + }else{ + wxLegionActivityOrder.setCusId(user.getId()); + result.put("cus_name",user.getName()); + result.put("cus_phone",user.getPhone()); + result.put("vip_num",user.getVipNum()); + } + } + + List auditStatusStatistics = wxLegionActivityOrderMapper.auditStatusStatistics(wxLegionActivityOrder); + for(LegionActivityOrderStatistics statistics : auditStatusStatistics){ if(EnumLegionActivityOrderStatus.AUDTING.getCode().equals(statistics.getAuditStatus())){ audting = statistics.getCount(); } else if (EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode().equals(statistics.getAuditStatus())) { audi_success = statistics.getCount(); + sum_success = statistics.getSumMoney(); } else if (EnumLegionActivityOrderStatus.AUDT_FAIL.getCode().equals(statistics.getAuditStatus())) { audt_fail = statistics.getCount(); } else if (EnumLegionActivityOrderStatus.INVALID.getCode().equals(statistics.getAuditStatus())) { @@ -295,6 +334,7 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe } result.put("audting",audting); result.put("audi_success",audi_success); + result.put("sum_success",sum_success); result.put("audt_fail",audt_fail); result.put("invalid",invalid); result.put("sum_count",audting+audi_success+audt_fail+invalid); diff --git a/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml index e80dc88ef..ddb55e674 100644 --- a/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml @@ -180,7 +180,8 @@ + +