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 | 86 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 86 insertions(+), 0 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 45e798e..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,7 @@ 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; @@ -42,6 +43,7 @@ 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; @@ -378,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)){ @@ -489,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()); -- Gitblit v1.9.1