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 + +