From dc050f50a530ef7b0eaa378ca1790c26d4f0bfd5 Mon Sep 17 00:00:00 2001 From: inleft <inleft@qq.com> Date: Wed, 24 Aug 2022 03:44:06 +0800 Subject: [PATCH] 新增月台专用查询接口 --- snowy-main/src/main/java/vip/xiaonuo/modular/blogarticle/controller/BlogArticleOutsideController.java | 90 ++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 81 insertions(+), 9 deletions(-) diff --git a/snowy-main/src/main/java/vip/xiaonuo/modular/blogarticle/controller/BlogArticleOutsideController.java b/snowy-main/src/main/java/vip/xiaonuo/modular/blogarticle/controller/BlogArticleOutsideController.java index 9ffa313..69f7351 100644 --- a/snowy-main/src/main/java/vip/xiaonuo/modular/blogarticle/controller/BlogArticleOutsideController.java +++ b/snowy-main/src/main/java/vip/xiaonuo/modular/blogarticle/controller/BlogArticleOutsideController.java @@ -25,6 +25,7 @@ package vip.xiaonuo.modular.blogarticle.controller; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.PageUtil; @@ -36,6 +37,7 @@ import org.springframework.web.bind.annotation.*; import vip.xiaonuo.core.annotion.BusinessLog; import vip.xiaonuo.core.consts.MyConstant; +import vip.xiaonuo.core.consts.SymbolConstant; import vip.xiaonuo.core.context.constant.ConstantContextHolder; import vip.xiaonuo.core.enums.LogAnnotionOpTypeEnum; import vip.xiaonuo.core.exception.BlogException; @@ -53,11 +55,9 @@ import vip.xiaonuo.sys.modular.file.service.SysFileInfoService; import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.Future; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -186,6 +186,61 @@ return new SuccessResponseData(queryPage); } + + /** + * 查询blog文章(月台专用列表) + * + * @author inleft + * @date 2022-02-09 18:20:22 + */ + @GetMapping("/blogArticle/platform") + @BusinessLog(title = "外部blog系统_blog月台_查询", opType = LogAnnotionOpTypeEnum.QUERY) + public ResponseData platform(BlogArticleQueryDto queryDto) { + + Map<String, Object> param = new HashMap<>(16); + param.put("pageNo", PageUtil.getStart(queryDto.getPageNo() - 1, queryDto.getPageSize())); + param.put("pageSize", queryDto.getPageSize()); + + if (queryDto.getActiveKey().equals(MyConstant.platformType.type_2)) { + param.put("typeIds", new Long[]{10L});//临时id,后续需要修改(前方高能分类) + param.put("fileType", MyConstant.FileType.fileTypeVideo_3); + } else if (queryDto.getActiveKey().equals(MyConstant.platformType.type_3)) { + param.put("typeIds", new Long[]{99L});//临时id,后续需要修改 + param.put("fileType", MyConstant.FileType.fileTypePhoto_9); + } else { + param.put("typeIds", new Long[]{4L});//临时id,后续需要修改(音乐分类) + param.put("fileType", MyConstant.FileType.fileTypeVideo_3); + } + + String blogSourcePrefix = ConstantContextHolder.getBlogSourcePrefix(); + + //空类型查询条件,排除笔记系列,按更新时间倒序 + //含有类型查询,按发布时间倒序 + List<BlogArticleVo> resList = blogArticleService.searchPlatformList(param).stream().map(e -> { + if (StrUtil.isNotEmpty(e.getCoverFileURL())) { + if (!e.getCoverFileURL().startsWith("http")) { + //补上访问参数 + e.setCoverFileURL(blogSourcePrefix + e.getCoverFileURL()); + } + } + + //补充视频组,图片组的url + if (StrUtil.isNotEmpty(e.getPictureIds())) { + e.setPictureUrlList(this.getBlogSourceURLBatch(Arrays.stream(e.getPictureIds().split(SymbolConstant.COMMA)).collect(Collectors.toList()))); + } + + return e; + }).collect(Collectors.toList()); + + long count = blogArticleService.searchPlatformListCount(param); + + Page<BlogArticleVo> queryPage = new Page<>(queryDto.getPageNo(), queryDto.getPageSize()); + queryPage.setRecords(resList); + queryPage.setTotal(count); + + return new SuccessResponseData(queryPage); + } + @GetMapping("/blogArticle/queryBlogArticleDetail") @BusinessLog(title = "外部blog系统_blog文章详情_查询", opType = LogAnnotionOpTypeEnum.QUERY) public ResponseData queryBlogArticleDetail(BlogArticleQueryDto queryDto) { @@ -229,13 +284,9 @@ vo.setArticleFileURL(tempURL); vo.setCoverFileURL(this.getBlogSourceURL(vo.getCoverFileId())); - //特殊类型强制关联类型(如前方高能分类) - //如果有typeId,上下篇查询关联类型(默认按首页自然排序) - - while (!adjoiningRecord.isDone()) { try { - Thread.sleep(100); + Thread.sleep(50); } catch (InterruptedException e) { } } @@ -260,4 +311,25 @@ } } + private List<String> getBlogSourceURLBatch(List<String> fileIds) { + Map<String, SysFileInfo> sysFileInfoMap = fileInfoService.listByIds(fileIds).stream().collect(Collectors.toMap(e -> e.getId().toString(), Function.identity(), (k1, k2) -> k1)); + if (CollUtil.isEmpty(sysFileInfoMap)) { + return null; + } else { + List<String> urlList = new ArrayList<>(fileIds.size()); + String blogSourcePrefix = ConstantContextHolder.getBlogSourcePrefix(); + + SysFileInfo sysFileInfo; + for (String fileId : fileIds) { + sysFileInfo = sysFileInfoMap.getOrDefault(fileId, null); + if (sysFileInfo == null) { + urlList.add(null); + } else { + urlList.add(blogSourcePrefix + sysFileInfo.getFileBucket() + "/" + sysFileInfo.getFileObjectName()); + } + } + return urlList; + } + } + } -- Gitblit v1.9.1