Procházet zdrojové kódy

1.创建收藏课程、课程笔记本、课程笔记的库表
2.导入生成后的代码

jasonk5949 před 8 měsíci
rodič
revize
9043833bf2
33 změnil soubory, kde provedl 1905 přidání a 0 odebrání
  1. 132 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CollectCourseController.java
  2. 132 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseNotebooksController.java
  3. 132 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseNotesController.java
  4. 79 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/CollectCourse.java
  5. 71 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/CourseNotebooks.java
  6. 79 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/CourseNotes.java
  7. 34 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/CollectCourseEnum.java
  8. 34 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/CourseNotebooksEnum.java
  9. 34 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/CourseNotesEnum.java
  10. 25 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CollectCourseMapper.java
  11. 25 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CourseNotebooksMapper.java
  12. 25 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CourseNotesMapper.java
  13. 5 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CollectCourseMapper.xml
  14. 5 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseNotebooksMapper.xml
  15. 5 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseNotesMapper.xml
  16. 50 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CollectCourseAddParam.java
  17. 55 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CollectCourseEditParam.java
  18. 35 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CollectCourseIdParam.java
  19. 51 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CollectCoursePageParam.java
  20. 42 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotebooksAddParam.java
  21. 47 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotebooksEditParam.java
  22. 35 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotebooksIdParam.java
  23. 51 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotebooksPageParam.java
  24. 50 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotesAddParam.java
  25. 55 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotesEditParam.java
  26. 35 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotesIdParam.java
  27. 51 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotesPageParam.java
  28. 81 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/CollectCourseService.java
  29. 81 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/CourseNotebooksService.java
  30. 81 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/CourseNotesService.java
  31. 96 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CollectCourseServiceImpl.java
  32. 96 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CourseNotebooksServiceImpl.java
  33. 96 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CourseNotesServiceImpl.java

+ 132 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CollectCourseController.java

@@ -0,0 +1,132 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+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.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.common.annotation.CommonLog;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.common.pojo.CommonValidList;
+import vip.xiaonuo.disk.domain.CollectCourse;
+import vip.xiaonuo.disk.param.CollectCourseAddParam;
+import vip.xiaonuo.disk.param.CollectCourseEditParam;
+import vip.xiaonuo.disk.param.CollectCourseIdParam;
+import vip.xiaonuo.disk.param.CollectCoursePageParam;
+import vip.xiaonuo.disk.service.CollectCourseService;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * 收藏课程控制器
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 19:01
+ */
+@Api(tags = "收藏课程控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+public class CollectCourseController {
+
+    @Resource
+    private CollectCourseService collectCourseService;
+
+    /**
+     * 获取收藏课程分页
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 19:01
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取收藏课程分页")
+    @SaCheckPermission("/disk/collectCourse/page")
+    @GetMapping("/disk/collectCourse/page")
+    public CommonResult<Page<CollectCourse>> page(CollectCoursePageParam collectCoursePageParam) {
+        return CommonResult.data(collectCourseService.page(collectCoursePageParam));
+    }
+
+    /**
+     * 添加收藏课程
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 19:01
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加收藏课程")
+    @CommonLog("添加收藏课程")
+    @SaCheckPermission("/disk/collectCourse/add")
+    @PostMapping("/disk/collectCourse/add")
+    public CommonResult<String> add(@RequestBody @Valid CollectCourseAddParam collectCourseAddParam) {
+        collectCourseService.add(collectCourseAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑收藏课程
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 19:01
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("编辑收藏课程")
+    @CommonLog("编辑收藏课程")
+    @SaCheckPermission("/disk/collectCourse/edit")
+    @PostMapping("/disk/collectCourse/edit")
+    public CommonResult<String> edit(@RequestBody @Valid CollectCourseEditParam collectCourseEditParam) {
+        collectCourseService.edit(collectCourseEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除收藏课程
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 19:01
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除收藏课程")
+    @CommonLog("删除收藏课程")
+    @SaCheckPermission("/disk/collectCourse/delete")
+    @PostMapping("/disk/collectCourse/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   CommonValidList<CollectCourseIdParam> collectCourseIdParamList) {
+        collectCourseService.delete(collectCourseIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取收藏课程详情
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 19:01
+     */
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("获取收藏课程详情")
+    @SaCheckPermission("/disk/collectCourse/detail")
+    @GetMapping("/disk/collectCourse/detail")
+    public CommonResult<CollectCourse> detail(@Valid CollectCourseIdParam collectCourseIdParam) {
+        return CommonResult.data(collectCourseService.detail(collectCourseIdParam));
+    }
+
+}

