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

1.收藏课程接口、课程笔记和课程笔记本部分接口

jasonk5949 8 месяцев назад
Родитель
Сommit
4db782ec70

+ 32 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CollectCourseController.java

@@ -67,7 +67,7 @@ public class CollectCourseController {
     }
     }
 
 
     /**
     /**
-     * 添加收藏课程
+     * 收藏课程
      *
      *
      * @author 金吉龙
      * @author 金吉龙
      * @date  2025/07/01 19:01
      * @date  2025/07/01 19:01
@@ -82,6 +82,37 @@ public class CollectCourseController {
         return CommonResult.ok();
         return CommonResult.ok();
     }
     }
 
 
+    /**
+     * 取消收藏课程
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 19:01
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加收藏课程")
+    @CommonLog("添加收藏课程")
+    @SaCheckPermission("/disk/collectCourse/cancel")
+    @PostMapping("/disk/collectCourse/cancel")
+    public CommonResult<String> cancel(@RequestBody @Valid CollectCourseAddParam collectCourseAddParam) {
+        collectCourseService.cancel(collectCourseAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 校验是否收藏此课程
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 19:01
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加收藏课程")
+    @CommonLog("添加收藏课程")
+    @SaCheckPermission("/disk/collectCourse/checkCollect")
+    @PostMapping("/disk/collectCourse/checkCollect")
+    public CommonResult<Integer> checkCollect(@RequestBody @Valid CollectCourseAddParam collectCourseAddParam) {
+        return collectCourseService.checkCollect(collectCourseAddParam);
+    }
+
     /**
     /**
      * 编辑收藏课程
      * 编辑收藏课程
      *
      *

+ 16 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseNotesController.java

@@ -129,4 +129,20 @@ public class CourseNotesController {
         return CommonResult.data(courseNotesService.detail(courseNotesIdParam));
         return CommonResult.data(courseNotesService.detail(courseNotesIdParam));
     }
     }
 
 
+    /**
+     * 根据章节ip查询记录的笔记
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:56
+     */
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("获取课程笔记表详情")
+    @SaCheckPermission("/disk/courseNotes/getByChapterId")
+    @GetMapping("/disk/courseNotes/getByChapterId")
+    public CommonResult<CourseNotes> getByChapterId(@Valid CourseNotesAddParam courseNotesAddParam) {
+        return CommonResult.data(courseNotesService.getByChapterId(courseNotesAddParam));
+    }
+
+
+
 }
 }

+ 7 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/CollectCourse.java

@@ -76,4 +76,11 @@ public class CollectCourse {
     @ApiModelProperty(value = "修改用户", position = 10)
     @ApiModelProperty(value = "修改用户", position = 10)
     @TableField(fill = FieldFill.UPDATE)
     @TableField(fill = FieldFill.UPDATE)
     private String updateUser;
     private String updateUser;
+
+    /**
+     * 课程信息
+     */
+    @TableField(exist = false)
+    private CourseInfo courseInfo;
+
 }
 }

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

