diff --git a/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseMergeStudentDao.java b/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseMergeStudentDao.java index bc862408..6399008f 100644 --- a/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseMergeStudentDao.java +++ b/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseMergeStudentDao.java @@ -45,4 +45,6 @@ public interface TeacherOpenCourseMergeStudentDao extends BaseMapper randomStudentList(RandomStudentListDTO dto); + + List getStudentClassIdList(Long teacherOpenCourseId); } diff --git a/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java b/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java index ef5d5f7c..d835782e 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java @@ -3,7 +3,6 @@ package com.ibeetl.jlw.service; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.NumberUtil; -import com.alibaba.fastjson.JSON; import com.ibeetl.admin.core.dao.CoreUserDao; import com.ibeetl.admin.core.entity.CoreUser; import com.ibeetl.admin.core.util.enums.DelFlagEnum; @@ -135,7 +134,7 @@ public class StatisticalAnalysisService { long count1 = scoreDashboards.stream().filter(v -> "不及格".equals(v.getLastStatus()) || "E".equals(v.getLastStatus())).count(); long l = scoreDashboards.size() - count1; - data.put("passRate", NumberUtil.formatPercent(NumberUtil.div(l, studentList.size()), 0)); + data.put("passRate", studentList.size()==0?0:NumberUtil.formatPercent(NumberUtil.div(l, studentList.size()), 0)); data.put("studentPassNum", l); } else { data.put("passRate", "0%"); diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java index 470f03f0..343c03da 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java @@ -152,6 +152,8 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService teacherOpenCourseMergeStudentList = teacherOpenCourseMergeStudentDao.getByIds(ids); teacherOpenCourseMergeStudentDao.deleteTeacherOpenCourseMergeStudentByIds(ids); + //删除以后要判断这个开课是否还有这个班级的学生,没有就把班级关联也给删了 + + List teacherOpenCourseIdList = teacherOpenCourseMergeStudentList.stream().map(TeacherOpenCourseMergeStudent::getTeacherOpenCourseId).distinct().collect(Collectors.toList()); + + for (Long teacherOpenCourseId : teacherOpenCourseIdList) { + List classIdList = teacherOpenCourseMergeStudentDao.getStudentClassIdList(teacherOpenCourseId); + List teacherOpenCourseMergeSchoolClassList = teacherOpenCourseMergeSchoolClassDao.createLambdaQuery() + .andEq(TeacherOpenCourseMergeSchoolClass::getTeacherOpenCourseId, teacherOpenCourseId) + .andEq(TeacherOpenCourseMergeSchoolClass::getTeacherOpenCourseMergeSchoolClassStatus, 1).select(); + List noExistClassList = teacherOpenCourseMergeSchoolClassList.stream().filter(e -> !classIdList.contains(e.getSchoolClassId())).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(noExistClassList)) { + String teacherOpenCourseMergeSchoolClassIds = noExistClassList.stream().filter(e -> e != null && e.getTeacherOpenCourseMergeSchoolClassId() != null).map(TeacherOpenCourseMergeSchoolClass::getTeacherOpenCourseMergeSchoolClassId).map(String::valueOf).collect(Collectors.joining(",")); + teacherOpenCourseMergeSchoolClassDao.deleteTeacherOpenCourseMergeSchoolClassByIds(teacherOpenCourseMergeSchoolClassIds); + } + } + } catch (Exception e) { throw new PlatformException("批量删除开课关联学生失败", e); } @@ -129,9 +148,46 @@ public class TeacherOpenCourseMergeStudentService extends CoreBaseService teacherOpenCourseIdList = teacherOpenCourseMergeStudentList.stream().map(TeacherOpenCourseMergeStudent::getTeacherOpenCourseId).distinct().collect(Collectors.toList()); + + for (Long teacherOpenCourseId : teacherOpenCourseIdList) { + //获取这个开课的现有的学生的所有班级 + List allStudentClassIdList = teacherOpenCourseMergeStudentDao.getStudentClassIdList(teacherOpenCourseId); + + //获取这个开课的所有班级关联 + List select = teacherOpenCourseMergeSchoolClassDao.createLambdaQuery() + .andEq(TeacherOpenCourseMergeSchoolClass::getTeacherOpenCourseId, teacherOpenCourseId) + .andEq(TeacherOpenCourseMergeSchoolClass::getTeacherOpenCourseMergeSchoolClassStatus, 1) + .select(); + + List existClassIdList = select.stream().map(TeacherOpenCourseMergeSchoolClass::getSchoolClassId).distinct().collect(Collectors.toList()); + + + List notExistClassList = allStudentClassIdList.stream().filter(e -> !existClassIdList.contains(e)).collect(Collectors.toList()); + + for (Long classId : notExistClassList) { + TeacherOpenCourseMergeSchoolClass teacherOpenCourseMergeSchoolClass = new TeacherOpenCourseMergeSchoolClass(); + teacherOpenCourseMergeSchoolClass.setTeacherOpenCourseId(teacherOpenCourseId); + teacherOpenCourseMergeSchoolClass.setSchoolClassId(classId); + teacherOpenCourseMergeSchoolClass.setTeacherOpenCourseMergeSchoolClassAddTime(new Date()); + teacherOpenCourseMergeSchoolClass.setTeacherOpenCourseMergeSchoolClassStatus(1); + teacherOpenCourseMergeSchoolClass.setUserId(teacherOpenCourseMergeStudentQuery.getUserId()); + teacherOpenCourseMergeSchoolClass.setOrgId(teacherOpenCourseMergeStudentQuery.getOrgId()); + teacherOpenCourseMergeSchoolClassDao.insert(teacherOpenCourseMergeSchoolClass); + } + + } } + + + + return msg; } @@ -254,7 +310,7 @@ public class TeacherOpenCourseMergeStudentService extends CoreBaseService getPageList(TeacherOpenCourseMergeCourseInfoQuery condition,@SCoreUser CoreUser coreUser){ - if(null == coreUser){ + public JsonResult getPageList(TeacherOpenCourseMergeCourseInfoQuery condition, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { return JsonResult.failMessage("请登录后再操作"); - }else{ + } else { PageQuery page = condition.getPageQuery(); condition.setInnerJoin(defaultIfNull(condition.getInnerJoin(), true)); condition.setCourseInfoStatus(defaultIfNull(condition.getCourseInfoStatus(), 1)); @@ -80,27 +82,27 @@ public class TeacherOpenCourseMergeCourseInfoController{ @GetMapping(API + "/getInfo.do") - public JsonResultgetInfo(TeacherOpenCourseMergeCourseInfoQuery param,@SCoreUser CoreUser coreUser) { - if(null == coreUser){ + public JsonResult getInfo(TeacherOpenCourseMergeCourseInfoQuery param, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { return JsonResult.failMessage("请登录后再操作"); - }else{ + } else { param.setInnerJoin(defaultIfNull(param.getInnerJoin(), true)); TeacherOpenCourseMergeCourseInfo teacherOpenCourseMergeCourseInfo = teacherOpenCourseMergeCourseInfoService.getInfo(param); - return JsonResult.success(teacherOpenCourseMergeCourseInfo); + return JsonResult.success(teacherOpenCourseMergeCourseInfo); } } @GetMapping(API + "/getList.do") - public JsonResult>getList(TeacherOpenCourseMergeCourseInfoQuery param,@SCoreUser CoreUser coreUser) { - if(null == coreUser){ + public JsonResult> getList(TeacherOpenCourseMergeCourseInfoQuery param, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { return JsonResult.failMessage("请登录后再操作"); - }else{ + } else { param.setInnerJoin(defaultIfNull(param.getInnerJoin(), true)); param.setCourseInfoStatus(defaultIfNull(param.getCourseInfoStatus(), 1)); param.setCourseInfoType(defaultIfNull(param.getCourseInfoType(), 1)); - Listlist = teacherOpenCourseMergeCourseInfoService.getValuesByQuery(param); - return JsonResult.success(list); + List list = teacherOpenCourseMergeCourseInfoService.getValuesByQuery(param); + return JsonResult.success(list); } } @@ -110,7 +112,7 @@ public class TeacherOpenCourseMergeCourseInfoController{ @GetMapping(MODEL + "/index.do") @Function("teacherOpenCourseMergeCourseInfo.query") public ModelAndView index() { - ModelAndView view = new ModelAndView("/jlw/teacherOpenCourseMergeCourseInfo/index.html") ; + ModelAndView view = new ModelAndView("/jlw/teacherOpenCourseMergeCourseInfo/index.html"); view.addObject("search", TeacherOpenCourseMergeCourseInfoQuery.class.getName()); return view; } @@ -118,7 +120,7 @@ public class TeacherOpenCourseMergeCourseInfoController{ @GetMapping(MODEL + "/wdcd.do") @Function("teacherOpenCourseMergeCourseInfo.wfcdindex") public ModelAndView wdcd() { - ModelAndView view = new ModelAndView("/jlw/teacherOpenCourseMergeCourseInfo/wdcd.html") ; + ModelAndView view = new ModelAndView("/jlw/teacherOpenCourseMergeCourseInfo/wdcd.html"); return view; } @@ -135,10 +137,10 @@ public class TeacherOpenCourseMergeCourseInfoController{ @Function("teacherOpenCourseMergeCourseInfo.add") public ModelAndView add(Long teacherOpenCourseMergeCourseInfoId) { ModelAndView view = new ModelAndView("/jlw/teacherOpenCourseMergeCourseInfo/add.html"); - if(null != teacherOpenCourseMergeCourseInfoId){ + if (null != teacherOpenCourseMergeCourseInfoId) { TeacherOpenCourseMergeCourseInfo teacherOpenCourseMergeCourseInfo = teacherOpenCourseMergeCourseInfoService.queryById(teacherOpenCourseMergeCourseInfoId); view.addObject("teacherOpenCourseMergeCourseInfo", teacherOpenCourseMergeCourseInfo); - }else { + } else { view.addObject("teacherOpenCourseMergeCourseInfo", new TeacherOpenCourseMergeCourseInfo()); } return view; @@ -148,7 +150,7 @@ public class TeacherOpenCourseMergeCourseInfoController{ @PostMapping(MODEL + "/list.json") @Function("teacherOpenCourseMergeCourseInfo.query") - public JsonResult list(TeacherOpenCourseMergeCourseInfoQuery condition){ + public JsonResult list(TeacherOpenCourseMergeCourseInfoQuery condition) { PageQuery page = condition.getPageQuery(); condition.setInnerJoin(defaultIfNull(condition.getInnerJoin(), true)); condition.setCourseInfoStatus(defaultIfNull(condition.getCourseInfoStatus(), 1)); @@ -159,28 +161,27 @@ public class TeacherOpenCourseMergeCourseInfoController{ @PostMapping(MODEL + "/addAll.json") @Function("teacherOpenCourseMergeCourseInfo.add") - public JsonResult addAll(TeacherOpenCourseMergeCourseInfoQuery teacherOpenCourseMergeCourseInfoQuery,@SCoreUser CoreUser coreUser){ - if(null == coreUser){ + public JsonResult addAll(TeacherOpenCourseMergeCourseInfoQuery teacherOpenCourseMergeCourseInfoQuery, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { return JsonResult.failMessage("请登录后再操作"); - }else{ - teacherOpenCourseMergeCourseInfoQuery.setUserId(coreUser.getId()); - teacherOpenCourseMergeCourseInfoQuery.setOrgId(coreUser.getOrgId()); + } else { + teacherOpenCourseMergeCourseInfoQuery.setUserId(coreUser.getId()); + teacherOpenCourseMergeCourseInfoQuery.setOrgId(coreUser.getOrgId()); String msg = teacherOpenCourseMergeCourseInfoService.addAll(teacherOpenCourseMergeCourseInfoQuery); if (StringUtils.isBlank(msg)) { return JsonResult.success(); } else { - return JsonResult.failMessage("新增失败,"+msg); + return JsonResult.failMessage("新增失败," + msg); } } } @PostMapping(MODEL + "/add.json") @Function("teacherOpenCourseMergeCourseInfo.add") - public JsonResult add(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseMergeCourseInfoQuery teacherOpenCourseMergeCourseInfoQuery, BindingResult result,@SCoreUser CoreUser coreUser){ - if(result.hasErrors()){ + public JsonResult add(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseMergeCourseInfoQuery teacherOpenCourseMergeCourseInfoQuery, BindingResult result, @SCoreUser CoreUser coreUser) { + if (result.hasErrors()) { return JsonResult.failMessage(result); - }else{ - + } else { teacherOpenCourseMergeCourseInfoQuery.setUserId(coreUser.getId()); teacherOpenCourseMergeCourseInfoQuery.setOrgId(coreUser.getOrgId()); return teacherOpenCourseMergeCourseInfoService.addCourseAndQuestionWithQuestionSnap(teacherOpenCourseMergeCourseInfoQuery, null, new HashMap<>()); @@ -190,9 +191,9 @@ public class TeacherOpenCourseMergeCourseInfoController{ @PostMapping(MODEL + "/edit.json") @Function("teacherOpenCourseMergeCourseInfo.edit") public JsonResult update(@Validated(ValidateConfig.UPDATE.class) TeacherOpenCourseMergeCourseInfoQuery teacherOpenCourseMergeCourseInfoQuery, BindingResult result) { - if(result.hasErrors()){ + if (result.hasErrors()) { return JsonResult.failMessage(result); - }else { + } else { Assert.notNull(getUser(), "请登录后再操作"); teacherOpenCourseMergeCourseInfoQuery.setUserId(null); teacherOpenCourseMergeCourseInfoQuery.setOrgId(null); @@ -200,7 +201,7 @@ public class TeacherOpenCourseMergeCourseInfoController{ if (StringUtils.isBlank(msg)) { return JsonResult.success(); } else { - return JsonResult.failMessage("更新失败,"+msg); + return JsonResult.failMessage("更新失败," + msg); } } } @@ -208,17 +209,17 @@ public class TeacherOpenCourseMergeCourseInfoController{ @GetMapping(MODEL + "/view.json") @Function("teacherOpenCourseMergeCourseInfo.query") - public JsonResultqueryInfo(Long teacherOpenCourseMergeCourseInfoId) { - TeacherOpenCourseMergeCourseInfo teacherOpenCourseMergeCourseInfo = teacherOpenCourseMergeCourseInfoService.queryById( teacherOpenCourseMergeCourseInfoId); - return JsonResult.success(teacherOpenCourseMergeCourseInfo); + public JsonResult queryInfo(Long teacherOpenCourseMergeCourseInfoId) { + TeacherOpenCourseMergeCourseInfo teacherOpenCourseMergeCourseInfo = teacherOpenCourseMergeCourseInfoService.queryById(teacherOpenCourseMergeCourseInfoId); + return JsonResult.success(teacherOpenCourseMergeCourseInfo); } @GetMapping(MODEL + "/getValues.json") @Function("teacherOpenCourseMergeCourseInfo.query") - public JsonResult>getValues(TeacherOpenCourseMergeCourseInfoQuery param) { + public JsonResult> getValues(TeacherOpenCourseMergeCourseInfoQuery param) { param.setInnerJoin(defaultIfNull(param.getInnerJoin(), true)); - Listlist = teacherOpenCourseMergeCourseInfoService.getValuesByQuery(param); - return JsonResult.success(list); + List list = teacherOpenCourseMergeCourseInfoService.getValuesByQuery(param); + return JsonResult.success(list); } @@ -231,227 +232,230 @@ public class TeacherOpenCourseMergeCourseInfoController{ } - //下载模板信息 + //下载模板信息 @GetMapping(MODEL + "/downloadTemplate.json") - public void download(HttpServletRequest request,HttpServletResponse response,@SCoreUser CoreUser coreUser) { - if(null == coreUser){ - return; - } - XSSFWorkbook workbook = null; - InputStream is = null; - try { - //TODO 改导入模板名字 - is = new FileInputStream(GetFile.p + File.separator +"filesystem"+ File.separator +"template"+ File.separator+ "导入模板.xlsx"); + public void download(HttpServletRequest request, HttpServletResponse response, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { + return; + } + XSSFWorkbook workbook = null; + InputStream is = null; + try { + //TODO 改导入模板名字 + is = new FileInputStream(GetFile.p + File.separator + "filesystem" + File.separator + "template" + File.separator + "导入模板.xlsx"); - workbook = new XSSFWorkbook(is); + workbook = new XSSFWorkbook(is); - try { - if(null != is){ - is.close(); - } - }catch (Exception e){ - e.printStackTrace(); + try { + if (null != is) { + is.close(); } + } catch (Exception e) { + e.printStackTrace(); + } - //准备将Excel的输出流通过response输出到页面下载 - //八进制输出流 - response.setContentType("application/octet-stream"); + //准备将Excel的输出流通过response输出到页面下载 + //八进制输出流 + response.setContentType("application/octet-stream"); - //这后面可以设置导出Excel的名称,此例中名为template.xls - String fileName = ToolUtils.web2fileName(request,"teacherOpenCourseMergeCourseInfoTemplate(" + TimeTool.getNowTime("YMD") + ").xlsx"); + //这后面可以设置导出Excel的名称,此例中名为template.xls + String fileName = ToolUtils.web2fileName(request, "teacherOpenCourseMergeCourseInfoTemplate(" + TimeTool.getNowTime("YMD") + ").xlsx"); - response.setHeader("Content-disposition", "attachment;filename="+fileName); + response.setHeader("Content-disposition", "attachment;filename=" + fileName); - //刷新缓冲 - response.flushBuffer(); + //刷新缓冲 + 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) { } + //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) { } } + } - //导入模板信息 + //导入模板信息 @PostMapping(MODEL + "/importTemplate.json") @Function("teacherOpenCourseMergeCourseInfo.importTemplate") - public JsonResult importTemplate(@RFile List fileEntityList,@SCoreUser CoreUser coreUser) { - if(null == coreUser){ - return JsonResult.failMessage("请登录后再操作"); - } - Listlist=new ArrayList<>(); - JsonResult jsonResult = teacherOpenCourseMergeCourseInfoService.importTemplate(fileEntityList,list,coreUser); - if(list.size()>0){ - teacherOpenCourseMergeCourseInfoService.deleteByList(list); - } - return jsonResult; + public JsonResult importTemplate(@RFile List fileEntityList, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { + return JsonResult.failMessage("请登录后再操作"); } + List list = new ArrayList<>(); + JsonResult jsonResult = teacherOpenCourseMergeCourseInfoService.importTemplate(fileEntityList, list, coreUser); + if (list.size() > 0) { + teacherOpenCourseMergeCourseInfoService.deleteByList(list); + } + return jsonResult; + } - //导出信息 + //导出信息 @GetMapping(MODEL + "/excel/export.json") @Function("teacherOpenCourseMergeCourseInfo.exportDocument") - public void export(HttpServletRequest request,HttpServletResponse response,TeacherOpenCourseMergeCourseInfoQuery teacherOpenCourseMergeCourseInfoQuery,@SCoreUser CoreUser coreUser) { - if(null == coreUser){ - return; - } - HSSFWorkbook workbook = null; - try { - //表头数据 - String[] header = { - "开课", - "名称", - "课程缩略图", - "课程标签", - "课程学习人数基数", - "课程简介", - "状态", - "类型", - "父节点", - "视频", - "课件", - "附件IDs", - "客观题IDs", - "竞赛题IDs", - "实训题IDs", + public void export(HttpServletRequest request, HttpServletResponse response, TeacherOpenCourseMergeCourseInfoQuery teacherOpenCourseMergeCourseInfoQuery, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { + return; + } + HSSFWorkbook workbook = null; + try { + //表头数据 + String[] header = { + "开课", + "名称", + "课程缩略图", + "课程标签", + "课程学习人数基数", + "课程简介", + "状态", + "类型", + "父节点", + "视频", + "课件", + "附件IDs", + "客观题IDs", + "竞赛题IDs", + "实训题IDs", }; - String[] headerCode = { - "teacherOpenCourseId", - "courseInfoName", - "courseInfoThumbnail", - "courseLabelId", - "courseInfoBasicsCount", - "courseInfoContent", - "courseInfoStatus", - "courseInfoType", - "courseInfoParentId", - "courseVideoId", - "courseCoursewareId", - "courseEnclosureIds", - "resourcesQuestionIds", - "resourcesCompetitionIds", - "resourcesTrainingIds", + String[] headerCode = { + "teacherOpenCourseId", + "courseInfoName", + "courseInfoThumbnail", + "courseLabelId", + "courseInfoBasicsCount", + "courseInfoContent", + "courseInfoStatus", + "courseInfoType", + "courseInfoParentId", + "courseVideoId", + "courseCoursewareId", + "courseEnclosureIds", + "resourcesQuestionIds", + "resourcesCompetitionIds", + "resourcesTrainingIds", }; - //数据内容 - List> mapList = teacherOpenCourseMergeCourseInfoService.getExcelValues(teacherOpenCourseMergeCourseInfoQuery); + //数据内容 + List> mapList = teacherOpenCourseMergeCourseInfoService.getExcelValues(teacherOpenCourseMergeCourseInfoQuery); - //内容宽度 - Map widthMap = mapList.get(0); - mapList.remove(0); + //内容宽度 + Map widthMap = mapList.get(0); + mapList.remove(0); - //声明一个工作簿 - workbook = new HSSFWorkbook(); + //声明一个工作簿 + workbook = new HSSFWorkbook(); - //生成一个表格,设置表格名称为"Sheet1" - HSSFSheet sheet = workbook.createSheet("Sheet1"); + //生成一个表格,设置表格名称为"Sheet1" + HSSFSheet sheet = workbook.createSheet("Sheet1"); - //冻结表头 - sheet.createFreezePane(0, 1, 0, 1); + //冻结表头 + sheet.createFreezePane(0, 1, 0, 1); - //设置默认列宽度为5个字节 - sheet.setDefaultColumnWidth(5); + //设置默认列宽度为5个字节 + sheet.setDefaultColumnWidth(5); - //创建第一行表头 - HSSFRow headRow = sheet.createRow(0); + //创建第一行表头 + HSSFRow headRow = sheet.createRow(0); - //头部样式 - HSSFCellStyle headerStyle = workbook.createCellStyle(); - //垂直居中 - headerStyle.setVerticalAlignment(VerticalAlignment.CENTER); - //水平居中 - headerStyle.setAlignment(HorizontalAlignment.CENTER); + //头部样式 + HSSFCellStyle headerStyle = workbook.createCellStyle(); + //垂直居中 + headerStyle.setVerticalAlignment(VerticalAlignment.CENTER); + //水平居中 + headerStyle.setAlignment(HorizontalAlignment.CENTER); - //单元格样式 - HSSFCellStyle cellStyle = workbook.createCellStyle(); - //垂直居中 - cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); - //水平居左 - cellStyle.setAlignment(HorizontalAlignment.CENTER); - //自动换行 - cellStyle.setWrapText(true); + //单元格样式 + HSSFCellStyle cellStyle = workbook.createCellStyle(); + //垂直居中 + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + //水平居左 + cellStyle.setAlignment(HorizontalAlignment.CENTER); + //自动换行 + cellStyle.setWrapText(true); - //遍历添加表头 - for (int i = 0; i < header.length; i++) { + //遍历添加表头 + for (int i = 0; i < header.length; i++) { - //设置表格特定的列宽度 - if (null != widthMap.get(headerCode[i])) { - String width = widthMap.get(headerCode[i]).toString().split("\\.")[0]; - Integer w = Integer.parseInt(width) > header[i].length()*3?Integer.parseInt(width):header[i].length()*3; - sheet.setColumnWidth(i, w * 190); - } + //设置表格特定的列宽度 + if (null != widthMap.get(headerCode[i])) { + String width = widthMap.get(headerCode[i]).toString().split("\\.")[0]; + Integer w = Integer.parseInt(width) > header[i].length() * 3 ? Integer.parseInt(width) : header[i].length() * 3; + sheet.setColumnWidth(i, w * 190); + } - //创建一个单元格 - HSSFCell cell = headRow.createCell(i); + //创建一个单元格 + HSSFCell cell = headRow.createCell(i); - //创建一个内容对象 - HSSFRichTextString text = new HSSFRichTextString(header[i]); + //创建一个内容对象 + HSSFRichTextString text = new HSSFRichTextString(header[i]); - //将内容对象的文字内容写入到单元格中 - cell.setCellValue(text); + //将内容对象的文字内容写入到单元格中 + cell.setCellValue(text); - //设置样式 - cell.setCellStyle(headerStyle); - } + //设置样式 + cell.setCellStyle(headerStyle); + } - //遍历结果集,把内容加入表格 - for (int i = 0; i < mapList.size(); i++) { - HSSFRow row = sheet.createRow(i + 1); + //遍历结果集,把内容加入表格 + for (int i = 0; i < mapList.size(); i++) { + HSSFRow row = sheet.createRow(i + 1); - row.setHeight((short) (50*10)); + row.setHeight((short) (50 * 10)); - Map map = mapList.get(i); - for (int j = 0; j < headerCode.length; j++) { - HSSFCell cell = row.createCell(j); - cell.setCellStyle(cellStyle); - HSSFRichTextString text = new HSSFRichTextString(null != map.get(headerCode[j]) ? map.get(headerCode[j]).toString() : " "); - cell.setCellValue(text); - } + Map map = mapList.get(i); + for (int j = 0; j < headerCode.length; j++) { + HSSFCell cell = row.createCell(j); + cell.setCellStyle(cellStyle); + HSSFRichTextString text = new HSSFRichTextString(null != map.get(headerCode[j]) ? map.get(headerCode[j]).toString() : " "); + cell.setCellValue(text); } + } - //准备将Excel的输出流通过response输出到页面下载 - //八进制输出流 - response.setContentType("application/octet-stream"); + //准备将Excel的输出流通过response输出到页面下载 + //八进制输出流 + response.setContentType("application/octet-stream"); - //这后面可以设置导出Excel的名称,此例中名为student.xls - String fileName = ToolUtils.web2fileName(request,"teacherOpenCourseMergeCourseInfo(" + TimeTool.getNowTime("YMD") + ").xls"); + //这后面可以设置导出Excel的名称,此例中名为student.xls + String fileName = ToolUtils.web2fileName(request, "teacherOpenCourseMergeCourseInfo(" + TimeTool.getNowTime("YMD") + ").xls"); - response.setHeader("Content-disposition", "attachment;filename="+fileName); + response.setHeader("Content-disposition", "attachment;filename=" + fileName); - //刷新缓冲 - response.flushBuffer(); + //刷新缓冲 + 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) { } + //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) { } } + } /** * 教师端-导入课程章节操作,逻辑拆分 - * + *

* 从系统章节库拉取章节到教师开课的课程章节中。 - * @param courseInfoIds 超管端的章节ID - * @param teacherOpenCourseId 开课ID + * + * @param courseInfoIds 超管端的章节ID + * @param teacherOpenCourseId 开课ID * @return */ @PostMapping(API + "/copyFromCourseInfo.do") @@ -465,16 +469,16 @@ public class TeacherOpenCourseMergeCourseInfoController{ * 教师端-导入课程。 * 导入超管端管理的课程,该接口导入包含课程章节信息,课程题目信息。 * - * @param courseInfoIds 超管端的章节ID - * @param teacherOpenCourseId 开课ID + * @param courseInfoIds 超管端的章节ID + * @param teacherOpenCourseId 开课ID * @return */ @PostMapping(API + "/importCourseInfo.do") - public JsonResult importCourseInfo(Long[] courseInfoIds,Integer courseType, Long teacherOpenCourseId) { + public JsonResult importCourseInfo(Long[] courseInfoIds, Integer courseType, Long teacherOpenCourseId) { //这里是授权课绑定到开课 - if (Objects.equals(courseType,1)){ + if (Objects.equals(courseType, 1)) { teacherOpenCourseMergeCourseInfoService.importCourseInfo(CollectionUtil.newHashSet(courseInfoIds), teacherOpenCourseId); - } else if (Objects.equals(courseType,0)) { + } else if (Objects.equals(courseType, 0)) { // 这里是开课绑定到开课 teacherOpenCourseMergeCourseInfoService.importOpenCourseInfo(CollectionUtil.newHashSet(courseInfoIds), teacherOpenCourseId); } @@ -485,7 +489,7 @@ public class TeacherOpenCourseMergeCourseInfoController{ * 教师端-重置开课课程 * 简单理解:清空所有有关开课的资源 * - * @param teacherOpenCourseId 开课ID + * @param teacherOpenCourseId 开课ID * @return */ @PostMapping(API + "/deleteAllResourcesByTeacherOpenCourseId.do") @@ -498,86 +502,86 @@ public class TeacherOpenCourseMergeCourseInfoController{ /** * 树结构查询开课课程信息 * - * @param teacherOpenCourseMergeCourseInfoId 开课章节ID + * @param teacherOpenCourseMergeCourseInfoId 开课章节ID * @return */ @GetMapping(API + "/getTreeById.do") public JsonResult getTreeByIdDo(Long teacherOpenCourseMergeCourseInfoId) { - return JsonResult.success(teacherOpenCourseMergeCourseInfoService.getTreeById(teacherOpenCourseMergeCourseInfoId)); + return JsonResult.success(teacherOpenCourseMergeCourseInfoService.getTreeById(teacherOpenCourseMergeCourseInfoId)); } /** * 树结构查询开课课程信息 * 永久缓存。 * - * @param teacherOpenCourseId 开课ID + * @param teacherOpenCourseId 开课ID * @return */ @PostMapping(API + "/getTreeByTeacherOpenCourseId.do") public JsonResult getTreeByTeacherOpenCourseIdDo(Long teacherOpenCourseId) { Assert.notNull(getUser(), "请登录后再操作"); - return JsonResult.success(teacherOpenCourseMergeCourseInfoService.getTreeByTeacherOpenCourseId(teacherOpenCourseId)); + return JsonResult.success(teacherOpenCourseMergeCourseInfoService.getTreeByTeacherOpenCourseId(teacherOpenCourseId)); } /** * 树结构查询开课课程信息 * 本地缓存,带到期时间 有BUG不建议用 * - * @param teacherOpenCourseId 开课ID + * @param teacherOpenCourseId 开课ID * @return */ @PostMapping(API + "/getTreeLocalCacheByTeacherOpenCourseId.do") public JsonResult getTreeLocalCacheByTeacherOpenCourseIdDo(Long teacherOpenCourseId) { Assert.notNull(getUser(), "请登录后再操作"); - return JsonResult.success(teacherOpenCourseMergeCourseInfoService.getTreeLocalCacheByTeacherOpenCourseId(teacherOpenCourseId)); + return JsonResult.success(teacherOpenCourseMergeCourseInfoService.getTreeLocalCacheByTeacherOpenCourseId(teacherOpenCourseId)); } /** * 树结构查询开课课程信息 * - * @param teacherOpenCourseMergeCourseInfoId 开课章节ID + * @param teacherOpenCourseMergeCourseInfoId 开课章节ID * @return */ @GetMapping(MODEL + "/getTreeById.json") @Function("teacherOpenCourseMergeCourseInfo.query") public JsonResult getTreeById(Long teacherOpenCourseMergeCourseInfoId) { - return JsonResult.success(teacherOpenCourseMergeCourseInfoService.getTreeById(teacherOpenCourseMergeCourseInfoId)); + return JsonResult.success(teacherOpenCourseMergeCourseInfoService.getTreeById(teacherOpenCourseMergeCourseInfoId)); } /** * 树结构查询开课课程信息 * 永久缓存。 * - * @param teacherOpenCourseId 开课ID + * @param teacherOpenCourseId 开课ID * @return */ @PostMapping(MODEL + "/getTreeByTeacherOpenCourseId.json") @Function("teacherOpenCourseMergeCourseInfo.query") public JsonResult getTreeByTeacherOpenCourseId(Long teacherOpenCourseId) { Assert.notNull(getUser(), "请登录后再操作"); - return JsonResult.success(teacherOpenCourseMergeCourseInfoService.getTreeByTeacherOpenCourseId(teacherOpenCourseId)); + return JsonResult.success(teacherOpenCourseMergeCourseInfoService.getTreeByTeacherOpenCourseId(teacherOpenCourseId)); } /** * 树结构查询开课课程信息 * 本地缓存,带到期时间 * - * @param teacherOpenCourseId 开课ID + * @param teacherOpenCourseId 开课ID * @return */ @PostMapping(MODEL + "/getTreeLocalCacheByTeacherOpenCourseId.json") @Function("teacherOpenCourseMergeCourseInfo.query") public JsonResult getTreeLocalCacheByTeacherOpenCourseId(Long teacherOpenCourseId) { Assert.notNull(getUser(), "请登录后再操作"); - return JsonResult.success(teacherOpenCourseMergeCourseInfoService.getTreeLocalCacheByTeacherOpenCourseId(teacherOpenCourseId)); + return JsonResult.success(teacherOpenCourseMergeCourseInfoService.getTreeLocalCacheByTeacherOpenCourseId(teacherOpenCourseId)); } /** * 功能描述:
* 排序 移动 * - * @param id ID - * @param moveType 移动类型 + * @param id ID + * @param moveType 移动类型 * @return {@link JsonResult} * @Author: 87966 * @Date: 2023/1/9 16:17 @@ -595,15 +599,15 @@ public class TeacherOpenCourseMergeCourseInfoController{ * 只传左元素,表示:拖动元素 在 左元素的左侧; * 只传右元素,表示:拖动元素 在 右元素的右侧; * 左右元素都传,则拖动元素放置在两个元素的中间。 - * + *

* 左侧(上) ==> 右侧(下) * 小数值 ==> 大数值 - * + *

* 数值越小,越靠前 * - * @param id 拖动元素的ID - * @param leftId 左元素ID 偏小数值对应的元素ID - * @param rightId 右元素ID 偏大数值对应的元素ID + * @param id 拖动元素的ID + * @param leftId 左元素ID 偏小数值对应的元素ID + * @param rightId 右元素ID 偏大数值对应的元素ID * @return {@link JsonResult} * @Author: 87966 * @Date: 2023/1/9 16:44 diff --git a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesInfoController.java b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesInfoController.java index 65945bc2..5157ec0e 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesInfoController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesInfoController.java @@ -58,24 +58,26 @@ import static com.ibeetl.jlw.enums.GlobalUpStatusEnum.UP; @RestController @Validated -public class TeacherOpenCourseMergeResourcesInfoController{ +public class TeacherOpenCourseMergeResourcesInfoController { private final Log log = LogFactory.getLog(this.getClass()); private static final String MODEL = "/jlw/teacherOpenCourseMergeResourcesInfo"; private static final String API = "/api/teacherOpenCourseMergeResourcesInfo"; - @Autowired private TeacherOpenCourseMergeResourcesInfoService teacherOpenCourseMergeResourcesInfoService; + @Autowired + private TeacherOpenCourseMergeResourcesInfoService teacherOpenCourseMergeResourcesInfoService; - @Autowired FileService fileService; + @Autowired + FileService fileService; /* 前端接口 */ @PostMapping(API + "/getPageList.do") - public JsonResult getPageList(TeacherOpenCourseMergeResourcesInfoQuery condition,@SCoreUser CoreUser coreUser){ - if(null == coreUser){ + public JsonResult getPageList(TeacherOpenCourseMergeResourcesInfoQuery condition, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { return JsonResult.failMessage("请登录后再操作"); - }else{ + } else { PageQuery page = condition.getPageQuery(); PageQuery pageQuery = teacherOpenCourseMergeResourcesInfoService.queryByConditionQuery(page); @@ -92,31 +94,31 @@ public class TeacherOpenCourseMergeResourcesInfoController{ @GetMapping(API + "/getInfo.do") - public JsonResultgetInfo(TeacherOpenCourseMergeResourcesInfoQuery param,@SCoreUser CoreUser coreUser) { - if(null == coreUser){ + public JsonResult getInfo(TeacherOpenCourseMergeResourcesInfoQuery param, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { return JsonResult.failMessage("请登录后再操作"); - }else{ + } else { TeacherOpenCourseMergeResourcesInfo teacherOpenCourseMergeResourcesInfo = teacherOpenCourseMergeResourcesInfoService.getInfo(param); - return JsonResult.success(teacherOpenCourseMergeResourcesInfo); + return JsonResult.success(teacherOpenCourseMergeResourcesInfo); } } @GetMapping(API + "/getList.do") - public JsonResult>getList(TeacherOpenCourseMergeResourcesInfoQuery param,@SCoreUser CoreUser coreUser) { - if(null == coreUser){ + public JsonResult> getList(TeacherOpenCourseMergeResourcesInfoQuery param, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { return JsonResult.failMessage("请登录后再操作"); - }else{ - Listlist = teacherOpenCourseMergeResourcesInfoService.getValuesByQuery(param); - return JsonResult.success(list); + } else { + List list = teacherOpenCourseMergeResourcesInfoService.getValuesByQuery(param); + return JsonResult.success(list); } } @PostMapping(API + "/add.do") - public JsonResult addDo(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseMergeResourcesInfoQuery teacherOpenCourseMergeResourcesInfoQuery, BindingResult result,@SCoreUser CoreUser coreUser){ - if(result.hasErrors()){ + public JsonResult addDo(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseMergeResourcesInfoQuery teacherOpenCourseMergeResourcesInfoQuery, BindingResult result, @SCoreUser CoreUser coreUser) { + if (result.hasErrors()) { return JsonResult.failMessage(result); - }else{ + } else { teacherOpenCourseMergeResourcesInfoQuery.setUserId(coreUser.getId()); teacherOpenCourseMergeResourcesInfoQuery.setOrgId(coreUser.getOrgId()); return teacherOpenCourseMergeResourcesInfoService.add(teacherOpenCourseMergeResourcesInfoQuery); @@ -125,9 +127,9 @@ public class TeacherOpenCourseMergeResourcesInfoController{ @PostMapping(API + "/edit.do") public JsonResult updateDo(@Validated(ValidateConfig.UPDATE.class) TeacherOpenCourseMergeResourcesInfoQuery teacherOpenCourseMergeResourcesInfoQuery, BindingResult result, @SCoreUser CoreUser coreUser) { - if(result.hasErrors()){ + if (result.hasErrors()) { return JsonResult.failMessage(result); - }else { + } else { teacherOpenCourseMergeResourcesInfoService.validateIsTeacher(teacherOpenCourseMergeResourcesInfoQuery.getTeacherOpenCourseMergeResourcesInfoId().toString(), coreUser); teacherOpenCourseMergeResourcesInfoQuery.setUserId(null); teacherOpenCourseMergeResourcesInfoQuery.setOrgId(null); @@ -135,7 +137,7 @@ public class TeacherOpenCourseMergeResourcesInfoController{ if (StringUtils.isBlank(msg)) { return JsonResult.success(); } else { - return JsonResult.failMessage("更新失败,"+msg); + return JsonResult.failMessage("更新失败," + msg); } } } @@ -151,6 +153,7 @@ public class TeacherOpenCourseMergeResourcesInfoController{ /** * 更改资源状态,上架下架啥删除. * 删除也可以单独调用 {@link #deleteDo} + * * @param ids * @param status * @param coreUser @@ -174,17 +177,17 @@ public class TeacherOpenCourseMergeResourcesInfoController{ * 功能描述:
* 批量添加开课资源,只需要在resourcesInfoFiles 传递多个文件就好,逗号隔开。 * - * @param teacherOpenCourseMergeResourcesInfoQuery 资源实体 - * @param coreUser 当前登录用户 + * @param teacherOpenCourseMergeResourcesInfoQuery 资源实体 + * @param coreUser 当前登录用户 * @return {@link JsonResult} * @Author: lx * @Date: 2022/12/12 0:41 */ @PostMapping(API + "/batchAdd.do") - public JsonResult batchAdd(TeacherOpenCourseMergeResourcesInfoQuery teacherOpenCourseMergeResourcesInfoQuery, @SCoreUser CoreUser coreUser){ - if(null == coreUser){ + public JsonResult batchAdd(TeacherOpenCourseMergeResourcesInfoQuery teacherOpenCourseMergeResourcesInfoQuery, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { return JsonResult.failMessage("请登录后再操作"); - }else{ + } else { List updateList = new ArrayList(); teacherOpenCourseMergeResourcesInfoQuery.setUserId(coreUser.getId()); teacherOpenCourseMergeResourcesInfoQuery.setOrgId(coreUser.getOrgId()); @@ -192,7 +195,7 @@ public class TeacherOpenCourseMergeResourcesInfoController{ String resourcesInfoFiles = teacherOpenCourseMergeResourcesInfoQuery.getResourcesInfoFiles(); if (StrUtil.isNotBlank(resourcesInfoFiles)) { String resourcesInfoNames = teacherOpenCourseMergeResourcesInfoQuery.getResourcesInfoName(); - for (int i = 0;i< resourcesInfoFiles.split(",").length;i++){ + for (int i = 0; i < resourcesInfoFiles.split(",").length; i++) { TeacherOpenCourseMergeResourcesInfoQuery cloneQuery = teacherOpenCourseMergeResourcesInfoQuery.clone(); cloneQuery.setResourcesInfoFiles(resourcesInfoFiles.split(",")[i]); cloneQuery.setResourcesInfoContent(resourcesInfoFiles.split(",")[i]); @@ -207,7 +210,7 @@ public class TeacherOpenCourseMergeResourcesInfoController{ if (StringUtils.isBlank(msg)) { return JsonResult.success(); } else { - return JsonResult.failMessage("新增失败,"+msg); + return JsonResult.failMessage("新增失败," + msg); } } } @@ -219,7 +222,7 @@ public class TeacherOpenCourseMergeResourcesInfoController{ @GetMapping(MODEL + "/index.do") @Function("teacherOpenCourseMergeResourcesInfo.query") public ModelAndView index() { - ModelAndView view = new ModelAndView("/jlw/teacherOpenCourseMergeResourcesInfo/index.html") ; + ModelAndView view = new ModelAndView("/jlw/teacherOpenCourseMergeResourcesInfo/index.html"); view.addObject("search", TeacherOpenCourseMergeResourcesInfoQuery.class.getName()); return view; } @@ -237,10 +240,10 @@ public class TeacherOpenCourseMergeResourcesInfoController{ @Function("teacherOpenCourseMergeResourcesInfo.add") public ModelAndView add(Long teacherOpenCourseMergeResourcesInfoId) { ModelAndView view = new ModelAndView("/jlw/teacherOpenCourseMergeResourcesInfo/add.html"); - if(null != teacherOpenCourseMergeResourcesInfoId){ + if (null != teacherOpenCourseMergeResourcesInfoId) { TeacherOpenCourseMergeResourcesInfo teacherOpenCourseMergeResourcesInfo = teacherOpenCourseMergeResourcesInfoService.queryById(teacherOpenCourseMergeResourcesInfoId); view.addObject("teacherOpenCourseMergeResourcesInfo", teacherOpenCourseMergeResourcesInfo); - }else { + } else { view.addObject("teacherOpenCourseMergeResourcesInfo", new TeacherOpenCourseMergeResourcesInfo()); } return view; @@ -250,7 +253,7 @@ public class TeacherOpenCourseMergeResourcesInfoController{ @PostMapping(MODEL + "/list.json") @Function("teacherOpenCourseMergeResourcesInfo.query") - public JsonResult list(TeacherOpenCourseMergeResourcesInfoQuery condition){ + public JsonResult list(TeacherOpenCourseMergeResourcesInfoQuery condition) { PageQuery page = condition.getPageQuery(); teacherOpenCourseMergeResourcesInfoService.queryByCondition(page); return JsonResult.success(page); @@ -258,29 +261,29 @@ public class TeacherOpenCourseMergeResourcesInfoController{ @PostMapping(MODEL + "/addAll.json") @Function("teacherOpenCourseMergeResourcesInfo.add") - public JsonResult addAll(TeacherOpenCourseMergeResourcesInfoQuery teacherOpenCourseMergeResourcesInfoQuery,@SCoreUser CoreUser coreUser){ - if(null == coreUser){ + public JsonResult addAll(TeacherOpenCourseMergeResourcesInfoQuery teacherOpenCourseMergeResourcesInfoQuery, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { return JsonResult.failMessage("请登录后再操作"); - }else{ - teacherOpenCourseMergeResourcesInfoQuery.setUserId(coreUser.getId()); - teacherOpenCourseMergeResourcesInfoQuery.setOrgId(coreUser.getOrgId()); + } else { + teacherOpenCourseMergeResourcesInfoQuery.setUserId(coreUser.getId()); + teacherOpenCourseMergeResourcesInfoQuery.setOrgId(coreUser.getOrgId()); String msg = teacherOpenCourseMergeResourcesInfoService.addAll(teacherOpenCourseMergeResourcesInfoQuery); if (StringUtils.isBlank(msg)) { return JsonResult.success(); } else { - return JsonResult.failMessage("新增失败,"+msg); + return JsonResult.failMessage("新增失败," + msg); } } } @PostMapping(MODEL + "/add.json") @Function("teacherOpenCourseMergeResourcesInfo.add") - public JsonResult add(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseMergeResourcesInfoQuery teacherOpenCourseMergeResourcesInfoQuery, BindingResult result,@SCoreUser CoreUser coreUser){ - if(result.hasErrors()){ + public JsonResult add(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseMergeResourcesInfoQuery teacherOpenCourseMergeResourcesInfoQuery, BindingResult result, @SCoreUser CoreUser coreUser) { + if (result.hasErrors()) { return JsonResult.failMessage(result); - }else{ - teacherOpenCourseMergeResourcesInfoQuery.setUserId(coreUser.getId()); - teacherOpenCourseMergeResourcesInfoQuery.setOrgId(coreUser.getOrgId()); + } else { + teacherOpenCourseMergeResourcesInfoQuery.setUserId(coreUser.getId()); + teacherOpenCourseMergeResourcesInfoQuery.setOrgId(coreUser.getOrgId()); return teacherOpenCourseMergeResourcesInfoService.add(teacherOpenCourseMergeResourcesInfoQuery); } } @@ -288,16 +291,16 @@ public class TeacherOpenCourseMergeResourcesInfoController{ @PostMapping(MODEL + "/edit.json") @Function("teacherOpenCourseMergeResourcesInfo.edit") public JsonResult update(@Validated(ValidateConfig.UPDATE.class) TeacherOpenCourseMergeResourcesInfoQuery teacherOpenCourseMergeResourcesInfoQuery, BindingResult result) { - if(result.hasErrors()){ + if (result.hasErrors()) { return JsonResult.failMessage(result); - }else { - teacherOpenCourseMergeResourcesInfoQuery.setUserId(null); - teacherOpenCourseMergeResourcesInfoQuery.setOrgId(null); + } else { + teacherOpenCourseMergeResourcesInfoQuery.setUserId(null); + teacherOpenCourseMergeResourcesInfoQuery.setOrgId(null); String msg = teacherOpenCourseMergeResourcesInfoService.edit(teacherOpenCourseMergeResourcesInfoQuery); if (StringUtils.isBlank(msg)) { return JsonResult.success(); } else { - return JsonResult.failMessage("更新失败,"+msg); + return JsonResult.failMessage("更新失败," + msg); } } } @@ -305,21 +308,22 @@ public class TeacherOpenCourseMergeResourcesInfoController{ @GetMapping(MODEL + "/view.json") @Function("teacherOpenCourseMergeResourcesInfo.query") - public JsonResultqueryInfo(Long teacherOpenCourseMergeResourcesInfoId) { - TeacherOpenCourseMergeResourcesInfo teacherOpenCourseMergeResourcesInfo = teacherOpenCourseMergeResourcesInfoService.queryById( teacherOpenCourseMergeResourcesInfoId); - return JsonResult.success(teacherOpenCourseMergeResourcesInfo); + public JsonResult queryInfo(Long teacherOpenCourseMergeResourcesInfoId) { + TeacherOpenCourseMergeResourcesInfo teacherOpenCourseMergeResourcesInfo = teacherOpenCourseMergeResourcesInfoService.queryById(teacherOpenCourseMergeResourcesInfoId); + return JsonResult.success(teacherOpenCourseMergeResourcesInfo); } @GetMapping(MODEL + "/getValues.json") @Function("teacherOpenCourseMergeResourcesInfo.query") - public JsonResult>getValues(TeacherOpenCourseMergeResourcesInfoQuery param) { - Listlist = teacherOpenCourseMergeResourcesInfoService.getValuesByQuery(param); - return JsonResult.success(list); + public JsonResult> getValues(TeacherOpenCourseMergeResourcesInfoQuery param) { + List list = teacherOpenCourseMergeResourcesInfoService.getValuesByQuery(param); + return JsonResult.success(list); } /** * 教师端-不能调用这个方法, 没有判断教师身份 + * * @param ids * @return */ @@ -332,207 +336,210 @@ public class TeacherOpenCourseMergeResourcesInfoController{ } - //下载模板信息 + //下载模板信息 @GetMapping(MODEL + "/downloadTemplate.json") - public void download(HttpServletRequest request,HttpServletResponse response,@SCoreUser CoreUser coreUser) { - if(null == coreUser){ - return; - } - XSSFWorkbook workbook = null; - InputStream is = null; - try { - //TODO 改导入模板名字 - is = new FileInputStream(GetFile.p + File.separator +"filesystem"+ File.separator +"template"+ File.separator+ "导入模板.xlsx"); + public void download(HttpServletRequest request, HttpServletResponse response, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { + return; + } + XSSFWorkbook workbook = null; + InputStream is = null; + try { + //TODO 改导入模板名字 + is = new FileInputStream(GetFile.p + File.separator + "filesystem" + File.separator + "template" + File.separator + "导入模板.xlsx"); - workbook = new XSSFWorkbook(is); + workbook = new XSSFWorkbook(is); - try { - if(null != is){ - is.close(); - } - }catch (Exception e){ - e.printStackTrace(); + try { + if (null != is) { + is.close(); } + } catch (Exception e) { + e.printStackTrace(); + } - //准备将Excel的输出流通过response输出到页面下载 - //八进制输出流 - response.setContentType("application/octet-stream"); + //准备将Excel的输出流通过response输出到页面下载 + //八进制输出流 + response.setContentType("application/octet-stream"); - //这后面可以设置导出Excel的名称,此例中名为template.xls - String fileName = ToolUtils.web2fileName(request,"teacherOpenCourseMergeResourcesInfoTemplate(" + TimeTool.getNowTime("YMD") + ").xlsx"); + //这后面可以设置导出Excel的名称,此例中名为template.xls + String fileName = ToolUtils.web2fileName(request, "teacherOpenCourseMergeResourcesInfoTemplate(" + TimeTool.getNowTime("YMD") + ").xlsx"); - response.setHeader("Content-disposition", "attachment;filename="+fileName); + response.setHeader("Content-disposition", "attachment;filename=" + fileName); - //刷新缓冲 - response.flushBuffer(); + //刷新缓冲 + 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) { } + //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) { } } + } - //导入模板信息 + //导入模板信息 @PostMapping(MODEL + "/importTemplate.json") @Function("teacherOpenCourseMergeResourcesInfo.importTemplate") - public JsonResult importTemplate(@RFile List fileEntityList,@SCoreUser CoreUser coreUser) { - if(null == coreUser){ - return JsonResult.failMessage("请登录后再操作"); - } - Listlist=new ArrayList<>(); - JsonResult jsonResult = teacherOpenCourseMergeResourcesInfoService.importTemplate(fileEntityList,list,coreUser); - if(list.size()>0){ - teacherOpenCourseMergeResourcesInfoService.deleteByList(list); - } - return jsonResult; + public JsonResult importTemplate(@RFile List fileEntityList, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { + return JsonResult.failMessage("请登录后再操作"); + } + List list = new ArrayList<>(); + JsonResult jsonResult = teacherOpenCourseMergeResourcesInfoService.importTemplate(fileEntityList, list, coreUser); + if (list.size() > 0) { + teacherOpenCourseMergeResourcesInfoService.deleteByList(list); } + return jsonResult; + } - //导出信息 + //导出信息 @GetMapping(MODEL + "/excel/export.json") @Function("teacherOpenCourseMergeResourcesInfo.exportDocument") - public void export(HttpServletRequest request,HttpServletResponse response,TeacherOpenCourseMergeResourcesInfoQuery teacherOpenCourseMergeResourcesInfoQuery,@SCoreUser CoreUser coreUser) { - if(null == coreUser){ - return; - } - HSSFWorkbook workbook = null; - try { - //表头数据 - String[] header = { - "开课课程", - "教师开课", - "资源名称", - "资源类型 数据字典", - "资源内容", + public void export(HttpServletRequest request, HttpServletResponse response, TeacherOpenCourseMergeResourcesInfoQuery teacherOpenCourseMergeResourcesInfoQuery, @SCoreUser CoreUser coreUser) { + if (null == coreUser) { + return; + } + HSSFWorkbook workbook = null; + try { + //表头数据 + String[] header = { + "开课课程", + "教师开课", + "资源名称", + "资源类型 数据字典", + "资源内容", }; - String[] headerCode = { - "courseInfoId", - "teacherOpenCourseId", - "resourcesInfoName", - "resourcesInfoType", - "resourcesInfoContent", + String[] headerCode = { + "courseInfoId", + "teacherOpenCourseId", + "resourcesInfoName", + "resourcesInfoType", + "resourcesInfoContent", }; - //数据内容 - List> mapList = teacherOpenCourseMergeResourcesInfoService.getExcelValues(teacherOpenCourseMergeResourcesInfoQuery); + //数据内容 + List> mapList = teacherOpenCourseMergeResourcesInfoService.getExcelValues(teacherOpenCourseMergeResourcesInfoQuery); - //内容宽度 - Map widthMap = mapList.get(0); - mapList.remove(0); + //内容宽度 + Map widthMap = mapList.get(0); + mapList.remove(0); - //声明一个工作簿 - workbook = new HSSFWorkbook(); + //声明一个工作簿 + workbook = new HSSFWorkbook(); - //生成一个表格,设置表格名称为"Sheet1" - HSSFSheet sheet = workbook.createSheet("Sheet1"); + //生成一个表格,设置表格名称为"Sheet1" + HSSFSheet sheet = workbook.createSheet("Sheet1"); - //冻结表头 - sheet.createFreezePane(0, 1, 0, 1); + //冻结表头 + sheet.createFreezePane(0, 1, 0, 1); - //设置默认列宽度为5个字节 - sheet.setDefaultColumnWidth(5); + //设置默认列宽度为5个字节 + sheet.setDefaultColumnWidth(5); - //创建第一行表头 - HSSFRow headRow = sheet.createRow(0); + //创建第一行表头 + HSSFRow headRow = sheet.createRow(0); - //头部样式 - HSSFCellStyle headerStyle = workbook.createCellStyle(); - //垂直居中 - headerStyle.setVerticalAlignment(VerticalAlignment.CENTER); - //水平居中 - headerStyle.setAlignment(HorizontalAlignment.CENTER); + //头部样式 + HSSFCellStyle headerStyle = workbook.createCellStyle(); + //垂直居中 + headerStyle.setVerticalAlignment(VerticalAlignment.CENTER); + //水平居中 + headerStyle.setAlignment(HorizontalAlignment.CENTER); - //单元格样式 - HSSFCellStyle cellStyle = workbook.createCellStyle(); - //垂直居中 - cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); - //水平居左 - cellStyle.setAlignment(HorizontalAlignment.CENTER); - //自动换行 - cellStyle.setWrapText(true); + //单元格样式 + HSSFCellStyle cellStyle = workbook.createCellStyle(); + //垂直居中 + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + //水平居左 + cellStyle.setAlignment(HorizontalAlignment.CENTER); + //自动换行 + cellStyle.setWrapText(true); - //遍历添加表头 - for (int i = 0; i < header.length; i++) { + //遍历添加表头 + for (int i = 0; i < header.length; i++) { - //设置表格特定的列宽度 - if (null != widthMap.get(headerCode[i])) { - String width = widthMap.get(headerCode[i]).toString().split("\\.")[0]; - Integer w = Integer.parseInt(width) > header[i].length()*3?Integer.parseInt(width):header[i].length()*3; - sheet.setColumnWidth(i, w * 190); - } + //设置表格特定的列宽度 + if (null != widthMap.get(headerCode[i])) { + String width = widthMap.get(headerCode[i]).toString().split("\\.")[0]; + Integer w = Integer.parseInt(width) > header[i].length() * 3 ? Integer.parseInt(width) : header[i].length() * 3; + sheet.setColumnWidth(i, w * 190); + } - //创建一个单元格 - HSSFCell cell = headRow.createCell(i); + //创建一个单元格 + HSSFCell cell = headRow.createCell(i); - //创建一个内容对象 - HSSFRichTextString text = new HSSFRichTextString(header[i]); + //创建一个内容对象 + HSSFRichTextString text = new HSSFRichTextString(header[i]); - //将内容对象的文字内容写入到单元格中 - cell.setCellValue(text); + //将内容对象的文字内容写入到单元格中 + cell.setCellValue(text); - //设置样式 - cell.setCellStyle(headerStyle); - } + //设置样式 + cell.setCellStyle(headerStyle); + } - //遍历结果集,把内容加入表格 - for (int i = 0; i < mapList.size(); i++) { - HSSFRow row = sheet.createRow(i + 1); + //遍历结果集,把内容加入表格 + for (int i = 0; i < mapList.size(); i++) { + HSSFRow row = sheet.createRow(i + 1); - row.setHeight((short) (50*10)); + row.setHeight((short) (50 * 10)); - Map map = mapList.get(i); - for (int j = 0; j < headerCode.length; j++) { - HSSFCell cell = row.createCell(j); - cell.setCellStyle(cellStyle); - HSSFRichTextString text = new HSSFRichTextString(null != map.get(headerCode[j]) ? map.get(headerCode[j]).toString() : " "); - cell.setCellValue(text); - } + Map map = mapList.get(i); + for (int j = 0; j < headerCode.length; j++) { + HSSFCell cell = row.createCell(j); + cell.setCellStyle(cellStyle); + HSSFRichTextString text = new HSSFRichTextString(null != map.get(headerCode[j]) ? map.get(headerCode[j]).toString() : " "); + cell.setCellValue(text); } + } - //准备将Excel的输出流通过response输出到页面下载 - //八进制输出流 - response.setContentType("application/octet-stream"); + //准备将Excel的输出流通过response输出到页面下载 + //八进制输出流 + response.setContentType("application/octet-stream"); - //这后面可以设置导出Excel的名称,此例中名为student.xls - String fileName = ToolUtils.web2fileName(request,"teacherOpenCourseMergeResourcesInfo(" + TimeTool.getNowTime("YMD") + ").xls"); + //这后面可以设置导出Excel的名称,此例中名为student.xls + String fileName = ToolUtils.web2fileName(request, "teacherOpenCourseMergeResourcesInfo(" + TimeTool.getNowTime("YMD") + ").xls"); - response.setHeader("Content-disposition", "attachment;filename="+fileName); + response.setHeader("Content-disposition", "attachment;filename=" + fileName); - //刷新缓冲 - response.flushBuffer(); + //刷新缓冲 + 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) { } + //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) { } } + } /** * 教师端-导入资源操作,逻辑拆分 - * + *

* 从系统资源库拉取到教师开课的资源中。 - * @param resourcesInfoIds 资源信息ID集合 - * @param teacherOpenCourseId 开课ID + * + * @param resourcesInfoIds 资源信息ID集合 + * @param teacherOpenCourseId 开课ID * @return */ @PostMapping(API + "/copyFromResourcesInfo.do") @@ -545,8 +552,8 @@ public class TeacherOpenCourseMergeResourcesInfoController{ * 功能描述:
* 排序 移动 * - * @param id ID - * @param moveType 移动类型 + * @param id ID + * @param moveType 移动类型 * @return {@link JsonResult} * @Author: 87966 * @Date: 2023/1/9 16:17 @@ -564,15 +571,15 @@ public class TeacherOpenCourseMergeResourcesInfoController{ * 只传左元素,表示:拖动元素 在 左元素的左侧; * 只传右元素,表示:拖动元素 在 右元素的右侧; * 左右元素都传,则拖动元素放置在两个元素的中间。 - * + *

* 左侧(上) ==> 右侧(下) * 小数值 ==> 大数值 - * + *

* 数值越小,越靠前 * - * @param id 拖动元素的ID - * @param leftId 左元素ID 偏小数值对应的元素ID - * @param rightId 右元素ID 偏大数值对应的元素ID + * @param id 拖动元素的ID + * @param leftId 左元素ID 偏小数值对应的元素ID + * @param rightId 右元素ID 偏大数值对应的元素ID * @return {@link JsonResult} * @Author: 87966 * @Date: 2023/1/9 16:44 diff --git a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeStudentController.java b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeStudentController.java index 35074739..5ac54287 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeStudentController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeStudentController.java @@ -189,6 +189,7 @@ public class TeacherOpenCourseMergeStudentController{ return JsonResult.failMessage("请登录后再操作"); }else{ teacherOpenCourseMergeStudentQuery.setOrgId(coreUser.getOrgId()); + teacherOpenCourseMergeStudentQuery.setUserId(coreUser.getId()); if(null == teacherOpenCourseMergeStudentQuery.getTeacherOpenCourseSchoolClassMergeStudentStatus()){ teacherOpenCourseMergeStudentQuery.setTeacherOpenCourseSchoolClassMergeStudentStatus(1); } diff --git a/web/src/main/resources/sql/jlw/teacherOpenCourseMergeStudent.md b/web/src/main/resources/sql/jlw/teacherOpenCourseMergeStudent.md index 112db2bf..0caa2b26 100644 --- a/web/src/main/resources/sql/jlw/teacherOpenCourseMergeStudent.md +++ b/web/src/main/resources/sql/jlw/teacherOpenCourseMergeStudent.md @@ -420,3 +420,16 @@ randomStudentList @if(!isEmpty(studentSnOrName)){ and (tb.student_sn like #'%'+studentSnOrName+'%'# or tb.student_name like #'%'+studentSnOrName+'%'#) @} + + +getStudentClassIdList +=== + * 获取开课关联学生里面的班级ids + + select distinct class_id + from student s + left join teacher_open_course_merge_student tocms on s.student_id = tocms.student_id + where student_status = 1 + and tocms.teacher_open_course_school_class_merge_student_status = 1 + and teacher_open_course_id = #teacherOpenCourseId# +