| 
					
				 | 
			
			
				@@ -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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |