From 03bd93bf72ea24c2134c08bff69a3671202759ff Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 15 Sep 2025 13:48:44 +0800 Subject: [PATCH] feat(mall): 优化活动订单列表接口和导出功能 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java | 99 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 98 insertions(+), 1 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java index e0c5235..eba557d 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java @@ -13,6 +13,8 @@ import cc.mrbird.febs.mall.vo.AdminMallGoodsCommentVo; import cc.mrbird.febs.mall.vo.activity.AdminActivityCommentVo; import cc.mrbird.febs.mall.vo.activity.AdminHappyActivityOrderCheckVo; +import cc.mrbird.febs.mall.vo.activity.AdminHappyActivityOrderItemVo; +import cc.mrbird.febs.rabbit.producter.AgentProducer; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; @@ -41,8 +43,10 @@ private final HappyActivityOrderMapper happyActivityOrderMapper; private final HappyActivityCommentMapper happyActivityCommentMapper; private final HappyActivityOrderItemMapper happyActivityOrderItemMapper; + private final HappyActivityConnectMapper happyActivityConnectMapper; private final HappyFollowMapper happyFollowMapper; private final MallMemberMapper mallMemberMapper; + private final AgentProducer agentProducer; @Override public IPage<HappyActivityCategory> getGroupList(AdminHappyActivityCategoryDto dto, QueryRequest request) { @@ -157,7 +161,11 @@ Map<Long, HappyActivityCategory> categoryMap = happyActivityCategories.stream().collect(Collectors.toMap(HappyActivityCategory::getId, happyActivityCategory -> happyActivityCategory)); for (HappyActivity happyActivity : records){ - happyActivity.setCategoryName(categoryMap.get(happyActivity.getCategoryId()).getName()); + if(ObjectUtil.isNotNull(happyActivity.getCategoryId()) + && categoryMap.containsKey(happyActivity.getCategoryId()) + ){ + happyActivity.setCategoryName(categoryMap.get(happyActivity.getCategoryId()).getName()); + } } } } @@ -222,6 +230,8 @@ happyActivity.setBackImg(dto.getBackImg()); happyActivity.setVoteCnt(dto.getVoteCnt()); happyActivity.setAddState(dto.getAddState()); + happyActivity.setScoreCnt(dto.getScoreCnt()); + happyActivity.setGrowthCnt(dto.getGrowthCnt()); this.baseMapper.updateById(happyActivity); return new FebsResponse().success().message("操作成功"); @@ -370,6 +380,13 @@ } @Override + public IPage<AdminHappyActivityOrderItemVo> activityOrderListV2(AdminHappyActivityOrderDto dto, QueryRequest request) { + Page<AdminHappyActivityOrderItemVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + Page<AdminHappyActivityOrderItemVo> adminOptionVoIPage = this.baseMapper.selectOrderItemInPage(page, dto); + return adminOptionVoIPage; + } + + @Override public FebsResponse checkOrder(List<Long> ids) { if (CollUtil.isEmpty(ids)){ @@ -481,6 +498,83 @@ } @Override + public List<AdminHappyActivityOrderItemVo> getOrderListForExportV2(Map<String, String> params) { + List<AdminHappyActivityOrderItemVo> list = new ArrayList<>(); + + LambdaQueryWrapper<HappyActivityOrder> queryWrapper = new LambdaQueryWrapper<>(); + if(ObjectUtil.isNotEmpty(params.get("activityId"))){ + queryWrapper.eq(HappyActivityOrder::getActivityId, Long.valueOf(params.get("activityId"))); + } + List<Integer> stateList = Arrays.asList(StateUpDownEnum.ORDER_STATE_WAIT_USE.getCode(), StateUpDownEnum.ORDER_STATE_USED.getCode()); + queryWrapper.in(HappyActivityOrder::getState, stateList); + queryWrapper.eq(HappyActivityOrder::getDeleteFlag, StateUpDownEnum.DOWN.getCode()); + queryWrapper.orderByDesc(HappyActivityOrder::getState); + queryWrapper.orderByDesc(HappyActivityOrder::getId); + List<HappyActivityOrder> happyActivityOrders = happyActivityOrderMapper.selectList(queryWrapper); + + if(CollUtil.isNotEmpty(happyActivityOrders)){ + + Map<Long, HappyActivityOrder> happyActivityOrderMap = happyActivityOrders.stream().collect(Collectors.toMap(HappyActivityOrder::getId, order -> order)); + + Set<Long> orderIds = happyActivityOrders.stream().map(HappyActivityOrder::getId).collect(Collectors.toSet()); + List<HappyActivityOrderItem> happyActivityOrderItems = happyActivityOrderItemMapper.selectList( + new LambdaQueryWrapper<HappyActivityOrderItem>() + .select(HappyActivityOrderItem::getConnectId) + .in(HappyActivityOrderItem::getOrderId, orderIds) + ); + Set<Long> connectIds = happyActivityOrderItems.stream().map(HappyActivityOrderItem::getConnectId).collect(Collectors.toSet()); + List<HappyActivityConnect> happyActivityConnects = happyActivityConnectMapper.selectList( + new LambdaQueryWrapper<HappyActivityConnect>() + .select(HappyActivityConnect::getId,HappyActivityConnect::getName,HappyActivityConnect::getPhone,HappyActivityConnect::getAddress) + .in(HappyActivityConnect::getId, connectIds) + ); + Map<Long, HappyActivityConnect> happyActivityConnectMap = happyActivityConnects.stream().collect(Collectors.toMap(HappyActivityConnect::getId, happyActivityConnect -> happyActivityConnect)); + + + Set<Long> collect = happyActivityOrders.stream().map(HappyActivityOrder::getMemberId).collect(Collectors.toSet()); + List<MallMember> mallMembers = mallMemberMapper.selectList( + new LambdaQueryWrapper<MallMember>() + .select(MallMember::getId,MallMember::getName) + .in(MallMember::getId, collect) + ); + Map<Long, MallMember> mallMemberMap = mallMembers.stream().collect(Collectors.toMap(MallMember::getId, mallMember -> mallMember)); + + happyActivityOrderItems.forEach(happyActivityOrderItem -> { + AdminHappyActivityOrderItemVo vo = new AdminHappyActivityOrderItemVo(); + HappyActivityConnect happyActivityConnect = happyActivityConnectMap.get(happyActivityOrderItem.getConnectId()); + vo.setConnectName(happyActivityConnect.getName()); + vo.setConnectPhone(happyActivityConnect.getPhone()); + vo.setConnectAddress(happyActivityConnect.getAddress()); + + HappyActivityOrder happyActivityOrder = happyActivityOrderMap.get(happyActivityOrderItem.getOrderId()); + vo.setId(happyActivityOrder.getId()); + vo.setCreatedTime(happyActivityOrder.getCreatedTime()); + vo.setMemberId(happyActivityOrder.getMemberId()); + vo.setActivityId(happyActivityOrder.getActivityId()); + vo.setPrice(happyActivityOrder.getPrice()); + vo.setNumCnt(happyActivityOrder.getNumCnt()); + vo.setAmount(happyActivityOrder.getAmount()); + vo.setPayState(happyActivityOrder.getPayState()); + vo.setPayType(happyActivityOrder.getPayType()); + vo.setPayTime(happyActivityOrder.getPayTime()); + vo.setDeleteFlag(happyActivityOrder.getDeleteFlag()); + vo.setOrderNo(happyActivityOrder.getOrderNo()); + vo.setPayOrderNo(happyActivityOrder.getPayOrderNo()); + vo.setWxOrderNo(happyActivityOrder.getWxOrderNo()); + vo.setState(happyActivityOrder.getState()); + vo.setFailTime(happyActivityOrder.getFailTime()); + MallMember mallMember = mallMemberMap.get(happyActivityOrderItem.getMemberId()); + if (ObjectUtil.isNotEmpty(mallMember)){ + vo.setMemberName(mallMember.getName()); + }else{ + vo.setMemberName(""); + } + }); + } + return list; + } + + @Override public IPage<AdminHappyActivityOrderCheckVo> activityOrderCheckList(AdminHappyActivityOrderCheckDto dto, QueryRequest request) { Page<AdminHappyActivityOrderCheckVo> page = new Page<>(request.getPageNum(), request.getPageSize()); @@ -504,6 +598,9 @@ happyActivityOrderItem.setState(StateUpDownEnum.UP.getCode()); happyActivityOrderItem.setUpdatedTime(DateUtil.date()); happyActivityOrderItemMapper.updateById(happyActivityOrderItem); + + + agentProducer.sendCheckActivityItem(happyActivityOrderItem.getOrderId()); }); } return new FebsResponse().success().message("操作成功"); -- Gitblit v1.9.1