+ 132 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseNotebooksController.java

@@ -0,0 +1,132 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+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.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.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.param.CourseNotebooksAddParam;
+import vip.xiaonuo.disk.param.CourseNotebooksEditParam;
+import vip.xiaonuo.disk.param.CourseNotebooksIdParam;
+import vip.xiaonuo.disk.param.CourseNotebooksPageParam;
+import vip.xiaonuo.disk.service.CourseNotebooksService;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * 课程笔记本表控制器
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:40
+ */
+@Api(tags = "课程笔记本表控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+public class CourseNotebooksController {
+
+    @Resource
+    private CourseNotebooksService courseNotebooksService;
+
+    /**
+     * 获取课程笔记本表分页
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:40
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取课程笔记本表分页")
+    @SaCheckPermission("/disk/courseNotebooks/page")
+    @GetMapping("/disk/courseNotebooks/page")
+    public CommonResult<Page<CourseNotebooks>> page(CourseNotebooksPageParam courseNotebooksPageParam) {
+        return CommonResult.data(courseNotebooksService.page(courseNotebooksPageParam));
+    }
+
+    /**
+     * 添加课程笔记本表
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:40
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加课程笔记本表")
+    @CommonLog("添加课程笔记本表")
+    @SaCheckPermission("/disk/courseNotebooks/add")
+    @PostMapping("/disk/courseNotebooks/add")
+    public CommonResult<String> add(@RequestBody @Valid CourseNotebooksAddParam courseNotebooksAddParam) {
+        courseNotebooksService.add(courseNotebooksAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑课程笔记本表
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:40
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("编辑课程笔记本表")
+    @CommonLog("编辑课程笔记本表")
+    @SaCheckPermission("/disk/courseNotebooks/edit")
+    @PostMapping("/disk/courseNotebooks/edit")
+    public CommonResult<String> edit(@RequestBody @Valid CourseNotebooksEditParam courseNotebooksEditParam) {
+        courseNotebooksService.edit(courseNotebooksEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除课程笔记本表
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:40
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除课程笔记本表")
+    @CommonLog("删除课程笔记本表")
+    @SaCheckPermission("/disk/courseNotebooks/delete")
+    @PostMapping("/disk/courseNotebooks/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   CommonValidList<CourseNotebooksIdParam> courseNotebooksIdParamList) {
+        courseNotebooksService.delete(courseNotebooksIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取课程笔记本表详情
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:40
+     */
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("获取课程笔记本表详情")
+    @SaCheckPermission("/disk/courseNotebooks/detail")
+    @GetMapping("/disk/courseNotebooks/detail")
+    public CommonResult<CourseNotebooks> detail(@Valid CourseNotebooksIdParam courseNotebooksIdParam) {
+        return CommonResult.data(courseNotebooksService.detail(courseNotebooksIdParam));
+    }
+
+}

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

