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