pans 6 месяцев назад
Родитель
Сommit
49268aebe9
11 измененных файлов с 78 добавлено и 86 удалено
  1. 2 42
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseChapterController.java
  2. 60 31
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseClassHourController.java
  3. 3 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/CourseChapterKnowledge.java
  4. 1 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CourseChapterKnowledgeMapper.java
  5. 1 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseChapterKnowledgeMapper.xml
  6. 1 2
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ChapterAddParam.java
  7. 0 2
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ChapterEditParam.java
  8. 2 3
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ClassHourAddParam.java
  9. 5 2
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ClassHourEditParam.java
  10. 1 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/CourseChapterKnowledgeService.java
  11. 2 2
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CourseChapterKnowledgeServiceImpl.java

+ 2 - 42
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseChapterController.java

@@ -15,7 +15,6 @@ package vip.xiaonuo.disk.controller;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollStreamUtil;
-import cn.hutool.core.util.IdUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.github.xiaoymin.knife4j.annotations.ApiSupport;
@@ -31,7 +30,6 @@ import vip.xiaonuo.common.annotation.CommonLog;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.common.pojo.CommonValidList;
 import vip.xiaonuo.disk.domain.Chapter;
-import vip.xiaonuo.disk.domain.CourseChapterKnowledge;
 import vip.xiaonuo.disk.domain.CourseRelate;
 import vip.xiaonuo.disk.param.ChapterAddParam;
 import vip.xiaonuo.disk.param.ChapterEditParam;
@@ -39,7 +37,6 @@ import vip.xiaonuo.disk.param.ChapterIdParam;
 import vip.xiaonuo.disk.param.ChapterPageParam;
 import vip.xiaonuo.disk.service.ChapterService;
 import vip.xiaonuo.disk.service.ClassHourService;
-import vip.xiaonuo.disk.service.CourseChapterKnowledgeService;
 import vip.xiaonuo.disk.service.CourseRelateService;
 
 import javax.annotation.Resource;