@@ -0,0 +1,132 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+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.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.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.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 javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * 课程笔记表控制器
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:56
+ */
+@Api(tags = "课程笔记表控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+public class CourseNotesController {
+
+    @Resource
+    private CourseNotesService courseNotesService;
+
+    /**
+     * 获取课程笔记表分页
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:56
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取课程笔记表分页")
+    @SaCheckPermission("/disk/courseNotes/page")
+    @GetMapping("/disk/courseNotes/page")
+    public CommonResult<Page<CourseNotes>> page(CourseNotesPageParam courseNotesPageParam) {
+        return CommonResult.data(courseNotesService.page(courseNotesPageParam));
+    }
+
+    /**
+     * 添加课程笔记表
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:56
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加课程笔记表")
+    @CommonLog("添加课程笔记表")
+    @SaCheckPermission("/disk/courseNotes/add")
+    @PostMapping("/disk/courseNotes/add")
+    public CommonResult<String> add(@RequestBody @Valid CourseNotesAddParam courseNotesAddParam) {
+        courseNotesService.add(courseNotesAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑课程笔记表
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:56
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("编辑课程笔记表")
+    @CommonLog("编辑课程笔记表")
+    @SaCheckPermission("/disk/courseNotes/edit")
+    @PostMapping("/disk/courseNotes/edit")
+    public CommonResult<String> edit(@RequestBody @Valid CourseNotesEditParam courseNotesEditParam) {
+        courseNotesService.edit(courseNotesEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除课程笔记表
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:56
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除课程笔记表")
+    @CommonLog("删除课程笔记表")
+    @SaCheckPermission("/disk/courseNotes/delete")
+    @PostMapping("/disk/courseNotes/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   CommonValidList<CourseNotesIdParam> courseNotesIdParamList) {
+        courseNotesService.delete(courseNotesIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取课程笔记表详情
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:56
+     */
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("获取课程笔记表详情")
+    @SaCheckPermission("/disk/courseNotes/detail")
+    @GetMapping("/disk/courseNotes/detail")
+    public CommonResult<CourseNotes> detail(@Valid CourseNotesIdParam courseNotesIdParam) {
+        return CommonResult.data(courseNotesService.detail(courseNotesIdParam));
+    }
+
+}

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

@@ -0,0 +1,79 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 收藏课程实体
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 19:01
+ **/
+@Getter
+@Setter
+@TableName("COLLECT_COURSE")
+public class CollectCourse {
+
+    /** 收藏主键ID */
+    @TableId
+    @ApiModelProperty(value = "收藏主键ID", position = 1)
+    private String collectId;
+
+    /** 课程主键ID */
+    @ApiModelProperty(value = "课程主键ID", position = 2)
+    private String courseId;
+
+    /** 收藏用户ID */
+    @ApiModelProperty(value = "收藏用户ID", position = 3)
+    private String collectUserId;
+
+    /** 收藏时间 */
+    @ApiModelProperty(value = "收藏时间", position = 4)
+    private Date collectTime;
+
+    /** 收藏状态 0已收藏 1取消收藏 */
+    @ApiModelProperty(value = "收藏状态 0已收藏 1取消收藏", position = 5)
+    private Integer collectState;
+
+    /** 删除状态 */
+    @ApiModelProperty(value = "删除状态", position = 6)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** 创建时间 */
+    @ApiModelProperty(value = "创建时间", position = 7)
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** 创建用户 */
+    @ApiModelProperty(value = "创建用户", position = 8)
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** 修改时间 */
+    @ApiModelProperty(value = "修改时间", position = 9)
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** 修改用户 */
+    @ApiModelProperty(value = "修改用户", position = 10)
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateUser;
+}

+ 71 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/CourseNotebooks.java

@@ -0,0 +1,71 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 课程笔记本表实体
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:40
+ **/
+@Getter
+@Setter
+@TableName("COURSE_NOTEBOOKS")
+public class CourseNotebooks {
+
+    /** 主键ID */
+    @TableId
+    @ApiModelProperty(value = "主键ID", position = 1)
+    private String notebookId;
+
+    /** 课程主键ID */
+    @ApiModelProperty(value = "课程主键ID", position = 2)
+    private String courseId;
+
+    /** 删除状态 */
+    @ApiModelProperty(value = "删除状态", position = 3)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** 创建时间 */
+    @ApiModelProperty(value = "创建时间", position = 4)
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** 创建用户 */
+    @ApiModelProperty(value = "创建用户", position = 5)
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** 修改时间 */
+    @ApiModelProperty(value = "修改时间", position = 6)
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** 修改用户 */
+    @ApiModelProperty(value = "修改用户", position = 7)
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateUser;
+
+    /** 用户ID */
+    @ApiModelProperty(value = "用户ID", position = 8)
+    private String userId;
+}

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

