Browse Source

班级课程修改

brealinxx 1 year ago
parent
commit
bb0d61626a

+ 9 - 7
src/main/java/com/xjrsoft/module/base/controller/BaseClassCourseController.java

@@ -88,16 +88,16 @@ public class BaseClassCourseController {
     @GetMapping("/getAllCoursesAndTextbooks")
     @ApiOperation(value="获取所有课程教材")
     @SaCheckPermission("baseclasscourse:detail")
-    public RT<List<CourseBookInfo>> getAllCoursesAndTextbooks(@RequestParam(required = false) Long subjectGroupId) {
-        List<CourseBookInfo> data = baseClassCourseService.getAllCourseBook(subjectGroupId);
+    public RT<List<CourseBookInfo>> getAllCoursesAndTextbooks(@RequestParam(required = false) Long[] classIds, @RequestParam(required = false) Long subjectGroupId, @RequestParam Long semester) {
+        List<CourseBookInfo> data = baseClassCourseService.getAllCourseBook(classIds, subjectGroupId, semester);
         return RT.ok(data);
     }
 
     @GetMapping("/getAllSelectedCoursesAndTextbooks")
     @ApiOperation(value="获取所有以选择课程教材")
     @SaCheckPermission("baseclasscourse:detail")
-    public RT<List<CourseBookInfo>> getAllSelectedCoursesAndTextbooks(@RequestParam(required = false) Long[] classIds) {
-        List<CourseBookInfo> data = baseClassCourseService.getSelectedCourseBook(classIds);
+    public RT<List<CourseBookInfo>> getAllSelectedCoursesAndTextbooks(@RequestParam(required = false) Long[] classIds, @RequestParam(required = false) Long semester) {
+        List<CourseBookInfo> data = baseClassCourseService.getSelectedCourseBook(classIds, semester);
         return RT.ok(data);
     }
 
@@ -128,9 +128,11 @@ public class BaseClassCourseController {
     @GetMapping("/insertClassCourseTextbookCombinations")
     @ApiOperation(value="复用课程教材")
     @SaCheckPermission("baseclasscourse:detail")
-    public RT insertClassCourseTextbookCombinations(@RequestParam  Long newClassId, @RequestParam Long sourceClassId) {
-        baseClassCourseService.markExistingRecordsAsDeleted(newClassId, sourceClassId);
-        baseClassCourseService.duplicateCourseBook(newClassId, sourceClassId);
+    public RT insertClassCourseTextbookCombinations(@RequestParam Long newClassId, @RequestParam Long[] sourceClassIds, @RequestParam Long semester) {
+//        baseClassCourseService.markExistingRecordsAsDeleted(newClassId, sourceClassId);
+        for (Long sourceId : sourceClassIds){
+            baseClassCourseService.duplicateCourseBook(newClassId, sourceId, semester);
+        }
         return RT.ok();
     }
 

+ 3 - 4
src/main/java/com/xjrsoft/module/base/mapper/BaseClassCourseMapper.java

@@ -25,15 +25,14 @@ public interface BaseClassCourseMapper extends MPJBaseMapper<BaseClassCourse> {
     @Select("SELECT id, name FROM base_semester")
     List<Map<String, Object>> getAllSemesterNames();
 
-    List<CourseBookInfo> getAllCourseBook(Long subjectGroupId);
-    List<CourseBookInfo> getSelectedCourseBook(Long[] classIds);
-
+    List<CourseBookInfo> getAllCourseBook(Long[] classIds, Long subjectGroupId, Long semester);
+    List<CourseBookInfo> getSelectedCourseBook(Long[] classIds, Long semester);
 
     void updateAddClassCourseTextbooks(Long classId,Long courseId,Long textbookId);
     void updateRemoveClassCourseTextbooks(Long classId,Long courseId,Long textbookId);
 
     void markExistingRecordsAsDeleted(Long newClassId, Long sourceClassId);
-    void insertClassCourseTextbookCombinations(Long newClassId, Long sourceClassId);
+    void insertClassCourseTextbookCombinations(Long newClassId, Long sourceClassId, Long semester);
 
     Long getClassIdByName(String name);
     Long getCourseIdByName(String name);

+ 3 - 3
src/main/java/com/xjrsoft/module/base/service/IBaseClassCourseService.java

@@ -23,9 +23,9 @@ public interface IBaseClassCourseService extends MPJBaseService<BaseClassCourse>
     Page<BaseClassCoursePageVo> getPage(Page<BaseClassCoursePageVo> objectPage, BaseClassCoursePageDto dto);
 
 
-    List<CourseBookInfo> getAllCourseBook(Long subjectGroupId);
+    List<CourseBookInfo> getAllCourseBook(Long[] classIds, Long subjectGroupId, Long semester);
 
-    List<CourseBookInfo> getSelectedCourseBook(Long[] subjectGroupId);
+    List<CourseBookInfo> getSelectedCourseBook(Long[] subjectGroupId, Long semester);
 
 
     void updateAddCourseBook(Long classId,Long courseId,Long textbookId);
@@ -33,7 +33,7 @@ public interface IBaseClassCourseService extends MPJBaseService<BaseClassCourse>
 
     void markExistingRecordsAsDeleted(Long newClassId, Long sourceClassId);
 
-    void duplicateCourseBook(Long newClassId, Long sourceClassId);
+    void duplicateCourseBook(Long newClassId, Long sourceClassId, Long semester);
 
     Map<String, Map<String, Object>> getSemesterTree();
 

+ 6 - 6
src/main/java/com/xjrsoft/module/base/service/impl/BaseClassCourseServiceImpl.java

@@ -30,13 +30,13 @@ public class BaseClassCourseServiceImpl extends MPJBaseServiceImpl<BaseClassCour
     }
 
     @Override
-    public List<CourseBookInfo> getAllCourseBook(Long subjectGroupId){
-        return baseClassCourseMapper.getAllCourseBook(subjectGroupId);
+    public List<CourseBookInfo> getAllCourseBook(Long[] classIds, Long subjectGroupId, Long semester){
+        return baseClassCourseMapper.getAllCourseBook(classIds, subjectGroupId, semester);
     }
 
     @Override
-    public List<CourseBookInfo> getSelectedCourseBook(Long[] subjectGroupId){
-        return baseClassCourseMapper.getSelectedCourseBook(subjectGroupId);
+    public List<CourseBookInfo> getSelectedCourseBook(Long[] subjectGroupId, Long semester){
+        return baseClassCourseMapper.getSelectedCourseBook(subjectGroupId, semester);
     }
 
     @Override
@@ -55,8 +55,8 @@ public class BaseClassCourseServiceImpl extends MPJBaseServiceImpl<BaseClassCour
     }
 
     @Override
-    public void duplicateCourseBook(Long newClassId, Long sourceClassId){
-        baseClassCourseMapper.insertClassCourseTextbookCombinations(newClassId, sourceClassId);
+    public void duplicateCourseBook(Long newClassId, Long sourceClassId, Long semester){
+        baseClassCourseMapper.insertClassCourseTextbookCombinations(newClassId, sourceClassId, semester);
     }
 
     @Override

+ 1 - 1
src/main/java/com/xjrsoft/module/base/vo/BaseClassCoursePageVo.java

@@ -111,6 +111,6 @@ public class BaseClassCoursePageVo {
     @ExcelProperty("对应教材")
     private String textbookName;
 
-    @ExcelProperty("年级")
+    @ExcelProperty("学期")
     private String semester;
 }

+ 39 - 24
src/main/resources/mapper/base/BaseClassCourse.xml

@@ -38,15 +38,6 @@
         <if test="dto.deptId != null">
             and t4.id = #{dto.deptId}
         </if>
-<!--        <if test="dto.semester != null">-->
-<!--            AND EXISTS (-->
-<!--            SELECT 1-->
-<!--            FROM base_class_course bcc-->
-<!--            JOIN textbook tb ON bcc.textbook_id = tb.id-->
-<!--            WHERE bcc.class_id = t.id-->
-<!--            AND tb.base_semester_id = #{dto.semester}-->
-<!--            )-->
-<!--        </if>-->
         GROUP BY t.id, t.name, t1.name, t3.name, t4.name
         <if test="dto.courseSet == 1">
             HAVING LENGTH(course_name) > 0
@@ -58,14 +49,22 @@
 
 
     <select id="getAllCourseBook" resultType="com.xjrsoft.module.base.entity.CourseBookInfo">
-        select t1.id as courseId, t1.name as courseName,t.book_name as bookName
-        from textbook t
-        left join base_course_subject t1 on t.course_subject_id = t1.id
-        left join subject_group t2 on t2.id = t.subject_group_id
-        where t.delete_mark = 0
+        SELECT t1.id AS courseId, t1.name AS courseName, t.book_name AS bookName
+        FROM textbook t
+        LEFT JOIN base_course_subject t1 ON t.course_subject_id = t1.id
+        LEFT JOIN subject_group t2 ON t2.id = t.subject_group_id
+        WHERE t.delete_mark = 0
         <if test="subjectGroupId != null">
             AND t2.id = #{subjectGroupId}
         </if>
+        <if test="semester != null">
+            AND EXISTS (
+            SELECT 1
+            FROM textbook tb
+            WHERE tb.id = t.id
+            AND tb.base_semester_id = #{semester}
+            )
+        </if>
     </select>
 
     <select id="getSelectedCourseBook" resultType="com.xjrsoft.module.base.entity.CourseBookInfo">
@@ -80,6 +79,14 @@
                 #{classIds}
             </foreach>
         </if>
+        <if test="semester != null">
+            AND EXISTS (
+            SELECT 1
+            FROM textbook tb
+            WHERE tb.id = t.textbook_id
+            AND tb.base_semester_id = #{semester}
+            )
+        </if>
 <!--        <if test="subjectGroupId != null">-->
 <!--            AND-->
 <!--        </if>-->
@@ -110,16 +117,24 @@
     </update>
 
     <insert id="insertClassCourseTextbookCombinations" parameterType="map">
-        INSERT INTO base_class_course (class_id, course_id, textbook_id, create_date, delete_mark,enabled_mark)
-        SELECT #{newClassId}, t.course_id, t.textbook_id, now(), 0, 1
-        FROM (
-                 SELECT course_id, textbook_id
-                 FROM base_class_course
-                 WHERE class_id = #{sourceClassId}
-                   AND delete_mark = 0
-                 GROUP BY course_id, textbook_id
-             ) t
-            ON DUPLICATE KEY UPDATE delete_mark = 0
+        INSERT INTO base_class_course (class_id, course_id, textbook_id, create_date, delete_mark, enabled_mark)
+        SELECT #{newClassId}, t.course_id, t.textbook_id, NOW(), 0, 1
+        FROM (SELECT course_id, textbook_id FROM base_class_course WHERE class_id = #{sourceClassId} AND delete_mark = 0
+            <if test="semester != null">
+                AND EXISTS (
+                SELECT 1
+                FROM textbook tb
+                WHERE tb.id = textbook_id
+                AND tb.base_semester_id = #{semester}
+                )
+            </if>
+        GROUP BY
+            course_id, textbook_id
+        ) t
+        ON DUPLICATE KEY UPDATE
+        delete_mark = 0,
+        enabled_mark = 1,
+        create_date = NOW()
     </insert>
 
     <select id="getClassIdByName" resultType="java.lang.Long">