You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
4.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.aurora.mapper;
import com.aurora.model.dto.ArticleAdminDTO;
// 导入各种数据传输对象(DTO),用于前台数据展示
import com.aurora.model.dto.ArticleCardDTO;
import com.aurora.model.dto.ArticleDTO;
import com.aurora.model.dto.ArticleStatisticsDTO;
import com.aurora.entity.Article;//导入和数据库对应的实体类Article,接口操作的就是这个实体类对应的数据库表
// 导入查询条件值对象
import com.aurora.model.vo.ConditionVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
// 定义ArticleMapper接口继承自MyBatis-Plus的BaseMapper接口泛型为Article实体类
// 继承BaseMapper后自动获得了基本的CRUD增删改查方法如insert、deleteById、updateById、selectById等
public interface ArticleMapper extends BaseMapper<Article> {
// 获取置顶和推荐文章列表(通常用于前段首页卡片展示)
// 返回ArticleCardDTO列表包含文章卡片所需的基本信息
List<ArticleCardDTO> listTopAndFeaturedArticles();
// 分页获取所有文章列表
// @Param注解给参数起别名在XML中可以通过#{current}和#{size}引用
// current: 当前页码size: 每页大小(每页条数)
List<ArticleCardDTO> listArticles(@Param("current") Long current, @Param("size") Long size);
// 根据分类ID分页获取文章列表
// categoryId: 分类ID用于筛选指定分类的文章
List<ArticleCardDTO> getArticlesByCategoryId(@Param("current") Long current, @Param("size") Long size, @Param("categoryId") Integer categoryId);
// 根据文章ID获取单篇文章详情包含文章完整内容等信息
// 返回ArticleDTO通常比ArticleCardDTO包含更多详细信息如文章正文
ArticleDTO getArticleById(@Param("articleId") Integer articleId);
// 根据当前文章ID获取上一篇文章的卡片信息按时间或ID排序
// 用于文章详情页的"上一篇"导航
ArticleCardDTO getPreArticleById(@Param("articleId") Integer articleId);
// 根据当前文章ID获取下一篇文章的卡片信息按时间或ID排序
// 用于文章详情页的"下一篇"导航
ArticleCardDTO getNextArticleById(@Param("articleId") Integer articleId);
// 获取第一篇文章的卡片信息按时间或ID排序通常是最早的文章
ArticleCardDTO getFirstArticle();
// 获取最后一篇文章的卡片信息按时间或ID排序通常是最新的文章
ArticleCardDTO getLastArticle();
// 根据标签ID分页获取文章归档列表
// tagId: 标签ID用于筛选带有指定标签的文章
List<ArticleCardDTO> listArticlesByTagId(@Param("current") Long current, @Param("size") Long size, @Param("tagId") Integer tagId);
// 分页获取文章归档列表(通常按时间分组,如按年月)
// 归档页面通常显示文章标题和创建时间,不显示完整内容
List<ArticleCardDTO> listArchives(@Param("current") Long current, @Param("size") Long size);
// 统计后台文章数量(根据查询条件)
// conditionVO: 包含各种查询条件,如关键词、状态、时间范围等
// 返回符合条件的文章总数,用于分页计算
Integer countArticleAdmins(@Param("conditionVO") ConditionVO conditionVO);
// 按条件分页查询获取后台文章列表(管理员功能)
// 返回ArticleAdminDTO列表可能包含更多管理字段如状态、浏览量等
List<ArticleAdminDTO> listArticlesAdmin(@Param("current") Long current, @Param("size") Long size, @Param("conditionVO") ConditionVO conditionVO);
// 获取文章统计信息(如按分类、标签、状态统计文章数量)
// 用于后台仪表盘的数据展示
List<ArticleStatisticsDTO> listArticleStatistics();
//@Param("参数名")MyBatis的注解用于给方法参数命名方便在对应的XML映射文件中通过#{参数名}获取参数值
}