@@ -0,0 +1,79 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 课程笔记表实体
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:56
+ **/
+@Getter
+@Setter
+@TableName("COURSE_NOTES")
+public class CourseNotes {
+
+    /** 主键ID */
+    @TableId
+    @ApiModelProperty(value = "主键ID", position = 1)
+    private String noteId;
+
+    /** 用户ID */
+    @ApiModelProperty(value = "用户ID", position = 2)
+    private String userId;
+
+    /** 课程主键ID */
+    @ApiModelProperty(value = "课程主键ID", position = 3)
+    private String courseId;
+
+    /** 笔记本ID */
+    @ApiModelProperty(value = "笔记本ID", position = 4)
+    private String notebookId;
+
+    /** 笔记内容 */
+    @ApiModelProperty(value = "笔记内容", position = 5)
+    private String noteContent;
+
+    /** 删除状态 */
+    @ApiModelProperty(value = "删除状态", position = 6)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** 创建时间 */
+    @ApiModelProperty(value = "创建时间", position = 7)
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** 创建用户 */
+    @ApiModelProperty(value = "创建用户", position = 8)
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** 修改时间 */
+    @ApiModelProperty(value = "修改时间", position = 9)
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** 修改用户 */
+    @ApiModelProperty(value = "修改用户", position = 10)
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateUser;
+}

+ 34 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/CollectCourseEnum.java

@@ -0,0 +1,34 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.enums;
+
+import lombok.Getter;
+
+/**
+ * 收藏课程枚举
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 19:01
+ **/
+@Getter
+public enum CollectCourseEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    CollectCourseEnum(String value) {
+        this.value = value;
+    }
+}

+ 34 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/CourseNotebooksEnum.java

@@ -0,0 +1,34 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.enums;
+
+import lombok.Getter;
+
+/**
+ * 课程笔记本表枚举
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:40
+ **/
+@Getter
+public enum CourseNotebooksEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    CourseNotebooksEnum(String value) {
+        this.value = value;
+    }
+}

+ 34 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/CourseNotesEnum.java

@@ -0,0 +1,34 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.enums;
+
+import lombok.Getter;
+
+/**
+ * 课程笔记表枚举
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:56
+ **/
+@Getter
+public enum CourseNotesEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    CourseNotesEnum(String value) {
+        this.value = value;
+    }
+}

+ 25 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CollectCourseMapper.java

@@ -0,0 +1,25 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.xiaonuo.disk.domain.CollectCourse;
+
+/**
+ * 收藏课程Mapper接口
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 19:01
+ **/
+public interface CollectCourseMapper extends BaseMapper<CollectCourse> {
+}

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

@@ -0,0 +1,25 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.xiaonuo.disk.domain.CourseNotebooks;
+
+/**
+ * 课程笔记本表Mapper接口
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:40
+ **/
+public interface CourseNotebooksMapper extends BaseMapper<CourseNotebooks> {
+}

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

@@ -0,0 +1,25 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.xiaonuo.disk.domain.CourseNotes;
+
+/**
+ * 课程笔记表Mapper接口
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:56
+ **/
+public interface CourseNotesMapper extends BaseMapper<CourseNotes> {
+}

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="vip.xiaonuo.disk.mapper.CollectCourseMapper">
+
+</mapper>

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!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">
+
+</mapper>

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="vip.xiaonuo.disk.mapper.CourseNotesMapper">
+
+</mapper>

+ 50 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CollectCourseAddParam.java

@@ -0,0 +1,50 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 收藏课程添加参数
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 19:01
+ **/
+@Getter
+@Setter
+public class CollectCourseAddParam {
+
+    /** 课程主键ID */
+    @ApiModelProperty(value = "课程主键ID", position = 2)
+    private String courseId;
+
+    /** 收藏用户ID */
+    @ApiModelProperty(value = "收藏用户ID", position = 3)
+    private String collectUserId;
+
+    /** 收藏时间 */
+    @ApiModelProperty(value = "收藏时间", position = 4)
+    private Date collectTime;
+
+    /** 收藏状态 0已收藏 1取消收藏 */
+    @ApiModelProperty(value = "收藏状态 0已收藏 1取消收藏", position = 5)
+    private Integer collectState;
+
+}

+ 55 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CollectCourseEditParam.java

