diff --git a/pom.xml b/pom.xml
index 60f849d..6a4ac18 100644
--- a/pom.xml
+++ b/pom.xml
@@ -355,6 +355,7 @@
ruoyi-common
ruoyi-extend
ruoyi-modules
+ ruoyi-modules/ruoyi-file
pom
diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml
index 81ff360..9ab4a0a 100644
--- a/ruoyi-admin/src/main/resources/application-dev.yml
+++ b/ruoyi-admin/src/main/resources/application-dev.yml
@@ -41,7 +41,7 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
- url: jdbc:mysql://39.101.193.239:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
+ url: jdbc:mysql://39.101.193.239:3306/school_file?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username: root
password: Mz123456*
# 从库数据源
@@ -49,7 +49,7 @@ spring:
lazy: true
type: ${spring.datasource.type}
driverClassName: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://39.101.193.239:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
+ url: jdbc:mysql://39.101.193.239:3306/school_file?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username:
password:
# oracle:
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 2ca9693..fe5b211 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -140,6 +140,8 @@ tenant:
- sys_user_role
- sys_client
- sys_oss_config
+ - sys_oss_resource
+ - sys_oss_textbook
# MyBatisPlus配置
# https://baomidou.com/config/
diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml
index a87e344..73dadb2 100644
--- a/ruoyi-modules/pom.xml
+++ b/ruoyi-modules/pom.xml
@@ -13,6 +13,7 @@
ruoyi-generator
ruoyi-job
ruoyi-system
+ ruoyi-file
ruoyi-modules
diff --git a/ruoyi-modules/ruoyi-file/.gitignore b/ruoyi-modules/ruoyi-file/.gitignore
new file mode 100644
index 0000000..5ff6309
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-file/pom.xml b/ruoyi-modules/ruoyi-file/pom.xml
new file mode 100644
index 0000000..9706c9c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/pom.xml
@@ -0,0 +1,65 @@
+
+
+
+ org.dromara
+ ruoyi-modules
+ ${revision}
+
+ 4.0.0
+
+ ruoyi-file
+
+
+
+
+ org.dromara
+ ruoyi-common-core
+
+
+ org.dromara
+ ruoyi-common-mybatis
+
+
+
+ org.dromara
+ ruoyi-common-oss
+
+
+
+ org.dromara
+ ruoyi-common-log
+
+
+
+ org.dromara
+ ruoyi-common-tenant
+
+
+
+ org.dromara
+ ruoyi-common-security
+
+
+
+ org.dromara
+ ruoyi-common-web
+
+
+ org.dromara
+ ruoyi-common-idempotent
+
+
+
+ org.dromara
+ ruoyi-common-sensitive
+
+
+
+ org.dromara
+ ruoyi-common-encrypt
+
+
+
+
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/controller/SysCatalogResourceController.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/controller/SysCatalogResourceController.java
new file mode 100644
index 0000000..bd8fc36
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/controller/SysCatalogResourceController.java
@@ -0,0 +1,104 @@
+package org.dromara.file.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.file.domain.bo.SysCatalogResourceBo;
+import org.dromara.file.domain.vo.SysCatalogResourceVo;
+import org.dromara.file.service.ISysCatalogResourceService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+/**
+ * 目录-专题资源
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/catalog/resource")
+public class SysCatalogResourceController extends BaseController {
+
+ private final ISysCatalogResourceService sysCatalogResourceService;
+
+ /**
+ * 查询目录-专题资源列表
+ */
+ @SaCheckPermission("resource:catalogResource:list")
+ @GetMapping("/list")
+ public R> list(SysCatalogResourceBo bo) {
+ List list = sysCatalogResourceService.queryList(bo);
+ return R.ok(list);
+ }
+
+ /**
+ * 导出目录-专题资源列表
+ */
+// @SaCheckPermission("resource:catalogResource:export")
+// @Log(title = "目录-专题资源", businessType = BusinessType.EXPORT)
+// @PostMapping("/export")
+// public void export(SysCatalogResourceBo bo, HttpServletResponse response) {
+// List list = sysCatalogResourceService.queryList(bo);
+// ExcelUtil.exportExcel(list, "目录-专题资源", SysCatalogResourceVo.class, response);
+// }
+
+ /**
+ * 获取目录-专题资源详细信息
+ *
+ * @param catalogId 主键
+ */
+ @SaCheckPermission("resource:catalogResource:query")
+ @GetMapping("/{catalogId}")
+ public R getInfo(@NotNull(message = "主键不能为空")
+ @PathVariable Long catalogId) {
+ return R.ok(sysCatalogResourceService.queryById(catalogId));
+ }
+
+ /**
+ * 新增目录-专题资源
+ */
+ @SaCheckPermission("resource:catalogResource:add")
+ @Log(title = "目录-专题资源", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody SysCatalogResourceBo bo) {
+ return toAjax(sysCatalogResourceService.insertByBo(bo));
+ }
+
+ /**
+ * 修改目录-专题资源
+ */
+ @SaCheckPermission("resource:catalogResource:edit")
+ @Log(title = "目录-专题资源", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R edit(@Validated(EditGroup.class) @RequestBody SysCatalogResourceBo bo) {
+ return toAjax(sysCatalogResourceService.updateByBo(bo));
+ }
+
+ /**
+ * 删除目录-专题资源
+ *
+ * @param catalogIds 主键串
+ */
+ @SaCheckPermission("resource:catalogResource:remove")
+ @Log(title = "目录-专题资源", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{catalogIds}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] catalogIds) {
+ return toAjax(sysCatalogResourceService.deleteWithValidByIds(List.of(catalogIds), true));
+ }
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/controller/SysCatalogTextbookController.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/controller/SysCatalogTextbookController.java
new file mode 100644
index 0000000..6de3fa0
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/controller/SysCatalogTextbookController.java
@@ -0,0 +1,104 @@
+package org.dromara.file.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.file.domain.bo.SysCatalogTextbookBo;
+import org.dromara.file.domain.vo.SysCatalogTextbookVo;
+import org.dromara.file.service.ISysCatalogTextbookService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+/**
+ * 目录-同步教材
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/catalog/textbook")
+public class SysCatalogTextbookController extends BaseController {
+
+ private final ISysCatalogTextbookService sysCatalogTextbookService;
+
+ /**
+ * 查询目录-同步教材列表
+ */
+ @SaCheckPermission("resource:catalogTextbook:list")
+ @GetMapping("/list")
+ public R> list(SysCatalogTextbookBo bo) {
+ List list = sysCatalogTextbookService.queryList(bo);
+ return R.ok(list);
+ }
+
+ /**
+ * 导出目录-同步教材列表
+ */
+// @SaCheckPermission("resource:catalogTextbook:export")
+// @Log(title = "目录-同步教材", businessType = BusinessType.EXPORT)
+// @PostMapping("/export")
+// public void export(SysCatalogTextbookBo bo, HttpServletResponse response) {
+// List list = sysCatalogTextbookService.queryList(bo);
+// ExcelUtil.exportExcel(list, "目录-同步教材", SysCatalogTextbookVo.class, response);
+// }
+
+ /**
+ * 获取目录-同步教材详细信息
+ *
+ * @param catalogId 主键
+ */
+ @SaCheckPermission("resource:catalogTextbook:query")
+ @GetMapping("/{catalogId}")
+ public R getInfo(@NotNull(message = "主键不能为空")
+ @PathVariable Long catalogId) {
+ return R.ok(sysCatalogTextbookService.queryById(catalogId));
+ }
+
+ /**
+ * 新增目录-同步教材
+ */
+ @SaCheckPermission("resource:catalogTextbook:add")
+ @Log(title = "目录-同步教材", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody SysCatalogTextbookBo bo) {
+ return toAjax(sysCatalogTextbookService.insertByBo(bo));
+ }
+
+ /**
+ * 修改目录-同步教材
+ */
+ @SaCheckPermission("resource:catalogTextbook:edit")
+ @Log(title = "目录-同步教材", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R edit(@Validated(EditGroup.class) @RequestBody SysCatalogTextbookBo bo) {
+ return toAjax(sysCatalogTextbookService.updateByBo(bo));
+ }
+
+ /**
+ * 删除目录-同步教材
+ *
+ * @param catalogIds 主键串
+ */
+ @SaCheckPermission("resource:catalogTextbook:remove")
+ @Log(title = "目录-同步教材", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{catalogIds}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] catalogIds) {
+ return toAjax(sysCatalogTextbookService.deleteWithValidByIds(List.of(catalogIds), true));
+ }
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/controller/SysOssResourceController.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/controller/SysOssResourceController.java
new file mode 100644
index 0000000..41ac39f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/controller/SysOssResourceController.java
@@ -0,0 +1,104 @@
+package org.dromara.file.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.file.domain.bo.SysOssResourceBo;
+import org.dromara.file.domain.vo.SysOssResourceVo;
+import org.dromara.file.service.ISysOssResourceService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/file/resource")
+public class SysOssResourceController extends BaseController {
+
+ private final ISysOssResourceService sysOssResourceService;
+
+ /**
+ * 查询【请填写功能名称】列表
+ */
+ @SaCheckPermission("system:ossResource:list")
+ @GetMapping("/list")
+ public TableDataInfo list(SysOssResourceBo bo, PageQuery pageQuery) {
+ return sysOssResourceService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 导出【请填写功能名称】列表
+ */
+// @SaCheckPermission("system:ossResource:export")
+// @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+// @PostMapping("/export")
+// public void export(SysOssResourceBo bo, HttpServletResponse response) {
+// List list = sysOssResourceService.queryList(bo);
+// ExcelUtil.exportExcel(list, "【请填写功能名称】", SysOssResourceVo.class, response);
+// }
+
+ /**
+ * 获取【请填写功能名称】详细信息
+ *
+ * @param ossId 主键
+ */
+ @SaCheckPermission("system:ossResource:query")
+ @GetMapping("/{ossId}")
+ public R getInfo(@NotNull(message = "主键不能为空")
+ @PathVariable Long ossId) {
+ return R.ok(sysOssResourceService.queryById(ossId));
+ }
+
+ /**
+ * 新增【请填写功能名称】
+ */
+ @SaCheckPermission("system:ossResource:add")
+ @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody SysOssResourceBo bo) {
+ return toAjax(sysOssResourceService.insertByBo(bo));
+ }
+
+ /**
+ * 修改【请填写功能名称】
+ */
+ @SaCheckPermission("system:ossResource:edit")
+ @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R edit(@Validated(EditGroup.class) @RequestBody SysOssResourceBo bo) {
+ return toAjax(sysOssResourceService.updateByBo(bo));
+ }
+
+ /**
+ * 删除【请填写功能名称】
+ *
+ * @param ossIds 主键串
+ */
+ @SaCheckPermission("system:ossResource:remove")
+ @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ossIds}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] ossIds) {
+ return toAjax(sysOssResourceService.deleteWithValidByIds(List.of(ossIds), true));
+ }
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/controller/SysOssTextbookController.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/controller/SysOssTextbookController.java
new file mode 100644
index 0000000..d442aee
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/controller/SysOssTextbookController.java
@@ -0,0 +1,104 @@
+package org.dromara.file.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.file.domain.bo.SysOssTextbookBo;
+import org.dromara.file.domain.vo.SysOssTextbookVo;
+import org.dromara.file.service.ISysOssTextbookService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/file/textbook")
+public class SysOssTextbookController extends BaseController {
+
+ private final ISysOssTextbookService sysOssTextbookService;
+
+ /**
+ * 查询【请填写功能名称】列表
+ */
+ @SaCheckPermission("system:ossTextbook:list")
+ @GetMapping("/list")
+ public TableDataInfo list(SysOssTextbookBo bo, PageQuery pageQuery) {
+ return sysOssTextbookService.queryPageList(bo, pageQuery);
+ }
+
+// /**
+// * 导出【请填写功能名称】列表
+// */
+// @SaCheckPermission("system:ossTextbook:export")
+// @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+// @PostMapping("/export")
+// public void export(SysOssTextbookBo bo, HttpServletResponse response) {
+// List list = sysOssTextbookService.queryList(bo);
+// ExcelUtil.exportExcel(list, "【请填写功能名称】", SysOssTextbookVo.class, response);
+// }
+
+ /**
+ * 获取【请填写功能名称】详细信息
+ *
+ * @param ossId 主键
+ */
+ @SaCheckPermission("system:ossTextbook:query")
+ @GetMapping("/{ossId}")
+ public R getInfo(@NotNull(message = "主键不能为空")
+ @PathVariable Long ossId) {
+ return R.ok(sysOssTextbookService.queryById(ossId));
+ }
+
+ /**
+ * 新增【请填写功能名称】
+ */
+ @SaCheckPermission("system:ossTextbook:add")
+ @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody SysOssTextbookBo bo) {
+ return toAjax(sysOssTextbookService.insertByBo(bo));
+ }
+
+ /**
+ * 修改【请填写功能名称】
+ */
+ @SaCheckPermission("system:ossTextbook:edit")
+ @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R edit(@Validated(EditGroup.class) @RequestBody SysOssTextbookBo bo) {
+ return toAjax(sysOssTextbookService.updateByBo(bo));
+ }
+
+ /**
+ * 删除【请填写功能名称】
+ *
+ * @param ossIds 主键串
+ */
+ @SaCheckPermission("system:ossTextbook:remove")
+ @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ossIds}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] ossIds) {
+ return toAjax(sysOssTextbookService.deleteWithValidByIds(List.of(ossIds), true));
+ }
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/SysCatalogResource.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/SysCatalogResource.java
new file mode 100644
index 0000000..db51af6
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/SysCatalogResource.java
@@ -0,0 +1,62 @@
+package org.dromara.file.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 目录-专题资源对象 sys_catalog_resource
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("sys_catalog_resource")
+public class SysCatalogResource extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 目录id
+ */
+ @TableId(value = "catalog_id")
+ private Long catalogId;
+
+ /**
+ * 父目录id
+ */
+ private Long parentId;
+
+ /**
+ * 祖级列表
+ */
+ private String ancestors;
+
+ /**
+ * 目录名称
+ */
+ private String catalogName;
+
+ /**
+ * 显示顺序
+ */
+ private Long orderNum;
+
+ /**
+ * 封面
+ */
+ private Long cover;
+
+ /**
+ * 删除标志(0代表存在 2代表删除)
+ */
+ @TableLogic
+ private String delFlag;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/SysCatalogTextbook.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/SysCatalogTextbook.java
new file mode 100644
index 0000000..dc23fb5
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/SysCatalogTextbook.java
@@ -0,0 +1,62 @@
+package org.dromara.file.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 目录-同步教材对象 sys_catalog_textbook
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("sys_catalog_textbook")
+public class SysCatalogTextbook extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 目录id
+ */
+ @TableId(value = "catalog_id")
+ private Long catalogId;
+
+ /**
+ * 父目录id
+ */
+ private Long parentId;
+
+ /**
+ * 祖级列表
+ */
+ private String ancestors;
+
+ /**
+ * 目录名称
+ */
+ private String catalogName;
+
+ /**
+ * 显示顺序
+ */
+ private Long orderNum;
+
+ /**
+ * 1暂定,2学段,3年级,4学科,5版本,6教材,7目录
+ */
+ private Integer type;
+
+ /**
+ * 删除标志(0代表存在 2代表删除)
+ */
+ @TableLogic
+ private String delFlag;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/SysOssResource.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/SysOssResource.java
new file mode 100644
index 0000000..13790e8
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/SysOssResource.java
@@ -0,0 +1,37 @@
+package org.dromara.file.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 【请填写功能名称】对象 sys_oss_resource
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("sys_oss_resource")
+public class SysOssResource extends BaseEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @TableId(value = "oss_id")
+ private Long ossId;
+
+ /**
+ *
+ */
+ @TableId(value = "catalog_id")
+ private Long catalogId;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/SysOssTextbook.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/SysOssTextbook.java
new file mode 100644
index 0000000..afe1b6e
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/SysOssTextbook.java
@@ -0,0 +1,42 @@
+package org.dromara.file.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 【请填写功能名称】对象 sys_oss_textbook
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("sys_oss_textbook")
+public class SysOssTextbook extends BaseEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @TableId(value = "oss_id")
+ private Long ossId;
+
+ /**
+ *
+ */
+ @TableId(value = "catalog_id")
+ private Long catalogId;
+
+ /**
+ * 1课件,2课堂,3作业,4试卷
+ */
+ private Integer type;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/bo/SysCatalogResourceBo.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/bo/SysCatalogResourceBo.java
new file mode 100644
index 0000000..f49c333
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/bo/SysCatalogResourceBo.java
@@ -0,0 +1,60 @@
+package org.dromara.file.domain.bo;
+
+import org.dromara.file.domain.SysCatalogResource;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 目录-专题资源业务对象 sys_catalog_resource
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SysCatalogResource.class, reverseConvertGenerate = false)
+public class SysCatalogResourceBo extends BaseEntity {
+
+ /**
+ * 目录id
+ */
+ @NotNull(message = "目录id不能为空", groups = { EditGroup.class })
+ private Long catalogId;
+
+ /**
+ * 父目录id
+ */
+ @NotNull(message = "父目录id不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Long parentId;
+
+ /**
+ * 祖级列表
+ */
+ @NotBlank(message = "祖级列表不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String ancestors;
+
+ /**
+ * 目录名称
+ */
+ @NotBlank(message = "目录名称不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String catalogName;
+
+ /**
+ * 显示顺序
+ */
+ @NotNull(message = "显示顺序不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Long orderNum;
+
+ /**
+ * 封面
+ */
+ @NotNull(message = "封面不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Long cover;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/bo/SysCatalogTextbookBo.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/bo/SysCatalogTextbookBo.java
new file mode 100644
index 0000000..c31df78
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/bo/SysCatalogTextbookBo.java
@@ -0,0 +1,60 @@
+package org.dromara.file.domain.bo;
+
+import org.dromara.file.domain.SysCatalogTextbook;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 目录-同步教材业务对象 sys_catalog_textbook
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SysCatalogTextbook.class, reverseConvertGenerate = false)
+public class SysCatalogTextbookBo extends BaseEntity {
+
+ /**
+ * 目录id
+ */
+ @NotNull(message = "目录id不能为空", groups = { EditGroup.class })
+ private Long catalogId;
+
+ /**
+ * 父目录id
+ */
+ @NotNull(message = "父目录id不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Long parentId;
+
+ /**
+ * 祖级列表
+ */
+ @NotBlank(message = "祖级列表不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String ancestors;
+
+ /**
+ * 目录名称
+ */
+ @NotBlank(message = "目录名称不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String catalogName;
+
+ /**
+ * 显示顺序
+ */
+ @NotNull(message = "显示顺序不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Long orderNum;
+
+ /**
+ * 1暂定,2学段,3年级,4学科,5版本,6教材,7目录
+ */
+ @NotNull(message = "1暂定,2学段,3年级,4学科,5版本,6教材,7目录不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Integer type;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/bo/SysOssResourceBo.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/bo/SysOssResourceBo.java
new file mode 100644
index 0000000..eb24e9c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/bo/SysOssResourceBo.java
@@ -0,0 +1,36 @@
+package org.dromara.file.domain.bo;
+
+import org.dromara.file.domain.SysOssResource;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 【请填写功能名称】业务对象 sys_oss_resource
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SysOssResource.class, reverseConvertGenerate = false)
+public class SysOssResourceBo extends BaseEntity {
+
+ /**
+ *
+ */
+ @NotNull(message = "不能为空", groups = { EditGroup.class })
+ private Long ossId;
+
+ /**
+ *
+ */
+ @NotNull(message = "不能为空", groups = { EditGroup.class })
+ private Long catalogId;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/bo/SysOssTextbookBo.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/bo/SysOssTextbookBo.java
new file mode 100644
index 0000000..5e6c283
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/bo/SysOssTextbookBo.java
@@ -0,0 +1,42 @@
+package org.dromara.file.domain.bo;
+
+import org.dromara.file.domain.SysOssTextbook;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 【请填写功能名称】业务对象 sys_oss_textbook
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SysOssTextbook.class, reverseConvertGenerate = false)
+public class SysOssTextbookBo extends BaseEntity {
+
+ /**
+ *
+ */
+ @NotNull(message = "不能为空", groups = { EditGroup.class })
+ private Long ossId;
+
+ /**
+ *
+ */
+ @NotNull(message = "不能为空", groups = { EditGroup.class })
+ private Long catalogId;
+
+ /**
+ * 1课件,2课堂,3作业,4试卷
+ */
+ @NotNull(message = "1课件,2课堂,3作业,4试卷不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Integer type;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/vo/SysCatalogResourceVo.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/vo/SysCatalogResourceVo.java
new file mode 100644
index 0000000..4d3efa4
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/vo/SysCatalogResourceVo.java
@@ -0,0 +1,62 @@
+package org.dromara.file.domain.vo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.file.domain.SysCatalogResource;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+
+
+/**
+ * 目录-专题资源视图对象 sys_catalog_resource
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Data
+@AutoMapper(target = SysCatalogResource.class)
+public class SysCatalogResourceVo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 目录id
+ */
+ //@ExcelProperty(value = "目录id")
+ private Long catalogId;
+
+ /**
+ * 父目录id
+ */
+ //@ExcelProperty(value = "父目录id")
+ private Long parentId;
+
+ /**
+ * 祖级列表
+ */
+ //@ExcelProperty(value = "祖级列表")
+ private String ancestors;
+
+ /**
+ * 目录名称
+ */
+ //@ExcelProperty(value = "目录名称")
+ private String catalogName;
+
+ /**
+ * 显示顺序
+ */
+ //@ExcelProperty(value = "显示顺序")
+ private Long orderNum;
+
+ /**
+ * 封面
+ */
+ //@ExcelProperty(value = "封面")
+ private Long cover;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/vo/SysCatalogTextbookVo.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/vo/SysCatalogTextbookVo.java
new file mode 100644
index 0000000..60be384
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/vo/SysCatalogTextbookVo.java
@@ -0,0 +1,62 @@
+package org.dromara.file.domain.vo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.file.domain.SysCatalogTextbook;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+
+
+/**
+ * 目录-同步教材视图对象 sys_catalog_textbook
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Data
+@AutoMapper(target = SysCatalogTextbook.class)
+public class SysCatalogTextbookVo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 目录id
+ */
+ //@ExcelProperty(value = "目录id")
+ private Long catalogId;
+
+ /**
+ * 父目录id
+ */
+ //@ExcelProperty(value = "父目录id")
+ private Long parentId;
+
+ /**
+ * 祖级列表
+ */
+ //@ExcelProperty(value = "祖级列表")
+ private String ancestors;
+
+ /**
+ * 目录名称
+ */
+ //@ExcelProperty(value = "目录名称")
+ private String catalogName;
+
+ /**
+ * 显示顺序
+ */
+ //@ExcelProperty(value = "显示顺序")
+ private Long orderNum;
+
+ /**
+ * 1暂定,2学段,3年级,4学科,5版本,6教材,7目录
+ */
+ //@ExcelProperty(value = "1暂定,2学段,3年级,4学科,5版本,6教材,7目录")
+ private Integer type;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/vo/SysOssResourceVo.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/vo/SysOssResourceVo.java
new file mode 100644
index 0000000..4297ff2
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/vo/SysOssResourceVo.java
@@ -0,0 +1,37 @@
+package org.dromara.file.domain.vo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.file.domain.SysOssResource;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+
+
+/**
+ * 【请填写功能名称】视图对象 sys_oss_resource
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Data
+
+@AutoMapper(target = SysOssResource.class)
+public class SysOssResourceVo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private Long ossId;
+
+ /**
+ *
+ */
+ private Long catalogId;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/vo/SysOssTextbookVo.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/vo/SysOssTextbookVo.java
new file mode 100644
index 0000000..67b98cd
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/domain/vo/SysOssTextbookVo.java
@@ -0,0 +1,42 @@
+package org.dromara.file.domain.vo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.file.domain.SysOssTextbook;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+
+
+/**
+ * 【请填写功能名称】视图对象 sys_oss_textbook
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@Data
+
+@AutoMapper(target = SysOssTextbook.class)
+public class SysOssTextbookVo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private Long ossId;
+
+ /**
+ *
+ */
+ private Long catalogId;
+
+ /**
+ * 1课件,2课堂,3作业,4试卷
+ */
+ private Integer type;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/mapper/SysCatalogResourceMapper.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/mapper/SysCatalogResourceMapper.java
new file mode 100644
index 0000000..d5ea9ac
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/mapper/SysCatalogResourceMapper.java
@@ -0,0 +1,16 @@
+package org.dromara.file.mapper;
+
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.file.domain.SysCatalogResource;
+import org.dromara.file.domain.vo.SysCatalogResourceVo;
+
+/**
+ * 目录-专题资源Mapper接口
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+public interface SysCatalogResourceMapper extends BaseMapperPlus {
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/mapper/SysCatalogTextbookMapper.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/mapper/SysCatalogTextbookMapper.java
new file mode 100644
index 0000000..822de57
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/mapper/SysCatalogTextbookMapper.java
@@ -0,0 +1,16 @@
+package org.dromara.file.mapper;
+
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.file.domain.SysCatalogTextbook;
+import org.dromara.file.domain.vo.SysCatalogTextbookVo;
+
+/**
+ * 目录-同步教材Mapper接口
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+public interface SysCatalogTextbookMapper extends BaseMapperPlus {
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/mapper/SysOssResourceMapper.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/mapper/SysOssResourceMapper.java
new file mode 100644
index 0000000..f56a359
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/mapper/SysOssResourceMapper.java
@@ -0,0 +1,16 @@
+package org.dromara.file.mapper;
+
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.file.domain.SysOssResource;
+import org.dromara.file.domain.vo.SysOssResourceVo;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+public interface SysOssResourceMapper extends BaseMapperPlus {
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/mapper/SysOssTextbookMapper.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/mapper/SysOssTextbookMapper.java
new file mode 100644
index 0000000..5774369
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/mapper/SysOssTextbookMapper.java
@@ -0,0 +1,16 @@
+package org.dromara.file.mapper;
+
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.file.domain.SysOssTextbook;
+import org.dromara.file.domain.vo.SysOssTextbookVo;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+public interface SysOssTextbookMapper extends BaseMapperPlus {
+
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/ISysCatalogResourceService.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/ISysCatalogResourceService.java
new file mode 100644
index 0000000..95fbc46
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/ISysCatalogResourceService.java
@@ -0,0 +1,59 @@
+package org.dromara.file.service;
+
+
+import org.dromara.file.domain.bo.SysCatalogResourceBo;
+import org.dromara.file.domain.vo.SysCatalogResourceVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 目录-专题资源Service接口
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+public interface ISysCatalogResourceService {
+
+ /**
+ * 查询目录-专题资源
+ *
+ * @param catalogId 主键
+ * @return 目录-专题资源
+ */
+ SysCatalogResourceVo queryById(Long catalogId);
+
+
+ /**
+ * 查询符合条件的目录-专题资源列表
+ *
+ * @param bo 查询条件
+ * @return 目录-专题资源列表
+ */
+ List queryList(SysCatalogResourceBo bo);
+
+ /**
+ * 新增目录-专题资源
+ *
+ * @param bo 目录-专题资源
+ * @return 是否新增成功
+ */
+ Boolean insertByBo(SysCatalogResourceBo bo);
+
+ /**
+ * 修改目录-专题资源
+ *
+ * @param bo 目录-专题资源
+ * @return 是否修改成功
+ */
+ Boolean updateByBo(SysCatalogResourceBo bo);
+
+ /**
+ * 校验并批量删除目录-专题资源信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/ISysCatalogTextbookService.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/ISysCatalogTextbookService.java
new file mode 100644
index 0000000..b8ff61f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/ISysCatalogTextbookService.java
@@ -0,0 +1,59 @@
+package org.dromara.file.service;
+
+
+import org.dromara.file.domain.bo.SysCatalogTextbookBo;
+import org.dromara.file.domain.vo.SysCatalogTextbookVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 目录-同步教材Service接口
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+public interface ISysCatalogTextbookService {
+
+ /**
+ * 查询目录-同步教材
+ *
+ * @param catalogId 主键
+ * @return 目录-同步教材
+ */
+ SysCatalogTextbookVo queryById(Long catalogId);
+
+
+ /**
+ * 查询符合条件的目录-同步教材列表
+ *
+ * @param bo 查询条件
+ * @return 目录-同步教材列表
+ */
+ List queryList(SysCatalogTextbookBo bo);
+
+ /**
+ * 新增目录-同步教材
+ *
+ * @param bo 目录-同步教材
+ * @return 是否新增成功
+ */
+ Boolean insertByBo(SysCatalogTextbookBo bo);
+
+ /**
+ * 修改目录-同步教材
+ *
+ * @param bo 目录-同步教材
+ * @return 是否修改成功
+ */
+ Boolean updateByBo(SysCatalogTextbookBo bo);
+
+ /**
+ * 校验并批量删除目录-同步教材信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/ISysOssResourceService.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/ISysOssResourceService.java
new file mode 100644
index 0000000..4d2a229
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/ISysOssResourceService.java
@@ -0,0 +1,69 @@
+package org.dromara.file.service;
+
+
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.file.domain.bo.SysOssResourceBo;
+import org.dromara.file.domain.vo.SysOssResourceVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+public interface ISysOssResourceService {
+
+ /**
+ * 查询【请填写功能名称】
+ *
+ * @param ossId 主键
+ * @return 【请填写功能名称】
+ */
+ SysOssResourceVo queryById(Long ossId);
+
+ /**
+ * 分页查询【请填写功能名称】列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 【请填写功能名称】分页列表
+ */
+ TableDataInfo queryPageList(SysOssResourceBo bo, PageQuery pageQuery);
+
+ /**
+ * 查询符合条件的【请填写功能名称】列表
+ *
+ * @param bo 查询条件
+ * @return 【请填写功能名称】列表
+ */
+ List queryList(SysOssResourceBo bo);
+
+ /**
+ * 新增【请填写功能名称】
+ *
+ * @param bo 【请填写功能名称】
+ * @return 是否新增成功
+ */
+ Boolean insertByBo(SysOssResourceBo bo);
+
+ /**
+ * 修改【请填写功能名称】
+ *
+ * @param bo 【请填写功能名称】
+ * @return 是否修改成功
+ */
+ Boolean updateByBo(SysOssResourceBo bo);
+
+ /**
+ * 校验并批量删除【请填写功能名称】信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/ISysOssTextbookService.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/ISysOssTextbookService.java
new file mode 100644
index 0000000..8dcf5ae
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/ISysOssTextbookService.java
@@ -0,0 +1,69 @@
+package org.dromara.file.service;
+
+
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.file.domain.bo.SysOssTextbookBo;
+import org.dromara.file.domain.vo.SysOssTextbookVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+public interface ISysOssTextbookService {
+
+ /**
+ * 查询【请填写功能名称】
+ *
+ * @param ossId 主键
+ * @return 【请填写功能名称】
+ */
+ SysOssTextbookVo queryById(Long ossId);
+
+ /**
+ * 分页查询【请填写功能名称】列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 【请填写功能名称】分页列表
+ */
+ TableDataInfo queryPageList(SysOssTextbookBo bo, PageQuery pageQuery);
+
+ /**
+ * 查询符合条件的【请填写功能名称】列表
+ *
+ * @param bo 查询条件
+ * @return 【请填写功能名称】列表
+ */
+ List queryList(SysOssTextbookBo bo);
+
+ /**
+ * 新增【请填写功能名称】
+ *
+ * @param bo 【请填写功能名称】
+ * @return 是否新增成功
+ */
+ Boolean insertByBo(SysOssTextbookBo bo);
+
+ /**
+ * 修改【请填写功能名称】
+ *
+ * @param bo 【请填写功能名称】
+ * @return 是否修改成功
+ */
+ Boolean updateByBo(SysOssTextbookBo bo);
+
+ /**
+ * 校验并批量删除【请填写功能名称】信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/impl/SysCatalogResourceServiceImpl.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/impl/SysCatalogResourceServiceImpl.java
new file mode 100644
index 0000000..bd78397
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/impl/SysCatalogResourceServiceImpl.java
@@ -0,0 +1,117 @@
+package org.dromara.file.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.file.domain.SysCatalogResource;
+import org.dromara.file.domain.bo.SysCatalogResourceBo;
+import org.dromara.file.domain.vo.SysCatalogResourceVo;
+import org.dromara.file.mapper.SysCatalogResourceMapper;
+import org.dromara.file.service.ISysCatalogResourceService;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 目录-专题资源Service业务层处理
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@RequiredArgsConstructor
+@Service
+public class SysCatalogResourceServiceImpl implements ISysCatalogResourceService {
+
+ private final SysCatalogResourceMapper baseMapper;
+
+ /**
+ * 查询目录-专题资源
+ *
+ * @param catalogId 主键
+ * @return 目录-专题资源
+ */
+ @Override
+ public SysCatalogResourceVo queryById(Long catalogId){
+ return baseMapper.selectVoById(catalogId);
+ }
+
+
+ /**
+ * 查询符合条件的目录-专题资源列表
+ *
+ * @param bo 查询条件
+ * @return 目录-专题资源列表
+ */
+ @Override
+ public List queryList(SysCatalogResourceBo bo) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(SysCatalogResourceBo bo) {
+ Map params = bo.getParams();
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.eq(bo.getParentId() != null, SysCatalogResource::getParentId, bo.getParentId());
+ lqw.eq(StringUtils.isNotBlank(bo.getAncestors()), SysCatalogResource::getAncestors, bo.getAncestors());
+ lqw.like(StringUtils.isNotBlank(bo.getCatalogName()), SysCatalogResource::getCatalogName, bo.getCatalogName());
+ lqw.eq(bo.getOrderNum() != null, SysCatalogResource::getOrderNum, bo.getOrderNum());
+ lqw.eq(bo.getCover() != null, SysCatalogResource::getCover, bo.getCover());
+ return lqw;
+ }
+
+ /**
+ * 新增目录-专题资源
+ *
+ * @param bo 目录-专题资源
+ * @return 是否新增成功
+ */
+ @Override
+ public Boolean insertByBo(SysCatalogResourceBo bo) {
+ SysCatalogResource add = MapstructUtils.convert(bo, SysCatalogResource.class);
+ validEntityBeforeSave(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setCatalogId(add.getCatalogId());
+ }
+ return flag;
+ }
+
+ /**
+ * 修改目录-专题资源
+ *
+ * @param bo 目录-专题资源
+ * @return 是否修改成功
+ */
+ @Override
+ public Boolean updateByBo(SysCatalogResourceBo bo) {
+ SysCatalogResource update = MapstructUtils.convert(bo, SysCatalogResource.class);
+ validEntityBeforeSave(update);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ /**
+ * 保存前的数据校验
+ */
+ private void validEntityBeforeSave(SysCatalogResource entity){
+ //TODO 做一些数据校验,如唯一约束
+ }
+
+ /**
+ * 校验并批量删除目录-专题资源信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if(isValid){
+ //TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteBatchIds(ids) > 0;
+ }
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/impl/SysCatalogTextbookServiceImpl.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/impl/SysCatalogTextbookServiceImpl.java
new file mode 100644
index 0000000..8d9c4cf
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/impl/SysCatalogTextbookServiceImpl.java
@@ -0,0 +1,117 @@
+package org.dromara.file.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.file.domain.SysCatalogTextbook;
+import org.dromara.file.domain.bo.SysCatalogTextbookBo;
+import org.dromara.file.domain.vo.SysCatalogTextbookVo;
+import org.dromara.file.mapper.SysCatalogTextbookMapper;
+import org.dromara.file.service.ISysCatalogTextbookService;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 目录-同步教材Service业务层处理
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@RequiredArgsConstructor
+@Service
+public class SysCatalogTextbookServiceImpl implements ISysCatalogTextbookService {
+
+ private final SysCatalogTextbookMapper baseMapper;
+
+ /**
+ * 查询目录-同步教材
+ *
+ * @param catalogId 主键
+ * @return 目录-同步教材
+ */
+ @Override
+ public SysCatalogTextbookVo queryById(Long catalogId){
+ return baseMapper.selectVoById(catalogId);
+ }
+
+
+ /**
+ * 查询符合条件的目录-同步教材列表
+ *
+ * @param bo 查询条件
+ * @return 目录-同步教材列表
+ */
+ @Override
+ public List queryList(SysCatalogTextbookBo bo) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(SysCatalogTextbookBo bo) {
+ Map params = bo.getParams();
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.eq(bo.getParentId() != null, SysCatalogTextbook::getParentId, bo.getParentId());
+ lqw.eq(StringUtils.isNotBlank(bo.getAncestors()), SysCatalogTextbook::getAncestors, bo.getAncestors());
+ lqw.like(StringUtils.isNotBlank(bo.getCatalogName()), SysCatalogTextbook::getCatalogName, bo.getCatalogName());
+ lqw.eq(bo.getOrderNum() != null, SysCatalogTextbook::getOrderNum, bo.getOrderNum());
+ lqw.eq(bo.getType() != null, SysCatalogTextbook::getType, bo.getType());
+ return lqw;
+ }
+
+ /**
+ * 新增目录-同步教材
+ *
+ * @param bo 目录-同步教材
+ * @return 是否新增成功
+ */
+ @Override
+ public Boolean insertByBo(SysCatalogTextbookBo bo) {
+ SysCatalogTextbook add = MapstructUtils.convert(bo, SysCatalogTextbook.class);
+ validEntityBeforeSave(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setCatalogId(add.getCatalogId());
+ }
+ return flag;
+ }
+
+ /**
+ * 修改目录-同步教材
+ *
+ * @param bo 目录-同步教材
+ * @return 是否修改成功
+ */
+ @Override
+ public Boolean updateByBo(SysCatalogTextbookBo bo) {
+ SysCatalogTextbook update = MapstructUtils.convert(bo, SysCatalogTextbook.class);
+ validEntityBeforeSave(update);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ /**
+ * 保存前的数据校验
+ */
+ private void validEntityBeforeSave(SysCatalogTextbook entity){
+ //TODO 做一些数据校验,如唯一约束
+ }
+
+ /**
+ * 校验并批量删除目录-同步教材信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if(isValid){
+ //TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteBatchIds(ids) > 0;
+ }
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/impl/SysOssResourceServiceImpl.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/impl/SysOssResourceServiceImpl.java
new file mode 100644
index 0000000..25f2031
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/impl/SysOssResourceServiceImpl.java
@@ -0,0 +1,127 @@
+package org.dromara.file.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.file.domain.SysOssResource;
+import org.dromara.file.domain.bo.SysOssResourceBo;
+import org.dromara.file.domain.vo.SysOssResourceVo;
+import org.dromara.file.mapper.SysOssResourceMapper;
+import org.dromara.file.service.ISysOssResourceService;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@RequiredArgsConstructor
+@Service
+public class SysOssResourceServiceImpl implements ISysOssResourceService {
+
+ private final SysOssResourceMapper baseMapper;
+
+ /**
+ * 查询【请填写功能名称】
+ *
+ * @param ossId 主键
+ * @return 【请填写功能名称】
+ */
+ @Override
+ public SysOssResourceVo queryById(Long ossId){
+ return baseMapper.selectVoById(ossId);
+ }
+
+ /**
+ * 分页查询【请填写功能名称】列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 【请填写功能名称】分页列表
+ */
+ @Override
+ public TableDataInfo queryPageList(SysOssResourceBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ /**
+ * 查询符合条件的【请填写功能名称】列表
+ *
+ * @param bo 查询条件
+ * @return 【请填写功能名称】列表
+ */
+ @Override
+ public List queryList(SysOssResourceBo bo) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(SysOssResourceBo bo) {
+ Map params = bo.getParams();
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ return lqw;
+ }
+
+ /**
+ * 新增【请填写功能名称】
+ *
+ * @param bo 【请填写功能名称】
+ * @return 是否新增成功
+ */
+ @Override
+ public Boolean insertByBo(SysOssResourceBo bo) {
+ SysOssResource add = MapstructUtils.convert(bo, SysOssResource.class);
+ validEntityBeforeSave(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setOssId(add.getOssId());
+ }
+ return flag;
+ }
+
+ /**
+ * 修改【请填写功能名称】
+ *
+ * @param bo 【请填写功能名称】
+ * @return 是否修改成功
+ */
+ @Override
+ public Boolean updateByBo(SysOssResourceBo bo) {
+ SysOssResource update = MapstructUtils.convert(bo, SysOssResource.class);
+ validEntityBeforeSave(update);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ /**
+ * 保存前的数据校验
+ */
+ private void validEntityBeforeSave(SysOssResource entity){
+ //TODO 做一些数据校验,如唯一约束
+ }
+
+ /**
+ * 校验并批量删除【请填写功能名称】信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if(isValid){
+ //TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteBatchIds(ids) > 0;
+ }
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/impl/SysOssTextbookServiceImpl.java b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/impl/SysOssTextbookServiceImpl.java
new file mode 100644
index 0000000..376f93d
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/java/org/dromara/file/service/impl/SysOssTextbookServiceImpl.java
@@ -0,0 +1,128 @@
+package org.dromara.file.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.file.domain.SysOssTextbook;
+import org.dromara.file.domain.bo.SysOssTextbookBo;
+import org.dromara.file.domain.vo.SysOssTextbookVo;
+import org.dromara.file.mapper.SysOssTextbookMapper;
+import org.dromara.file.service.ISysOssTextbookService;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author Lion Li
+ * @date 2024-05-28
+ */
+@RequiredArgsConstructor
+@Service
+public class SysOssTextbookServiceImpl implements ISysOssTextbookService {
+
+ private final SysOssTextbookMapper baseMapper;
+
+ /**
+ * 查询【请填写功能名称】
+ *
+ * @param ossId 主键
+ * @return 【请填写功能名称】
+ */
+ @Override
+ public SysOssTextbookVo queryById(Long ossId){
+ return baseMapper.selectVoById(ossId);
+ }
+
+ /**
+ * 分页查询【请填写功能名称】列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 【请填写功能名称】分页列表
+ */
+ @Override
+ public TableDataInfo queryPageList(SysOssTextbookBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ /**
+ * 查询符合条件的【请填写功能名称】列表
+ *
+ * @param bo 查询条件
+ * @return 【请填写功能名称】列表
+ */
+ @Override
+ public List queryList(SysOssTextbookBo bo) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(SysOssTextbookBo bo) {
+ Map params = bo.getParams();
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.eq(bo.getType() != null, SysOssTextbook::getType, bo.getType());
+ return lqw;
+ }
+
+ /**
+ * 新增【请填写功能名称】
+ *
+ * @param bo 【请填写功能名称】
+ * @return 是否新增成功
+ */
+ @Override
+ public Boolean insertByBo(SysOssTextbookBo bo) {
+ SysOssTextbook add = MapstructUtils.convert(bo, SysOssTextbook.class);
+ validEntityBeforeSave(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setOssId(add.getOssId());
+ }
+ return flag;
+ }
+
+ /**
+ * 修改【请填写功能名称】
+ *
+ * @param bo 【请填写功能名称】
+ * @return 是否修改成功
+ */
+ @Override
+ public Boolean updateByBo(SysOssTextbookBo bo) {
+ SysOssTextbook update = MapstructUtils.convert(bo, SysOssTextbook.class);
+ validEntityBeforeSave(update);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ /**
+ * 保存前的数据校验
+ */
+ private void validEntityBeforeSave(SysOssTextbook entity){
+ //TODO 做一些数据校验,如唯一约束
+ }
+
+ /**
+ * 校验并批量删除【请填写功能名称】信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if(isValid){
+ //TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteBatchIds(ids) > 0;
+ }
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/resources/mapper/file/SysCatalogResourceMapper.xml b/ruoyi-modules/ruoyi-file/src/main/resources/mapper/file/SysCatalogResourceMapper.xml
new file mode 100644
index 0000000..bbe2b3b
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/resources/mapper/file/SysCatalogResourceMapper.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/ruoyi-modules/ruoyi-file/src/main/resources/mapper/file/SysCatalogTextbookMapper.xml b/ruoyi-modules/ruoyi-file/src/main/resources/mapper/file/SysCatalogTextbookMapper.xml
new file mode 100644
index 0000000..c6fb36e
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/resources/mapper/file/SysCatalogTextbookMapper.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/ruoyi-modules/ruoyi-file/src/main/resources/mapper/file/SysOssResourceMapper.xml b/ruoyi-modules/ruoyi-file/src/main/resources/mapper/file/SysOssResourceMapper.xml
new file mode 100644
index 0000000..649c563
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/resources/mapper/file/SysOssResourceMapper.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/ruoyi-modules/ruoyi-file/src/main/resources/mapper/file/SysOssTextbookMapper.xml b/ruoyi-modules/ruoyi-file/src/main/resources/mapper/file/SysOssTextbookMapper.xml
new file mode 100644
index 0000000..e7cb306
--- /dev/null
+++ b/ruoyi-modules/ruoyi-file/src/main/resources/mapper/file/SysOssTextbookMapper.xml
@@ -0,0 +1,7 @@
+
+
+
+
+