Просмотр исходного кода

1.完成学生课程笔记、笔记本相关功能
2.给试卷列表加检索

honorfire 7 месяцев назад
Родитель
Сommit
3dd3701380
16 измененных файлов с 322 добавлено и 15 удалено
  1. 1 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseClassHourController.java
  2. 45 5
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseNotebooksController.java
  3. 75 9
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseNotesController.java
  4. 1 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/CourseNotes.java
  5. 11 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CourseNotebooksMapper.java
  6. 13 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CourseNotesMapper.java
  7. 21 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseNotebooksMapper.xml
  8. 22 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseNotesMapper.xml
  9. 4 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotesAddParam.java
  10. 13 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/CourseNotebooksService.java
  11. 19 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/CourseNotesService.java
  12. 35 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CourseNotebooksServiceImpl.java
  13. 41 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CourseNotesServiceImpl.java
  14. 9 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CourseRelateServiceImpl.java
  15. 3 0
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/mapping/ExamPaperMapper.xml
  16. 9 0
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/viewmodel/admin/exam/ExamPaperPageRequestVM.java

+ 1 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseClassHourController.java

@@ -247,6 +247,7 @@ public class CourseClassHourController {
         Map funcTypeParam =new HashMap();
         funcTypeParam.put("mainId", classHourIdParam.getId());
         funcTypeParam.put("chapterhourType","1");
+        funcTypeParam.put("infoType","0");
         List<CourseRelate> relateList=courseRelateService.wrapperList(funcTypeParam);
         List<String>funcTypeList=CollStreamUtil.toList(relateList, CourseRelate::getFuncType);
         //去重类型

+ 45 - 5
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseNotebooksController.java

@@ -13,6 +13,7 @@
 package vip.xiaonuo.disk.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.collection.CollStreamUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.github.xiaoymin.knife4j.annotations.ApiSupport;
@@ -23,19 +24,29 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.common.annotation.CommonLog;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.common.pojo.CommonValidList;
 import vip.xiaonuo.disk.domain.CourseNotebooks;
+import vip.xiaonuo.disk.domain.CourseNotes;
+import vip.xiaonuo.disk.domain.CourseRelate;
 import vip.xiaonuo.disk.param.CourseNotebooksAddParam;
 import vip.xiaonuo.disk.param.CourseNotebooksEditParam;
 import vip.xiaonuo.disk.param.CourseNotebooksIdParam;
 import vip.xiaonuo.disk.param.CourseNotebooksPageParam;
+import vip.xiaonuo.disk.param.courseclasshourfilerelate.CourseRelateIdParam;
 import vip.xiaonuo.disk.service.CourseNotebooksService;
+import vip.xiaonuo.disk.service.CourseNotesService;
+import vip.xiaonuo.disk.service.CourseRelateService;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 import javax.validation.constraints.NotEmpty;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 课程笔记本表控制器
@@ -51,6 +62,10 @@ public class CourseNotebooksController {
 
     @Resource
     private CourseNotebooksService courseNotebooksService;
+    @Resource
+    private CourseNotesService courseNotesService;
+    @Resource
+    private CourseRelateService courseRelateService;
 
     /**
      * 获取课程笔记本表分页
@@ -62,12 +77,17 @@ public class CourseNotebooksController {
     @ApiOperation("获取课程笔记本表分页")
     @SaCheckPermission("/disk/courseNotebooks/page")
     @GetMapping("/disk/courseNotebooks/page")
-    public CommonResult<Page<CourseNotebooks>> page(CourseNotebooksPageParam courseNotebooksPageParam) {
-        return CommonResult.data(courseNotebooksService.page(courseNotebooksPageParam));
+    public CommonResult<Page<Map<String,Object>>> page(CourseNotebooksPageParam courseNotebooksPageParam, HttpServletRequest req) {
+        Map param =new HashMap();
+        param.put("courseId", req.getParameter("courseId"));
+        param.put("courseName", req.getParameter("courseName"));
+        param.put("userId", StpLoginUserUtil.getLoginUser().getId());
+        Page<Map<String,Object>> page=courseNotebooksService.queryList(param);
+        return CommonResult.data(page);
     }
 
     /**
-     * 添加课程笔记本表
+     * 添加课程笔记本表(暂时废弃)
      *
      * @author 金吉龙
      * @date  2025/07/01 18:40
@@ -83,7 +103,7 @@ public class CourseNotebooksController {
     }
 
     /**
-     * 编辑课程笔记本表
+     * 编辑课程笔记本表(暂时废弃)
      *
      * @author 金吉龙
      * @date  2025/07/01 18:40
@@ -111,12 +131,32 @@ public class CourseNotebooksController {
     @PostMapping("/disk/courseNotebooks/delete")
     public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
                                                    CommonValidList<CourseNotebooksIdParam> courseNotebooksIdParamList) {
+        //1.先查回这些要删除的笔记是什么课程的
+        List<String> deleteIdList=CollStreamUtil.toList(courseNotebooksIdParamList, CourseNotebooksIdParam::getNotebookId);
+        Map param=new HashMap<>();
+        param.put("notebookIdList", deleteIdList);
+        List<CourseNotebooks> wllDelCourseNotebooksList=courseNotebooksService.wrapperList(param);
+        //2.删除笔记本本身
         courseNotebooksService.delete(courseNotebooksIdParamList);
+        //3.删除该课程对应的具体笔记,以及课程关联的信息
+        List<String> courseIdList=CollStreamUtil.toList(wllDelCourseNotebooksList, CourseNotebooks::getCourseId);
+        param.clear();
+        param.put("courseIdList", courseIdList);
+        param.put("userId", StpLoginUserUtil.getLoginUser().getId());
+        List<CourseNotes> wllDelCourseNotesList=courseNotesService.wrapperList(param);
+        List<String> wllDelNoteIdList=CollStreamUtil.toList(wllDelCourseNotesList, CourseNotes::getNoteId);
+        courseNotesService.deleteByIds(wllDelNoteIdList);
+        param.clear();
+        param.put("relateIdList", wllDelNoteIdList);
+        List<CourseRelate> wllDelCourseRelateList=courseRelateService.wrapperList(param);
+        List<String> wllDelCourseRelateIdList=CollStreamUtil.toList(wllDelCourseRelateList, CourseRelate::getId);
+        courseRelateService.deleteByIds(wllDelCourseRelateIdList);
+
         return CommonResult.ok();
     }
 
     /**
-     * 获取课程笔记本表详情
+     * 获取课程笔记本表详情(暂时废弃)
      *
      * @author 金吉龙
      * @date  2025/07/01 18:40

+ 75 - 9
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseNotesController.java

@@ -12,30 +12,37 @@
  */
 package vip.xiaonuo.disk.controller;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
 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.lang3.StringUtils;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.common.annotation.CommonLog;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.common.pojo.CommonValidList;
-import vip.xiaonuo.disk.domain.CourseNotes;
-import vip.xiaonuo.disk.domain.CourseNotesVo;
+import vip.xiaonuo.disk.domain.*;
 import vip.xiaonuo.disk.param.CourseNotesAddParam;
 import vip.xiaonuo.disk.param.CourseNotesEditParam;
 import vip.xiaonuo.disk.param.CourseNotesIdParam;
 import vip.xiaonuo.disk.param.CourseNotesPageParam;
-import vip.xiaonuo.disk.service.CourseNotesService;
+import vip.xiaonuo.disk.service.*;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 import javax.validation.constraints.NotEmpty;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 课程笔记表控制器
@@ -51,18 +58,33 @@ public class CourseNotesController {
 
     @Resource
     private CourseNotesService courseNotesService;
+    @Resource
+    private CourseInfoService courseInfoService;
+    @Resource
+    private ChapterService chapterService;
+    @Resource
+    private ClassHourService classHourService;
+    @Resource
+    private CourseNotebooksService courseNotebooksService;
+    @Resource
+    private CourseRelateService courseRelateService;
 
     /**
-     * 获取课程笔记表分页
+     * 课程笔记-分页列表
      *
      * @author 金吉龙
      * @date  2025/07/01 18:56
      */
     @ApiOperationSupport(order = 1)
-    @ApiOperation("获取课程笔记表分页")
+    @ApiOperation("课程笔记-分页列表")
     @GetMapping("/disk/courseNotes/page")
-    public CommonResult<Page<CourseNotesVo>> page(CourseNotesPageParam courseNotesPageParam) {
-        return CommonResult.data(courseNotesService.page(courseNotesPageParam));
+    public CommonResult<Page<Map<String,Object>>> page(CourseNotesPageParam courseNotesPageParam, HttpServletRequest req) {
+        Map param =new HashMap();
+        param.put("courseId", req.getParameter("courseId"));
+        param.put("hourId", req.getParameter("hourId"));
+        param.put("userId", StpLoginUserUtil.getLoginUser().getId());
+        Page<Map<String,Object>> page=courseNotesService.queryList(param);
+        return CommonResult.data(page);
     }
 
     /**
@@ -76,7 +98,42 @@ public class CourseNotesController {
     @CommonLog("添加课程笔记表")
     @PostMapping("/disk/courseNotes/add")
     public CommonResult<String> add(@RequestBody @Valid CourseNotesAddParam courseNotesAddParam) {
-        courseNotesService.add(courseNotesAddParam);
+        Map param=new HashMap<>();
+        //1.先校验这个课时是不是第一次创建笔记,如果是第一次创建,则创建课程笔记本
+        String courseId = courseNotesAddParam.getCourseId();
+        if(StringUtils.isEmpty(courseId))
+        {
+            if(StringUtils.isEmpty(courseNotesAddParam.getHourId()))return CommonResult.error("课时id不能为空");
+            ClassHour classHour=classHourService.queryEntity(courseNotesAddParam.getHourId());
+            Chapter chapter = chapterService.queryEntity(classHour.getChapterId());
+            courseId=chapter.getCourseId();
+        }
+        param.put("courseId", courseId);
+        param.put("userId", StpLoginUserUtil.getLoginUser().getId() );
+        List<CourseNotebooks> courseNotebooksList=courseNotebooksService.wrapperList(param);
+        CourseNotebooks courseNotebooks=new CourseNotebooks();
+        if(courseNotebooksList.size()==0)
+        {
+            courseNotebooks.setCourseId(courseId);
+            courseNotebooks.setUserId(StpLoginUserUtil.getLoginUser().getId());
+            courseNotebooksService.addOne(courseNotebooks);
+        }
+
+        //2.存储笔记本体信息
+        CourseNotes courseNotes = BeanUtil.toBean(courseNotesAddParam, CourseNotes.class);
+        courseNotes.setUserId(StpLoginUserUtil.getLoginUser().getId());
+        courseNotes.setCourseId(courseId);
+        courseNotesService.addOne(courseNotes);
+        //3.添加进课程关联信息
+        CourseRelate courseRelate=new CourseRelate();
+        courseRelate.setMainId(courseNotesAddParam.getHourId());
+        courseRelate.setRelateId(courseNotes.getNoteId());
+        //功能类型,1视频资源,2讲义,3字幕,4作业,5测验,6笔记,7问答
+        courseRelate.setFuncType("6");
+        courseRelate.setChapterhourType("1");
+        courseRelate.setInfoType("1");
+        courseRelateService.addOne(courseRelate);
+
         return CommonResult.ok();
     }
 
@@ -91,7 +148,8 @@ public class CourseNotesController {
     @CommonLog("编辑课程笔记表")
     @PostMapping("/disk/courseNotes/edit")
     public CommonResult<String> edit(@RequestBody @Valid CourseNotesEditParam courseNotesEditParam) {
-        courseNotesService.edit(courseNotesEditParam);
+        CourseNotes courseNotes = BeanUtil.toBean(courseNotesEditParam, CourseNotes.class);
+        courseNotesService.editOne(courseNotes);
         return CommonResult.ok();
     }
 
@@ -107,7 +165,15 @@ public class CourseNotesController {
     @PostMapping("/disk/courseNotes/delete")
     public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
                                                    CommonValidList<CourseNotesIdParam> courseNotesIdParamList) {
+        //删除笔记基本信息
         courseNotesService.delete(courseNotesIdParamList);
+        //删除课程关联笔记信息
+        List<String> deleteNoteIdList=CollStreamUtil.toList(courseNotesIdParamList, CourseNotesIdParam::getNoteId);
+        Map param=new HashMap<>();
+        param.put("relateIdList", deleteNoteIdList);
+        List<CourseRelate> courseRelateList=courseRelateService.wrapperList(param);
+        List<String> deleteRelateIdList=CollStreamUtil.toList(courseRelateList, CourseRelate::getId);
+        courseRelateService.deleteByIds(deleteRelateIdList);
         return CommonResult.ok();
     }
 

+ 1 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/CourseNotes.java

@@ -76,4 +76,5 @@ public class CourseNotes {
 
     @ApiModelProperty(value = "课程id", position = 10)
     private String courseId;
+
 }

+ 11 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CourseNotebooksMapper.java

@@ -13,8 +13,12 @@
 package vip.xiaonuo.disk.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
 import vip.xiaonuo.disk.domain.CourseNotebooks;
 
+import java.util.Map;
+
 /**
  * 课程笔记本表Mapper接口
  *
@@ -22,4 +26,11 @@ import vip.xiaonuo.disk.domain.CourseNotebooks;
  * @date  2025/07/01 18:40
  **/
 public interface CourseNotebooksMapper extends BaseMapper<CourseNotebooks> {
+
+    /**
+     * 课程笔记本-分页列表
+     */
+    Page<Map<String,Object>> queryList(@Param("param") Map param, @Param("page") Page<Object> page);
+
+
 }

+ 13 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CourseNotesMapper.java

@@ -19,6 +19,8 @@ import vip.xiaonuo.disk.domain.CourseNotes;
 import vip.xiaonuo.disk.domain.CourseNotesVo;
 import vip.xiaonuo.disk.param.CourseNotesPageParam;
 
+import java.util.Map;
+
 /**
  * 课程笔记表Mapper接口
  *
@@ -27,4 +29,15 @@ import vip.xiaonuo.disk.param.CourseNotesPageParam;
  **/
 public interface CourseNotesMapper extends BaseMapper<CourseNotes> {
     Page<CourseNotesVo> page(@Param("page") Page<Object> objectPage, @Param("courseNotesPageParam") CourseNotesPageParam courseNotesPageParam);
+
+
+    /**
+     * 课程笔记-分页列表
+     */
+    Page<Map<String,Object>> queryList(@Param("param") Map param, @Param("page") Page<Object> page);
+
+    /**
+     * 课程笔记-详情
+     */
+    Map<String,Object> queryInfo(Map param);
 }

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

@@ -2,4 +2,25 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="vip.xiaonuo.disk.mapper.CourseNotebooksMapper">
 
+    <select id="queryList" resultType="java.util.Map">
+        SELECT
+        cn.NOTEBOOK_ID AS notebookId,
+        IFNULL(cn.COURSE_ID,'') AS courseId,
+        IFNULL(ci.COURSE_NAME,'') AS courseName,
+        IFNULL(cn.USER_ID,'') AS userId
+        FROM COURSE_NOTEBOOKS cn
+        LEFT JOIN COURSE_INFO ci ON ci.COURSE_ID = cn.COURSE_ID AND ci.DELETE_FLAG ='NOT_DELETE'
+        WHERE cn.DELETE_FLAG ='NOT_DELETE'
+        <if test="param.userId !=null and param.userId != ''">
+            and cn.USER_ID=#{param.userId}
+        </if>
+        <if test="param.courseId !=null and param.courseId != ''">
+            and cn.COURSE_ID=#{param.courseId}
+        </if>
+        <if test="param.courseName !=null and param.courseName != ''">
+            and ci.COURSE_NAME=#{param.courseName}
+        </if>
+    </select>
+
+
 </mapper>

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

@@ -29,4 +29,26 @@
      </where>
     order by a.UPDATE_TIME desc
   </select>
+    <select id="queryList" resultType="java.util.Map">
+        SELECT
+            cn.NOTE_ID AS notebookId,
+            IFNULL(cn.COURSE_ID,'') AS courseId,
+            IFNULL(ci.COURSE_NAME,'') AS courseName,
+            IFNULL(cn.USER_ID,'') AS userId,
+            IFNULL(cn.NOTE_CONTENT,'') AS noteContent,
+            IFNULL(cr.MAIN_ID ,'') AS hourId
+        FROM COURSE_NOTES cn
+        LEFT JOIN COURSE_INFO ci ON ci.COURSE_ID = cn.COURSE_ID AND ci.DELETE_FLAG ='NOT_DELETE'
+        LEFT JOIN COURSE_RELATE cr ON cr.RELATE_ID =cn.NOTE_ID AND cr.FUNC_TYPE ='6' AND cr.INFO_TYPE ='1' AND cr.CHAPTERHOUR_TYPE ='1'
+        WHERE cn.DELETE_FLAG ='NOT_DELETE'
+        <if test="param.courseId !=null and param.courseId != ''">
+            and cn.COURSE_ID=#{param.courseId}
+        </if>
+        <if test="param.userId !=null and param.userId != ''">
+            and cn.USER_ID=#{param.userId}
+        </if>
+        <if test="param.hourId !=null and param.hourId != ''">
+            and cr.MAIN_ID=#{param.hourId}
+        </if>
+    </select>
 </mapper>

+ 4 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotesAddParam.java

@@ -38,5 +38,9 @@ public class CourseNotesAddParam {
     @ApiModelProperty(value = "课程主键id", position = 3)
     private String courseId;
 
+    /** 课时id */
+    @ApiModelProperty(value = "课时id", position = 3)
+    private String hourId;
+
 
 }

+ 13 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/CourseNotebooksService.java

@@ -15,12 +15,14 @@ package vip.xiaonuo.disk.service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import vip.xiaonuo.disk.domain.CourseNotebooks;
+import vip.xiaonuo.disk.domain.CourseNotes;
 import vip.xiaonuo.disk.param.CourseNotebooksAddParam;
 import vip.xiaonuo.disk.param.CourseNotebooksEditParam;
 import vip.xiaonuo.disk.param.CourseNotebooksIdParam;
 import vip.xiaonuo.disk.param.CourseNotebooksPageParam;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 课程笔记本表Service接口
@@ -38,6 +40,11 @@ public interface CourseNotebooksService extends IService<CourseNotebooks> {
      */
     Page<CourseNotebooks> page(CourseNotebooksPageParam courseNotebooksPageParam);
 
+    /**
+     * 课程笔记本-封装列表
+     */
+    List<CourseNotebooks> wrapperList(Map param);
+
     /**
      * 添加课程笔记本表
      *
@@ -88,4 +95,10 @@ public interface CourseNotebooksService extends IService<CourseNotebooks> {
      **/
     CourseNotebooks queryEntity(String id);
 
+    /**
+     *  课程笔记本-分页列表
+     */
+    Page<Map<String,Object>> queryList(Map param);
+
+
 }

+ 19 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/CourseNotesService.java

@@ -16,12 +16,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import vip.xiaonuo.disk.domain.CourseNotes;
 import vip.xiaonuo.disk.domain.CourseNotesVo;
+import vip.xiaonuo.disk.domain.CourseStudentCollect;
 import vip.xiaonuo.disk.param.CourseNotesAddParam;
 import vip.xiaonuo.disk.param.CourseNotesEditParam;
 import vip.xiaonuo.disk.param.CourseNotesIdParam;
 import vip.xiaonuo.disk.param.CourseNotesPageParam;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 课程笔记表Service接口
@@ -39,6 +41,11 @@ public interface CourseNotesService extends IService<CourseNotes> {
      */
     Page<CourseNotesVo> page(CourseNotesPageParam courseNotesPageParam);
 
+    /**
+     * 课程笔记-封装列表
+     */
+    List<CourseNotes> wrapperList(Map param);
+
     /**
      * 添加课程笔记表
      *
@@ -73,6 +80,8 @@ public interface CourseNotesService extends IService<CourseNotes> {
      */
     void delete(List<CourseNotesIdParam> courseNotesIdParamList);
 
+    void deleteByIds(List<String> deleteIdList);
+
     /**
      * 获取课程笔记表详情
      *
@@ -96,4 +105,14 @@ public interface CourseNotesService extends IService<CourseNotes> {
      * @date  2025/07/01 18:56
      */
     CourseNotes getByChapterId(CourseNotesAddParam courseNotesAddParam);
+
+    /**
+     *  课程笔记-分页列表
+     */
+    Page<Map<String,Object>> queryList(Map param);
+
+    /**
+     *  课程笔记-详情
+     */
+    Map<String,Object> queryInfo(Map param);
 }

+ 35 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CourseNotebooksServiceImpl.java

@@ -33,7 +33,9 @@ import vip.xiaonuo.disk.param.CourseNotebooksIdParam;
 import vip.xiaonuo.disk.param.CourseNotebooksPageParam;
 import vip.xiaonuo.disk.service.CourseNotebooksService;
 
+import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 课程笔记本表Service接口实现类
@@ -44,6 +46,8 @@ import java.util.List;
 @Service
 public class CourseNotebooksServiceImpl extends ServiceImpl<CourseNotebooksMapper, CourseNotebooks> implements CourseNotebooksService {
 
+    @Resource
+    private CourseNotebooksMapper courseNotebooksMapper;
 
     @Override
     public Page<CourseNotebooks> page(CourseNotebooksPageParam courseNotebooksPageParam) {
@@ -58,6 +62,30 @@ public class CourseNotebooksServiceImpl extends ServiceImpl<CourseNotebooksMappe
         return this.page(CommonPageRequest.defaultPage(), queryWrapper);
     }
 
+    /**
+     * 课程笔记本-封装列表
+     */
+    @Override
+    public List<CourseNotebooks> wrapperList(Map param)
+    {
+        QueryWrapper<CourseNotebooks> queryWrapper = new QueryWrapper<>();
+        if(ObjectUtil.isNotEmpty(param.get("courseId")))
+        {
+            queryWrapper.lambda().eq(CourseNotebooks::getCourseId, param.get("courseId"));
+        }
+        if(ObjectUtil.isNotEmpty(param.get("userId")))
+        {
+            queryWrapper.lambda().eq(CourseNotebooks::getUserId, param.get("userId"));
+        }
+        if(ObjectUtil.isNotEmpty(param.get("notebookIdList")))
+        {
+            List<String> notebookIdList= (List<String>) param.get("notebookIdList");
+            queryWrapper.lambda().in(CourseNotebooks::getNotebookId, notebookIdList);
+        }
+
+        return this.list(queryWrapper);
+    }
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void add(CourseNotebooksAddParam courseNotebooksAddParam) {
@@ -108,4 +136,11 @@ public class CourseNotebooksServiceImpl extends ServiceImpl<CourseNotebooksMappe
         return courseNotebooks;
     }
 
+    @Override
+    public Page<Map<String,Object>> queryList(Map param)
+    {
+        return courseNotebooksMapper.queryList(param,CommonPageRequest.defaultPage());
+    }
+
+
 }

+ 41 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CourseNotesServiceImpl.java

@@ -24,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
 import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.disk.domain.CourseNotebooks;
 import vip.xiaonuo.disk.domain.CourseNotes;
 import vip.xiaonuo.disk.domain.CourseNotesVo;
 import vip.xiaonuo.disk.domain.CourseStudentCollect;
@@ -43,6 +44,7 @@ import java.time.ZoneId;
 import java.time.temporal.ChronoUnit;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 课程笔记表Service接口实现类
@@ -96,6 +98,26 @@ public class CourseNotesServiceImpl extends ServiceImpl<CourseNotesMapper, Cours
         return page;
     }
 
+    /**
+     * 课程笔记-封装列表
+     */
+    @Override
+    public List<CourseNotes> wrapperList(Map param)
+    {
+        QueryWrapper<CourseNotes> queryWrapper = new QueryWrapper<>();
+        if(ObjectUtil.isNotEmpty(param.get("courseIdList")))
+        {
+            List<String> courseIdList= (List<String>) param.get("courseIdList");
+            queryWrapper.lambda().in(CourseNotes::getCourseId, courseIdList);
+        }
+        if(ObjectUtil.isNotEmpty(param.get("userId")))
+        {
+            queryWrapper.lambda().eq(CourseNotes::getUserId, param.get("userId"));
+        }
+
+        return this.list(queryWrapper);
+    }
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void add(CourseNotesAddParam courseNotesAddParam) {
@@ -141,6 +163,13 @@ public class CourseNotesServiceImpl extends ServiceImpl<CourseNotesMapper, Cours
         this.removeByIds(CollStreamUtil.toList(courseNotesIdParamList, CourseNotesIdParam::getNoteId));
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void deleteByIds(List<String> deleteIdList)
+    {
+        this.removeByIds(deleteIdList);
+    }
+
     @Override
     public CourseNotes detail(CourseNotesIdParam courseNotesIdParam) {
         return this.queryEntity(courseNotesIdParam.getNoteId());
@@ -163,4 +192,16 @@ public class CourseNotesServiceImpl extends ServiceImpl<CourseNotesMapper, Cours
         return this.getOne(queryWrapper);
     }
 
+    @Override
+    public Page<Map<String,Object>> queryList(Map param)
+    {
+        return courseNotesMapper.queryList(param,CommonPageRequest.defaultPage());
+    }
+
+    @Override
+    public Map<String,Object> queryInfo(Map param)
+    {
+        return courseNotesMapper.queryInfo(param);
+    }
+
 }

+ 9 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CourseRelateServiceImpl.java

@@ -77,12 +77,20 @@ public class CourseRelateServiceImpl extends ServiceImpl<CourseRelateMapper, Cou
         {
             queryWrapper.lambda().eq(CourseRelate::getFuncType, param.get("funcType"));
         }
+        if(ObjectUtil.isNotEmpty(param.get("infoType")))
+        {
+            queryWrapper.lambda().eq(CourseRelate::getInfoType, param.get("infoType"));
+        }
         if(ObjectUtil.isNotEmpty(param.get("mainIdList")))
         {
             List<String> mainIdList= (List<String>) param.get("mainIdList");
             queryWrapper.lambda().in(CourseRelate::getMainId, mainIdList);
         }
-
+        if(ObjectUtil.isNotEmpty(param.get("relateIdList")))
+        {
+            List<String> relateIdList= (List<String>) param.get("relateIdList");
+            queryWrapper.lambda().in(CourseRelate::getRelateId, relateIdList);
+        }
 
         return this.list(queryWrapper);
     }

+ 3 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/mapping/ExamPaperMapper.xml

@@ -244,6 +244,9 @@
       <if test="bo.paperType != null ">
         and paper_type= #{bo.paperType}
       </if>
+      <if test="bo.name != null ">
+        and name like CONCAT('%',#{bo.name}, '%')
+      </if>
     </where>
     order by create_time desc
   </select>

+ 9 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/viewmodel/admin/exam/ExamPaperPageRequestVM.java

@@ -11,6 +11,7 @@ public class ExamPaperPageRequestVM extends BasePage {
     private Integer level;
     private Integer paperType;
     private Integer taskExamId;
+    private String name;
 
     private Integer current;
 
@@ -68,6 +69,14 @@ public class ExamPaperPageRequestVM extends BasePage {
         return size;
     }
 
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
     public void setSize(Integer size) {
         this.size = size;
     }