From cb2e50914c13bf63c9415fae01063fe74e7ae292 Mon Sep 17 00:00:00 2001 From: inleft <inleft@qq.com> Date: Fri, 25 Feb 2022 18:35:24 +0800 Subject: [PATCH] 调整主页查询日志条件 --- snowy-main/src/main/java/vip/xiaonuo/modular/blogStatistics/BlogStatisticsController.java | 63 ++++++++++++++++++++++++++++++- 1 files changed, 60 insertions(+), 3 deletions(-) diff --git a/snowy-main/src/main/java/vip/xiaonuo/modular/blogStatistics/BlogStatisticsController.java b/snowy-main/src/main/java/vip/xiaonuo/modular/blogStatistics/BlogStatisticsController.java index 48e1960..47f6dc4 100644 --- a/snowy-main/src/main/java/vip/xiaonuo/modular/blogStatistics/BlogStatisticsController.java +++ b/snowy-main/src/main/java/vip/xiaonuo/modular/blogStatistics/BlogStatisticsController.java @@ -34,6 +34,7 @@ import vip.xiaonuo.core.enums.LogAnnotionOpTypeEnum; import vip.xiaonuo.core.pojo.response.ResponseData; import vip.xiaonuo.core.pojo.response.SuccessResponseData; +import vip.xiaonuo.modular.blogStatistics.vo.BlogArchiveDetailVo; import vip.xiaonuo.modular.blogStatistics.vo.BlogArchiveVo; import vip.xiaonuo.modular.blogStatistics.vo.BlogStatisticsVo; import vip.xiaonuo.modular.blogarticle.entity.BlogArticle; @@ -41,6 +42,8 @@ import javax.annotation.Resource; import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * blog文章控制器 (提供给外部blog系统查询) @@ -97,14 +100,12 @@ */ @GetMapping("/blog/archive") @BusinessLog(title = "外部blog系统_blog归档_查询", opType = LogAnnotionOpTypeEnum.QUERY) - public ResponseData archive(Integer year, Integer month) { + public ResponseData archive() { //不考虑数据太多的情况,这里应该可以把数据全部捞出来 List<BlogArticle> articleList = blogArticleService.lambdaQuery() .eq(BlogArticle::getIsEnable, MyConstant.Yes) .eq(BlogArticle::getEditorStatus, MyConstant.Yes) -// .eq(year != null,BlogArticle::getSeparateYear, year) -// .eq(month != null, BlogArticle::getSeparateMonth, month) .orderByDesc(BlogArticle::getSeparateYear) .groupBy(BlogArticle::getSeparateYear) .select(BlogArticle::getSeparateYear) @@ -123,5 +124,61 @@ return new SuccessResponseData(res); } + @GetMapping("/blog/archiveGroup") + @BusinessLog(title = "外部blog系统_blog归档组列表_查询", opType = LogAnnotionOpTypeEnum.QUERY) + public ResponseData archiveGroup(Integer year, Integer month) { + + List<BlogArticle> articleList = blogArticleService.lambdaQuery() + .eq(BlogArticle::getIsEnable, MyConstant.Yes) + .eq(BlogArticle::getEditorStatus, MyConstant.Yes) + .eq(year != null, BlogArticle::getSeparateYear, year) + .eq(month != null, BlogArticle::getSeparateMonth, month) + .orderByDesc(BlogArticle::getSeparateYear) + .orderByDesc(BlogArticle::getSeparateMonth) + .select(BlogArticle::getId, BlogArticle::getTitle, + BlogArticle::getAuthStatus, + BlogArticle::getSeparateYear, + BlogArticle::getSeparateMonth, + BlogArticle::getSeparateDay) + .list(); + + Map<Integer, List<BlogArticle>> groupMap = articleList.stream() + .collect(Collectors.groupingBy(e -> e.getSeparateYear(), LinkedHashMap::new, + Collectors.mapping(Function.identity(), Collectors.toList()))); + + List<BlogArchiveVo> res = new ArrayList<>(groupMap.size()); + BlogArchiveVo archiveVo; + + Map<String, List<BlogArchiveDetailVo.simpleVo>> detailGroup; + List<BlogArchiveDetailVo> tempDetailList; + + for (Integer key : groupMap.keySet()) { + archiveVo = new BlogArchiveVo(); + archiveVo.setYear(key.toString()); + + detailGroup = groupMap.get(key).stream() + .collect(Collectors.groupingBy(e -> e.getSeparateMonth().toString() + "月" + e.getSeparateDay() + "日", LinkedHashMap::new, + Collectors.mapping(e -> { + BlogArchiveDetailVo.simpleVo simpleVo = new BlogArchiveDetailVo.simpleVo(); + simpleVo.setName(e.getTitle()); + simpleVo.setId(e.getId()); + simpleVo.setAuthStatus(e.getAuthStatus()); + return simpleVo; + }, Collectors.toList()))); + + tempDetailList = new ArrayList<>(detailGroup.size()); + archiveVo.setList(tempDetailList); + for (String monthAndDay : detailGroup.keySet()) { + BlogArchiveDetailVo detailVo = new BlogArchiveDetailVo(); + detailVo.setMonth(monthAndDay); + detailVo.setList(detailGroup.get(monthAndDay)); + tempDetailList.add(detailVo); + } + + res.add(archiveVo); + } + + return new SuccessResponseData(res); + } } -- Gitblit v1.9.1