@@ -0,0 +1,55 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 收藏课程编辑参数
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 19:01
+ **/
+@Getter
+@Setter
+public class CollectCourseEditParam {
+
+    /** 收藏主键ID */
+    @ApiModelProperty(value = "收藏主键ID", required = true, position = 1)
+    @NotBlank(message = "collectId不能为空")
+    private String collectId;
+
+    /** 课程主键ID */
+    @ApiModelProperty(value = "课程主键ID", position = 2)
+    private String courseId;
+
+    /** 收藏用户ID */
+    @ApiModelProperty(value = "收藏用户ID", position = 3)
+    private String collectUserId;
+
+    /** 收藏时间 */
+    @ApiModelProperty(value = "收藏时间", position = 4)
+    private Date collectTime;
+
+    /** 收藏状态 0已收藏 1取消收藏 */
+    @ApiModelProperty(value = "收藏状态 0已收藏 1取消收藏", position = 5)
+    private Integer collectState;
+
+}

+ 35 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CollectCourseIdParam.java

@@ -0,0 +1,35 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 收藏课程Id参数
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 19:01
+ **/
+@Getter
+@Setter
+public class CollectCourseIdParam {
+
+    /** 收藏主键ID */
+    @ApiModelProperty(value = "收藏主键ID", required = true)
+    @NotBlank(message = "collectId不能为空")
+    private String collectId;
+}

+ 51 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CollectCoursePageParam.java

