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