@@ -39,9 +39,9 @@ public class CourseNotes {
     @ApiModelProperty(value = "用户ID", position = 2)
     @ApiModelProperty(value = "用户ID", position = 2)
     private String userId;
     private String userId;
 
 
-    /** 课程主键ID */
-    @ApiModelProperty(value = "课程主键ID", position = 3)
-    private String courseId;
+    /** 章节主键ID */
+    @ApiModelProperty(value = "章节主键ID", position = 3)
+    private String chapterId;
 
 
     /** 笔记本ID */
     /** 笔记本ID */
     @ApiModelProperty(value = "笔记本ID", position = 4)
     @ApiModelProperty(value = "笔记本ID", position = 4)

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

@@ -35,9 +35,9 @@ public class CourseNotesAddParam {
     @ApiModelProperty(value = "用户ID", position = 2)
     @ApiModelProperty(value = "用户ID", position = 2)
     private String userId;
     private String userId;
 
 
-    /** 课程主键ID */
-    @ApiModelProperty(value = "课程主键ID", position = 3)
-    private String courseId;
+    /** 章节主键ID */
+    @ApiModelProperty(value = "章节主键ID", position = 3)
+    private String chapterId;
 
 
     /** 笔记本ID */
     /** 笔记本ID */
     @ApiModelProperty(value = "笔记本ID", position = 4)
     @ApiModelProperty(value = "笔记本ID", position = 4)

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

@@ -40,9 +40,9 @@ public class CourseNotesEditParam {
     @ApiModelProperty(value = "用户ID", position = 2)
     @ApiModelProperty(value = "用户ID", position = 2)
     private String userId;
     private String userId;
 
 
-    /** 课程主键ID */
-    @ApiModelProperty(value = "课程主键ID", position = 3)
-    private String courseId;
+    /** 章节主键ID */
+    @ApiModelProperty(value = "章节主键ID", position = 3)
+    private String chapterId;
 
 
     /** 笔记本ID */
     /** 笔记本ID */
     @ApiModelProperty(value = "笔记本ID", position = 4)
     @ApiModelProperty(value = "笔记本ID", position = 4)

+ 15 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/CollectCourseService.java

@@ -14,6 +14,7 @@ package vip.xiaonuo.disk.service;
 
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.disk.domain.CollectCourse;
 import vip.xiaonuo.disk.domain.CollectCourse;
 import vip.xiaonuo.disk.param.CollectCourseAddParam;
 import vip.xiaonuo.disk.param.CollectCourseAddParam;
 import vip.xiaonuo.disk.param.CollectCourseEditParam;
 import vip.xiaonuo.disk.param.CollectCourseEditParam;
@@ -78,4 +79,18 @@ public interface CollectCourseService extends IService<CollectCourse> {
      **/
      **/
     CollectCourse queryEntity(String id);
     CollectCourse queryEntity(String id);
 
 
+    /**
+     * 取消收藏课程
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 19:01
+     */
+    void cancel(CollectCourseAddParam collectCourseAddParam);
+
+    /**
+     * 校验是否收藏此课程
+     *
+     * @return
+     */
+    CommonResult<Integer> checkCollect(CollectCourseAddParam collectCourseAddParam);
 }
 }

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

@@ -14,6 +14,7 @@ package vip.xiaonuo.disk.service;
 
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.disk.domain.CourseNotes;
 import vip.xiaonuo.disk.domain.CourseNotes;
 import vip.xiaonuo.disk.param.CourseNotesAddParam;
 import vip.xiaonuo.disk.param.CourseNotesAddParam;
 import vip.xiaonuo.disk.param.CourseNotesEditParam;
 import vip.xiaonuo.disk.param.CourseNotesEditParam;
@@ -78,4 +79,11 @@ public interface CourseNotesService extends IService<CourseNotes> {
      **/
      **/
     CourseNotes queryEntity(String id);
     CourseNotes queryEntity(String id);
 
 
+    /**
+     * 根据章节ip查询记录的笔记
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:56
+     */
+    CourseNotes getByChapterId(CourseNotesAddParam courseNotesAddParam);
 }
 }

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

@@ -14,24 +14,30 @@ package vip.xiaonuo.disk.service.impl;
 
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollStreamUtil;
 import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
-import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.page.CommonPageRequest;
 import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.disk.domain.CollectCourse;
 import vip.xiaonuo.disk.domain.CollectCourse;
+import vip.xiaonuo.disk.domain.CourseInfo;
+import vip.xiaonuo.disk.dto.courseInfo.CourseInfoIdParam;
 import vip.xiaonuo.disk.mapper.CollectCourseMapper;
 import vip.xiaonuo.disk.mapper.CollectCourseMapper;
 import vip.xiaonuo.disk.param.CollectCourseAddParam;
 import vip.xiaonuo.disk.param.CollectCourseAddParam;
 import vip.xiaonuo.disk.param.CollectCourseEditParam;
 import vip.xiaonuo.disk.param.CollectCourseEditParam;
 import vip.xiaonuo.disk.param.CollectCourseIdParam;
 import vip.xiaonuo.disk.param.CollectCourseIdParam;
 import vip.xiaonuo.disk.param.CollectCoursePageParam;
 import vip.xiaonuo.disk.param.CollectCoursePageParam;
 import vip.xiaonuo.disk.service.CollectCourseService;
 import vip.xiaonuo.disk.service.CollectCourseService;
+import vip.xiaonuo.disk.service.CourseInfoService;
 
 
+import javax.annotation.Resource;
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -43,24 +49,47 @@ import java.util.List;
 @Service
 @Service
 public class CollectCourseServiceImpl extends ServiceImpl<CollectCourseMapper, CollectCourse> implements CollectCourseService {
 public class CollectCourseServiceImpl extends ServiceImpl<CollectCourseMapper, CollectCourse> implements CollectCourseService {
 
 
+    @Resource
+    private CourseInfoService courseInfoService;
+
 
 
     @Override
     @Override
     public Page<CollectCourse> page(CollectCoursePageParam collectCoursePageParam) {
     public Page<CollectCourse> page(CollectCoursePageParam collectCoursePageParam) {
         QueryWrapper<CollectCourse> queryWrapper = new QueryWrapper<>();
         QueryWrapper<CollectCourse> queryWrapper = new QueryWrapper<>();
-        if(ObjectUtil.isAllNotEmpty(collectCoursePageParam.getSortField(), collectCoursePageParam.getSortOrder())) {
-            CommonSortOrderEnum.validate(collectCoursePageParam.getSortOrder());
-            queryWrapper.orderBy(true, collectCoursePageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
-                    StrUtil.toUnderlineCase(collectCoursePageParam.getSortField()));
-        } else {
-            queryWrapper.lambda().orderByAsc(CollectCourse::getCollectId);
+        queryWrapper.lambda().eq(CollectCourse::getCollectUserId, StpLoginUserUtil.getLoginUser().getId()); // 查看自己收藏
+        queryWrapper.lambda().eq(CollectCourse::getCollectState, 0); // 查看收藏状态的
+        queryWrapper.lambda().orderByDesc(CollectCourse::getCollectTime);
+        Page<CollectCourse> page = this.page(CommonPageRequest.defaultPage(), queryWrapper);
+        // 关联课程信息
+        if (page.getRecords().size() > 0) {
+            for (CollectCourse record : page.getRecords()) {
+                CourseInfoIdParam courseInfoIdParam = new CourseInfoIdParam();
+                courseInfoIdParam.setCourseId(record.getCourseId());
+                CourseInfo detail = courseInfoService.detail(courseInfoIdParam);
+                if (detail != null) {
+                    record.setCourseInfo(detail);
+                }
+            }
         }
         }
-        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+        return this.page(page);
     }
     }
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     @Override
     @Override
     public void add(CollectCourseAddParam collectCourseAddParam) {
     public void add(CollectCourseAddParam collectCourseAddParam) {
+        // 校验是否已经收藏
+        QueryWrapper<CollectCourse> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(CollectCourse::getCollectUserId, StpLoginUserUtil.getLoginUser().getId());
+        queryWrapper.lambda().eq(CollectCourse::getCourseId, collectCourseAddParam.getCourseId());
+        CollectCourse data = this.getOne(queryWrapper);
+        if(ObjectUtil.isNotEmpty(data)) {
+            throw new CommonException("该课程已经收藏");
+        }
+        // 执行添加
         CollectCourse collectCourse = BeanUtil.toBean(collectCourseAddParam, CollectCourse.class);
         CollectCourse collectCourse = BeanUtil.toBean(collectCourseAddParam, CollectCourse.class);
+        collectCourse.setCollectId(IdUtil.fastSimpleUUID()); // 主键id
+        collectCourse.setCollectUserId(StpLoginUserUtil.getLoginUser().getId()); // 当前登录用户id
+        collectCourse.setCollectTime(new Date()); // 收藏时间
         this.save(collectCourse);
         this.save(collectCourse);
     }
     }
 
 
@@ -93,4 +122,31 @@ public class CollectCourseServiceImpl extends ServiceImpl<CollectCourseMapper, C
         return collectCourse;
         return collectCourse;
     }
     }
 
 
+    @Override
+    public void cancel(CollectCourseAddParam collectCourseAddParam) {
+        // 校验数据是否存在
+        QueryWrapper<CollectCourse> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(CollectCourse::getCollectUserId, StpLoginUserUtil.getLoginUser().getId());
+        queryWrapper.lambda().eq(CollectCourse::getCourseId, collectCourseAddParam.getCourseId());
+        CollectCourse data = this.getOne(queryWrapper);
+        if(ObjectUtil.isNotEmpty(data)) {
+            throw new CommonException("该课程未收藏");
+        }
+        // 执行取消
+        data.setCollectState(1);
+        this.updateById(data);
+    }
+
+    @Override
+    public CommonResult<Integer> checkCollect(CollectCourseAddParam collectCourseAddParam) {
+        QueryWrapper<CollectCourse> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(CollectCourse::getCollectUserId, StpLoginUserUtil.getLoginUser().getId());
+        queryWrapper.lambda().eq(CollectCourse::getCourseId, collectCourseAddParam.getCourseId());
+        CollectCourse data = this.getOne(queryWrapper);
+        if(ObjectUtil.isNotEmpty(data)) {
+            return CommonResult.data(0);
+        }
+        return CommonResult.data(1);
+    }
+
 }
 }

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

