From 85e8510c6655eaa91000307248391bb81c10310e Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 15 Sep 2025 13:56:58 +0800 Subject: [PATCH] refactor(mall): 重构活动订单接口 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java | 83 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 82 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 f7ca8d1..c15fac4 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; @@ -159,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()); + } } } } @@ -374,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)){ @@ -485,6 +498,74 @@ } @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>() + .in(HappyActivityOrderItem::getOrderId, orderIds) + ); + + 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)); + + for (HappyActivityOrderItem happyActivityOrderItem : happyActivityOrderItems){ + AdminHappyActivityOrderItemVo vo = new AdminHappyActivityOrderItemVo(); + vo.setConnectName(happyActivityOrderItem.getName()); + vo.setConnectPhone(happyActivityOrderItem.getPhone()); + vo.setConnectAddress(happyActivityOrderItem.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(""); + } + list.add(vo); + } + } + return list; + } + + @Override public IPage<AdminHappyActivityOrderCheckVo> activityOrderCheckList(AdminHappyActivityOrderCheckDto dto, QueryRequest request) { Page<AdminHappyActivityOrderCheckVo> page = new Page<>(request.getPageNum(), request.getPageSize()); -- Gitblit v1.9.1