@@ -71,8 +68,6 @@ public class CourseChapterController {
     @Resource
     private CourseRelateService courseRelateService;
 
-    @Resource
-    private CourseChapterKnowledgeService courseChapterKnowledgeService;
 
 
     /**
@@ -183,13 +178,6 @@ public class CourseChapterController {
                 }
             }
 
-            //根据章节,获得的知识点
-            List<String> knowledegeList=courseChapterKnowledgeService.selectknowledge(req.getParameter("courseId"),chapterId);
-            //章节对应知识点
-            chapter.put("classHours", chapterClassHours);
-
-            chapter.put("knowledeges", knowledegeList);
-
         }
 //        //按chapterId分组课程
 //        Map<String, List<Map<String, Object>>> classHourByChapter = classHourList.stream()
@@ -253,18 +241,7 @@ public class CourseChapterController {
                     .collect(Collectors.toList());
             courseRelateService.addBatch(courseRelates);
         }
-        //添加章节,设计知识点关联表
-        List<CourseChapterKnowledge> list=new ArrayList<>();
-        chapterAddParam.getKnowledgeIds().stream().forEach(knowledgeId -> {
-
-            CourseChapterKnowledge courseChapterKnowledge = new CourseChapterKnowledge();
-            courseChapterKnowledge.setCourseId(chapterAddParam.getCourseId());
-            courseChapterKnowledge.setChapterId(chapter.getId());
-            courseChapterKnowledge.setKnowledgeId(knowledgeId);
-            courseChapterKnowledge.setId(IdUtil.getSnowflake().nextIdStr());
-            list.add(courseChapterKnowledge);
-        });
-        courseChapterKnowledgeService.saveBatch(list);
+
         return CommonResult.ok();
     }
 
@@ -303,24 +280,7 @@ public class CourseChapterController {
         }
 
 
-        //根据章节id和课程id删除关联表
-        Map<String, Object> knowledgeParam = new HashMap<>();
-        knowledgeParam.put("COURSE_ID", chapterEditParam.getCourseId());
-        knowledgeParam.put("CHAPTER_ID", chapter.getId());
-        courseChapterKnowledgeService.removeByMap(knowledgeParam);
-
-        //添加章节,设计知识点关联表
-        List<CourseChapterKnowledge> list=new ArrayList<>();
-        chapterEditParam.getKnowledgeIds().stream().forEach(knowledgeId -> {
-
-            CourseChapterKnowledge courseChapterKnowledge = new CourseChapterKnowledge();
-            courseChapterKnowledge.setCourseId(chapterEditParam.getCourseId());
-            courseChapterKnowledge.setChapterId(chapter.getId());
-            courseChapterKnowledge.setKnowledgeId(knowledgeId);
-            courseChapterKnowledge.setId(IdUtil.getSnowflake().nextIdStr());
-            list.add(courseChapterKnowledge);
-        });
-        courseChapterKnowledgeService.saveBatch(list);
+
 
         return CommonResult.ok();
     }

+ 60 - 31
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseClassHourController.java

@@ -15,11 +15,13 @@ package vip.xiaonuo.disk.controller;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.IdUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.github.xiaoymin.knife4j.annotations.ApiSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections4.MapUtils;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -28,15 +30,9 @@ import org.springframework.web.bind.annotation.RestController;
 import vip.xiaonuo.common.annotation.CommonLog;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.common.pojo.CommonValidList;
-import vip.xiaonuo.disk.domain.Chapter;
-import vip.xiaonuo.disk.domain.ClassHour;
-import vip.xiaonuo.disk.domain.CourseInfo;
-import vip.xiaonuo.disk.domain.CourseRelate;
+import vip.xiaonuo.disk.domain.*;
 import vip.xiaonuo.disk.param.*;
-import vip.xiaonuo.disk.service.ChapterService;
-import vip.xiaonuo.disk.service.ClassHourService;
-import vip.xiaonuo.disk.service.CourseInfoService;
-import vip.xiaonuo.disk.service.CourseRelateService;
+import vip.xiaonuo.disk.service.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -68,7 +64,8 @@ public class CourseClassHourController {
     private ChapterService chapterService;
     @Resource
     private CourseInfoService courseInfoService;
-
+    @Resource
+    private CourseChapterKnowledgeService courseChapterKnowledgeService;
     /**
      * 获取课时表分页
      *
@@ -119,17 +116,6 @@ public class CourseClassHourController {
         List<CourseRelate> courseRelates = classHourAddParam.getCourseRelates();
         if(courseRelates!=null && courseRelates.size()>0)
         {
-            //2025.8.15,应爽哥要求,考试试卷关联过的要更新一个状态,使其下次不能被选中
-            for(CourseRelate one:courseRelates)
-            {
-                if(one.getFuncType().equals("4")||one.getFuncType().equals("5"))
-                {
-                    Map upPaperSelectParam =new HashMap();
-                    upPaperSelectParam.put("id", one.getRelateId());
-                    upPaperSelectParam.put("isSelect", "1");
-                    classHourService.updatePaperSelect(upPaperSelectParam);
-                }
-            }
             courseRelates = courseRelates.stream()
                     .peek(oneCourseRelate -> oneCourseRelate.setChapterhourType("1")) // 修改属性
                     .peek(oneCourseRelate -> oneCourseRelate.setMainId(classHour.getId())) // 修改属性
@@ -149,6 +135,21 @@ public class CourseClassHourController {
         List<ClassHour> classHourList =classHourService.wrapperList(param);
         courseInfo.setHourCount(String.valueOf(classHourList.size()));
         courseInfoService.editOne(courseInfo);
+
+
+        //添加章节,设计知识点关联表
+        List<CourseChapterKnowledge> list=new ArrayList<>();
+        classHourAddParam.getKnowledgeIds().stream().forEach(knowledgeId -> {
+
+            CourseChapterKnowledge courseChapterKnowledge = new CourseChapterKnowledge();
+            courseChapterKnowledge.setCourseId(chapter.getCourseId());
+            courseChapterKnowledge.setChapterId(chapter.getId());
+            courseChapterKnowledge.setHourId(classHour.getId());
+            courseChapterKnowledge.setKnowledgeId(knowledgeId);
+            courseChapterKnowledge.setId(IdUtil.getSnowflake().nextIdStr());
+            list.add(courseChapterKnowledge);
+        });
+        courseChapterKnowledgeService.saveBatch(list);
         return CommonResult.ok();
     }
 
@@ -164,8 +165,12 @@ public class CourseClassHourController {
     @PostMapping("/disk/hour/edit")
     public CommonResult<String> edit(@RequestBody @Valid ClassHourEditParam classHourEditParam) {
         ClassHour classHour = classHourService.queryEntity(classHourEditParam.getId());
+        Chapter chapter = chapterService.queryEntity(classHour.getChapterId());
+        CourseInfo courseInfo = courseInfoService.queryEntity(chapter.getCourseId());
+        classHourEditParam.setChapterId(chapter.getId());
         BeanUtil.copyProperties(classHourEditParam, classHour);
         classHourService.editOne(classHour);
+
         //重新添加关联内容
         List<CourseRelate> courseRelates = classHourEditParam.getCourseRelates();
         if(courseRelates!=null && courseRelates.size()>0)
@@ -178,17 +183,6 @@ public class CourseClassHourController {
             List<CourseRelate> delCourseRelateList=courseRelateService.wrapperList(relateParam);
             List<String> delCourseRelateIdList=CollStreamUtil.toList(delCourseRelateList, CourseRelate::getId);
             courseRelateService.deleteByIdsReal(delCourseRelateIdList);
-            //2025.8.15,应爽哥要求,考试试卷关联过的要更新一个状态,使其下次不能被选中
-            for(CourseRelate one:courseRelates)
-            {
-                if(one.getFuncType().equals("4")||one.getFuncType().equals("5"))
-                {
-                    Map upPaperSelectParam =new HashMap();
-                    upPaperSelectParam.put("id", one.getRelateId());
-                    upPaperSelectParam.put("isSelect", "1");
-                    classHourService.updatePaperSelect(upPaperSelectParam);
-                }
-            }
             courseRelates = courseRelates.stream()
                     .peek(oneCourseRelate -> oneCourseRelate.setChapterhourType("1"))
                     .peek(oneCourseRelate -> oneCourseRelate.setMainId(classHour.getId())) // 修改属性
@@ -196,6 +190,30 @@ public class CourseClassHourController {
                     .collect(Collectors.toList());
             courseRelateService.addBatch(courseRelates);
         }
+
+
+
+
+        //根据章节id和课程id和课时id删除关联表
+        Map<String, Object> knowledgeParam = new HashMap<>();
+        knowledgeParam.put("COURSE_ID", courseInfo.getCourseId());
+        knowledgeParam.put("CHAPTER_ID", classHour.getChapterId());
+        knowledgeParam.put("HOUR_ID", classHour.getId());
+        courseChapterKnowledgeService.removeByMap(knowledgeParam);
+
+        //添加章节,设计知识点关联表
+        List<CourseChapterKnowledge> list=new ArrayList<>();
+        classHourEditParam.getKnowledgeIds().stream().forEach(knowledgeId -> {
+
+            CourseChapterKnowledge courseChapterKnowledge = new CourseChapterKnowledge();
+            courseChapterKnowledge.setCourseId(courseInfo.getCourseId());
+            courseChapterKnowledge.setChapterId(classHour.getChapterId());
+            courseChapterKnowledge.setHourId(classHour.getId());
+            courseChapterKnowledge.setKnowledgeId(knowledgeId);
+            courseChapterKnowledge.setId(IdUtil.getSnowflake().nextIdStr());
+            list.add(courseChapterKnowledge);
+        });
+        courseChapterKnowledgeService.saveBatch(list);
         return CommonResult.ok();
     }
 
@@ -263,6 +281,17 @@ public class CourseClassHourController {
         }
         result.put("courseRelates", courseRelatesList);
 
+
+       String chapterId=MapUtils.getString(result, "chapterId");
+
+        Chapter chapter = chapterService.queryEntity(chapterId);
+        CourseInfo courseInfo = courseInfoService.queryEntity(chapter.getCourseId());
+
+
+        //根据章节,获得的知识点
+        List<String> knowledegeList=courseChapterKnowledgeService.selectknowledge(courseInfo.getCourseId(),chapterId,classHourIdParam.getId());
+        //章节对应知识点
+        result.put("knowledeges", knowledegeList);
         return CommonResult.data(result);
     }
 

+ 3 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/CourseChapterKnowledge.java

@@ -46,6 +46,9 @@ public class CourseChapterKnowledge {
     @ApiModelProperty(value = "CHAPTER_ID", position = 3)
     private String chapterId;
 
+    /** 课时id */
+    private String hourId;
+    
     /** KNOWLEDGE_ID */
     @ApiModelProperty(value = "KNOWLEDGE_ID", position = 4)
     private String knowledgeId;

+ 1 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CourseChapterKnowledgeMapper.java

@@ -26,5 +26,5 @@ import java.util.List;
  * @date  2025/08/04 17:14
  **/
 public interface CourseChapterKnowledgeMapper extends BaseMapper<CourseChapterKnowledge> {
-    List<String> selectknowledge(@Param("courseId")String courseId, @Param("chapterId") String chapterId);
+    List<String> selectknowledge(@Param("courseId")String courseId, @Param("chapterId") String chapterId,@Param("hourId") String hourId);
 }

+ 1 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseChapterKnowledgeMapper.xml

@@ -10,6 +10,7 @@
           WHERE
               COURSE_ID = #{courseId}
             AND CHAPTER_ID = #{chapterId}
+            AND HOUR_ID = #{hourId}
       </select>
 
 </mapper>

+ 1 - 2
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ChapterAddParam.java

@@ -49,8 +49,7 @@ public class ChapterAddParam {
     @ApiModelProperty(value = "关联信息", position = 6)
     private List<CourseRelate> courseRelates;
 
-    /** 设及知识点 */
-    private List<String> knowledgeIds;
+
 
 
 

+ 0 - 2
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ChapterEditParam.java

@@ -55,6 +55,4 @@ public class ChapterEditParam {
     @ApiModelProperty(value = "关联信息", position = 6)
     private List<CourseRelate> courseRelates;
 
-    /** 设及知识点 */
-    private List<String> knowledgeIds;
 }

+ 2 - 3
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ClassHourAddParam.java

@@ -18,8 +18,6 @@ import lombok.Setter;
 import vip.xiaonuo.disk.domain.CourseRelate;
 
 import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -75,6 +73,7 @@ public class ClassHourAddParam {
     @ApiModelProperty(value = "关联信息", position = 6)
     private List<CourseRelate> courseRelates;
 
-
+    /** 设及知识点 */
+    private List<String> knowledgeIds;
 
 }

+ 5 - 2
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ClassHourEditParam.java

@@ -17,9 +17,7 @@ import lombok.Getter;
 import lombok.Setter;
 import vip.xiaonuo.disk.domain.CourseRelate;
 
-import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
-import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -77,4 +75,9 @@ public class ClassHourEditParam {
     /** 关联信息 */
     @ApiModelProperty(value = "关联信息", position = 6)
     private List<CourseRelate> courseRelates;
+
+    /** 设及知识点 */
+    private List<String> knowledgeIds;
+
+
 }

+ 1 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/CourseChapterKnowledgeService.java

@@ -78,5 +78,5 @@ public interface CourseChapterKnowledgeService extends IService<CourseChapterKno
      **/
     CourseChapterKnowledge queryEntity(String id);
 
-    List<String> selectknowledge(String courseId, String chapterId);
+    List<String> selectknowledge(String courseId, String chapterId,String hourId);
 }

+ 2 - 2
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CourseChapterKnowledgeServiceImpl.java

@@ -95,8 +95,8 @@ public class CourseChapterKnowledgeServiceImpl extends ServiceImpl<CourseChapter
     }
 
     @Override
-    public List<String> selectknowledge(String courseId, String chapterId) {
-        return courseChapterKnowledgeMapper.selectknowledge(courseId,chapterId);
+    public List<String> selectknowledge(String courseId, String chapterId,String hourId) {
+        return courseChapterKnowledgeMapper.selectknowledge(courseId,chapterId,hourId);
     }
 
 }