浏览代码

视频内容池使用改写后标题

wangyunpeng 4 月之前
父节点
当前提交
73c2af6bb6

+ 28 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/common/enums/longArticle/VideoTitleReWriteEnum.java

@@ -0,0 +1,28 @@
+package com.tzld.longarticle.recommend.server.common.enums.longArticle;
+
+import lombok.Getter;
+
+@Getter
+public enum VideoTitleReWriteEnum {
+
+    UNAVAILABLE(0, "不可用"),
+    AVAILABLE(1, "可用"),
+    ;
+
+    private final int code;
+    private final String msg;
+
+    VideoTitleReWriteEnum(int code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public static VideoTitleReWriteEnum getByCode(int code) {
+        for (VideoTitleReWriteEnum statusEnum : VideoTitleReWriteEnum.values()) {
+            if (statusEnum.getCode() == code) {
+                return statusEnum;
+            }
+        }
+        return null;
+    }
+}

+ 42 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/model/entity/longArticle/VideoTitleReWrite.java

@@ -0,0 +1,42 @@
+package com.tzld.longarticle.recommend.server.model.entity.longArticle;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "video_title_rewrite")
+public class VideoTitleReWrite {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "content_trace_id")
+    private String contentTraceId;
+
+    @Column(name = "new_title")
+    private String newTitle;
+
+    @Column(name = "status")
+    private Integer status;
+
+    @Column(name = "create_time")
+    private Date createTime;
+
+    @Column(name = "update_time")
+    private Date updateTime;
+
+    @Column(name = "prompt_version")
+    private String promptVersion;
+
+    @Column(name = "title_audit_status")
+    private Integer titleAuditStatus;
+
+}

+ 16 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/repository/longArticle/VideoTitleReWriteRepository.java

@@ -0,0 +1,16 @@
+package com.tzld.longarticle.recommend.server.repository.longArticle;
+
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.VideoTitleReWrite;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface VideoTitleReWriteRepository extends JpaRepository<VideoTitleReWrite, Long> {
+
+    List<VideoTitleReWrite> getByContentTraceIdInAndStatusAndTitleAuditStatus(List<String> contentTraceIdList,
+                                                                              Integer status, Integer titleAuditStatus);
+
+    List<VideoTitleReWrite> getByContentTraceIdInAndStatus(List<String> contentTraceIdList, Integer status);
+}

+ 26 - 1
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/ArticleVideoPoolService.java

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