admin
2021-09-24 f788607ff771a47bc60d6a86e00b3433c40f3d2c
src/main/java/com/yeshi/buwan/service/imp/juhe/TencentVideoServiceImpl.java
@@ -1,16 +1,24 @@
package com.yeshi.buwan.service.imp.juhe;
import com.yeshi.buwan.dao.juhe.tencent.TencentCoverInfoDao;
import com.yeshi.buwan.dao.juhe.tencent.TencentCoverVideoDao;
import com.yeshi.buwan.dao.juhe.tencent.TencentSearchVideoMapDao;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.service.inter.juhe.TencentVideoService;
import com.yeshi.buwan.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.youku.entity.YouKuVideo;
import com.yeshi.buwan.videos.tencent.TencentVideoUtil;
import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.videos.tencent.entity.TencentCoverVideo;
import com.yeshi.buwan.videos.tencent.entity.TencentSearchVideoMap;
import com.yeshi.buwan.util.factory.InternetSearchVideoFactory;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -18,36 +26,126 @@
public class TencentVideoServiceImpl implements TencentVideoService {
    @Resource
    private TencentSearchVideoMapDao tencentSearchVideoMapDao;
    @Resource
    private TencentCoverInfoDao tencentCoverInfoDao;
    @Resource
    private TencentCoverVideoDao tencentCoverVideoDao;
    @Resource
    private InternetSearchVideoService internetSearchVideoService;
    @Override
    public void save(TencentCoverInfo detail) {
    public void save(TencentCoverInfo detail) throws Exception {
        List<TencentCoverVideo> videoList = new ArrayList<>();
        for (TencentCoverInfo.VipIdsBean idsBean : detail.getVip_ids()) {
            TencentCoverVideo video = new TencentCoverVideo();
            video.setCoverId(detail.getCover_id());
            video.setPosition(idsBean.getP());
            video.setStage(idsBean.getP() + 1);
            video.setVideoId(idsBean.getV());
            video.setLink(String.format("https://v.qq.com/x/cover/%s/%s.html", detail.getCover_id(), idsBean.getV()));
            if (idsBean.getF() == 2 || idsBean.getF() == 7)
                videoList.add(video);
        }
        detail.setVideoList(videoList);
        if (detail.getUpdateTime() == null)
            detail.setUpdateTime(new Date());
        tencentCoverInfoDao.save(detail);
        if (detail.getVideoList() != null)
            for (TencentCoverVideo video : detail.getVideoList()) {
                if (video.getUpdateTime() == null) {
                    video.setUpdateTime(new Date());
                }
                tencentCoverVideoDao.save(video);
            }
    }
    @Override
    public TencentCoverInfo getConverDetail(String id) {
        TencentCoverInfo detail = tencentCoverInfoDao.get(id);
    public TencentCoverInfo getCoverDetail(String coverId) {
        TencentCoverInfo detail = tencentCoverInfoDao.get(coverId);
        Query query = new Query();
        if (detail != null) {
            query.addCriteria(Criteria.where("coverId").is(coverId));
        }
        query.with(new Sort(new Sort.Order(Sort.Direction.ASC, "show_videoseq")));
        List<TencentCoverVideo> videoList = tencentCoverVideoDao.findList(query);
        detail.setVideoList(videoList);
        return detail;
    }
    @Override
    public long count(String type) {
    public TencentCoverInfo getSimpleCoverDetail(String coverId) {
        TencentCoverInfo detail = tencentCoverInfoDao.get(coverId);
        return detail;
    }
    @Override
    public List<TencentCoverVideo> getVideoList(String coverId, int page, int pageSize) {
        Query query = new Query();
        if (type != null)
            query.addCriteria(Criteria.where("type").is(type));
        query.addCriteria(Criteria.where("coverId").is(coverId));
        query.with(new Sort(new Sort.Order(Sort.Direction.ASC, "position")));
        query.skip((page - 1) * pageSize);
        query.limit(pageSize);
        List<TencentCoverVideo> videoList = tencentCoverVideoDao.findList(query);
        return videoList;
    }
    @Override
    public TencentCoverVideo getVideoDetail(String id) {
        return tencentCoverVideoDao.get(id);
    }
    @Override
    public long count(String category) {
        Query query = new Query();
        if (category != null)
            query.addCriteria(Criteria.where("type_name").is(category));
        return tencentCoverInfoDao.count(query);
    }
    @Override
    public List<TencentCoverInfo> list(String type, int page, int pageSize) {
    public List<TencentCoverInfo> list(String category, int page, int pageSize) {
        Query query = new Query();
        if (type != null)
            query.addCriteria(Criteria.where("type").is(type));
        if (category != null)
            query.addCriteria(Criteria.where("type_name").is(category));
        query.limit(pageSize);
        query.skip((page - 1) * pageSize);
        return tencentCoverInfoDao.findList(query);
    }
    @Override
    public List<VideoDetailInfo> getVideoDetailList(String videoid, int page, int pageSize) {
        TencentSearchVideoMap map = tencentSearchVideoMapDao.selectByVideoId(videoid);
        if (map == null)
            return null;
        TencentCoverInfo coverInfo = tencentCoverInfoDao.get(map.getCoverId());
        return TencentVideoUtil.convertToDetail(getVideoList(map.getCoverId(), page, pageSize), coverInfo);
    }
    @Override
    public TencentSearchVideoMap selectMapByVideoId(String videoId) {
        TencentSearchVideoMap map = tencentSearchVideoMapDao.selectByVideoId(videoId);
        return map;
    }
    @Override
    public void addToInternetSearch(TencentCoverInfo showDetail) throws Exception {
        save(showDetail);
        InternetSearchVideo video = InternetSearchVideoFactory.create(showDetail);
        if (internetSearchVideoService.save(video) == null) {
            return;
        }
        TencentSearchVideoMap map = new TencentSearchVideoMap();
        map.setCoverId(showDetail.getId());
        map.setVideoId(video.getId());
        map.setCreateTime(new Date());
        tencentSearchVideoMapDao.save(map);
    }
}