sxwz2.0/src/main/java/com/kexue/skills/service/CmsContentService.java
wangzhiwei 063bfbde12 feat(content): 添加内容查看记录和收藏功能
- 实现通过主键查询内容时支持用户ID参数
- 添加用户查看记录功能,防止5分钟内的重复记录
- 实现内容收藏和取消收藏功能
- 添加用户是否已收藏内容的检查方法
- 集成查看记录和收藏记录的数据持久化操作
- 在收藏操作时同步更新内容的点赞数量统计
2026-01-29 14:13:02 +08:00

141 lines
3.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.kexue.skills.service;
import com.github.pagehelper.PageInfo;
import com.kexue.skills.entity.CmsContent;
import com.kexue.skills.entity.dto.CmsContentDto;
import java.util.List;
/**
* (CmsContent)表服务接口
*
* @author 王志维
* @since 2025-02-21 23:01:48
*/
public interface CmsContentService extends BaseService {
/**
* 分页查询
*
* @param queryDto 筛选条件
* @return 查询结果
*/
PageInfo<CmsContent> getPageList(CmsContentDto queryDto);
/**
* 查询列表
*
* @param queryDto 筛选条件
* @return 查询结果
*/
List<CmsContent> getList(CmsContentDto queryDto);
/**
* 通过主键查询单条数据
*
* @param contentId 主键
* @return 实例对象
*/
CmsContent queryById(Long contentId);
/**
* 通过主键查询单条数据带用户ID
*
* @param contentId 主键
* @param userId 用户ID
* @return 实例对象
*/
CmsContent queryById(Long contentId, Long userId);
/**
* 新增数据
*
* @param cmsContent 实例对象
* @return 实例对象
*/
CmsContent insert(CmsContent cmsContent);
/**
* 更新数据
*
* @param cmsContent 实例对象
* @return 实例对象
*/
CmsContent update(CmsContent cmsContent);
/**
* 更新审核状态
*
* @param contentId 内容ID
* @param auditStatus 审核状态
* @param reviewerId 审核人ID
* @param reviewerName 审核人名称
* @param auditComment 审核意见
* @param updateBy 更新人
* @return 影响行数
*/
int updateAuditStatus(Long contentId, Integer auditStatus, Long reviewerId, String reviewerName, String auditComment, String updateBy);
/**
* 更新发布状态
*
* @param contentId 内容ID
* @param publishStatus 发布状态
* @param publishTime 发布时间
* @param updateBy 更新人
* @return 影响行数
*/
int updatePublishStatus(Long contentId, Integer publishStatus, String publishTime, String updateBy);
/**
* 增加阅读量
*
* @param contentId 内容ID
* @return 影响行数
*/
int increaseViewCount(Long contentId);
/**
* 通过主键逻辑删除
*
* @param contentId 主键
* @param updateBy 更新人
* @return 影响行数
*/
int logicDeleteById(Long contentId, String updateBy);
/**
* 通过主键物理删除
*
* @param contentId 主键
* @return 影响行数
*/
int deleteById(Long contentId);
/**
* 添加收藏
*
* @param contentId 内容ID
* @param userId 用户ID
* @param userName 用户名
* @return 影响行数
*/
int addFavorite(Long contentId, Long userId, String userName);
/**
* 取消收藏
*
* @param contentId 内容ID
* @param userId 用户ID
* @return 影响行数
*/
int removeFavorite(Long contentId, Long userId);
/**
* 检查用户是否已收藏该内容
*
* @param contentId 内容ID
* @param userId 用户ID
* @return 是否已收藏
*/
boolean isFavorited(Long contentId, Long userId);
}