|
@@ -1,22 +1,47 @@
|
|
|
package com.tzld.longarticle.recommend.server.service;
|
|
|
|
|
|
+import com.tzld.longarticle.recommend.server.common.enums.longArticle.VideoTitleReWriteEnum;
|
|
|
import com.tzld.longarticle.recommend.server.mapper.longArticle.LongArticleBaseMapper;
|
|
|
import com.tzld.longarticle.recommend.server.model.entity.longArticle.PublishSingleVideoSource;
|
|
|
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.VideoTitleReWrite;
|
|
|
import com.tzld.longarticle.recommend.server.model.param.ArticleVideoPoolSourceParam;
|
|
|
import com.tzld.longarticle.recommend.server.model.vo.ArticleVideoPoolSourceVO;
|
|
|
+import com.tzld.longarticle.recommend.server.repository.longArticle.VideoTitleReWriteRepository;
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class ArticleVideoPoolService {
|
|
|
|
|
|
@Autowired
|
|
|
private LongArticleBaseMapper longArticleBaseMapper;
|
|
|
+ @Autowired
|
|
|
+ private VideoTitleReWriteRepository videoTitleReWriteRepository;
|
|
|
|
|
|
public List<ArticleVideoPoolSourceVO> getSource(ArticleVideoPoolSourceParam param) {
|
|
|
List<PublishSingleVideoSource> list = longArticleBaseMapper.getPublishSingleVideoSource(param);
|
|
|
- return ArticleVideoPoolSourceVO.convertFromPublishSingleVideoSource(list);
|
|
|
+ return buildArticleVideoPoolSourceVOList(list);
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<ArticleVideoPoolSourceVO> buildArticleVideoPoolSourceVOList(List<PublishSingleVideoSource> list) {
|
|
|
+ List<ArticleVideoPoolSourceVO> result = ArticleVideoPoolSourceVO.convertFromPublishSingleVideoSource(list);
|
|
|
+ List<String> contentTraceIdList = result.stream().map(ArticleVideoPoolSourceVO::getSourceId).collect(Collectors.toList());
|
|
|
+ List<VideoTitleReWrite> videoTitleReWriteList = videoTitleReWriteRepository.getByContentTraceIdInAndStatus(
|
|
|
+ contentTraceIdList, VideoTitleReWriteEnum.AVAILABLE.getCode());
|
|
|
+ Map<String, List<VideoTitleReWrite>> videoTitleReWriteMap = videoTitleReWriteList.stream()
|
|
|
+ .sorted((o1, o2) -> o2.getCreateTime().compareTo(o1.getCreateTime()))
|
|
|
+ .collect(Collectors.groupingBy(VideoTitleReWrite::getContentTraceId));
|
|
|
+ for (ArticleVideoPoolSourceVO vo : result) {
|
|
|
+ List<VideoTitleReWrite> reWriteList = videoTitleReWriteMap.get(vo.getSourceId());
|
|
|
+ if (CollectionUtils.isNotEmpty(reWriteList)) {
|
|
|
+ vo.setTitle(reWriteList.get(reWriteList.size() - 1).getNewTitle());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
}
|
|
|
}
|