|
|
@@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
import com.alibaba.excel.support.ExcelTypeEnum;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
import com.xjrsoft.common.model.result.RT;
|
|
|
@@ -22,13 +23,15 @@ import com.xjrsoft.module.base.entity.BaseSemester;
|
|
|
import com.xjrsoft.module.base.entity.ClassCourseTextbook;
|
|
|
import com.xjrsoft.module.base.entity.CourseBookInfo;
|
|
|
import com.xjrsoft.module.base.service.IBaseClassCourseService;
|
|
|
-import com.xjrsoft.module.base.service.impl.BaseCourseSubjectServiceImpl;
|
|
|
+import com.xjrsoft.module.base.service.IBaseClassService;
|
|
|
+import com.xjrsoft.module.base.service.IBaseCourseSubjectService;
|
|
|
+import com.xjrsoft.module.base.service.IBaseSemesterService;
|
|
|
import com.xjrsoft.module.base.vo.BaseClassCourseExportListVo;
|
|
|
import com.xjrsoft.module.base.vo.BaseClassCourseListVo;
|
|
|
import com.xjrsoft.module.base.vo.BaseClassCoursePageVo;
|
|
|
import com.xjrsoft.module.base.vo.BaseClassCourseVo;
|
|
|
import com.xjrsoft.module.textbook.entity.Textbook;
|
|
|
-import com.xjrsoft.module.textbook.service.impl.TextbookServiceImpl;
|
|
|
+import com.xjrsoft.module.textbook.service.ITextbookService;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
@@ -50,8 +53,10 @@ import java.io.ByteArrayOutputStream;
|
|
|
import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @title: 班级课程
|
|
|
@@ -68,8 +73,10 @@ public class BaseClassCourseController {
|
|
|
|
|
|
private static final Logger log = LoggerFactory.getLogger(BaseClassCourseController.class);
|
|
|
private final IBaseClassCourseService baseClassCourseService;
|
|
|
- private final BaseCourseSubjectServiceImpl baseCourseSubjectServiceImpl;
|
|
|
- private final TextbookServiceImpl textbookServiceImpl;
|
|
|
+ private final IBaseCourseSubjectService subjectService;
|
|
|
+ private final ITextbookService textbookService;
|
|
|
+ private final IBaseClassService classService;
|
|
|
+ private final IBaseSemesterService semesterService;
|
|
|
|
|
|
@GetMapping(value = "/page")
|
|
|
@ApiOperation(value = "班级课程列表(分页)")
|
|
|
@@ -167,7 +174,6 @@ public class BaseClassCourseController {
|
|
|
@ApiOperation(value = "复用课程教材")
|
|
|
@SaCheckPermission("baseclasscourse:detail")
|
|
|
public RT<Boolean> insertClassCourseTextbookCombinations(@Valid @RequestBody ClassCourseReuseDto dto) {
|
|
|
-// baseClassCourseService.markExistingRecordsAsDeleted(newClassId, sourceClassId);
|
|
|
return RT.ok(baseClassCourseService.duplicateCourseBook(dto));
|
|
|
}
|
|
|
|
|
|
@@ -206,33 +212,57 @@ public class BaseClassCourseController {
|
|
|
List<BaseClassCourse> baseClassCourses = new ArrayList<>();
|
|
|
List<String> duplicateLogs = new ArrayList<>();
|
|
|
List<String> errorLogs = new ArrayList<>();
|
|
|
+ List<BaseClass> classList = classService.list(new QueryWrapper<BaseClass>());
|
|
|
+ Map<String, Long> classMap = new HashMap<>();
|
|
|
+ for (BaseClass baseClass : classList) {
|
|
|
+ classMap.put(baseClass.getName(), baseClass.getId());
|
|
|
+ }
|
|
|
+ List<BaseCourseSubject> courseSubjectList = subjectService.list(new QueryWrapper<BaseCourseSubject>());
|
|
|
+ Map<String, Long> courseSubjectMap = new HashMap<>();
|
|
|
+ for (BaseCourseSubject baseCourseSubject : courseSubjectList) {
|
|
|
+ courseSubjectMap.put(baseCourseSubject.getName(), baseCourseSubject.getId());
|
|
|
+ }
|
|
|
+ List<Textbook> textbookList = textbookService.list(new QueryWrapper<Textbook>());
|
|
|
+ Map<String, Long> textbookMap = new HashMap<>();
|
|
|
+ for (Textbook textbook : textbookList) {
|
|
|
+ textbookMap.put(textbook.getBookName(), textbook.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<BaseSemester> semesterList = semesterService.list(new QueryWrapper<BaseSemester>());
|
|
|
+ Map<String, Long> semesterMap = new HashMap<>();
|
|
|
+ for (BaseSemester baseSemester : semesterList) {
|
|
|
+ semesterMap.put(baseSemester.getName(), baseSemester.getId());
|
|
|
+ }
|
|
|
|
|
|
for (BaseClassCoursePageVo vo : savedDataList) {
|
|
|
- try {
|
|
|
- Long classId = Long.parseLong(baseClassCourseService.GetClassIdByName(vo.getClassName()).toString());
|
|
|
- Long courseId = Long.parseLong(baseClassCourseService.GetCourseIdByName(vo.getCourseName()).toString());
|
|
|
- Long textbookId = Long.parseLong(baseClassCourseService.GetTextbookIdByName(vo.getTextbookName()).toString());
|
|
|
- Long baseSemesterId = Long.parseLong(baseClassCourseService.GetBaseSemesterIdByName(vo.getSemester()).toString());
|
|
|
-
|
|
|
- if (baseClassCourseService.checkExits(classId, courseId, textbookId)) {
|
|
|
- duplicateLogs.add(String.format("[输入的信息重复添加] 班级: %s, 课程: %s, 教材: %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName()));
|
|
|
- continue;
|
|
|
- }
|
|
|
+ String[] textbookNames = vo.getTextbookName().split(" ");
|
|
|
+ for (String textbookName : textbookNames) {
|
|
|
+ try {
|
|
|
+ Long classId = classMap.get(vo.getClassName());
|
|
|
+ Long courseId = courseSubjectMap.get(vo.getCourseName());
|
|
|
+ Long textbookId = textbookMap.get(textbookName);
|
|
|
+ Long baseSemesterId = semesterMap.get(vo.getSemester());
|
|
|
+
|
|
|
+ if (baseClassCourseService.checkExits(classId, courseId, textbookId)) {
|
|
|
+ duplicateLogs.add(String.format("[输入的信息重复添加] 班级: %s, 课程: %s, 教材: %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName()));
|
|
|
+ continue;
|
|
|
+ }
|
|
|
|
|
|
- if (classId != null && courseId != null && textbookId != null && baseSemesterId != null) {
|
|
|
- BaseClassCourse baseClassCourse = new BaseClassCourse();
|
|
|
- baseClassCourse.setClassId(classId);
|
|
|
- baseClassCourse.setCourseId(courseId);
|
|
|
- baseClassCourse.setTextbookId(textbookId);
|
|
|
- baseClassCourse.setCreateDate(new Date());
|
|
|
- baseClassCourse.setDeleteMark(0);
|
|
|
- baseClassCourse.setBaseSemesterId(baseSemesterId);
|
|
|
- baseClassCourses.add(baseClassCourse);
|
|
|
+ if (classId != null && courseId != null && textbookId != null && baseSemesterId != null) {
|
|
|
+ BaseClassCourse baseClassCourse = new BaseClassCourse();
|
|
|
+ baseClassCourse.setClassId(classId);
|
|
|
+ baseClassCourse.setCourseId(courseId);
|
|
|
+ baseClassCourse.setTextbookId(textbookId);
|
|
|
+ baseClassCourse.setCreateDate(new Date());
|
|
|
+ baseClassCourse.setDeleteMark(0);
|
|
|
+ baseClassCourse.setBaseSemesterId(baseSemesterId);
|
|
|
+ baseClassCourses.add(baseClassCourse);
|
|
|
+ }
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
+ errorLogs.add(String.format("[无法解析输入的信息] 班级: %s, 班级: %s, 教材: %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName()));
|
|
|
+ } catch (Exception e) {
|
|
|
+ errorLogs.add(String.format("[意外错误(检查输入的名称是否正确且存在,输入错误可能返回 null)] 班级: %s, 课程: %s, 教材: %s - 错误信息:%s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName(), e.getMessage()));
|
|
|
}
|
|
|
- } catch (NumberFormatException e) {
|
|
|
- errorLogs.add(String.format("[无法解析输入的信息] 班级: %s, 班级: %s, 教材: %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName()));
|
|
|
- } catch (Exception e) {
|
|
|
- errorLogs.add(String.format("[意外错误(检查输入的名称是否正确且存在,输入错误可能返回 null)] 班级: %s, 课程: %s, 教材: %s - 错误信息:%s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName(), e.getMessage()));
|
|
|
}
|
|
|
}
|
|
|
|