|
@@ -0,0 +1,94 @@
|
|
|
+package com.tzld.longarticle.recommend.server.service.recommend;
|
|
|
+
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.tzld.longarticle.recommend.server.model.dto.LongArticlesMatchVideoResponse;
|
|
|
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.GetOffVideoArticle;
|
|
|
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticleCrawlerVideo;
|
|
|
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticleVideoAudit;
|
|
|
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticlesMatchVideo;
|
|
|
+import com.tzld.longarticle.recommend.server.model.param.ArticleVideoAuditResultParam;
|
|
|
+import com.tzld.longarticle.recommend.server.repository.longArticle.GetOffVideoArticleRepository;
|
|
|
+import com.tzld.longarticle.recommend.server.repository.longArticle.LongArticleCrawlerVideoRepository;
|
|
|
+import com.tzld.longarticle.recommend.server.repository.longArticle.LongArticlesMatchVideoRepository;
|
|
|
+import com.tzld.longarticle.recommend.server.util.DateUtils;
|
|
|
+import com.xxl.job.core.biz.model.ReturnT;
|
|
|
+import com.xxl.job.core.handler.annotation.XxlJob;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+@Service
|
|
|
+@Slf4j
|
|
|
+public class ArticleAuditService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private GetOffVideoArticleRepository getOffVideoArticleRepository;
|
|
|
+ @Autowired
|
|
|
+ private LongArticlesMatchVideoRepository longArticlesMatchVideoRepository;
|
|
|
+ @Autowired
|
|
|
+ private LongArticleCrawlerVideoRepository longArticleCrawlerVideoRepository;
|
|
|
+
|
|
|
+
|
|
|
+ @XxlJob("articleVideoAudit")
|
|
|
+ public ReturnT<String> articleVideoAudit(String param) {
|
|
|
+ long publishTime = DateUtils.getBeforeDayStart(1);
|
|
|
+ if (StringUtils.hasText(param)) {
|
|
|
+ publishTime = DateUtils.getStartOfDay(param, "yyyyMMdd");
|
|
|
+ }
|
|
|
+ List<GetOffVideoArticle> getOffVideoArticleList = getOffVideoArticleRepository.getByPublishTimeGreaterThanEqual(publishTime);
|
|
|
+ List<String> traceIds = getOffVideoArticleList.stream().map(GetOffVideoArticle::getTraceId).collect(Collectors.toList());
|
|
|
+ if (CollectionUtil.isEmpty(traceIds)) {
|
|
|
+ return ReturnT.SUCCESS;
|
|
|
+ }
|
|
|
+ List<LongArticlesMatchVideo> longArticlesMatchVideoList = longArticlesMatchVideoRepository.getByTraceIdIn(traceIds);
|
|
|
+ Map<String, LongArticlesMatchVideo> longarticlesMatchVideoMap = longArticlesMatchVideoList.stream()
|
|
|
+ .collect(Collectors.toMap(LongArticlesMatchVideo::getTraceId, Function.identity()));
|
|
|
+ List<LongArticleCrawlerVideo> longArticleCrawlerVideoList = longArticleCrawlerVideoRepository.getByTraceIdIn(traceIds);
|
|
|
+ Map<String, List<LongArticleCrawlerVideo>> longArticleCrawlerVideoMap = longArticleCrawlerVideoList.stream()
|
|
|
+ .collect(Collectors.groupingBy(LongArticleCrawlerVideo::getTraceId));
|
|
|
+ Map<String, LongArticleVideoAudit> traceIdMap = new HashMap<>();
|
|
|
+ for (String traceId : traceIds) {
|
|
|
+ LongArticlesMatchVideo longArticlesMatchVideo = longarticlesMatchVideoMap.get(traceId);
|
|
|
+ List<LongArticlesMatchVideoResponse> responseList = JSONArray.parseArray(longArticlesMatchVideo.getResponse()
|
|
|
+ , LongArticlesMatchVideoResponse.class);
|
|
|
+ List<String> videoOssList = new ArrayList<>();
|
|
|
+ responseList.forEach(item -> {
|
|
|
+ if (StringUtils.hasText(item.getVideoOSS())) {
|
|
|
+ videoOssList.add(item.getVideoOSS());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ List<LongArticleCrawlerVideo> longArticleCrawlerVideos = longArticleCrawlerVideoMap.get(traceId);
|
|
|
+ }
|
|
|
+
|
|
|
+ return ReturnT.SUCCESS;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void articleVideoAuditResult(ArticleVideoAuditResultParam param) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除审核不通过,已发布文章
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @XxlJob("articleVideoDelete")
|
|
|
+ public ReturnT<String> articleVideoDelete(String param) {
|
|
|
+
|
|
|
+ return ReturnT.SUCCESS;
|
|
|
+ }
|
|
|
+}
|