admin
2021-09-24 f788607ff771a47bc60d6a86e00b3433c40f3d2c
src/main/java/com/yeshi/buwan/service/imp/juhe/BilibiliVideoServiceImpl.java
@@ -5,14 +5,21 @@
import com.yeshi.buwan.dao.juhe.bilibili.BilibiliSearchVideoMapDao;
import com.yeshi.buwan.dao.juhe.bilibili.BilibiliVideoDao;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.service.inter.juhe.BilibiliVideoService;
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.util.factory.InternetSearchVideoFactory;
import com.yeshi.buwan.videos.bilibili.BilibiliUtil;
import com.yeshi.buwan.videos.bilibili.entity.BilibiliEpInfo;
import com.yeshi.buwan.videos.bilibili.entity.BilibiliMediaInfo;
import com.yeshi.buwan.videos.bilibili.entity.BilibiliSearchVideoMap;
import com.yeshi.buwan.videos.bilibili.entity.BilibiliVideo;
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;
@@ -26,6 +33,8 @@
    private BilibiliVideoDao bilibiliVideoDao;
    @Resource
    private BilibiliSearchVideoMapDao bilibiliSearchVideoMapDao;
    @Resource
    private InternetSearchVideoService internetSearchVideoService;
    @Override
@@ -36,8 +45,10 @@
        bilibiliMediaInfoDao.save(mediaInfo);
        if (mediaInfo.getEpList() != null) {
            int orderBy = 0;
            for (BilibiliEpInfo ep : mediaInfo.getEpList()) {
                ep.setMediaId(mediaInfo.getMedia_id());
                ep.setOrderBy(++orderBy);
                if (ep.getCreateTime() == null)
                    ep.setCreateTime(new Date());
                bilibiliEpInfoDao.save(ep);
@@ -65,8 +76,9 @@
    @Override
    public BilibiliMediaInfo getSimpleMediaDetail(Long mediaId) {
        BilibiliMediaInfo mediaInfo = bilibiliMediaInfoDao.get(mediaId);
        return mediaInfo;
        Query query = new Query();
        query.addCriteria(Criteria.where("_id").is(mediaId));
        return bilibiliMediaInfoDao.findOne(query);
    }
    @Override
@@ -98,21 +110,61 @@
    @Override
    public List<VideoDetailInfo> getVideoDetailList(String videoid, int page, int pageSize) {
        BilibiliSearchVideoMap map = selectMapByVideoId(videoid);
        if (map == null)
            return null;
        if (map.getMediaId() != null) {
            BilibiliMediaInfo bilibiliMediaInfo = bilibiliMediaInfoDao.get(map.getMediaId());
            List<BilibiliEpInfo> bilibiliEpInfos = bilibiliEpInfoDao.listByMediaId(map.getMediaId(), (page - 1) * pageSize, pageSize);
            List<VideoDetailInfo> list = BilibiliUtil.convertToDetail(bilibiliEpInfos, bilibiliMediaInfo);
            return list;
        } else if (map.getVid() != null) {
            BilibiliVideo video = bilibiliVideoDao.get(map.getVid());
            VideoDetailInfo detailInfo = BilibiliUtil.convertToDetail(video);
            if (detailInfo == null)
                return null;
            List<VideoDetailInfo> detailInfoList = new ArrayList<>();
            detailInfoList.add(detailInfo);
            return detailInfoList;
        }
        return null;
    }
    @Override
    public BilibiliSearchVideoMap selectMapByVideoId(String videoId) {
        return null;
        return bilibiliSearchVideoMapDao.selectByVideoId(videoId);
    }
    @Override
    public void addToInternetSearch(BilibiliMediaInfo mediaInfo) throws Exception {
        if (mediaInfo == null)
            return;
        save(mediaInfo);
        InternetSearchVideo video = InternetSearchVideoFactory.create(mediaInfo);
        if (internetSearchVideoService.save(video) == null) {
            return;
        }
        BilibiliSearchVideoMap map = new BilibiliSearchVideoMap();
        map.setMediaId(mediaInfo.getMedia_id());
        map.setVideoId(video.getId());
        map.setCreateTime(new Date());
        bilibiliSearchVideoMapDao.save(map);
    }
    @Override
    public void addToInternetSearch(BilibiliVideo video) throws Exception {
    public void addToInternetSearch(BilibiliVideo video, Integer videoType) throws Exception {
        save(video);
        InternetSearchVideo internetSearchVideo = InternetSearchVideoFactory.create(video, videoType);
        if (internetSearchVideoService.save(internetSearchVideo) == null) {
            return;
        }
        BilibiliSearchVideoMap map = new BilibiliSearchVideoMap();
        map.setVid(video.getAid() + "");
        map.setVideoId(internetSearchVideo.getId());
        map.setCreateTime(new Date());
        bilibiliSearchVideoMapDao.save(map);
    }
}