From c406a68c02d8d70af2a168d41170c03c3162be4a Mon Sep 17 00:00:00 2001 From: xiaohu <1901900812@qq.com> Date: Sun, 13 Oct 2024 23:20:34 +0800 Subject: [PATCH 1/2] //legionActivity --- .../WxLegionActivityOrderController.java | 22 ++++++++ .../mapper/WxLegionActivityOrderMapper.java | 2 +- .../mapper/WxOfflineActivityRecordMapper.java | 2 + .../WxLegionActivityOfflineConfigService.java | 2 + .../service/WxLegionActivityOrderService.java | 3 + ...egionActivityOfflineConfigServiceImpl.java | 47 ++++++++++++++-- .../WxLegionActivityOrderServiceImpl.java | 55 +++++++++++++++++-- .../mapper/WxLegionActivityOrderMapper.xml | 6 ++ .../mapper/WxOfflineActivityRecordMapper.xml | 21 +++++++ 9 files changed, 149 insertions(+), 11 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 abca22ed3..e351227f4 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityOrderController.java @@ -2,6 +2,7 @@ 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; @@ -93,6 +94,27 @@ public class WxLegionActivityOrderController extends BaseController { return new ResultData(); } + @ApiVersion(group = SwaggerConstant.V_2_0_0) + @ApiOperation("批量审核通过") + @PostMapping("batchAudiPass") + public ResultData batchAudiPass(@RequestBody List ids) { + if(ids == null || ids.isEmpty()){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + try{ + TenantEntity tenantEntity = getTenantInfo(); + wxLegionActivityOrderService.batchAudiPass(tenantEntity,ids,getUserId()); + return new ResultData(); + }catch(MallinkException e){ + logger.error(e.getMessage()); + return new ResultData(e.getErrorCode(), e.getMessage()); + }catch(Exception e){ + logger.error("异常:" + e); + return new ResultData(ErrorCode.SYS_SERVER_ERROR); + } + + } + @ApiVersion(group = SwaggerConstant.V_2_0_0) @ApiOperation("审核驳回") @PostMapping("audtFail") diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOrderMapper.java index 3809d4fcc..1e500eb68 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOrderMapper.java @@ -24,7 +24,7 @@ public interface WxLegionActivityOrderMapper extends CommonMapper auditStatusStatistics(WxLegionActivityOrder wxLegionActivityOrder); - void updateAuditStatus(WxLegionActivityOrder wxLegionActivityOrder); + Integer updateAuditStatus(WxLegionActivityOrder wxLegionActivityOrder); List orderTypeStatistics(WxLegionActivityOrder wxLegionActivityOrder); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java index 4e972f736..b2937e8ea 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java @@ -31,6 +31,8 @@ public interface WxOfflineActivityRecordMapper extends CommonMapper findGrantList(@Param("grantId")Long grantId, @Param("tenantId")String tenantId); + + void insertList(@Param("recordList")List activityRecordList); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOfflineConfigService.java b/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOfflineConfigService.java index 9115e542d..57a1adf1f 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOfflineConfigService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOfflineConfigService.java @@ -20,4 +20,6 @@ public interface WxLegionActivityOfflineConfigService { List getOfflineActivityList(WxLegionActivity wxLegionActivity); void syncOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder); + + void syncOfflineActivityRecord(List wxLegionActivityOrders); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOrderService.java index 527687083..9e18163c8 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOrderService.java @@ -5,6 +5,7 @@ import com.iformall.domain.po.WxLegionActivity; import com.iformall.domain.po.WxLegionActivityOrder; import com.baomidou.mybatisplus.extension.service.IService; 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; @@ -43,4 +44,6 @@ public interface WxLegionActivityOrderService { List getActivitySellOrder(WxLegionActivityOrder wxLegionActivityOrder); void exportActivitySellOrder(HttpServletRequest request, HttpServletResponse response, WxLegionActivityOrder wxLegionActivityOrder); + + void batchAudiPass(TenantEntity tenantEntity, List ids, Long userId); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOfflineConfigServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOfflineConfigServiceImpl.java index c78da59d5..caa11be98 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOfflineConfigServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOfflineConfigServiceImpl.java @@ -15,9 +15,8 @@ import com.iformall.service.WxOfflineActivityService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * @author xiaohu @@ -75,12 +74,48 @@ public class WxLegionActivityOfflineConfigServiceImpl implements WxLegionActivit @Override public void syncOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder) { - + IdWorker idWorker = IdWorker.get(); //所有都同步(绑定线下活动意义不大) + WxOfflineActivityRecord activityRecord = createOfflineActivityRecord(legionActivityOrder); + activityRecord.setId(idWorker.nextId()); + + if(activityRecord.getMerchantId() != null){ + WxMerchant merchant = wxMerchantService.selectById(activityRecord.getMerchantId()); + activityRecord.setBusinessId(merchant.getBusinessId()); + } + + wxOfflineActivityRecordMapper.insert(activityRecord); + } + + @Override + public void syncOfflineActivityRecord(List wxLegionActivityOrders) { + if(wxLegionActivityOrders == null || wxLegionActivityOrders.isEmpty()){ + return; + } IdWorker idWorker = IdWorker.get(); + + List merchantIds = wxLegionActivityOrders.stream().map(WxLegionActivityOrder::getMerchantId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); + WxMerchant merchantQ = new WxMerchant(); + merchantQ.setIds(merchantIds); + Map merchantMap = wxMerchantService.findMerchantMap(merchantQ); + + List activityRecordList = new ArrayList<>(); + for (WxLegionActivityOrder legionActivityOrder : wxLegionActivityOrders) { + WxOfflineActivityRecord activityRecord = createOfflineActivityRecord(legionActivityOrder); + activityRecord.setId(idWorker.nextId()); + if(activityRecord.getMerchantId() != null){ + WxMerchant merchant = merchantMap.get(activityRecord.getMerchantId()); + activityRecord.setBusinessId(merchant.getBusinessId()); + } + activityRecordList.add(activityRecord); + } + wxOfflineActivityRecordMapper.insertList(activityRecordList); + } + + + private WxOfflineActivityRecord createOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder) { WxOfflineActivityRecord activityRecord = new WxOfflineActivityRecord(); - activityRecord.setId(idWorker.nextId()); activityRecord.updateTenantInfo(legionActivityOrder); activityRecord.setFromOrderId(legionActivityOrder.getId()); activityRecord.setOrderNo(legionActivityOrder.getOrderNo()); @@ -104,7 +139,7 @@ public class WxLegionActivityOfflineConfigServiceImpl implements WxLegionActivit activityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode()); activityRecord.setAuditBy(legionActivityOrder.getAuditBy()); activityRecord.setAuditTime(legionActivityOrder.getAuditTime()); - wxOfflineActivityRecordMapper.insert(activityRecord); + return activityRecord; } } 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 e41979b77..30cc95f35 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java @@ -313,12 +313,12 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe @Transactional(rollbackFor = Exception.class) public void auditRecord(WxLegionActivityOrder wxLegionActivityOrder, Long userId) { Date now = new Date(); - wxLegionActivityOrder.setUpdateDate(now); - wxLegionActivityOrder.setAuditTime(now); wxLegionActivityOrder.setAuditBy(userId); - wxLegionActivityOrderMapper.updateAuditStatus(wxLegionActivityOrder); + wxLegionActivityOrder.setAuditTime(now); + wxLegionActivityOrder.setUpdateDate(now); + Integer upd = wxLegionActivityOrderMapper.updateAuditStatus(wxLegionActivityOrder); - if(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode().equals(wxLegionActivityOrder.getAuditStatus())){ + if(upd == 1 && EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode().equals(wxLegionActivityOrder.getAuditStatus())){ //同步订单 WxLegionActivityOrder legionActivityOrder = wxLegionActivityOrderMapper.selectById(wxLegionActivityOrder.getId(), wxLegionActivityOrder.getTenantId()); WxLegionActivityUser user = wxLegionActivityUserMapper.selectById(legionActivityOrder.getCusId(), legionActivityOrder.getTenantId()); @@ -329,6 +329,10 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe legionActivityOrder.setLotteryCount(wxLegionActivityOrder.getLotteryCount()); legionActivityOrder.setAnniversaryLotteryNum(wxLegionActivityOrder.getAnniversaryLotteryNum()); + legionActivityOrder.setAuditBy(wxLegionActivityOrder.getAuditBy()); + legionActivityOrder.setAuditTime(wxLegionActivityOrder.getAuditTime()); + legionActivityOrder.setUpdateDate(wxLegionActivityOrder.getUpdateDate()); + wxLegionActivityOfflineConfigService.syncOfflineActivityRecord(legionActivityOrder); } @@ -568,6 +572,49 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe excelService.exportExcel(activitySellOrder, null, "军团带单数据("+legionTypeStr+")", LegionActivitySellOrder.class, "军团带单数据("+legionTypeStr+").xlsx", response, false); } + + @Override + @Transactional(rollbackFor = Exception.class) + public void batchAudiPass(TenantEntity tenantEntity, List ids, Long userId) { + + WxLegionActivityOrder wxLegionActivityOrderQ = new WxLegionActivityOrder(); + wxLegionActivityOrderQ.updateTenantInfo(tenantEntity); + wxLegionActivityOrderQ.setIds(ids); + List wxLegionActivityOrders = wxLegionActivityOrderMapper.findList(wxLegionActivityOrderQ); + List syncOrders = wxLegionActivityOrders.stream() + .filter(wxLegionActivityOrder -> !EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode().equals(wxLegionActivityOrder.getAuditStatus())) + .collect(Collectors.toList()); + + if (syncOrders.isEmpty()){ + throw new MallinkException(Result.ERROR,"未查询到可审核的订单"); + } + + Date now = new Date(); + WxLegionActivityOrder wxLegionActivityOrderUpd = new WxLegionActivityOrder(); + wxLegionActivityOrderUpd.updateTenantInfo(tenantEntity); + wxLegionActivityOrderUpd.setIds(ids); + wxLegionActivityOrderUpd.setAuditStatus(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode()); + wxLegionActivityOrderUpd.setAuditBy(userId); + wxLegionActivityOrderUpd.setAuditTime(now); + wxLegionActivityOrderUpd.setUpdateDate(now); + Integer upd = wxLegionActivityOrderMapper.updateAuditStatus(wxLegionActivityOrderUpd); + + List userIds = syncOrders.stream().map(WxLegionActivityOrder::getCusId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); + WxLegionActivityUser userQ = new WxLegionActivityUser(); + userQ.updateTenantInfo(tenantEntity); + userQ.setIds(userIds); + Map activityUserMap = wxLegionActivityUserService.findUserMap(userQ); + for (WxLegionActivityOrder legionActivityOrder : syncOrders) { + WxLegionActivityUser user = activityUserMap.get(legionActivityOrder.getCusId()); + legionActivityOrder.setCusPhone(user.getPhone()); + legionActivityOrder.setCusVipNum(user.getVipNum()); + + legionActivityOrder.setAuditBy(userId); + legionActivityOrder.setAuditTime(now); + legionActivityOrder.setUpdateDate(now); + } + wxLegionActivityOfflineConfigService.syncOfflineActivityRecord(syncOrders); + } } diff --git a/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml index 25717b909..e80dc88ef 100644 --- a/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxLegionActivityOrderMapper.xml @@ -170,6 +170,12 @@ #{midItem} + + and id in + + #{idItem} + + + + insert into wx_offline_activity_record + (id, + from_order_id,order_no,order_money,cus_name, + real_cus_name,cus_phone,cus_address, + cus_card,lottery_num,lottery_count, + anniversary_lottery_num,create_by,merchant_id,business_id, + create_date,update_date,audit_remark, + audit_status,audit_by,audit_time) + values + + (#{item.id,jdbcType=BIGINT}, + #{item.fromOrderId,jdbcType=BIGINT},#{item.orderNo,jdbcType=VARCHAR},#{item.orderMoney,jdbcType=DECIMAL},#{item.cusName,jdbcType=VARCHAR}, + #{item.realCusName,jdbcType=VARCHAR},#{item.cusPhone,jdbcType=VARCHAR},#{item.cusAddress,jdbcType=VARCHAR}, + #{item.cusCard,jdbcType=VARCHAR},#{item.lotteryNum,jdbcType=VARCHAR},#{item.lotteryCount,jdbcType=INTEGER}, + #{item.anniversaryLotteryNum,jdbcType=VARCHAR},#{item.createBy,jdbcType=BIGINT},#{item.merchantId,jdbcType=BIGINT},#{item.businessId,jdbcType=INTEGER}, + #{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP},#{item.auditRemark,jdbcType=VARCHAR}, + #{item.auditStatus,jdbcType=INTEGER},#{item.auditBy,jdbcType=BIGINT},#{item.auditTime,jdbcType=TIMESTAMP}) + + + 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 2/2] //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 @@ + +