From d2b694a658babe45642fc61dda6fb5dc1c296669 Mon Sep 17 00:00:00 2001 From: wgf <121463602@qq.com> Date: Sun, 11 Jun 2023 15:03:01 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=AF=BE=E7=A8=8B=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/批量题库导入模板.xlsx | Bin 0 -> 10862 bytes ...enCourseMergeResourcesQuestionService.java | 17 +++++- ...ourseMergeResourcesQuestionController.java | 56 ++++++++++++++---- .../main/resources/sql/jlw/resourcesInfo.md | 2 +- 4 files changed, 61 insertions(+), 14 deletions(-) create mode 100644 web/filesystem/template/批量题库导入模板.xlsx diff --git a/web/filesystem/template/批量题库导入模板.xlsx b/web/filesystem/template/批量题库导入模板.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..087f2fbb4eb9a05594969c6b8b0bb0c80591ab8c GIT binary patch literal 10862 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 aO8MFUmJtX088}d$j)|D3J@=44^Zg&UG|qeg literal 0 HcmV?d00001 diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeResourcesQuestionService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeResourcesQuestionService.java index 6522dd25..bd91f522 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeResourcesQuestionService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeResourcesQuestionService.java @@ -8,6 +8,7 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.EnumUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.jlw.util.ToolUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -18,17 +19,17 @@ import com.ibeetl.admin.core.util.user.CacheUserUtil; import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.admin.core.web.JsonReturnCode; import com.ibeetl.jlw.dao.ResourcesQuestionDao; +import com.ibeetl.jlw.dao.TeacherOpenCourseDao; import com.ibeetl.jlw.dao.TeacherOpenCourseMergeCourseInfoDao; import com.ibeetl.jlw.dao.TeacherOpenCourseMergeResourcesQuestionDao; import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.entity.dto.QuestionSettingDTO; import com.ibeetl.jlw.entity.vo.QuestionTypeCountVO; +import com.ibeetl.jlw.entity.vo.ResourcesCourseInfoAuthDetailsVO; import com.ibeetl.jlw.enums.CopyFromEnum; import com.ibeetl.jlw.enums.GlobalUpStatusEnum; import com.ibeetl.jlw.enums.ResourcesQuestionTypeEnum; -import com.ibeetl.jlw.web.query.ResourcesQuestionQuery; -import com.ibeetl.jlw.web.query.TeacherOpenCourseMergeResourcesQuestionQuery; -import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionSettingQuery; +import com.ibeetl.jlw.web.query.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; @@ -51,12 +52,19 @@ import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.io.*; import java.math.BigDecimal; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; +import java.util.stream.Collectors; import static cn.hutool.core.util.ArrayUtil.join; import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue; +import static com.ibeetl.admin.core.util.StreamUtils.listJoin; +import static com.ibeetl.jlw.enums.AddTypeEnum.ADMIN_ADD; +import static com.ibeetl.jlw.enums.AddTypeEnum.FACULTY_ADD; +import static com.ibeetl.jlw.enums.CourseLabelTypeEnum.THEORY; import static java.util.stream.Collectors.*; /** @@ -84,6 +92,9 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ @Autowired private ResourcesQuestionSnapshotService resourcesQuestionSnapshotService; + @Autowired + private TeacherOpenCourseDao teacherOpenCourseDao; + private static final Snowflake snowflake = new Snowflake(); diff --git a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesQuestionController.java b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesQuestionController.java index db6fd2dd..405fd072 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesQuestionController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesQuestionController.java @@ -23,6 +23,7 @@ import com.ibeetl.jlw.entity.TeacherOpenCourseMergeResourcesQuestion; import com.ibeetl.jlw.entity.TeacherOpenCourseMergeResourcesQuestionImport; import com.ibeetl.jlw.service.TeacherOpenCourseMergeResourcesQuestionService; import com.ibeetl.jlw.web.query.TeacherOpenCourseMergeResourcesQuestionQuery; +import com.ibeetl.jlw.web.query.TeacherOpenCourseQuery; import lombok.SneakyThrows; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -50,10 +51,7 @@ import javax.validation.constraints.NotNull; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import static cn.jlw.util.CacheUserUtil.getStudent; @@ -491,12 +489,50 @@ public class TeacherOpenCourseMergeResourcesQuestionController extends BaseContr Assert.notNull(getUser(), "请登录后再操作"); - // 这里不给文件名后缀,write里面自动加 - String filename = StrUtil.format("批量题库导入模板{}", System.currentTimeMillis()); - // 输出 Excel - ExcelUtil.writeExcel(response, filename, Collections.emptyList(), TeacherOpenCourseMergeResourcesQuestion.class); +// // 这里不给文件名后缀,write里面自动加 +// String filename = StrUtil.format("批量题库导入模板{}", System.currentTimeMillis()); +// // 输出 Excel +// ExcelUtil.writeExcel(response, filename, Collections.emptyList(), TeacherOpenCourseMergeResourcesQuestion.class); - } + XSSFWorkbook workbook = null; + InputStream is = null; + try { + is = new FileInputStream(GetFile.p + File.separator +"filesystem"+ File.separator +"template"+ File.separator+ "批量题库导入模板.xlsx"); + + workbook = new XSSFWorkbook(is); + + // 查询特定的课程名称及其章的名称 + List courseInfoArr = new ArrayList(); + Map> map = new HashMap>(); + + //准备将Excel的输出流通过response输出到页面下载 + //八进制输出流 + response.setContentType("application/octet-stream"); + + //这后面可以设置导出Excel的名称,此例中名为template.xls + response.setHeader("Content-disposition", "attachment;filename=resourcesQuestionTemplate(" + TimeTool.getNowTime("YMD") + ").xlsx"); + + //刷新缓冲 + response.flushBuffer(); + + //workbook将Excel写入到response的输出流中,供页面下载 + workbook.write(response.getOutputStream()); + }catch (Exception e){ + e.printStackTrace(); + } finally { + try { + if (null != workbook) { + workbook.close(); + } + if (null != response && null != response.getOutputStream()) { + response.getOutputStream().close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + } /** * 功能描述:
@@ -509,7 +545,7 @@ public class TeacherOpenCourseMergeResourcesQuestionController extends BaseContr */ @SneakyThrows @PostMapping(API + "/importBatchTemplate.do") - public JsonResult importBatchTemplate(@NotNull(message = "导入的文件不能为空!") MultipartFile file, @SCoreUser CoreUser coreUser) { + public JsonResult importBatchTemplate(@NotNull(message = "导入的文件不能为空!") MultipartFile file, TeacherOpenCourseQuery teacherOpenCourseQuery, @SCoreUser CoreUser coreUser) { try { Assert.isNull(getStudent(), "学生无法访问该接口"); diff --git a/web/src/main/resources/sql/jlw/resourcesInfo.md b/web/src/main/resources/sql/jlw/resourcesInfo.md index ceea0b7d..a061c75e 100644 --- a/web/src/main/resources/sql/jlw/resourcesInfo.md +++ b/web/src/main/resources/sql/jlw/resourcesInfo.md @@ -247,7 +247,7 @@ getCurriculumResourceManagementList AND tt.resources_info_name LIKE #'%'+resourcesInfoName+'%'# @} @if(!isEmpty(courseInfoId_1)) { - AND tt.course_info_parent_parent_id = #courseInfoId_1)# + AND tt.course_info_parent_parent_id = #courseInfoId_1# @} @if(!isEmpty(courseInfoId_2)) { AND tt.course_info_parent_id = #courseInfoId_2#