浏览代码

增加刷新视频信息接口

xueyiming 4 月之前
父节点
当前提交
1c5e8576d4

+ 2 - 0
tencent-ad-server/src/main/java/com/tzld/piaoquan/tencentad/service/AdVideoService.java

@@ -14,6 +14,8 @@ public interface AdVideoService {
 
     void addAdVideo(AdBaseVideo adBaseVideo);
 
+    void updateAdVideo(AdBaseVideo adBaseVideo);
+
     CommonResponse<Page<AdVideoVo>> getAdVideoList(Integer pageNum, Integer pageSize);
 
     void buildVideoImage(AdVideo adVideo);

+ 26 - 0
tencent-ad-server/src/main/java/com/tzld/piaoquan/tencentad/service/impl/AdBaseVideoServiceImpl.java

@@ -24,6 +24,7 @@ import org.springframework.util.CollectionUtils;
 
 import java.io.IOException;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static com.tzld.piaoquan.tencentad.common.constants.OtherServerURL.POST_VIDEO_DETAIL_URL;
 
@@ -58,6 +59,31 @@ public class AdBaseVideoServiceImpl implements AdBaseVideoService {
         return CommonResponse.success();
     }
 
+    public void refreshBaseVideo() {
+        long id = 0L;
+        int size = 100;
+        List<AdBaseVideo> adBaseVideos;
+        do {
+            AdBaseVideoExample example = new AdBaseVideoExample();
+            example.createCriteria().andIdGreaterThan(id);
+            example.setPage(new Page<>(1, size));
+            example.setOrderByClause("id asc");
+            adBaseVideos = adBaseVideoMapper.selectByExample(example);
+            if (CollectionUtils.isEmpty(adBaseVideos)) {
+                break;
+            }
+            id = adBaseVideos.get(adBaseVideos.size() - 1).getId();
+            List<Long> videoIds = adBaseVideos.stream().map(AdBaseVideo::getVideoId).collect(Collectors.toList());
+            Map<Long, AdBaseVideo> videoDetail = getVideoDetail(videoIds);
+            for (AdBaseVideo adBaseVideo : adBaseVideos) {
+                AdBaseVideo updateAdBaseVideo = videoDetail.get(adBaseVideo.getVideoId());
+                updateAdBaseVideo.setId(adBaseVideo.getId());
+                adBaseVideoMapper.updateByPrimaryKeySelective(updateAdBaseVideo);
+                adVideoService.updateAdVideo(adBaseVideo);
+            }
+        } while (!CollectionUtils.isEmpty(adBaseVideos));
+    }
+
     @Override
     public CommonResponse<Page<AdBaseVideoVo>> getAdBaseVideo(Integer pageNum, Integer pageSize,
                                                               List<Integer> status) {

+ 26 - 3
tencent-ad-server/src/main/java/com/tzld/piaoquan/tencentad/service/impl/AdVideoServiceImpl.java

@@ -57,13 +57,36 @@ public class AdVideoServiceImpl implements AdVideoService {
 
     public void addAdVideo(AdBaseVideo adBaseVideo) {
         AdVideo adVideo = new AdVideo();
-        BeanUtils.copyProperties(adBaseVideo, adVideo);
-        adVideo.setId(null);
-        adVideo.setStatus(0);
+        adVideo.setVideoId(adBaseVideo.getVideoId());
+        copyAdBaseVideo(adBaseVideo, adVideo);
         adVideoMapper.insertSelective(adVideo);
         buildVideoImage(adVideo);
     }
 
+    @Override
+    public void updateAdVideo(AdBaseVideo adBaseVideo) {
+        AdVideoExample example = new AdVideoExample();
+        example.createCriteria().andVideoIdEqualTo(adBaseVideo.getVideoId());
+        List<AdVideo> adVideos = adVideoMapper.selectByExample(example);
+        if (CollectionUtils.isEmpty(adVideos)) {
+            return;
+        }
+        for (AdVideo adVideo : adVideos) {
+            copyAdBaseVideo(adBaseVideo, adVideo);
+            adVideoMapper.updateByPrimaryKeySelective(adVideo);
+        }
+    }
+
+    private void copyAdBaseVideo(AdBaseVideo adBaseVideo, AdVideo adVideo) {
+        adVideo.setVideoPath(adBaseVideo.getVideoPath());
+        adVideo.setVideoCover(adBaseVideo.getVideoCover());
+        adVideo.setVideoTitle(adBaseVideo.getVideoTitle());
+        adVideo.setAuditStatus(adBaseVideo.getAuditStatus());
+        adVideo.setAppAuditStatus(adBaseVideo.getAppAuditStatus());
+        adVideo.setRecommendStatus(adBaseVideo.getRecommendStatus());
+        adVideo.setAppRecommendStatus(adBaseVideo.getAppRecommendStatus());
+    }
+
 
     @Override
     public CommonResponse<Page<AdVideoVo>> getAdVideoList(Integer pageNum, Integer pageSize) {