============= 后端_文章归档 ============= 每篇文章都有一个创建时间,统计创建于某年某月的文章数即文章归档。 1 (非持久化)数据对象 1.1 归档数据对象 /ysdblog-api/src/main/java/com/weihome/ysdblog/dao/dos/ArchiveDo.java: @Data public class ArchiveDo { private Integer year; private Integer month; private Long count; } 2 文章数据访问 2.1 文章数据访问接口 /ysdblog-api/src/main/java/com/weihome/ysdblog/dao/mapper/ArticleMapper.java: public interface ArticleMapper extends BaseMapper
{ /** * 查询文章归档 */ List archive(); } 2.2 文章数据访问实现 SQL> select from_unixtime(create_date/1000, '%Y') as year, from_unixtime(create_date/1000, '%m') as month, count(*) from t_article group by year, month /ysdblog-api/src/main/resources/com/weihome/ysdblog/dao/mapper/ArticleMapper.xml: 3 文章服务 3.1 文章服务接口 /ysdblog-api/src/main/java/com/weihome/ysdblog/service/ArticleService.java: public interface ArticleService { ... /** * 查询文章归档 */ public Result archive(); ... } 3.2 文章服务实现 /ysdblog-api/src/main/java/com/weihome/ysdblog/service/impl/ArticleServiceImpl.java: ... public class ArticleServiceImpl implements ArticleService { ... @Override public Result archive() { List archiveDos = articleMapper.archive(); return Result.success(archiveDos); } ... } 4 文章控制器 /ysdblog-api/src/main/java/com/weihome/ysdblog/controller/ArticleController.java: ... public class ArticleController { ... /** * 查询文章归档 */ @GetMapping("archive") public Result archive() { return articleService.archive(); } ... } 5 运行测试 Postman GET localhost:8888/article/archive -------------------------------------- { "success": true, "code": 200, "msg": "success", "data": [ { "year": 2022, "month": 4, "count": 2 } ] }