diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/constant/RecordTypeConstants.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/constant/RecordTypeConstants.java
new file mode 100644
index 0000000..a3baaf0
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/constant/RecordTypeConstants.java
@@ -0,0 +1,19 @@
+package org.dromara.system.constant;
+
+/**
+ * 点赞,收藏,浏览记录
+ */
+public interface RecordTypeConstants {
+ /**
+ * 点赞
+ */
+ Integer LIKE = 1;
+ /**
+ * 收藏
+ */
+ Integer COLLECT = 2;
+ /**
+ * 记录
+ */
+ Integer RECORD = 3;
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/constant/StatusConstants.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/constant/StatusConstants.java
new file mode 100644
index 0000000..04f4aec
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/constant/StatusConstants.java
@@ -0,0 +1,8 @@
+package org.dromara.system.constant;
+
+public interface StatusConstants {
+
+ Integer DISABLED = 0;
+
+ Integer IN_USE = 1;
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/portal/PersonSpaceController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/portal/PersonSpaceController.java
new file mode 100644
index 0000000..3a3eed0
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/portal/PersonSpaceController.java
@@ -0,0 +1,40 @@
+package org.dromara.system.controller.portal;
+
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.system.domain.bo.SysOssTextbookBo;
+import org.dromara.system.domain.vo.SysOssTextbookVo;
+import org.dromara.system.service.ISysOssTextbookService;
+import org.dromara.system.service.ISysTextbookRecordService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
TODO
+ *
+ * @author cjw
+ * @version V1.0.0
+ * @date 2024/7/15 16:59
+ */
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/person")
+public class PersonSpaceController {
+
+ private final ISysTextbookRecordService recordService;
+
+ private final ISysOssTextbookService textbookService;
+
+ /**
+ * 查询我的上传
+ */
+ @GetMapping("/textbook/pageList")
+ public TableDataInfo textbookList(SysOssTextbookBo bo, PageQuery pageQuery) {
+ bo.setCreateBy(LoginHelper.getUserId());
+ return textbookService.queryPageList(bo, pageQuery);
+ }
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/portal/PortalController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/portal/PortalController.java
index 68b3d1f..dd049a8 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/portal/PortalController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/portal/PortalController.java
@@ -46,7 +46,7 @@ public class PortalController extends BaseController {
* 查询门户Banner列表
*/
@GetMapping("/banner/list")
- public TableDataInfo bannerList(HttpServletRequest request,SysHomeBannerBo bo, PageQuery pageQuery) {
+ public TableDataInfo bannerList(HttpServletRequest request, SysHomeBannerBo bo, PageQuery pageQuery) {
String tenantId = ServletUtils.getHeader(request, "Tenantid");
TenantHelper.setDynamic(tenantId);
return bannerService.queryPageList(bo, pageQuery);
@@ -56,7 +56,7 @@ public class PortalController extends BaseController {
* 查询学校名师列表
*/
@GetMapping("/show/list")
- public TableDataInfo showList(HttpServletRequest request,SysHomeShowBo bo, PageQuery pageQuery) {
+ public TableDataInfo showList(HttpServletRequest request, SysHomeShowBo bo, PageQuery pageQuery) {
String tenantId = ServletUtils.getHeader(request, "Tenantid");
TenantHelper.setDynamic(tenantId);
return showService.queryPageList(bo, pageQuery);
@@ -77,7 +77,7 @@ public class PortalController extends BaseController {
* 查询学校动态列表
*/
@GetMapping("/trend/list")
- public TableDataInfo trendList(HttpServletRequest request,SysHomeTrendBo bo, PageQuery pageQuery) {
+ public TableDataInfo trendList(HttpServletRequest request, SysHomeTrendBo bo, PageQuery pageQuery) {
String tenantId = ServletUtils.getHeader(request, "Tenantid");
TenantHelper.setDynamic(tenantId);
return trendService.queryPageList(bo, pageQuery);
@@ -98,7 +98,7 @@ public class PortalController extends BaseController {
* 分页查询目录-专题资源
*/
@GetMapping("/resource/catalog/pageList")
- public TableDataInfo pageList(HttpServletRequest request,SysCatalogResourceBo bo, PageQuery pageQuery) {
+ public TableDataInfo pageList(HttpServletRequest request, SysCatalogResourceBo bo, PageQuery pageQuery) {
String tenantId = ServletUtils.getHeader(request, "Tenantid");
//TenantHelper.setDynamic(tenantId);
bo.setAncestors(tenantId);
@@ -109,7 +109,7 @@ public class PortalController extends BaseController {
* 查询目录-专题资源
*/
@GetMapping("/resource/catalog/tree")
- public R>> treeList(HttpServletRequest request,SysCatalogResourceBo bo) {
+ public R>> treeList(HttpServletRequest request, SysCatalogResourceBo bo) {
String tenantId = ServletUtils.getHeader(request, "Tenantid");
TenantHelper.setDynamic(tenantId);
List> trees = resourceService.buildTreeSelect(bo);
@@ -121,7 +121,7 @@ public class PortalController extends BaseController {
* 查询目录-专题资源
*/
@GetMapping("/resource/catalog/list")
- public R> resourceCatalogList(HttpServletRequest request,SysCatalogResourceBo bo) {
+ public R> resourceCatalogList(HttpServletRequest request, SysCatalogResourceBo bo) {
String tenantId = ServletUtils.getHeader(request, "Tenantid");
TenantHelper.setDynamic(tenantId);
List list = resourceService.queryList(bo);
@@ -132,7 +132,7 @@ public class PortalController extends BaseController {
* 查询专题资源列表
*/
@GetMapping("/resource/list")
- public TableDataInfo resourceList(HttpServletRequest request,SysOssResourceBo bo, PageQuery pageQuery) {
+ public TableDataInfo resourceList(HttpServletRequest request, SysOssResourceBo bo, PageQuery pageQuery) {
String tenantId = ServletUtils.getHeader(request, "Tenantid");
TenantHelper.setDynamic(tenantId);
return ossResourceService.queryPageList(bo, pageQuery);
@@ -146,15 +146,15 @@ public class PortalController extends BaseController {
@PostMapping("/resource/preview/{id}")
- public R resourcePreview(@PathVariable Long id) {
- return R.ok("操作成功",ossResourceService.preview(id));
+ public R resourcePreview(@PathVariable Long id) {
+ return R.ok("操作成功", ossResourceService.preview(id));
}
/**
* 查询目录-同步教材
*/
@GetMapping("/textbook/catalog/tree")
- public R>> treeList(HttpServletRequest request,SysCatalogTextbookBo bo) {
+ public R>> treeList(HttpServletRequest request, SysCatalogTextbookBo bo) {
String tenantId = ServletUtils.getHeader(request, "Tenantid");
TenantHelper.setDynamic(tenantId);
List> trees = textbookService.buildTreeSelect(bo);
@@ -165,7 +165,7 @@ public class PortalController extends BaseController {
* 查询目录-同步教材
*/
@GetMapping("/textbook/catalog/list")
- public R> textbookCatalogList(HttpServletRequest request,SysCatalogTextbookBo bo) {
+ public R> textbookCatalogList(HttpServletRequest request, SysCatalogTextbookBo bo) {
String tenantId = ServletUtils.getHeader(request, "Tenantid");
TenantHelper.setDynamic(tenantId);
List list = textbookService.queryList(bo);
@@ -176,7 +176,7 @@ public class PortalController extends BaseController {
* 查询同步教材列表
*/
@GetMapping("/textbook/list")
- public TableDataInfo textbookList(HttpServletRequest request,SysOssTextbookBo bo, PageQuery pageQuery) {
+ public TableDataInfo textbookList(HttpServletRequest request, SysOssTextbookBo bo, PageQuery pageQuery) {
String tenantId = ServletUtils.getHeader(request, "Tenantid");
TenantHelper.setDynamic(tenantId);
return ossTextbookService.queryPageList(bo, pageQuery);
@@ -185,11 +185,33 @@ public class PortalController extends BaseController {
@GetMapping("/textbook/{id}")
public R getTextbookInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
- return R.ok(ossTextbookService.queryById(id));
+ return R.ok(ossTextbookService.browseById(id));
}
@PostMapping("/textbook/preview/{id}")
public R textbookPreview(@PathVariable Long id) {
- return R.ok("操作成功",ossTextbookService.preview(id));
+ return R.ok("操作成功", ossTextbookService.preview(id));
+ }
+
+ /**
+ * 点赞
+ *
+ * @param bo
+ * @return
+ */
+ @PostMapping("/textbook/like")
+ public R like(@RequestBody OperateOssTextbookBo bo) {
+ return toAjax(ossTextbookService.like(bo));
+ }
+
+ /**
+ * 收藏
+ *
+ * @param bo
+ * @return
+ */
+ @PostMapping("/textbook/collect")
+ public R collect(@RequestBody OperateOssTextbookBo bo) {
+ return toAjax(ossTextbookService.collect(bo));
}
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssTextbook.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssTextbook.java
index 205904f..c742a3e 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssTextbook.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssTextbook.java
@@ -57,8 +57,9 @@ public class SysOssTextbook extends TenantEntity {
private Integer status;
private Long downloadNum;
-
private Long previewNum;
+ private Long likeNum;
+ private Long collectNum;
/**
* 删除标志(0代表存在 2代表删除)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTextbookRecord.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTextbookRecord.java
new file mode 100644
index 0000000..9f67327
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTextbookRecord.java
@@ -0,0 +1,36 @@
+package org.dromara.system.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 同步教材记录对象 sys_textbook_record
+ *
+ * @author cjw
+ * @date 2024-07-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("sys_textbook_record")
+public class SysTextbookRecord extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @TableId(type = IdType.INPUT)
+ private Long ossTextbookId;
+
+ /**
+ *
+ */
+ private Integer recordType;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/OperateOssTextbookBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/OperateOssTextbookBo.java
new file mode 100644
index 0000000..418a903
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/OperateOssTextbookBo.java
@@ -0,0 +1,24 @@
+package org.dromara.system.domain.bo;
+
+import lombok.Data;
+
+/**
+ * 点赞,收藏等操作
+ *
+ * @author cjw
+ * @version V1.0.0
+ * @date 2024/7/15 14:51
+ */
+@Data
+public class OperateOssTextbookBo {
+ /**
+ * 同步教材id
+ */
+ private Long ossTextbookId;
+
+ /**
+ * 具体操作 1.确定 0.取消
+ */
+ private Integer operate;
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTextbookRecordBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTextbookRecordBo.java
new file mode 100644
index 0000000..19ef287
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTextbookRecordBo.java
@@ -0,0 +1,36 @@
+package org.dromara.system.domain.bo;
+
+import org.dromara.system.domain.SysTextbookRecord;
+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_textbook_record
+ *
+ * @author cjw
+ * @date 2024-07-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SysTextbookRecord.class, reverseConvertGenerate = false)
+public class SysTextbookRecordBo extends BaseEntity {
+
+ /**
+ *
+ */
+ @NotNull(message = "不能为空", groups = { EditGroup.class })
+ private Long ossTextbookId;
+
+ /**
+ *
+ */
+ @NotNull(message = "不能为空", groups = { EditGroup.class })
+ private Integer recordType;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssTextbookVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssTextbookVo.java
index 9a0f537..92818e8 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssTextbookVo.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssTextbookVo.java
@@ -64,7 +64,8 @@ public class SysOssTextbookVo implements Serializable {
private Long downloadNum;
private Long previewNum;
-
+ private Long likeNum;
+ private Long collectNum;
/**
* 容量
*/
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTextbookRecordVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTextbookRecordVo.java
new file mode 100644
index 0000000..e521aa3
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTextbookRecordVo.java
@@ -0,0 +1,38 @@
+package org.dromara.system.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.system.domain.SysTextbookRecord;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+
+
+/**
+ * 同步教材记录视图对象 sys_textbook_record
+ *
+ * @author cjw
+ * @date 2024-07-15
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = SysTextbookRecord.class)
+public class SysTextbookRecordVo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private Long ossTextbookId;
+
+ /**
+ *
+ */
+ private Integer recordType;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssTextbookMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssTextbookMapper.java
index 3b68f0e..4fe7e3e 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssTextbookMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssTextbookMapper.java
@@ -21,13 +21,21 @@ import org.dromara.system.domain.vo.SysOssTextbookVo;
@Mapper
public interface SysOssTextbookMapper extends BaseMapperPlus {
Page selectPageList(@Param("page") Page page,
- @Param(Constants.WRAPPER) Wrapper queryWrapper);
+ @Param(Constants.WRAPPER) Wrapper queryWrapper);
+
@DataPermission({
@DataColumn(key = "userName", value = "ot.create_by")
})
Page selectPageAwaitList(@Param("page") Page page,
- @Param(Constants.WRAPPER) Wrapper queryWrapper);
+ @Param(Constants.WRAPPER) Wrapper queryWrapper);
int addDownloadNum(Long id);
+
int addPreviewNum(Long id);
+
+ int addLikeNum(Long id);
+ int subLikeNum(Long id);
+
+ int addCollectNum(Long id);
+ int subCollectNum(Long id);
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTextbookRecordMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTextbookRecordMapper.java
new file mode 100644
index 0000000..1f96d09
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTextbookRecordMapper.java
@@ -0,0 +1,17 @@
+package org.dromara.system.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.dromara.system.domain.SysTextbookRecord;
+import org.dromara.system.domain.vo.SysTextbookRecordVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 同步教材记录Mapper接口
+ *
+ * @author cjw
+ * @date 2024-07-15
+ */
+@Mapper
+public interface SysTextbookRecordMapper extends BaseMapperPlus {
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssTextbookService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssTextbookService.java
index e2d4340..70730ff 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssTextbookService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssTextbookService.java
@@ -4,6 +4,7 @@ package org.dromara.system.service;
import jakarta.servlet.http.HttpServletResponse;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.system.domain.bo.OperateOssTextbookBo;
import org.dromara.system.domain.bo.SysOssTextbookBo;
import org.dromara.system.domain.vo.SysOssTextbookVo;
@@ -21,10 +22,10 @@ public interface ISysOssTextbookService {
/**
* 查询【请填写功能名称】
*
- * @param ossId 主键
+ * @param id 主键
* @return 【请填写功能名称】
*/
- SysOssTextbookVo queryById(Long ossId);
+ SysOssTextbookVo queryById(Long id);
/**
* 分页查询【请填写功能名称】列表
@@ -94,4 +95,10 @@ public interface ISysOssTextbookService {
String preview(Long id);
+ Boolean like(OperateOssTextbookBo bo);
+
+ Boolean collect(OperateOssTextbookBo bo);
+
+ SysOssTextbookVo browseById(Long id);
+
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysTextbookRecordService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysTextbookRecordService.java
new file mode 100644
index 0000000..b1bec6f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysTextbookRecordService.java
@@ -0,0 +1,43 @@
+package org.dromara.system.service;
+
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.system.domain.bo.SysTextbookRecordBo;
+import org.dromara.system.domain.vo.SysTextbookRecordVo;
+
+import java.util.List;
+
+/**
+ * 同步教材记录Service接口
+ *
+ * @author cjw
+ * @date 2024-07-15
+ */
+public interface ISysTextbookRecordService {
+
+ /**
+ * 查询同步教材记录
+ *
+ * @param ossTextbookId 主键
+ * @return 同步教材记录
+ */
+ SysTextbookRecordVo queryById(Long ossTextbookId);
+
+ /**
+ * 分页查询同步教材记录列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 同步教材记录分页列表
+ */
+ TableDataInfo queryPageList(SysTextbookRecordBo bo, PageQuery pageQuery);
+
+ /**
+ * 查询符合条件的同步教材记录列表
+ *
+ * @param bo 查询条件
+ * @return 同步教材记录列表
+ */
+ List queryList(SysTextbookRecordBo bo);
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssTextbookServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssTextbookServiceImpl.java
index cc35de6..ed6634d 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssTextbookServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssTextbookServiceImpl.java
@@ -16,14 +16,20 @@ import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.helper.DataBaseHelper;
+import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.constant.FileTypeConstants;
+import org.dromara.system.constant.RecordTypeConstants;
+import org.dromara.system.constant.StatusConstants;
import org.dromara.system.domain.SysCatalogTextbook;
import org.dromara.system.domain.SysOssTextbook;
+import org.dromara.system.domain.SysTextbookRecord;
+import org.dromara.system.domain.bo.OperateOssTextbookBo;
import org.dromara.system.domain.bo.SysOssTextbookBo;
import org.dromara.system.domain.vo.SysCatalogTextbookVo;
import org.dromara.system.domain.vo.SysOssTextbookVo;
import org.dromara.system.domain.vo.SysOssVo;
import org.dromara.system.mapper.SysOssTextbookMapper;
+import org.dromara.system.mapper.SysTextbookRecordMapper;
import org.dromara.system.service.ISysCatalogTextbookService;
import org.dromara.system.service.ISysOssService;
import org.dromara.system.service.ISysOssTextbookService;
@@ -49,15 +55,17 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService {
private final ISysOssService ossService;
+ private final SysTextbookRecordMapper textbookRecordMapper;
+
/**
* 查询【请填写功能名称】
*
- * @param ossId 主键
+ * @param id 主键
* @return 【请填写功能名称】
*/
@Override
- public SysOssTextbookVo queryById(Long ossId) {
- return baseMapper.selectVoById(ossId);
+ public SysOssTextbookVo queryById(Long id) {
+ return baseMapper.selectVoById(id);
}
/**
@@ -122,6 +130,7 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService {
.eq(ObjectUtil.isNotNull(bo.getType()), "ot.type", bo.getType())
.eq(ObjectUtil.isNotNull(bo.getStatus()), "ot.status", bo.getStatus())
.eq(StringUtils.isNotEmpty(bo.getFileSuffix()), "ot.file_suffix", bo.getFileSuffix())
+ .eq(ObjectUtil.isNotNull(bo.getCreateBy()), "ot.create_by", bo.getCreateBy())
.like(StringUtils.isNotEmpty(bo.getFileName()), "ot.file_name", bo.getFileName())
.and(ObjectUtil.isNotNull(bo.getCatalogId()), w -> {
List list = catalogService.selectList(new LambdaQueryWrapper()
@@ -295,6 +304,64 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService {
return ossService.getUrlById(ossTextbook.getOssId());
}
+ @Override
+ public Boolean like(OperateOssTextbookBo bo) {
+ Long userId = LoginHelper.getUserId();
+ Integer operate = bo.getOperate();
+ Long ossTextbookId = bo.getOssTextbookId();
+ SysTextbookRecord data = new SysTextbookRecord();
+ data.setOssTextbookId(bo.getOssTextbookId());
+ data.setRecordType(RecordTypeConstants.LIKE);
+ if (StatusConstants.IN_USE.equals(operate)) {
+ baseMapper.addLikeNum(ossTextbookId);
+ textbookRecordMapper.insert(data);
+ } else {
+ textbookRecordMapper.delete(new LambdaQueryWrapper()
+ .eq(SysTextbookRecord::getOssTextbookId, data.getOssTextbookId())
+ .eq(SysTextbookRecord::getRecordType, data.getRecordType())
+ .eq(SysTextbookRecord::getCreateBy, userId));
+ baseMapper.subLikeNum(ossTextbookId);
+ }
+ return true;
+ }
+
+ @Override
+ public Boolean collect(OperateOssTextbookBo bo) {
+ Long userId = LoginHelper.getUserId();
+ Integer operate = bo.getOperate();
+ Long ossTextbookId = bo.getOssTextbookId();
+ SysTextbookRecord data = new SysTextbookRecord();
+ data.setOssTextbookId(bo.getOssTextbookId());
+ data.setRecordType(RecordTypeConstants.COLLECT);
+ if (StatusConstants.IN_USE.equals(operate)) {
+ baseMapper.addCollectNum(ossTextbookId);
+ textbookRecordMapper.insert(data);
+ } else {
+ textbookRecordMapper.delete(new LambdaQueryWrapper()
+ .eq(SysTextbookRecord::getOssTextbookId, data.getOssTextbookId())
+ .eq(SysTextbookRecord::getRecordType, data.getRecordType())
+ .eq(SysTextbookRecord::getCreateBy, userId));
+ baseMapper.subCollectNum(ossTextbookId);
+ }
+ return true;
+ }
+
+ @Override
+ public SysOssTextbookVo browseById(Long id) {
+ Long userId = LoginHelper.getUserId();
+ SysOssTextbookVo ossTextbookVo = baseMapper.selectVoById(id);
+ SysTextbookRecord data = new SysTextbookRecord();
+ data.setOssTextbookId(id);
+ data.setRecordType(RecordTypeConstants.RECORD);
+ //不管如何先删再添加
+ textbookRecordMapper.delete(new LambdaQueryWrapper()
+ .eq(SysTextbookRecord::getOssTextbookId, data.getOssTextbookId())
+ .eq(SysTextbookRecord::getRecordType, data.getRecordType())
+ .eq(SysTextbookRecord::getCreateBy, userId));
+ textbookRecordMapper.insert(data);
+ return ossTextbookVo;
+ }
+
private List processFormatSuffixQuery(int format) {
switch (format) {
case 1 -> {
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTextbookRecordServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTextbookRecordServiceImpl.java
new file mode 100644
index 0000000..4e4ebdc
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTextbookRecordServiceImpl.java
@@ -0,0 +1,74 @@
+package org.dromara.system.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.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.system.domain.SysTextbookRecord;
+import org.dromara.system.domain.bo.SysTextbookRecordBo;
+import org.dromara.system.domain.vo.SysTextbookRecordVo;
+import org.dromara.system.mapper.SysTextbookRecordMapper;
+import org.dromara.system.service.ISysTextbookRecordService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 同步教材记录Service业务层处理
+ *
+ * @author cjw
+ * @date 2024-07-15
+ */
+@RequiredArgsConstructor
+@Service
+public class SysTextbookRecordServiceImpl implements ISysTextbookRecordService {
+
+ private final SysTextbookRecordMapper baseMapper;
+
+ /**
+ * 查询同步教材记录
+ *
+ * @param ossTextbookId 主键
+ * @return 同步教材记录
+ */
+ @Override
+ public SysTextbookRecordVo queryById(Long ossTextbookId){
+ return baseMapper.selectVoById(ossTextbookId);
+ }
+
+ /**
+ * 分页查询同步教材记录列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 同步教材记录分页列表
+ */
+ @Override
+ public TableDataInfo queryPageList(SysTextbookRecordBo 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(SysTextbookRecordBo bo) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(SysTextbookRecordBo bo) {
+ Map params = bo.getParams();
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ return lqw;
+ }
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssTextbookMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssTextbookMapper.xml
index dc1f2e9..402948d 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssTextbookMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssTextbookMapper.xml
@@ -28,4 +28,28 @@
set preview_num = preview_num + 1
where id = #{id}
+
+
+ update sys_oss_textbook
+ set like_num = like_num + 1
+ where id = #{id}
+
+
+
+ update sys_oss_textbook
+ set like_num = like_num - 1
+ where id = #{id}
+
+
+
+ update sys_oss_textbook
+ set collect_num = collect_num + 1
+ where id = #{id}
+
+
+
+ update sys_oss_textbook
+ set collect_num = collect_num - 1
+ where id = #{id}
+
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTextbookRecordMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTextbookRecordMapper.xml
new file mode 100644
index 0000000..2446a2d
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTextbookRecordMapper.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ replace into
+
+