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