| | |
| | | */ |
| | | package vip.xiaonuo.modular.blogStatistics; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.date.DateUnit; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | |
| | | import java.util.*; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | import java.util.stream.Stream; |
| | | |
| | | /** |
| | | * blog文章控制器 (提供给外部blog系统查询) |
| | |
| | | public ResponseData archive() { |
| | | //不考虑数据太多的情况,这里应该可以把数据全部捞出来 |
| | | |
| | | List<BlogArticle> articleList = blogArticleService.lambdaQuery() |
| | | .eq(BlogArticle::getIsEnable, MyConstant.Yes) |
| | | .eq(BlogArticle::getEditorStatus, MyConstant.Yes) |
| | | .le(BlogArticle::getPublishDate,DateUtil.date()) |
| | | .orderByDesc(BlogArticle::getSeparateYear) |
| | | .groupBy(BlogArticle::getSeparateYear) |
| | | .select(BlogArticle::getSeparateYear) |
| | | .list(); |
| | | Integer thisYear = DateUtil.thisYear(); |
| | | Integer startYear = blogArticleService.lambdaQuery().orderByAsc(BlogArticle::getSeparateYear).last(MyConstant.limit).one().getSeparateYear(); |
| | | List<Integer> yearList = Stream.iterate(thisYear, n -> n - 1).limit(thisYear - startYear + 1).collect(Collectors.toList()); |
| | | |
| | | List<BlogArchiveVo> res = new ArrayList<>(articleList.size()); |
| | | List<BlogArchiveVo> res = new ArrayList<>(yearList.size()); |
| | | BlogArchiveVo blogArchiveVo; |
| | | for (BlogArticle blogArticle : articleList) { |
| | | List<BlogArchiveDetailVo> tempVoList; |
| | | for (Integer year : yearList) { |
| | | |
| | | tempVoList = blogArticleService.searchMonthCount(year); |
| | | if (CollUtil.isEmpty(tempVoList)) { |
| | | continue; |
| | | } |
| | | blogArchiveVo = new BlogArchiveVo(); |
| | | blogArchiveVo.setYear(blogArticle.getSeparateYear().toString()); |
| | | blogArchiveVo.setList(blogArticleService.searchMonthCount(blogArticle.getSeparateYear())); |
| | | blogArchiveVo.setYear(year.toString()); |
| | | blogArchiveVo.setList(tempVoList); |
| | | |
| | | res.add(blogArchiveVo); |
| | | } |
| | | |
| | | return new SuccessResponseData(res); |
| | | } |
| | | |
| | | |
| | | @GetMapping("/blog/archiveGroup") |
| | | @BusinessLog(title = "外部blog系统_blog归档组列表_查询", opType = LogAnnotionOpTypeEnum.QUERY) |
| | |
| | | .eq(BlogArticle::getEditorStatus, MyConstant.Yes) |
| | | .eq(year != null, BlogArticle::getSeparateYear, year) |
| | | .eq(month != null, BlogArticle::getSeparateMonth, month) |
| | | .le(BlogArticle::getPublishDate,DateUtil.date()) |
| | | .le(BlogArticle::getPublishDate, DateUtil.date()) |
| | | .orderByDesc(BlogArticle::getSeparateYear) |
| | | .orderByDesc(BlogArticle::getSeparateMonth) |
| | | .select(BlogArticle::getId, BlogArticle::getTitle, |