From 7eda42694634ca4cf242e4bc715fe22b523af3d5 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 09 May 2025 14:06:42 +0800
Subject: [PATCH] feat(mall): 添加活动订单导出功能

---
 src/main/java/cc/mrbird/febs/mall/controller/activity/AdminVotesActivityCategoryController.java |   52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 52 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/activity/AdminVotesActivityCategoryController.java b/src/main/java/cc/mrbird/febs/mall/controller/activity/AdminVotesActivityCategoryController.java
index c504b30..46cc299 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/activity/AdminVotesActivityCategoryController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/activity/AdminVotesActivityCategoryController.java
@@ -4,6 +4,7 @@
 import cc.mrbird.febs.common.controller.BaseController;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.RedisUtils;
 import cc.mrbird.febs.common.utils.excl.ExcelSheetPO;
 import cc.mrbird.febs.common.utils.excl.ExcelUtil;
@@ -14,8 +15,11 @@
 import cc.mrbird.febs.mall.dto.activity.*;
 import cc.mrbird.febs.mall.entity.HappyActivity;
 import cc.mrbird.febs.mall.entity.HappyActivityOption;
+import cc.mrbird.febs.mall.entity.HappyActivityOrder;
 import cc.mrbird.febs.mall.service.IAdminHappyActivityService;
+import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
@@ -312,4 +316,52 @@
         ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, false);
     }
 
+    @SneakyThrows
+    @GetMapping("/exportOrderList")
+    public void exportOrderList(@RequestParam Map<String, String> params, HttpServletResponse response) {
+        //获取查询参数
+        if(ObjectUtil.isEmpty(params.get("activityId"))){
+            throw new FebsException("请选择活动");
+        }
+        String activityId = params.get("activityId");
+        HappyActivity happyActivity = adminHappyActivityService.getBaseMapper().selectById(activityId);
+        if(ObjectUtil.isEmpty(happyActivity)){
+            throw new FebsException("活动不存在");
+        }
+        List<ExcelSheetPO> res = new ArrayList<>();
+        ExcelSheetPO orderSheet = new ExcelSheetPO();
+        String title = happyActivity.getName() + "的订单";
+        orderSheet.setTitle(title);
+
+        String[] header = {"序号","用户", "编号", "单价", "数量","总价","使用状态", "支付方式"};
+        orderSheet.setHeaders(header);
+
+        List<HappyActivityOrder> orderListForExport = adminHappyActivityService.getOrderListForExport(params);
+        List<List<Object>> list = new ArrayList<>();
+        if (orderListForExport.size() > 0) {
+            int i = 0;
+            for (HappyActivityOrder item : orderListForExport) {
+                i++;
+                List<Object> temp = new ArrayList<>();
+                temp.add(i);
+                temp.add(item.getName());
+                temp.add(item.getOrderNo());
+                temp.add(item.getPrice());
+                temp.add(item.getNumCnt());
+                temp.add(item.getAmount());
+                temp.add(item.getState() == 2 ? "待使用" : "已使用");
+                temp.add(item.getPayType() == 0 ?"免费":"微信支付");
+                list.add(temp);
+            }
+        }
+        orderSheet.setDataList(list);
+        res.add(orderSheet);
+        response = ResponseHeadUtil.setExcelHead(response);
+        response.setHeader("Content-Disposition",
+                "attachment;filename=" + URLEncoder.encode(title + DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN) + ".xlsx".trim(), "UTF-8"));
+        OutputStream os = null;
+        os = response.getOutputStream();
+        ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, false);
+    }
+
 }

--
Gitblit v1.9.1