@@ -0,0 +1,51 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 收藏课程查询参数
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 19:01
+ **/
+@Getter
+@Setter
+public class CollectCoursePageParam {
+
+    /** 当前页 */
+    @ApiModelProperty(value = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @ApiModelProperty(value = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @ApiModelProperty(value = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @ApiModelProperty(value = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+    /** 关键词 */
+    @ApiModelProperty(value = "关键词")
+    private String searchKey;
+
+}

+ 42 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotebooksAddParam.java

@@ -0,0 +1,42 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 课程笔记本表添加参数
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:40
+ **/
+@Getter
+@Setter
+public class CourseNotebooksAddParam {
+
+    /** 课程主键ID */
+    @ApiModelProperty(value = "课程主键ID", position = 2)
+    private String courseId;
+
+    /** 用户ID */
+    @ApiModelProperty(value = "用户ID", position = 8)
+    private String userId;
+
+}

+ 47 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotebooksEditParam.java

@@ -0,0 +1,47 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 课程笔记本表编辑参数
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:40
+ **/
+@Getter
+@Setter
+public class CourseNotebooksEditParam {
+
+    /** 主键ID */
+    @ApiModelProperty(value = "主键ID", required = true, position = 1)
+    @NotBlank(message = "notebookId不能为空")
+    private String notebookId;
+
+    /** 课程主键ID */
+    @ApiModelProperty(value = "课程主键ID", position = 2)
+    private String courseId;
+
+    /** 用户ID */
+    @ApiModelProperty(value = "用户ID", position = 8)
+    private String userId;
+
+}

+ 35 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotebooksIdParam.java

@@ -0,0 +1,35 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 课程笔记本表Id参数
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:40
+ **/
+@Getter
+@Setter
+public class CourseNotebooksIdParam {
+
+    /** 主键ID */
+    @ApiModelProperty(value = "主键ID", required = true)
+    @NotBlank(message = "notebookId不能为空")
+    private String notebookId;
+}

+ 51 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotebooksPageParam.java

@@ -0,0 +1,51 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 课程笔记本表查询参数
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:40
+ **/
+@Getter
+@Setter
+public class CourseNotebooksPageParam {
+
+    /** 当前页 */
+    @ApiModelProperty(value = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @ApiModelProperty(value = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @ApiModelProperty(value = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @ApiModelProperty(value = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+    /** 关键词 */
+    @ApiModelProperty(value = "关键词")
+    private String searchKey;
+
+}

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

@@ -0,0 +1,50 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 课程笔记表添加参数
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:56
+ **/
+@Getter
+@Setter
+public class CourseNotesAddParam {
+
+    /** 用户ID */
+    @ApiModelProperty(value = "用户ID", position = 2)
+    private String userId;
+
+    /** 课程主键ID */
+    @ApiModelProperty(value = "课程主键ID", position = 3)
+    private String courseId;
+
+    /** 笔记本ID */
+    @ApiModelProperty(value = "笔记本ID", position = 4)
+    private String notebookId;
+
+    /** 笔记内容 */
+    @ApiModelProperty(value = "笔记内容", position = 5)
+    private String noteContent;
+
+}

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

@@ -0,0 +1,55 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 课程笔记表编辑参数
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:56
+ **/
+@Getter
+@Setter
+public class CourseNotesEditParam {
+
+    /** 主键ID */
+    @ApiModelProperty(value = "主键ID", required = true, position = 1)
+    @NotBlank(message = "noteId不能为空")
+    private String noteId;
+
+    /** 用户ID */
+    @ApiModelProperty(value = "用户ID", position = 2)
+    private String userId;
+
+    /** 课程主键ID */
+    @ApiModelProperty(value = "课程主键ID", position = 3)
+    private String courseId;
+
+    /** 笔记本ID */
+    @ApiModelProperty(value = "笔记本ID", position = 4)
+    private String notebookId;
+
+    /** 笔记内容 */
+    @ApiModelProperty(value = "笔记内容", position = 5)
+    private String noteContent;
+
+}

+ 35 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotesIdParam.java

@@ -0,0 +1,35 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 课程笔记表Id参数
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:56
+ **/
+@Getter
+@Setter
+public class CourseNotesIdParam {
+
+    /** 主键ID */
+    @ApiModelProperty(value = "主键ID", required = true)
+    @NotBlank(message = "noteId不能为空")
+    private String noteId;
+}

+ 51 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/CourseNotesPageParam.java

@@ -0,0 +1,51 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 课程笔记表查询参数
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:56
+ **/
+@Getter
+@Setter
+public class CourseNotesPageParam {
+
+    /** 当前页 */
+    @ApiModelProperty(value = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @ApiModelProperty(value = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @ApiModelProperty(value = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @ApiModelProperty(value = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+    /** 关键词 */
+    @ApiModelProperty(value = "关键词")
+    private String searchKey;
+
+}

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

@@ -0,0 +1,81 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+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.CollectCourse;
+import vip.xiaonuo.disk.param.CollectCourseAddParam;
+import vip.xiaonuo.disk.param.CollectCourseEditParam;
+import vip.xiaonuo.disk.param.CollectCourseIdParam;
+import vip.xiaonuo.disk.param.CollectCoursePageParam;
+
+import java.util.List;
+
+/**
+ * 收藏课程Service接口
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 19:01
+ **/
+public interface CollectCourseService extends IService<CollectCourse> {
+
+    /**
+     * 获取收藏课程分页
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 19:01
+     */
+    Page<CollectCourse> page(CollectCoursePageParam collectCoursePageParam);
+
+    /**
+     * 添加收藏课程
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 19:01
+     */
+    void add(CollectCourseAddParam collectCourseAddParam);
+
+    /**
+     * 编辑收藏课程
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 19:01
+     */
+    void edit(CollectCourseEditParam collectCourseEditParam);
+
+    /**
+     * 删除收藏课程
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 19:01
+     */
+    void delete(List<CollectCourseIdParam> collectCourseIdParamList);
+
+    /**
+     * 获取收藏课程详情
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 19:01
+     */
+    CollectCourse detail(CollectCourseIdParam collectCourseIdParam);
+
+    /**
+     * 获取收藏课程详情
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 19:01
+     **/
+    CollectCourse queryEntity(String id);
+
+}

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

@@ -0,0 +1,81 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+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.param.CourseNotebooksAddParam;
+import vip.xiaonuo.disk.param.CourseNotebooksEditParam;
+import vip.xiaonuo.disk.param.CourseNotebooksIdParam;
+import vip.xiaonuo.disk.param.CourseNotebooksPageParam;
+
+import java.util.List;
+
+/**
+ * 课程笔记本表Service接口
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:40
+ **/
+public interface CourseNotebooksService extends IService<CourseNotebooks> {
+
+    /**
+     * 获取课程笔记本表分页
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:40
+     */
+    Page<CourseNotebooks> page(CourseNotebooksPageParam courseNotebooksPageParam);
+
+    /**
+     * 添加课程笔记本表
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:40
+     */
+    void add(CourseNotebooksAddParam courseNotebooksAddParam);
+
+    /**
+     * 编辑课程笔记本表
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:40
+     */
+    void edit(CourseNotebooksEditParam courseNotebooksEditParam);
+
+    /**
+     * 删除课程笔记本表
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:40
+     */
+    void delete(List<CourseNotebooksIdParam> courseNotebooksIdParamList);
+
+    /**
+     * 获取课程笔记本表详情
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:40
+     */
+    CourseNotebooks detail(CourseNotebooksIdParam courseNotebooksIdParam);
+
+    /**
+     * 获取课程笔记本表详情
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:40
+     **/
+    CourseNotebooks queryEntity(String id);
+
+}

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

@@ -0,0 +1,81 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+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.CourseNotes;
+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;
+
+/**
+ * 课程笔记表Service接口
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:56
+ **/
+public interface CourseNotesService extends IService<CourseNotes> {
+
+    /**
+     * 获取课程笔记表分页
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:56
+     */
+    Page<CourseNotes> page(CourseNotesPageParam courseNotesPageParam);
+
+    /**
+     * 添加课程笔记表
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:56
+     */
+    void add(CourseNotesAddParam courseNotesAddParam);
+
+    /**
+     * 编辑课程笔记表
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:56
+     */
+    void edit(CourseNotesEditParam courseNotesEditParam);
+
+    /**
+     * 删除课程笔记表
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:56
+     */
+    void delete(List<CourseNotesIdParam> courseNotesIdParamList);
+
+    /**
+     * 获取课程笔记表详情
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:56
+     */
+    CourseNotes detail(CourseNotesIdParam courseNotesIdParam);
+
+    /**
+     * 获取课程笔记表详情
+     *
+     * @author 金吉龙
+     * @date  2025/07/01 18:56
+     **/
+    CourseNotes queryEntity(String id);
+
+}

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

@@ -0,0 +1,96 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.disk.domain.CollectCourse;
+import vip.xiaonuo.disk.mapper.CollectCourseMapper;
+import vip.xiaonuo.disk.param.CollectCourseAddParam;
+import vip.xiaonuo.disk.param.CollectCourseEditParam;
+import vip.xiaonuo.disk.param.CollectCourseIdParam;
+import vip.xiaonuo.disk.param.CollectCoursePageParam;
+import vip.xiaonuo.disk.service.CollectCourseService;
+
+import java.util.List;
+
+/**
+ * 收藏课程Service接口实现类
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 19:01
+ **/
+@Service
+public class CollectCourseServiceImpl extends ServiceImpl<CollectCourseMapper, CollectCourse> implements CollectCourseService {
+
+
+    @Override
+    public Page<CollectCourse> page(CollectCoursePageParam collectCoursePageParam) {
+        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);
+        }
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(CollectCourseAddParam collectCourseAddParam) {
+        CollectCourse collectCourse = BeanUtil.toBean(collectCourseAddParam, CollectCourse.class);
+        this.save(collectCourse);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(CollectCourseEditParam collectCourseEditParam) {
+        CollectCourse collectCourse = this.queryEntity(collectCourseEditParam.getCollectId());
+        BeanUtil.copyProperties(collectCourseEditParam, collectCourse);
+        this.updateById(collectCourse);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<CollectCourseIdParam> collectCourseIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(collectCourseIdParamList, CollectCourseIdParam::getCollectId));
+    }
+
+    @Override
+    public CollectCourse detail(CollectCourseIdParam collectCourseIdParam) {
+        return this.queryEntity(collectCourseIdParam.getCollectId());
+    }
+
+    @Override
+    public CollectCourse queryEntity(String id) {
+        CollectCourse collectCourse = this.getById(id);
+        if(ObjectUtil.isEmpty(collectCourse)) {
+            throw new CommonException("收藏课程不存在,id值为:{}", id);
+        }
+        return collectCourse;
+    }
+
+}

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

@@ -0,0 +1,96 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.disk.domain.CourseNotebooks;
+import vip.xiaonuo.disk.mapper.CourseNotebooksMapper;
+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.service.CourseNotebooksService;
+
+import java.util.List;
+
+/**
+ * 课程笔记本表Service接口实现类
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:40
+ **/
+@Service
+public class CourseNotebooksServiceImpl extends ServiceImpl<CourseNotebooksMapper, CourseNotebooks> implements CourseNotebooksService {
+
+
+    @Override
+    public Page<CourseNotebooks> page(CourseNotebooksPageParam courseNotebooksPageParam) {
+        QueryWrapper<CourseNotebooks> queryWrapper = new QueryWrapper<>();
+        if(ObjectUtil.isAllNotEmpty(courseNotebooksPageParam.getSortField(), courseNotebooksPageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(courseNotebooksPageParam.getSortOrder());
+            queryWrapper.orderBy(true, courseNotebooksPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(courseNotebooksPageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(CourseNotebooks::getNotebookId);
+        }
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(CourseNotebooksAddParam courseNotebooksAddParam) {
+        CourseNotebooks courseNotebooks = BeanUtil.toBean(courseNotebooksAddParam, CourseNotebooks.class);
+        this.save(courseNotebooks);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(CourseNotebooksEditParam courseNotebooksEditParam) {
+        CourseNotebooks courseNotebooks = this.queryEntity(courseNotebooksEditParam.getNotebookId());
+        BeanUtil.copyProperties(courseNotebooksEditParam, courseNotebooks);
+        this.updateById(courseNotebooks);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<CourseNotebooksIdParam> courseNotebooksIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(courseNotebooksIdParamList, CourseNotebooksIdParam::getNotebookId));
+    }
+
+    @Override
+    public CourseNotebooks detail(CourseNotebooksIdParam courseNotebooksIdParam) {
+        return this.queryEntity(courseNotebooksIdParam.getNotebookId());
+    }
+
+    @Override
+    public CourseNotebooks queryEntity(String id) {
+        CourseNotebooks courseNotebooks = this.getById(id);
+        if(ObjectUtil.isEmpty(courseNotebooks)) {
+            throw new CommonException("课程笔记本表不存在,id值为:{}", id);
+        }
+        return courseNotebooks;
+    }
+
+}

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

@@ -0,0 +1,96 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.disk.domain.CourseNotes;
+import vip.xiaonuo.disk.mapper.CourseNotesMapper;
+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 java.util.List;
+
+/**
+ * 课程笔记表Service接口实现类
+ *
+ * @author 金吉龙
+ * @date  2025/07/01 18:56
+ **/
+@Service
+public class CourseNotesServiceImpl extends ServiceImpl<CourseNotesMapper, CourseNotes> implements CourseNotesService {
+
+
+    @Override
+    public Page<CourseNotes> page(CourseNotesPageParam courseNotesPageParam) {
+        QueryWrapper<CourseNotes> queryWrapper = new QueryWrapper<>();
+        if(ObjectUtil.isAllNotEmpty(courseNotesPageParam.getSortField(), courseNotesPageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(courseNotesPageParam.getSortOrder());
+            queryWrapper.orderBy(true, courseNotesPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(courseNotesPageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(CourseNotes::getNoteId);
+        }
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(CourseNotesAddParam courseNotesAddParam) {
+        CourseNotes courseNotes = BeanUtil.toBean(courseNotesAddParam, CourseNotes.class);
+        this.save(courseNotes);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(CourseNotesEditParam courseNotesEditParam) {
+        CourseNotes courseNotes = this.queryEntity(courseNotesEditParam.getNoteId());
+        BeanUtil.copyProperties(courseNotesEditParam, courseNotes);
+        this.updateById(courseNotes);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<CourseNotesIdParam> courseNotesIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(courseNotesIdParamList, CourseNotesIdParam::getNoteId));
+    }
+
+    @Override
+    public CourseNotes detail(CourseNotesIdParam courseNotesIdParam) {
+        return this.queryEntity(courseNotesIdParam.getNoteId());
+    }
+
+    @Override
+    public CourseNotes queryEntity(String id) {
+        CourseNotes courseNotes = this.getById(id);
+        if(ObjectUtil.isEmpty(courseNotes)) {
+            throw new CommonException("课程笔记表不存在,id值为:{}", id);
+        }
+        return courseNotes;
+    }
+
+}