@@ -14,6 +14,7 @@ package vip.xiaonuo.disk.service.impl;
 
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollStreamUtil;
 import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -21,10 +22,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.common.enums.CommonSortOrderEnum;
 import vip.xiaonuo.common.enums.CommonSortOrderEnum;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.page.CommonPageRequest;
 import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.disk.domain.CourseInfo;
+import vip.xiaonuo.disk.domain.CourseNotebooks;
 import vip.xiaonuo.disk.domain.CourseNotes;
 import vip.xiaonuo.disk.domain.CourseNotes;
+import vip.xiaonuo.disk.mapper.CourseInfoMapper;
+import vip.xiaonuo.disk.mapper.CourseNotebooksMapper;
 import vip.xiaonuo.disk.mapper.CourseNotesMapper;
 import vip.xiaonuo.disk.mapper.CourseNotesMapper;
 import vip.xiaonuo.disk.param.CourseNotesAddParam;
 import vip.xiaonuo.disk.param.CourseNotesAddParam;
 import vip.xiaonuo.disk.param.CourseNotesEditParam;
 import vip.xiaonuo.disk.param.CourseNotesEditParam;
@@ -32,6 +38,7 @@ import vip.xiaonuo.disk.param.CourseNotesIdParam;
 import vip.xiaonuo.disk.param.CourseNotesPageParam;
 import vip.xiaonuo.disk.param.CourseNotesPageParam;
 import vip.xiaonuo.disk.service.CourseNotesService;
 import vip.xiaonuo.disk.service.CourseNotesService;
 
 
