dzx 1 éve
szülő
commit
d4b50aa6c1

+ 58 - 28
src/main/java/com/xjrsoft/module/base/controller/BaseClassCourseController.java

@@ -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()));
             }
         }