From 54a64e9a13344e39470de8eff1d28a0eec669cf6 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期日, 24 三月 2024 21:45:01 +0800
Subject: [PATCH] 题目导入模板下载

---
 src/main/java/com/mindskip/xzs/service/QuestionService.java             |    8 ++++++++
 src/main/java/com/mindskip/xzs/repository/QuestionMapper.java           |    3 +++
 src/main/java/com/mindskip/xzs/excel/SelectExcel.java                   |    7 +------
 src/main/resources/mapper/QuestionMapper.xml                            |    9 +++++++++
 src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java    |    5 +++++
 src/main/java/com/mindskip/xzs/vo/QuestionImportVO.java                 |    3 +++
 src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java |   12 ++++++++++++
 7 files changed, 41 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java b/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
index cd4d574..3614c69 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
@@ -194,6 +194,18 @@
                 .doWrite(data);
     }
 
+    @PostMapping("/question/export")
+    public void importQuestion(QuestionPageRequestVM query, HttpServletResponse response) throws IOException {
+        // 鏌ヨ瀵煎嚭鏁版嵁
+        List<QuestionImportVO> exportData = questionService.export(query);
+        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+        response.setCharacterEncoding("utf-8");
+        // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴
+        String fileName = URLEncoder.encode("棰樼洰瀵煎嚭鏁版嵁", "UTF-8").replaceAll("\\+", "%20");
+        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
+        EasyExcel.write(response.getOutputStream(), QuestionImportVO.class).sheet("棰樼洰瀵煎嚭鏁版嵁").doWrite(exportData);
+    }
+
     /**
      * 棰樼洰瀵煎叆
      *
diff --git a/src/main/java/com/mindskip/xzs/excel/SelectExcel.java b/src/main/java/com/mindskip/xzs/excel/SelectExcel.java
index 0c91aeb..70e36d2 100644
--- a/src/main/java/com/mindskip/xzs/excel/SelectExcel.java
+++ b/src/main/java/com/mindskip/xzs/excel/SelectExcel.java
@@ -2,16 +2,11 @@
 
 import com.alibaba.excel.metadata.Head;
 import com.alibaba.excel.metadata.data.WriteCellData;
-import com.alibaba.excel.write.handler.AbstractCellWriteHandler;
 import com.alibaba.excel.write.handler.CellWriteHandler;
 import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
 import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
 import org.apache.poi.ss.usermodel.*;
-import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.ss.util.CellRangeAddressList;
-
-import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -45,7 +40,7 @@
         Sheet sheet = writeSheetHolder.getSheet();
 
 
-        // 鑾峰彇鏁版嵁鏍¢獙helper
+        // 鑾峰彇鏁版嵁鏍¢獙helper锛宔xcel鐨勪笅鎷夊氨鏄�氳繃鏁版嵁鏍¢獙璁剧疆
         DataValidationHelper dataValidationHelper = sheet.getDataValidationHelper();
 
         // 璁剧疆棰樼洰涓嬫媺鑼冨洿锛岀涓�鍒楋紝1500琛屽唴
diff --git a/src/main/java/com/mindskip/xzs/repository/QuestionMapper.java b/src/main/java/com/mindskip/xzs/repository/QuestionMapper.java
index 9aeea04..2972edb 100644
--- a/src/main/java/com/mindskip/xzs/repository/QuestionMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/QuestionMapper.java
@@ -3,6 +3,7 @@
 import com.mindskip.xzs.domain.other.KeyValue;
 import com.mindskip.xzs.domain.Question;
 import com.mindskip.xzs.viewmodel.admin.question.QuestionPageRequestVM;
+import com.mindskip.xzs.vo.QuestionImportVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -21,4 +22,6 @@
     List<KeyValue> selectCountByDate(@Param("startTime") Date startTime,@Param("endTime") Date endTime);
 
     List<Question> getAll();
+
+    List<QuestionImportVO> export(@Param("query") QuestionPageRequestVM query);
 }
diff --git a/src/main/java/com/mindskip/xzs/service/QuestionService.java b/src/main/java/com/mindskip/xzs/service/QuestionService.java
index ec59eaa..be5706a 100644
--- a/src/main/java/com/mindskip/xzs/service/QuestionService.java
+++ b/src/main/java/com/mindskip/xzs/service/QuestionService.java
@@ -5,6 +5,7 @@
 import com.mindskip.xzs.viewmodel.admin.question.QuestionEditRequestVM;
 import com.mindskip.xzs.viewmodel.admin.question.QuestionPageRequestVM;
 import com.github.pagehelper.PageInfo;
+import com.mindskip.xzs.vo.QuestionImportVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -30,4 +31,11 @@
     List<Question> getAll();
 
     List<Question> selectByIds(@Param("ids") List<Integer> ids);
+
+    /**
+     * 棰樼洰瀵煎嚭鏁版嵁
+     * @param query
+     * @return
+     */
+    List<QuestionImportVO> export(QuestionPageRequestVM query);
 }
diff --git a/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java
index bdfb0fa..fd2cddd 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java
@@ -25,6 +25,7 @@
 import com.mindskip.xzs.viewmodel.admin.question.QuestionPageRequestVM;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.mindskip.xzs.vo.QuestionImportVO;
 import org.modelmapper.ModelMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -251,4 +252,8 @@
     }
 
 
+    @Override
+    public List<QuestionImportVO> export(QuestionPageRequestVM query) {
+        return questionMapper.export(query);
+    }
 }
diff --git a/src/main/java/com/mindskip/xzs/vo/QuestionImportVO.java b/src/main/java/com/mindskip/xzs/vo/QuestionImportVO.java
index b61ec5f..390e872 100644
--- a/src/main/java/com/mindskip/xzs/vo/QuestionImportVO.java
+++ b/src/main/java/com/mindskip/xzs/vo/QuestionImportVO.java
@@ -1,5 +1,6 @@
 package com.mindskip.xzs.vo;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import com.alibaba.excel.annotation.write.style.ContentStyle;
@@ -27,6 +28,8 @@
 
     @ExcelProperty("璇剧洰(澶氫釜鐢ㄣ�侀殧寮�)")
     private String subjectName;
+    @ExcelIgnore
+    private List<Integer> subjectIds;
 
     @ColumnWidth(80)
     @ExcelProperty("棰樺共")
diff --git a/src/main/resources/mapper/QuestionMapper.xml b/src/main/resources/mapper/QuestionMapper.xml
index ba39eaa..6a2e725 100644
--- a/src/main/resources/mapper/QuestionMapper.xml
+++ b/src/main/resources/mapper/QuestionMapper.xml
@@ -242,4 +242,13 @@
     SELECT <include refid="Base_Column_List"/>
         from t_question where  deleted=0
   </select>
+
+  <select id="export" resultMap="exportMap">
+    SELECT * FROM t_question q INNER JOIN t_question_subject qs on q.id = qs.question_id
+  </select>
+
+  <resultMap id="exportMap" type="com.mindskip.xzs.vo.QuestionImportVO">
+
+  </resultMap>
+
 </mapper>

--
Gitblit v1.8.0