+import javax.annotation.Resource;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -44,6 +51,16 @@ import java.util.List;
 public class CourseNotesServiceImpl extends ServiceImpl<CourseNotesMapper, CourseNotes> implements CourseNotesService {
 public class CourseNotesServiceImpl extends ServiceImpl<CourseNotesMapper, CourseNotes> implements CourseNotesService {
 
 
 
 
+    @Resource
+    private CourseInfoMapper courseInfoMapper;
+
+    @Resource
+    private CourseNotesMapper courseNotesMapper;
+
+    @Resource
+    private CourseNotebooksMapper courseNotebooksMapper;
+
+
     @Override
     @Override
     public Page<CourseNotes> page(CourseNotesPageParam courseNotesPageParam) {
     public Page<CourseNotes> page(CourseNotesPageParam courseNotesPageParam) {
         QueryWrapper<CourseNotes> queryWrapper = new QueryWrapper<>();
         QueryWrapper<CourseNotes> queryWrapper = new QueryWrapper<>();
@@ -61,6 +78,30 @@ public class CourseNotesServiceImpl extends ServiceImpl<CourseNotesMapper, Cours
     @Override
     @Override
     public void add(CourseNotesAddParam courseNotesAddParam) {
     public void add(CourseNotesAddParam courseNotesAddParam) {
         CourseNotes courseNotes = BeanUtil.toBean(courseNotesAddParam, CourseNotes.class);
         CourseNotes courseNotes = BeanUtil.toBean(courseNotesAddParam, CourseNotes.class);
+        // 校验当前课程是否有笔记本
+        // 1.根据章节查询课程
+        CourseInfo courseInfo = courseInfoMapper.selectById(courseNotesAddParam.getChapterId());
+        if(ObjectUtil.isEmpty(courseInfo)) {
+            throw new CommonException("课程不存在,id值为:{}", courseNotesAddParam.getChapterId());
+        }
+        // 2.判断当前课程是否有笔记本
+        QueryWrapper<CourseNotebooks> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(CourseNotebooks::getCourseId, courseInfo.getCourseId());
+        queryWrapper.lambda().eq(CourseNotebooks::getUserId, StpLoginUserUtil.getLoginUser().getId());
+        CourseNotebooks courseNotebooks = courseNotebooksMapper.selectOne(queryWrapper);
+        // 如果没有笔记本,则创建笔记本
+        if (courseNotebooks == null) {
+            CourseNotebooks newCourseNotebooks = new CourseNotebooks();
+            courseNotebooks.setUserId(StpLoginUserUtil.getLoginUser().getId()); // 用户id
+            String notebookId = IdUtil.fastSimpleUUID();
+            courseNotebooks.setNotebookId(notebookId); // 主键id
+            courseNotebooks.setCourseId(courseInfo.getCourseId()); // 课程id
+            courseNotebooksMapper.insert(newCourseNotebooks);
+            courseNotebooks.setNotebookId(notebookId);
+        }
+        // 3.保存笔记信息
+        courseNotes.setUserId(StpLoginUserUtil.getLoginUser().getId()); // 用户id
+        courseNotes.setNotebookId(courseNotebooks.getNotebookId()); // 笔记本id
         this.save(courseNotes);
         this.save(courseNotes);
     }
     }
 
 
@@ -93,4 +134,12 @@ public class CourseNotesServiceImpl extends ServiceImpl<CourseNotesMapper, Cours
         return courseNotes;
         return courseNotes;
     }
     }
 
 
+    @Override
+    public CourseNotes getByChapterId(CourseNotesAddParam courseNotesAddParam) {
+        QueryWrapper<CourseNotes> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(CourseNotes::getChapterId, courseNotesAddParam.getChapterId());
+        queryWrapper.lambda().eq(CourseNotes::getUserId, StpLoginUserUtil.getLoginUser().getId());
+        return this.getOne(queryWrapper);
+    }
+
 }
 }