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
{ // 获取置顶和推荐文章列表(通常用于前段首页卡片展示) // 返回ArticleCardDTO列表,包含文章卡片所需的基本信息 List listTopAndFeaturedArticles(); // 分页获取所有文章列表 // @Param注解给参数起别名,在XML中可以通过#{current}和#{size}引用 // current: 当前页码,size: 每页大小(每页条数) List listArticles(@Param("current") Long current, @Param("size") Long size); // 根据分类ID分页获取文章列表 // categoryId: 分类ID,用于筛选指定分类的文章 List 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 listArticlesByTagId(@Param("current") Long current, @Param("size") Long size, @Param("tagId") Integer tagId); // 分页获取文章归档列表(通常按时间分组,如按年月) // 归档页面通常显示文章标题和创建时间,不显示完整内容 List listArchives(@Param("current") Long current, @Param("size") Long size); // 统计后台文章数量(根据查询条件) // conditionVO: 包含各种查询条件,如关键词、状态、时间范围等 // 返回符合条件的文章总数,用于分页计算 Integer countArticleAdmins(@Param("conditionVO") ConditionVO conditionVO); // 按条件分页查询获取后台文章列表(管理员功能) // 返回ArticleAdminDTO列表,可能包含更多管理字段(如状态、浏览量等) List listArticlesAdmin(@Param("current") Long current, @Param("size") Long size, @Param("conditionVO") ConditionVO conditionVO); // 获取文章统计信息(如按分类、标签、状态统计文章数量) // 用于后台仪表盘的数据展示 List listArticleStatistics(); //@Param("参数名"):MyBatis的注解,用于给方法参数命名,方便在对应的XML映射文件中通过#{参数名}获取参数值 }