|
|
|
@ -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,10 +489,48 @@ 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<String> courseInfoArr = new ArrayList<String>();
|
|
|
|
|
Map<String, List<String>> map = new HashMap<String, List<String>>();
|
|
|
|
|
|
|
|
|
|
//准备将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(), "学生无法访问该接口");
|
|
|
|
|