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