package com.newvideo.util.video;
|
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import com.newvideo.funtv.FunTVUtil2;
|
import com.newvideo.service.inter.FunTV2Service;
|
import org.hibernate.HibernateException;
|
import org.hibernate.Session;
|
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.orm.hibernate4.HibernateCallback;
|
import org.springframework.stereotype.Component;
|
|
import com.newvideo.dao.VideoInfoDao;
|
import com.newvideo.domain.ResourceVideo;
|
import com.newvideo.domain.VideoDetailInfo;
|
import com.newvideo.domain.VideoInfo;
|
import com.newvideo.domain.VideoResource;
|
import com.newvideo.domain.entity.PlayUrl;
|
import com.newvideo.iqiyi.util.IqiyiUtil;
|
import com.newvideo.service.imp.juhe.FunTVService;
|
import com.newvideo.service.imp.juhe.IqiyiService;
|
import com.newvideo.service.imp.juhe.LeService;
|
import com.newvideo.service.imp.juhe.PPTVService;
|
import com.newvideo.service.imp.juhe.SoHuService;
|
import com.newvideo.service.imp.juhe.YouKuService;
|
import com.newvideo.sohu.SoHuUtil;
|
import com.newvideo.util.StringUtil;
|
import com.newvideo.youku.YouKuUtil;
|
|
@Component
|
public class VideoDetailUtil {
|
@Resource
|
private IqiyiUtil iqiyiUtil;
|
@Resource
|
private SoHuUtil soHuUtil;
|
@Resource
|
private YouKuUtil youKuUtil;
|
@Resource
|
private IqiyiService iqiyiService;
|
@Resource
|
private SoHuService soHuService;
|
@Resource
|
private YouKuService youKuService;
|
@Resource
|
private VideoInfoDao videoInfoDao;
|
@Resource
|
private LeService leService;
|
|
@Resource
|
private FunTV2Service funTV2Service;
|
|
@Resource
|
private FunTVService funTVService;
|
|
@Resource
|
private PPTVService pptvService;
|
|
public VideoInfoDao getVideoInfoDao() {
|
return videoInfoDao;
|
}
|
|
public void setVideoInfoDao(VideoInfoDao videoInfoDao) {
|
this.videoInfoDao = videoInfoDao;
|
}
|
|
public IqiyiUtil getIqiyiUtil() {
|
return iqiyiUtil;
|
}
|
|
public void setIqiyiUtil(IqiyiUtil iqiyiUtil) {
|
this.iqiyiUtil = iqiyiUtil;
|
}
|
|
public SoHuUtil getSoHuUtil() {
|
return soHuUtil;
|
}
|
|
public void setSoHuUtil(SoHuUtil soHuUtil) {
|
this.soHuUtil = soHuUtil;
|
}
|
|
public YouKuUtil getYouKuUtil() {
|
return youKuUtil;
|
}
|
|
public void setYouKuUtil(YouKuUtil youKuUtil) {
|
this.youKuUtil = youKuUtil;
|
}
|
|
public IqiyiService getIqiyiService() {
|
return iqiyiService;
|
}
|
|
public void setIqiyiService(IqiyiService iqiyiService) {
|
this.iqiyiService = iqiyiService;
|
}
|
|
public SoHuService getSoHuService() {
|
return soHuService;
|
}
|
|
public void setSoHuService(SoHuService soHuService) {
|
this.soHuService = soHuService;
|
}
|
|
public YouKuService getYouKuService() {
|
return youKuService;
|
}
|
|
public void setYouKuService(YouKuService youKuService) {
|
this.youKuService = youKuService;
|
}
|
|
@SuppressWarnings("unchecked")
|
@Cacheable(value = "homeCache", key = "'getVideoInfo'+'-'+#videoid+'-'+#resourceId+'-'+#cacheMD5")
|
public VideoInfo getVideoInfo(final String videoid, final String resourceId, final List<Long> reList,
|
String cacheMD5) {
|
|
return (VideoInfo) videoInfoDao.excute(new HibernateCallback<VideoInfo>() {
|
@Override
|
public VideoInfo doInHibernate(Session session) throws HibernateException {
|
|
VideoInfo video = null;
|
VideoResource resource = null;
|
try {
|
if (!StringUtil.isNullOrEmpty(resourceId)) {
|
|
// 来源限制判断
|
boolean isCan = false;
|
for (long re : reList) {
|
if (resourceId.equalsIgnoreCase(re + "")) {
|
isCan = true;
|
}
|
}
|
if (!isCan) {
|
return null;
|
}
|
List<ResourceVideo> list = session
|
.createQuery("FROM ResourceVideo rv where rv.video.id=? and rv.resource.id=?")
|
.setParameter(0, videoid).setParameter(1, resourceId).list();
|
if (list != null && list.size() > 0) {
|
ResourceVideo rv = list.get(0);
|
List<VideoResource> resourceList = session
|
.createQuery("select rv.resource from ResourceVideo rv where rv.video.id=?")
|
.setParameter(0, videoid).list();
|
|
rv.getVideo().setVideoDetailList(getVideoDetailList(videoid, rv.getResource()));
|
for (VideoResource r : resourceList) {
|
if (r.getId().equalsIgnoreCase(rv.getResource().getId())) {
|
r.setChecked(true);
|
}
|
|
}
|
rv.getVideo().setResourceList(resourceList);
|
video = rv.getVideo();
|
|
resource = rv.getResource();
|
}
|
} else {
|
List<ResourceVideo> list = session
|
.createQuery(
|
"FROM ResourceVideo rv where rv.video.id=? order by rv.resource.orderby desc")
|
.setParameter(0, videoid).list();
|
// 来源筛查
|
|
if (list != null) {
|
for (int i = 0; i < list.size(); i++) {
|
boolean isC = false;
|
for (Long id : reList) {
|
if ((id + "").equalsIgnoreCase(list.get(i).getResource().getId())) {
|
isC = true;
|
break;
|
}
|
}
|
if (!isC) {
|
list.remove(i);
|
i--;
|
}
|
}
|
}
|
|
if (list != null && list.size() > 0) {
|
ResourceVideo rv = list.get(0);
|
List<VideoResource> resourceList = session
|
.createQuery(
|
"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()));
|
|
for (int i = 0; i < resourceList.size(); i++) {
|
VideoResource r = resourceList.get(i);
|
if (r.getId().equalsIgnoreCase(rv.getResource().getId())) {
|
r.setChecked(true);
|
}
|
boolean isS = false;
|
for (Long id : reList) {
|
if ((id + "").equalsIgnoreCase(r.getId())) {
|
isS = true;
|
break;
|
}
|
}
|
// 不在允许的resource里面
|
if (!isS) {
|
resourceList.remove(i);
|
i--;
|
}
|
|
}
|
rv.getVideo().setResourceList(resourceList);
|
video = rv.getVideo();
|
resource = rv.getResource();
|
}
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
try {
|
if (video.getVideoDetailList() != null && video.getVideoDetailList().size() == 1) {
|
video.getVideoDetailList().get(0).setName(video.getName());
|
}
|
|
if (video != null && resource != null) {
|
video.setShowType(getShowType(video.getId(), resource));
|
}
|
} catch (Exception e) {
|
|
}
|
return video;
|
}
|
});
|
}
|
|
private List<VideoDetailInfo> getVideoDetailList(String videoid, VideoResource vr) {
|
int resourceId = Integer.parseInt(vr.getId());
|
|
switch (resourceId) {
|
case 13:
|
return iqiyiService.getVideoDetailList(videoid);//爱奇艺
|
case 14:
|
return soHuService.getVideoDetailList(videoid);//搜狐
|
case 15:
|
return youKuService.getVideoDetailList(videoid);//优酷
|
case 16:
|
return pptvService.getVideoDetailList(videoid);//PPTV
|
case 18:
|
return leService.getVideoDetailList(videoid);//乐视
|
case 19:
|
return funTVService.getVideoDetailList(videoid);//风行
|
case 24:
|
return funTV2Service.getVideoDetailList(videoid, 1, 100);//风行2
|
}
|
|
return null;
|
}
|
|
public VideoDetailInfo getLatestVideoDetail(String videoid, VideoResource vr) {
|
|
int resourceId = Integer.parseInt(vr.getId());
|
|
switch (resourceId) {
|
case 13:
|
return iqiyiService.getLatestVideoDetail(videoid);
|
//爱奇艺
|
case 14:
|
return soHuService.getLatestVideoDetail(videoid);
|
//搜狐
|
case 15:
|
return youKuService.getLatestVideoDetail(videoid);
|
//优酷
|
case 16:
|
return pptvService.getLatestVideoDetail(videoid);
|
//PPTV
|
case 18:
|
return leService.getLatestVideoDetail(videoid);
|
//乐视
|
case 19:
|
return funTVService.getLatestVideoDetail(videoid);
|
//风行
|
case 24:
|
return funTV2Service.getLatestVideoDetail(videoid);
|
//风行2
|
}
|
|
return null;
|
}
|
|
public int getShowType(String videoid, VideoResource vr) {
|
int resourceId = Integer.parseInt(vr.getId());
|
|
switch (resourceId) {
|
case 13:
|
return iqiyiUtil.getShowType(videoid);
|
//爱奇艺
|
case 14:
|
return soHuUtil.getShowType(videoid);
|
//搜狐
|
case 15:
|
return youKuService.getShowType(videoid);
|
//优酷
|
case 16:
|
return pptvService.getShowType(videoid);
|
//PPTV
|
case 18:
|
return leService.getShowType(videoid);
|
//乐视
|
case 19:
|
return funTVService.getShowType(videoid);
|
//风行
|
case 24:
|
return funTV2Service.getShowType(videoid);
|
//风行2
|
}
|
|
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 == 15)
|
return youKuService.getPlayUrl(detailSystemId, id, type, resourceid, videoid);
|
else if (resourceid == 16)// PPTV
|
return pptvService.getPlayUrl(detailSystemId, id, type, resourceid, videoid);
|
else if (resourceid == 18)// 乐视
|
return leService.getPlayUrl(detailSystemId, id, type, resourceid, videoid);
|
else if (resourceid == 19)// 乐视
|
return funTVService.getPlayUrl(detailSystemId, id, type, resourceid, videoid);
|
else if (resourceid == FunTVUtil2.RESOURCE_ID)// 风行
|
return funTV2Service.getPlayUrl(detailSystemId, resourceid, id, videoid);
|
return null;
|
}
|
}
|