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