admin
2021-07-30 19533a17aa55fafc70d0a385928e785cb50e1ebc
src/main/java/com/yeshi/buwan/util/video/VideoDetailUtil.java
@@ -1,20 +1,33 @@
package com.yeshi.buwan.util.video;
import com.yeshi.buwan.acFun.AcFunUtil;
import com.yeshi.buwan.dao.VideoInfoDao;
import com.yeshi.buwan.domain.ResourceVideo;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.VideoResource;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.funtv.FunTVUtil;
import com.yeshi.buwan.funtv.FunTVUtil2;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil2;
import com.yeshi.buwan.mogotv.MogoTVUtil;
import com.yeshi.buwan.service.imp.VideoInfoService;
import com.yeshi.buwan.service.imp.juhe.*;
import com.yeshi.buwan.service.inter.juhe.Iqiyi2Service;
import com.yeshi.buwan.service.imp.juhe.FunTVService;
import com.yeshi.buwan.service.imp.juhe.IqiyiService;
import com.yeshi.buwan.service.imp.juhe.SoHuService;
import com.yeshi.buwan.service.inter.juhe.*;
import com.yeshi.buwan.sohu.SoHuUtil;
import com.yeshi.buwan.tencent.TencentVideoUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.log.VideoLogFactory;
import com.yeshi.buwan.videos.bilibili.BilibiliUtil;
import com.yeshi.buwan.vo.AcceptData;
import com.yeshi.buwan.youku.YouKuUtil;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.orm.hibernate4.HibernateCallback;
import org.springframework.stereotype.Component;
@@ -24,6 +37,9 @@
@Component
public class VideoDetailUtil {
    private final Logger playLogger = LoggerFactory.getLogger("videoPlay");
    @Resource
    private IqiyiUtil iqiyiUtil;
@@ -46,16 +62,40 @@
    private FunTVService funTVService;
    @Resource
    private PPTVService pptvService;
    private FunTV2Service funTV2Service;
    @Resource
    private VideoInfoService videoInfoService;
    @Resource
    private YouKuUtil youKuUtil;
    @Resource
    private YouKuService youKuService;
    @Resource
    private MogoTVUtil mogoTVUtil;
    @Resource
    private MogoTVService mogoTVService;
    @Resource
    private TencentVideoService tencentVideoService;
    @Resource
    private TencentVideoUtil tencentVideoUtil;
    @Resource
    private BilibiliVideoService bilibiliVideoService;
    @Resource
    private BilibiliUtil bilibiliUtil;
    @SuppressWarnings("unchecked")
//   @Cacheable(value = "homeCache", key = "'getVideoInfo'+'-'+#videoid+'-'+#resourceId+'-'+#cacheMD5")
    public VideoInfo getVideoInfo(final String videoid, final String resourceId, final List<Long> reList,
    public VideoInfo getVideoInfo(String detailSystemId, final String videoid, final String resourceId, final List<Long> reList,
                                  String cacheMD5) {
        playLogger.info(VideoLogFactory.createVideoDetailLog(detailSystemId, videoid, resourceId));
        return (VideoInfo) videoInfoDao.excute(new HibernateCallback<VideoInfo>() {
            public VideoInfo doInHibernate(Session session) throws HibernateException {
@@ -82,7 +122,7 @@
                                    .createQuery("select rv.resource from ResourceVideo rv where rv.video.id=?")
                                    .setParameter(0, videoid).list();
                            rv.getVideo().setVideoDetailList(getVideoDetailList(videoid, rv.getResource()));
                            rv.getVideo().setVideoDetailList(getVideoDetailList(videoid, rv.getResource(), 1, 100));
                            for (VideoResource r : resourceList) {
                                if (r.getId().equalsIgnoreCase(rv.getResource().getId())) {
                                    r.setChecked(true);
@@ -122,7 +162,7 @@
                                            "select rv.resource from ResourceVideo rv where rv.video.id=? order by rv.resource.id desc")
                                    .setParameter(0, videoid).list();
                            rv.getVideo().setVideoDetailList(getVideoDetailList(videoid, rv.getResource()));
                            rv.getVideo().setVideoDetailList(getVideoDetailList(videoid, rv.getResource(), 1, 100));
                            for (int i = 0; i < resourceList.size(); i++) {
                                VideoResource r = resourceList.get(i);
@@ -170,67 +210,104 @@
        });
    }
    private List<VideoDetailInfo> getVideoDetailList(String videoid, VideoResource vr) {
        if (vr.getName().contains("爱奇艺2")) {
            return iqiyi2Service.getVideoDetailList(videoid);
        } else if (vr.getName().contains("爱奇艺")) {
            return iqiyiService.getVideoDetailList(videoid);
        } else if (vr.getName().contains("搜狐")) {
            return soHuService.getVideoDetailList(videoid);
        } else if (vr.getName().contains("PPTV"))
            return pptvService.getVideoDetailList(videoid);
        else if (vr.getName().contains("风行"))
            return funTVService.getVideoDetailList(videoid);
        else if (vr.getName().contains("AcFun")) {
            return videoInfoService.getVideoDetailList(videoid, vr);
    public List<VideoDetailInfo> getVideoDetailList(String videoid, VideoResource vr, int page, int pageSize) {
        int resourceId = Integer.parseInt(vr.getId());
        switch (resourceId) {
            case IqiyiUtil2.RESOURCE_ID:
                return iqiyi2Service.getVideoDetailList(videoid, page, pageSize);
            case IqiyiUtil.RESOURCE_ID:
                return iqiyiService.getVideoDetailList(videoid, page, pageSize);
            case FunTVUtil2.RESOURCE_ID:
                return funTV2Service.getVideoDetailList(videoid, page, pageSize);
            case FunTVUtil.RESOURCE_ID:
                return funTVService.getVideoDetailList(videoid, page, pageSize);
            case AcFunUtil.RESOURCE_ID:
                return videoInfoService.getVideoDetailList(videoid, vr, page, pageSize);
            case SoHuUtil.RESOURCE_ID:
                return soHuService.getVideoDetailList(videoid, page, pageSize);
            case YouKuUtil.RESOURCE_ID:
                return youKuService.getVideoDetailList(videoid, page, pageSize);
            case MogoTVUtil.RESOURCE_ID:
                return mogoTVService.getVideoDetailList(videoid, page, pageSize);
            case TencentVideoUtil.RESOURCE_ID:
                return tencentVideoService.getVideoDetailList(videoid, page, pageSize);
            case BilibiliUtil.RESOURCE_ID:
                return bilibiliVideoService.getVideoDetailList(videoid, page, pageSize);
            default:
                return null;
        }
        return null;
    }
    public VideoDetailInfo getLatestVideoDetail(String videoid, VideoResource vr) {
        if (vr.getName().contains("爱奇艺2")) {
            return iqiyi2Service.getLatestVideoDetail(videoid);
        } else if (vr.getName().contains("爱奇艺")) {
            return iqiyiService.getLatestVideoDetail(videoid);
        } else if (vr.getName().contains("搜狐")) {
            return soHuService.getLatestVideoDetail(videoid);
        } else if (vr.getName().contains("PPTV"))
            return pptvService.getLatestVideoDetail(videoid);
        else if (vr.getName().contains("风行"))
            return funTVService.getLatestVideoDetail(videoid);
        return null;
        int resourceId = Integer.parseInt(vr.getId());
        switch (resourceId) {
            case IqiyiUtil2.RESOURCE_ID:
                return iqiyi2Service.getLatestVideoDetail(videoid);
            case IqiyiUtil.RESOURCE_ID:
                return iqiyiService.getLatestVideoDetail(videoid);
            case FunTVUtil2.RESOURCE_ID:
                return funTV2Service.getLatestVideoDetail(videoid);
            case FunTVUtil.RESOURCE_ID:
                return funTVService.getLatestVideoDetail(videoid);
            case SoHuUtil.RESOURCE_ID:
                return soHuService.getLatestVideoDetail(videoid);
            case YouKuUtil.RESOURCE_ID:
                return soHuService.getLatestVideoDetail(videoid);
            case MogoTVUtil.RESOURCE_ID:
                return soHuService.getLatestVideoDetail(videoid);
            default:
                return null;
        }
    }
    public int getShowType(String videoid, VideoResource vr) {
        if (vr.getName().contains("爱奇艺2")) {
            return iqiyi2Service.getShowType(videoid);
        } else if (vr.getName().contains("爱奇艺")) {
            return iqiyiUtil.getShowType(videoid);
        } else if (vr.getName().contains("搜狐")) {
            return soHuUtil.getShowType(videoid);
        } else if (vr.getName().contains("PPTV")) {
            return pptvService.getShowType(videoid);
        } else if (vr.getName().contains("风行")) {
            return funTVService.getShowType(videoid);
        int resourceId = Integer.parseInt(vr.getId());
        switch (resourceId) {
            case IqiyiUtil2.RESOURCE_ID:
                return iqiyi2Service.getShowType(videoid);
            case IqiyiUtil.RESOURCE_ID:
                return iqiyiUtil.getShowType(videoid);
            case FunTVUtil2.RESOURCE_ID:
                return funTV2Service.getShowType(videoid);
            case FunTVUtil.RESOURCE_ID:
                return funTVService.getShowType(videoid);
            case SoHuUtil.RESOURCE_ID:
                return soHuUtil.getShowType(videoid);
            case YouKuUtil.RESOURCE_ID:
                return soHuUtil.getShowType(videoid);
            default:
                return 1;
        }
        return 1;
    }
    @Cacheable(value = "homeCache", key = "'getPlayUrl'+'-'+#detailSystemId+'-'+#id+'-'+#type+'-'+#resourceid")
    public PlayUrl getPlayUrl(String detailSystemId, String id, String type, int resourceid, String videoid) {
        if (resourceid == 13) {// 爱奇艺
            return iqiyiUtil.getPlayUrl(detailSystemId, resourceid + "", type, id);
        } else if (resourceid == 14) {// 搜狐
            return soHuUtil.getPlayUrl(detailSystemId, resourceid + "", type, id);
        } else if (resourceid == 16)// PPTV
            return pptvService.getPlayUrl(detailSystemId, id, type, resourceid, videoid);
        else if (resourceid == 19)// 风行
            return funTVService.getPlayUrl(detailSystemId, id, type, resourceid, videoid);
        else if (resourceid == 21)//acfun
            return videoInfoService.getPlayUrl(detailSystemId, id, type, resourceid, videoid);
        else if (resourceid == 22)//爱奇艺2
            return iqiyi2Service.getPlayUrl(detailSystemId, resourceid, id, videoid);
        return null;
    public PlayUrl getPlayUrl(AcceptData acceptData, String detailSystemId, String id, String type, int resourceid, String videoid) {
        playLogger.info(VideoLogFactory.createPlayUrlLog(detailSystemId, id, type, resourceid, videoid));
        switch (resourceid) {
            case IqiyiUtil2.RESOURCE_ID:
                return iqiyi2Service.getPlayUrl(detailSystemId, resourceid, id, videoid);
            case IqiyiUtil.RESOURCE_ID:
                return iqiyiUtil.getPlayUrl(detailSystemId, resourceid + "", type, id);
            case FunTVUtil2.RESOURCE_ID:
                return funTV2Service.getPlayUrl(acceptData, detailSystemId, resourceid, id, videoid);
            case FunTVUtil.RESOURCE_ID:
                return funTVService.getPlayUrl(detailSystemId, id, type, resourceid, videoid);
            case SoHuUtil.RESOURCE_ID:
                return soHuUtil.getPlayUrl(detailSystemId, resourceid + "", type, id);
            case AcFunUtil.RESOURCE_ID:
                return videoInfoService.getPlayUrl(detailSystemId, id, type, resourceid, videoid);
            case YouKuUtil.RESOURCE_ID:
                return youKuUtil.getPlayUrl(detailSystemId, id, type, resourceid, videoid);
            case MogoTVUtil.RESOURCE_ID:
                return mogoTVUtil.getPlayUrl(detailSystemId, id, type, resourceid, videoid);
            case TencentVideoUtil.RESOURCE_ID:
                return tencentVideoUtil.getPlayUrl(detailSystemId, id, type, resourceid, videoid);
            case BilibiliUtil.RESOURCE_ID:
                return bilibiliUtil.getPlayUrl(detailSystemId, id, type, resourceid, videoid);
            default:
                return null;
        }
    }
}