package com.newvideo.service.imp.juhe;
|
|
import java.io.Serializable;
|
import java.util.ArrayList;
|
import java.util.Collections;
|
import java.util.Comparator;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.hibernate.HibernateException;
|
import org.hibernate.Session;
|
import org.springframework.orm.hibernate4.HibernateCallback;
|
import org.springframework.stereotype.Service;
|
|
import com.newvideo.dao.VideoResourceDao;
|
import com.newvideo.dao.juhe.PPTVCartoonDetailDao;
|
import com.newvideo.dao.juhe.PPTVCartoonVideoDao;
|
import com.newvideo.dao.juhe.PPTVMovieVideoDao;
|
import com.newvideo.dao.juhe.PPTVShortVideoDao;
|
import com.newvideo.dao.juhe.PPTVShowDetailDao;
|
import com.newvideo.dao.juhe.PPTVShowVideoDao;
|
import com.newvideo.dao.juhe.PPTVTVDetailDao;
|
import com.newvideo.dao.juhe.PPTVTVVideoDao;
|
import com.newvideo.dao.juhe.VideoPPTVDao;
|
import com.newvideo.dao.push.VideoPushHistoryDao;
|
import com.newvideo.domain.CategoryVideo;
|
import com.newvideo.domain.ResourceVideo;
|
import com.newvideo.domain.VideoDetailInfo;
|
import com.newvideo.domain.VideoInfo;
|
import com.newvideo.domain.VideoResource;
|
import com.newvideo.domain.VideoType;
|
import com.newvideo.domain.entity.PlayUrl;
|
import com.newvideo.domain.push.VideoPushHistory;
|
import com.newvideo.pptv.PPTVUtil;
|
import com.newvideo.pptv.entity.PPTVCartoonDetail;
|
import com.newvideo.pptv.entity.PPTVCartoonVideo;
|
import com.newvideo.pptv.entity.PPTVMovieVideo;
|
import com.newvideo.pptv.entity.PPTVShortVideo;
|
import com.newvideo.pptv.entity.PPTVShowDetail;
|
import com.newvideo.pptv.entity.PPTVShowVideo;
|
import com.newvideo.pptv.entity.PPTVTVDetail;
|
import com.newvideo.pptv.entity.PPTVTVVideo;
|
import com.newvideo.pptv.entity.VideoPPTV;
|
import com.newvideo.service.imp.StatisticsService;
|
import com.newvideo.service.imp.VideoManager;
|
import com.newvideo.util.JuheVideoUtil;
|
import com.newvideo.util.StringUtil;
|
|
import net.sf.json.JSONObject;
|
|
@Service
|
public class PPTVService {
|
@Resource
|
private PPTVMovieVideoDao pptvMovieVideoDao;
|
@Resource
|
private PPTVShowVideoDao pptvShowVideoDao;
|
@Resource
|
private PPTVTVVideoDao pptvtvVideoDao;
|
@Resource
|
private PPTVCartoonVideoDao pptvCartoonVideoDao;
|
@Resource
|
private PPTVShortVideoDao pptvShortVideoDao;
|
|
@Resource
|
private PPTVShowDetailDao pptvShowDetailDao;
|
|
@Resource
|
private PPTVTVDetailDao pptvtvDetailDao;
|
|
@Resource
|
private PPTVCartoonDetailDao pptvCartoonDetailDao;
|
|
@Resource
|
private VideoPushHistoryDao videoPushHistoryDao;
|
|
@Resource
|
private VideoPPTVDao videoPPTVDao;
|
|
@Resource
|
private VideoResourceDao videoResourceDao;
|
|
@Resource
|
private StatisticsService statisticsService;
|
|
@Resource
|
private VideoManager videoManager;
|
|
public Serializable savePPTVMovie(PPTVMovieVideo pptvMovieVideo) {
|
return pptvMovieVideoDao.save(pptvMovieVideo);
|
}
|
|
public Serializable savePPTVShow(PPTVShowVideo pptvShowVideo) {
|
return pptvShowVideoDao.save(pptvShowVideo);
|
}
|
|
public Serializable savePPTVShowDetail(PPTVShowDetail pptvShowDetail) {
|
return pptvShowDetailDao.save(pptvShowDetail);
|
}
|
|
public Serializable savePPTVTV(PPTVTVVideo pptvTVVideo) {
|
return pptvtvVideoDao.save(pptvTVVideo);
|
}
|
|
public Serializable savePPTVTVDetail(PPTVTVDetail pptvTVDetail) {
|
return pptvtvDetailDao.save(pptvTVDetail);
|
}
|
|
public Serializable savePPTVCartoon(PPTVCartoonVideo pptvCartoonVideo) {
|
return pptvCartoonVideoDao.save(pptvCartoonVideo);
|
}
|
|
public Serializable savePPTVCartoonDetail(PPTVCartoonDetail pptvCartoonDetail) {
|
return pptvCartoonDetailDao.save(pptvCartoonDetail);
|
}
|
|
public Serializable savePPTVShort(PPTVShortVideo pptvshortVideo) {
|
return pptvShortVideoDao.save(pptvshortVideo);
|
}
|
|
public Serializable saveOrUpdatePPTVMovie(PPTVMovieVideo pptvMovieVideo) {
|
List<PPTVMovieVideo> list = pptvMovieVideoDao.list("from PPTVMovieVideo pp where pp.vid=?",
|
new Serializable[] { pptvMovieVideo.getVid() });
|
if (list != null && list.size() > 0) {// 做更新
|
pptvMovieVideo.setId(list.get(0).getId());
|
pptvMovieVideoDao.update(pptvMovieVideo);
|
return list.get(0).getId();
|
} else {
|
return pptvMovieVideoDao.save(pptvMovieVideo);
|
}
|
}
|
|
private void deletePPTV(List<VideoPPTV> vpList) {
|
if (vpList != null && vpList.size() > 0) {
|
for (VideoPPTV vp : vpList) {
|
final VideoPPTV vpptv = vp;
|
boolean isNeedDeleteVideo = (Boolean) videoPPTVDao.excute(new HibernateCallback<Boolean>() {
|
@SuppressWarnings("unchecked")
|
public Boolean doInHibernate(Session session) throws HibernateException {
|
// TODO Auto-generated method stub
|
boolean isNeed = true;
|
session.getTransaction().begin();
|
List<ResourceVideo> resourceList = session
|
.createQuery("from ResourceVideo rv where rv.video.id=?")
|
.setParameter(0, vpptv.getVideo().getId()).list();
|
if (resourceList != null && resourceList.size() > 0) {
|
for (ResourceVideo rv : resourceList)
|
if (rv.getResource().getId().equalsIgnoreCase("16"))
|
session.delete(rv);
|
if (resourceList.size() > 1)// 有多个来源
|
isNeed = false;
|
}
|
session.flush();
|
session.getTransaction().commit();
|
return isNeed;
|
}
|
});
|
if (isNeedDeleteVideo) {// 删除整个视频
|
videoManager.deleteVideo(vp.getVideo().getId());
|
}
|
|
videoPPTVDao.delete(vp);
|
}
|
}
|
}
|
|
public void deletePPTVMovie(PPTVMovieVideo pptvMovieVideo) {
|
List<PPTVMovieVideo> list = pptvMovieVideoDao.list("from PPTVMovieVideo pp where pp.vid=?",
|
new Serializable[] { pptvMovieVideo.getVid() });
|
if (list != null && list.size() > 0) {// 做更新
|
// 判断来源
|
List<VideoPPTV> vpList = videoPPTVDao.list("from VideoPPTV vp where vp.type='movie' and vp.pptvid=?",
|
new Serializable[] { list.get(0).getVid() });
|
deletePPTV(vpList);
|
// 删除资源映射
|
|
pptvMovieVideoDao.delete(list.get(0));
|
|
}
|
}
|
|
public void deletePPTVShort(PPTVShortVideo pptvShortVideo) {
|
List<PPTVShortVideo> list = pptvShortVideoDao.list("from PPTVShortVideo pp where pp.aid=?",
|
new Serializable[] { pptvShortVideo.getAid() });
|
if (list != null && list.size() > 0) {// 做更新
|
// 判断来源
|
List<VideoPPTV> vpList = videoPPTVDao.list("from VideoPPTV vp where vp.type='short' and vp.pptvid=?",
|
new Serializable[] { list.get(0).getAid() });
|
deletePPTV(vpList);
|
pptvShortVideoDao.delete(list.get(0));
|
}
|
}
|
|
public Serializable saveOrUpdatePPTVShow(PPTVShowVideo pptvShowVideo) {
|
List<PPTVShowVideo> list = pptvShowVideoDao.list("from PPTVShowVideo pp where pp.aid=?",
|
new Serializable[] { pptvShowVideo.getAid() });
|
if (list != null && list.size() > 0) {// 做更新
|
pptvShowVideo.setId(list.get(0).getId());
|
pptvShowVideoDao.update(pptvShowVideo);
|
return list.get(0).getId();
|
} else {
|
return pptvShowVideoDao.save(pptvShowVideo);
|
}
|
}
|
|
public Serializable saveOrUpdatePPTVTV(PPTVTVVideo pptvTVVideo) {
|
List<PPTVTVVideo> list = pptvtvVideoDao.list("from PPTVTVVideo pp where pp.aid=?",
|
new Serializable[] { pptvTVVideo.getAid() });
|
if (list != null && list.size() > 0) {// 做更新
|
pptvTVVideo.setId(list.get(0).getId());
|
pptvtvVideoDao.update(pptvTVVideo);
|
return list.get(0).getId();
|
} else {
|
return pptvtvVideoDao.save(pptvTVVideo);
|
}
|
}
|
|
@SuppressWarnings("rawtypes")
|
public void deletePPTVTV(PPTVTVVideo pptvTVVideo) {
|
final List<PPTVTVVideo> list = pptvtvVideoDao.list("from PPTVTVVideo pp where pp.aid=?",
|
new Serializable[] { pptvTVVideo.getAid() });
|
if (list != null && list.size() > 0) {// 做更新
|
// 判断来源
|
List<VideoPPTV> vpList = videoPPTVDao.list("from VideoPPTV vp where vp.type='tv' and vp.pptvid=?",
|
new Serializable[] { list.get(0).getAid() });
|
deletePPTV(vpList);
|
pptvtvVideoDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
try {
|
session.getTransaction().begin();
|
session.createQuery("delete from PPTVTVDetail de where de.videoId=" + list.get(0).getId())
|
.executeUpdate();
|
session.delete(list.get(0));
|
session.flush();
|
session.getTransaction().commit();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
});
|
}
|
}
|
|
@SuppressWarnings("rawtypes")
|
public void deletePPTVShow(PPTVShowVideo pptvShowVideo) {
|
final List<PPTVShowVideo> list = pptvShowVideoDao.list("from PPTVShowVideo pp where pp.aid=?",
|
new Serializable[] { pptvShowVideo.getAid() });
|
if (list != null && list.size() > 0) {// 做更新
|
// 判断来源
|
List<VideoPPTV> vpList = videoPPTVDao.list("from VideoPPTV vp where vp.type='show' and vp.pptvid=?",
|
new Serializable[] { list.get(0).getAid() });
|
deletePPTV(vpList);
|
|
pptvShowVideoDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
try {
|
session.getTransaction().begin();
|
session.createQuery("delete from PPTVShowDetail de where de.videoId=" + list.get(0).getId())
|
.executeUpdate();
|
session.delete(list.get(0));
|
session.flush();
|
session.getTransaction().commit();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
});
|
}
|
}
|
|
@SuppressWarnings("rawtypes")
|
public void deletePPTVCartoon(PPTVCartoonVideo pptvCartoonVideo) {
|
final List<PPTVCartoonVideo> list = pptvCartoonVideoDao.list("from PPTVCartoonVideo pp where pp.aid=?",
|
new Serializable[] { pptvCartoonVideo.getAid() });
|
if (list != null && list.size() > 0) {// 做更新
|
// 判断来源
|
List<VideoPPTV> vpList = videoPPTVDao.list("from VideoPPTV vp where vp.type='cartoon' and vp.pptvid=?",
|
new Serializable[] { list.get(0).getAid() });
|
deletePPTV(vpList);
|
pptvCartoonVideoDao.excute(new HibernateCallback() {
|
|
public Object doInHibernate(Session session) throws HibernateException {
|
try {
|
session.getTransaction().begin();
|
session.createQuery("delete from PPTVCartoonDetail de where de.videoId=" + list.get(0).getId())
|
.executeUpdate();
|
session.delete(list.get(0));
|
session.flush();
|
session.getTransaction().commit();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
});
|
}
|
}
|
|
public Serializable saveOrUpdatePPTVTVDetail(PPTVTVDetail pptvtvDetail) {
|
List<PPTVTVDetail> list = pptvtvDetailDao.list("from PPTVTVDetail pp where pp.vid=?",
|
new Serializable[] { pptvtvDetail.getVid() });
|
if (list != null && list.size() > 0) {// 做更新
|
pptvtvDetail.setId(list.get(0).getId());
|
pptvtvDetail.setVideoId(pptvtvDetail.getVideoId());
|
pptvtvDetailDao.update(pptvtvDetail);
|
System.out.println(list.get(0).getId());
|
return list.get(0).getId();
|
} else {
|
return pptvtvDetailDao.save(pptvtvDetail);
|
}
|
}
|
|
public Serializable saveOrUpdatePPTVShowDetail(PPTVShowDetail pptvShowDetail) {
|
List<PPTVShowDetail> list = pptvShowDetailDao.list("from PPTVShowDetail pp where pp.vid=?",
|
new Serializable[] { pptvShowDetail.getVid() });
|
if (list != null && list.size() > 0) {// 做更新
|
pptvShowDetail.setId(list.get(0).getId());
|
pptvShowDetail.setVideoId(pptvShowDetail.getVideoId());
|
pptvShowDetailDao.update(pptvShowDetail);
|
return list.get(0).getId();
|
} else {
|
return pptvShowDetailDao.save(pptvShowDetail);
|
}
|
}
|
|
public Serializable saveOrUpdatePPTVCartoonDetail(PPTVCartoonDetail pptvCartoonDetail) {
|
List<PPTVCartoonDetail> list = pptvCartoonDetailDao.list("from PPTVCartoonDetail pp where pp.vid=?",
|
new Serializable[] { pptvCartoonDetail.getVid() });
|
if (list != null && list.size() > 0) {// 做更新
|
pptvCartoonDetail.setId(list.get(0).getId());
|
pptvCartoonDetail.setVideoId(pptvCartoonDetail.getVideoId());
|
pptvCartoonDetailDao.update(pptvCartoonDetail);
|
return list.get(0).getId();
|
} else {
|
return pptvCartoonDetailDao.save(pptvCartoonDetail);
|
}
|
}
|
|
public void deletePPTVTVDetail(PPTVTVDetail pptvtvDetail) {
|
List<PPTVTVDetail> list = pptvtvDetailDao.list("from PPTVTVDetail pp where pp.vid=?",
|
new Serializable[] { pptvtvDetail.getVid() });
|
if (list != null && list.size() > 0) {// 做更新
|
pptvtvDetailDao.delete(list.get(0));
|
}
|
}
|
|
public void deletePPTVShowDetail(PPTVShowDetail pptvShowDetail) {
|
List<PPTVShowDetail> list = pptvShowDetailDao.list("from PPTVShowDetail pp where pp.vid=?",
|
new Serializable[] { pptvShowDetail.getVid() });
|
if (list != null && list.size() > 0) {// 做更新
|
pptvShowDetailDao.delete(list.get(0));
|
}
|
}
|
|
public void deletePPTVCartoonDetail(PPTVCartoonDetail pptvCartoonDetail) {
|
List<PPTVCartoonDetail> list = pptvCartoonDetailDao.list("from PPTVCartoonDetail pp where pp.vid=?",
|
new Serializable[] { pptvCartoonDetail.getVid() });
|
if (list != null && list.size() > 0) {// 做更新
|
pptvCartoonDetailDao.delete(list.get(0));
|
}
|
}
|
|
public Serializable saveOrUpdatePPTVCartoon(PPTVCartoonVideo pptvCartoonVideo) {
|
List<PPTVCartoonVideo> list = pptvCartoonVideoDao.list("from PPTVCartoonVideo pp where pp.aid=?",
|
new Serializable[] { pptvCartoonVideo.getAid() });
|
if (list != null && list.size() > 0) {// 做更新
|
pptvCartoonVideo.setId(list.get(0).getId());
|
pptvCartoonVideoDao.update(pptvCartoonVideo);
|
return list.get(0).getId();
|
} else {
|
return pptvCartoonVideoDao.save(pptvCartoonVideo);
|
}
|
}
|
|
public Serializable saveOrUpdatePPTVShort(PPTVShortVideo pptvShortVideo) {
|
List<PPTVShortVideo> list = pptvShortVideoDao.list("from PPTVShortVideo pp where pp.aid=?",
|
new Serializable[] { pptvShortVideo.getAid() });
|
if (list != null && list.size() > 0) {// 做更新
|
pptvShortVideo.setId(list.get(0).getId());
|
pptvShortVideoDao.update(pptvShortVideo);
|
return list.get(0).getId();
|
} else {
|
return pptvShortVideoDao.save(pptvShortVideo);
|
}
|
}
|
|
/**
|
* 判断视频是否存在
|
*
|
* @param info
|
* @param typeList
|
* @return
|
*/
|
@SuppressWarnings("unchecked")
|
public VideoInfo isVideoExist(Session session, VideoInfo info, String mainType, List<Integer> typeList) {
|
List<VideoInfo> videoList = session.createQuery("from VideoInfo v where v.name=?")
|
.setParameter(0, info.getName()).list();
|
|
String whereSQL = "";
|
for (int in : typeList) {
|
VideoType vt = (VideoType) session.get(VideoType.class, (long) in);
|
if (vt.getParent() != null) {
|
whereSQL += String.format(" cv.videoType.id=%s or cv.videoType.parent.id=%s or",
|
vt.getParent().getId() + "", vt.getParent().getId() + "");
|
} else {
|
whereSQL += String.format(" cv.videoType.id=%s or cv.videoType.parent.id=%s or", vt.getId() + "",
|
vt.getId() + "");
|
}
|
}
|
if (whereSQL.endsWith("or")) {
|
whereSQL = whereSQL.substring(0, whereSQL.length() - 2);
|
}
|
|
if (mainType.contains("电影") || mainType.contains("电视剧") || mainType.contains("综艺") || mainType.contains("卡通")) {
|
for (VideoInfo v : videoList) {
|
Object obj = session.createQuery(
|
String.format("select count(*) from CategoryVideo cv where cv.video.id=? and (%s)", whereSQL))
|
.setParameter(0, v.getId()).uniqueResult();
|
if (Integer.parseInt(obj + "") > 0) {// 存在
|
// 判断年份差
|
if (Math.abs(Integer.parseInt(info.getYear()) - Integer.parseInt(v.getYear())) < 3) {// 年份差判断
|
return v;
|
}
|
}
|
}
|
} else if (videoList.size() > 0)
|
return videoList.get(0);
|
|
return null;
|
}
|
|
@SuppressWarnings("rawtypes")
|
public void addPPTVMovieToVideoInfo(final PPTVMovieVideo pv, final boolean isUpdate) {
|
final VideoInfo info = PPTVUtil.convertMovieToVideoInfo(pv);// 视频转换
|
final String name = info.getName();
|
if (!(Boolean) pptvMovieVideoDao.excute(new HibernateCallback<Boolean>() {
|
public Boolean doInHibernate(Session session) throws HibernateException {
|
return JuheVideoUtil.isNeedAdd(session, name);
|
}
|
}))
|
return;
|
|
final List<Integer> typeList = PPTVUtil.getVideoTypeList("电影", pv.getType());
|
|
pptvMovieVideoDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
// 判断视频是否存在
|
VideoInfo v = isVideoExist(session, info, "电影", typeList);
|
if (v != null) {// 存在该视频
|
session.getTransaction().begin();
|
|
if (isUpdate) {
|
v.setUpdatetime(info.getUpdatetime());
|
v.setTag(info.getTag());
|
session.update(v);
|
}
|
// 加入视频映射
|
VideoPPTV vp = new VideoPPTV();
|
vp.setVideo(v);
|
vp.setPptvid(pv.getVid());
|
vp.setType("movie");
|
Object obj = session
|
.createQuery(
|
"select count(*) from VideoPPTV vp where vp.pptvid=? and vp.video.id=? and vp.type='movie'")
|
.setParameter(0, vp.getPptvid()).setParameter(1, vp.getVideo().getId()).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
session.persist(vp);
|
}
|
|
// 加入来源
|
obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.video.id=? and rv.resource.id=16")
|
.setParameter(0, v.getId()).uniqueResult();
|
|
if (Integer.parseInt(obj + "") <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("16"));
|
rv.setVideo(v);
|
session.persist(rv);
|
}
|
|
// 加入类型
|
for (long type : typeList) {
|
obj = session
|
.createQuery(
|
"select count(*) from CategoryVideo cv where cv.video.id=? and cv.videoType.id=?")
|
.setParameter(0, v.getId()).setParameter(1, type).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
CategoryVideo cv = new CategoryVideo();
|
cv.setVideo(v);
|
cv.setVideoType(new VideoType(type));
|
session.persist(cv);
|
}
|
}
|
session.flush();
|
session.getTransaction().commit();
|
} else {// 不存在视频
|
session.getTransaction().begin();
|
session.flush();
|
String videoId = session.save(info) + "";
|
if (!StringUtil.isNullOrEmpty(videoId)) {
|
// 加入视频映射
|
VideoPPTV vp = new VideoPPTV();
|
vp.setVideo(new VideoInfo(videoId));
|
vp.setPptvid(pv.getVid());
|
vp.setType("movie");
|
Object obj = session
|
.createQuery(
|
"select count(*) from VideoPPTV vp where vp.pptvid=? and vp.video.id=? and vp.type='movie'")
|
.setParameter(0, vp.getPptvid()).setParameter(1, vp.getVideo().getId()).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
session.persist(vp);
|
}
|
|
// 加入来源
|
obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.video.id=? and rv.resource.id=16")
|
.setParameter(0, videoId).uniqueResult();
|
|
if (Integer.parseInt(obj + "") <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("16"));
|
rv.setVideo(new VideoInfo(videoId));
|
session.persist(rv);
|
}
|
|
// 加入类型
|
for (long type : typeList) {
|
obj = session
|
.createQuery(
|
"select count(*) from CategoryVideo cv where cv.video.id=? and cv.videoType.id=?")
|
.setParameter(0, videoId).setParameter(1, type).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
CategoryVideo cv = new CategoryVideo();
|
cv.setVideo(new VideoInfo(videoId));
|
cv.setVideoType(new VideoType(type));
|
session.persist(cv);
|
}
|
}
|
}
|
session.getTransaction().commit();
|
}
|
return null;
|
}
|
});
|
|
}
|
|
public boolean hasTVUpdate(List<PPTVTVDetail> list) {
|
List<PPTVTVDetail> detailList = pptvtvDetailDao.list(
|
"from PPTVTVDetail pd where pd.videoId=? order by CAST(pd.seq AS integer) desc", 0, 1,
|
new Serializable[] { list.get(0).getVideoId() });
|
if (detailList != null && detailList.size() > 0) {
|
Comparator<PPTVTVDetail> cm = new Comparator<PPTVTVDetail>() {
|
public int compare(PPTVTVDetail o1, PPTVTVDetail o2) {
|
return Integer.parseInt(o1.getSeq()) - Integer.parseInt(o2.getSeq());
|
}
|
};
|
Collections.sort(list, cm);
|
if (Integer.parseInt(list.get(list.size() - 1).getSeq()) > Integer.parseInt(detailList.get(0).getSeq()))
|
return true;
|
}
|
return false;
|
}
|
|
public boolean hasShowUpdate(List<PPTVShowDetail> list) {
|
List<PPTVShowDetail> detailList = pptvShowDetailDao.list(
|
"from PPTVShowDetail pd where pd.videoId=? order by CAST(pd.seq AS integer) desc", 0, 1,
|
new Serializable[] { list.get(0).getVideoId() });
|
if (detailList != null && detailList.size() > 0) {
|
Comparator<PPTVShowDetail> cm = new Comparator<PPTVShowDetail>() {
|
public int compare(PPTVShowDetail o1, PPTVShowDetail o2) {
|
return Integer.parseInt(o1.getSeq()) - Integer.parseInt(o2.getSeq());
|
}
|
};
|
Collections.sort(list, cm);
|
if (Integer.parseInt(list.get(list.size() - 1).getSeq()) > Integer.parseInt(detailList.get(0).getSeq()))
|
return true;
|
}
|
return false;
|
}
|
|
public boolean hasCartoonUpdate(List<PPTVCartoonDetail> list) {
|
List<PPTVCartoonDetail> detailList = pptvCartoonDetailDao.list(
|
"from PPTVCartoonDetail pd where pd.videoId=? order by CAST(pd.seq AS integer) desc", 0, 1,
|
new Serializable[] { list.get(0).getVideoId() });
|
if (detailList != null && detailList.size() > 0) {
|
Comparator<PPTVCartoonDetail> cm = new Comparator<PPTVCartoonDetail>() {
|
public int compare(PPTVCartoonDetail o1, PPTVCartoonDetail o2) {
|
return Integer.parseInt(o1.getSeq()) - Integer.parseInt(o2.getSeq());
|
}
|
};
|
Collections.sort(list, cm);
|
if (Integer.parseInt(list.get(list.size() - 1).getSeq()) > Integer.parseInt(detailList.get(0).getSeq()))
|
return true;
|
}
|
return false;
|
}
|
|
public void addPPTVTVToVideoInfo(final PPTVTVVideo pv, final boolean isUpdate) {
|
final VideoInfo info = PPTVUtil.convertTVToVideoInfo(pv);// 视频转换
|
final String name = info.getName();
|
if (!(Boolean) pptvMovieVideoDao.excute(new HibernateCallback<Boolean>() {
|
public Boolean doInHibernate(Session session) throws HibernateException {
|
return JuheVideoUtil.isNeedAdd(session, name);
|
}
|
}))
|
return;
|
|
final List<Integer> typeList = PPTVUtil.getVideoTypeList("电视剧", pv.getType());
|
|
VideoInfo video = (VideoInfo) pptvMovieVideoDao.excute(new HibernateCallback<VideoInfo>() {
|
public VideoInfo doInHibernate(Session session) throws HibernateException {
|
// 判断视频是否存在
|
VideoInfo v = isVideoExist(session, info, "电视剧", typeList);
|
if (v != null) {// 存在该视频
|
session.getTransaction().begin();
|
|
if (isUpdate) {
|
v.setUpdatetime(System.currentTimeMillis() + "");
|
v.setTag(info.getTag());
|
v.setLatestHpicture(info.getLatestHpicture());
|
v.setLatestVpicture(info.getLatestVpicture());
|
v.setVideocount(info.getVideocount());
|
session.update(v);
|
}
|
// 加入视频映射
|
VideoPPTV vp = new VideoPPTV();
|
vp.setVideo(v);
|
vp.setPptvid(pv.getAid());
|
vp.setType("tv");
|
Object obj = session
|
.createQuery(
|
"select count(*) from VideoPPTV vp where vp.pptvid=? and vp.video.id=? and vp.type='tv'")
|
.setParameter(0, vp.getPptvid()).setParameter(1, vp.getVideo().getId()).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
session.persist(vp);
|
}
|
|
// 加入来源
|
obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.video.id=? and rv.resource.id=16")
|
.setParameter(0, v.getId()).uniqueResult();
|
|
if (Integer.parseInt(obj + "") <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("16"));
|
rv.setVideo(v);
|
session.persist(rv);
|
}
|
|
// 加入类型
|
for (long type : typeList) {
|
obj = session
|
.createQuery(
|
"select count(*) from CategoryVideo cv where cv.video.id=? and cv.videoType.id=?")
|
.setParameter(0, v.getId()).setParameter(1, type).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
CategoryVideo cv = new CategoryVideo();
|
cv.setVideo(v);
|
cv.setVideoType(new VideoType(type));
|
session.persist(cv);
|
}
|
}
|
session.flush();
|
session.getTransaction().commit();
|
return v;
|
} else {// 不存在视频
|
session.getTransaction().begin();
|
|
String videoId = session.save(info) + "";
|
info.setId(videoId);
|
if (!StringUtil.isNullOrEmpty(videoId)) {
|
// 加入视频映射
|
VideoPPTV vp = new VideoPPTV();
|
vp.setVideo(new VideoInfo(videoId));
|
vp.setPptvid(pv.getAid());
|
vp.setType("tv");
|
Object obj = session
|
.createQuery(
|
"select count(*) from VideoPPTV vp where vp.pptvid=? and vp.video.id=? and vp.type='c'")
|
.setParameter(0, vp.getPptvid()).setParameter(1, vp.getVideo().getId()).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
session.persist(vp);
|
}
|
|
// 加入来源
|
obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.video.id=? and rv.resource.id=16")
|
.setParameter(0, videoId).uniqueResult();
|
|
if (Integer.parseInt(obj + "") <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("16"));
|
rv.setVideo(new VideoInfo(videoId));
|
session.persist(rv);
|
}
|
|
// 加入类型
|
for (int type : typeList) {
|
obj = session
|
.createQuery(
|
"select count(*) from CategoryVideo cv where cv.video.id=? and cv.videoType.id=?")
|
.setParameter(0, videoId).setParameter(1, (long) type).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
CategoryVideo cv = new CategoryVideo();
|
cv.setVideo(new VideoInfo(videoId));
|
cv.setVideoType(new VideoType(type));
|
session.persist(cv);
|
}
|
}
|
}
|
session.flush();
|
session.getTransaction().commit();
|
return info;
|
}
|
}
|
});
|
|
if (isUpdate) {
|
try {
|
Comparator<PPTVTVDetail> cm = new Comparator<PPTVTVDetail>() {
|
|
public int compare(PPTVTVDetail o1, PPTVTVDetail o2) {
|
return Integer.parseInt(o1.getSeq()) - Integer.parseInt(o2.getSeq());
|
}
|
};
|
Collections.sort(pv.getDetailList(), cm);
|
VideoPushHistory vh = new VideoPushHistory();
|
vh.setCreatetime(System.currentTimeMillis() + "");
|
vh.setDetailId(pv.getDetailList().get(pv.getDetailList().size() - 1).getVid());
|
vh.setType("tv");
|
vh.setVideoInfo(video);
|
vh.setResourceId("16");
|
vh.setTag(video.getTag());
|
videoPushHistoryDao.create(vh);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
}
|
|
public void addPPTVShowToVideoInfo(final PPTVShowVideo pv, final boolean isUpdate) {
|
final VideoInfo info = PPTVUtil.convertShowToVideoInfo(pv);// 视频转换
|
final String name = info.getName();
|
if (!(Boolean) pptvMovieVideoDao.excute(new HibernateCallback<Boolean>() {
|
public Boolean doInHibernate(Session session) throws HibernateException {
|
return JuheVideoUtil.isNeedAdd(session, name);
|
}
|
}))
|
return;
|
|
final List<Integer> typeList = PPTVUtil.getVideoTypeList("综艺", pv.getType());
|
|
VideoInfo video = (VideoInfo) pptvMovieVideoDao.excute(new HibernateCallback<VideoInfo>() {
|
public VideoInfo doInHibernate(Session session) throws HibernateException {
|
// 判断视频是否存在
|
VideoInfo v = isVideoExist(session, info, "综艺", typeList);
|
if (v != null) {// 存在该视频
|
session.getTransaction().begin();
|
|
if (isUpdate) {
|
v.setUpdatetime(System.currentTimeMillis() + "");
|
v.setTag(info.getTag());
|
v.setLatestHpicture(info.getLatestHpicture());
|
v.setLatestVpicture(info.getLatestVpicture());
|
v.setVideocount(info.getVideocount());
|
session.update(v);
|
}
|
// 加入视频映射
|
VideoPPTV vp = new VideoPPTV();
|
vp.setVideo(v);
|
vp.setPptvid(pv.getAid());
|
vp.setType("show");
|
Object obj = session
|
.createQuery(
|
"select count(*) from VideoPPTV vp where vp.pptvid=? and vp.video.id=? and vp.type='show'")
|
.setParameter(0, vp.getPptvid()).setParameter(1, vp.getVideo().getId()).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
session.persist(vp);
|
}
|
|
// 加入来源
|
obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.video.id=? and rv.resource.id=16")
|
.setParameter(0, v.getId()).uniqueResult();
|
|
if (Integer.parseInt(obj + "") <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("16"));
|
rv.setVideo(v);
|
session.persist(rv);
|
}
|
|
// 加入类型
|
for (int type : typeList) {
|
obj = session
|
.createQuery(
|
"select count(*) from CategoryVideo cv where cv.video.id=? and cv.videoType.id=?")
|
.setParameter(0, v.getId()).setParameter(1, (long) type).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
CategoryVideo cv = new CategoryVideo();
|
cv.setVideo(v);
|
cv.setVideoType(new VideoType(type));
|
session.persist(cv);
|
}
|
}
|
session.flush();
|
session.getTransaction().commit();
|
return v;
|
} else {// 不存在视频
|
session.getTransaction().begin();
|
|
String videoId = session.save(info) + "";
|
info.setId(videoId);
|
if (!StringUtil.isNullOrEmpty(videoId)) {
|
// 加入视频映射
|
VideoPPTV vp = new VideoPPTV();
|
vp.setVideo(new VideoInfo(videoId));
|
vp.setPptvid(pv.getAid());
|
vp.setType("show");
|
Object obj = session
|
.createQuery(
|
"select count(*) from VideoPPTV vp where vp.pptvid=? and vp.video.id=? and vp.type='show'")
|
.setParameter(0, vp.getPptvid()).setParameter(1, vp.getVideo().getId()).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
session.persist(vp);
|
}
|
|
// 加入来源
|
obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.video.id=? and rv.resource.id=16")
|
.setParameter(0, videoId).uniqueResult();
|
|
if (Integer.parseInt(obj + "") <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("16"));
|
rv.setVideo(new VideoInfo(videoId));
|
session.persist(rv);
|
}
|
|
// 加入类型
|
for (int type : typeList) {
|
obj = session
|
.createQuery(
|
"select count(*) from CategoryVideo cv where cv.video.id=? and cv.videoType.id=?")
|
.setParameter(0, videoId).setParameter(1, (long) type).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
CategoryVideo cv = new CategoryVideo();
|
cv.setVideo(new VideoInfo(videoId));
|
cv.setVideoType(new VideoType(type));
|
session.persist(cv);
|
}
|
}
|
}
|
session.flush();
|
session.getTransaction().commit();
|
return info;
|
}
|
}
|
});
|
|
if (isUpdate) {
|
try {
|
Comparator<PPTVShowDetail> cm = new Comparator<PPTVShowDetail>() {
|
|
public int compare(PPTVShowDetail o1, PPTVShowDetail o2) {
|
return Integer.parseInt(o1.getSeq()) - Integer.parseInt(o2.getSeq());
|
}
|
};
|
Collections.sort(pv.getDetailList(), cm);
|
VideoPushHistory vh = new VideoPushHistory();
|
vh.setCreatetime(System.currentTimeMillis() + "");
|
vh.setDetailId(pv.getDetailList().get(pv.getDetailList().size() - 1).getVid());
|
vh.setType("show");
|
vh.setResourceId("16");
|
vh.setVideoInfo(video);
|
vh.setTag(video.getTag());
|
videoPushHistoryDao.create(vh);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
}
|
|
public void addPPTVCartoonToVideoInfo(final PPTVCartoonVideo pv, final boolean isUpdate) {
|
final VideoInfo info = PPTVUtil.convertCartoonToVideoInfo(pv);// 视频转换
|
final String name = info.getName();
|
if (!(Boolean) pptvMovieVideoDao.excute(new HibernateCallback<Boolean>() {
|
public Boolean doInHibernate(Session session) throws HibernateException {
|
return JuheVideoUtil.isNeedAdd(session, name);
|
}
|
}))
|
return;
|
|
final List<Integer> typeList = PPTVUtil.getVideoTypeList("卡通", pv.getType());
|
|
VideoInfo video = (VideoInfo) pptvMovieVideoDao.excute(new HibernateCallback<VideoInfo>() {
|
public VideoInfo doInHibernate(Session session) throws HibernateException {
|
// 判断视频是否存在
|
VideoInfo v = isVideoExist(session, info, "卡通", typeList);
|
if (v != null) {// 存在该视频
|
session.getTransaction().begin();
|
|
if (isUpdate) {
|
v.setUpdatetime(System.currentTimeMillis() + "");
|
v.setTag(info.getTag());
|
v.setLatestHpicture(info.getLatestHpicture());
|
v.setLatestVpicture(info.getLatestVpicture());
|
v.setVideocount(info.getVideocount());
|
session.update(v);
|
}
|
// 加入视频映射
|
VideoPPTV vp = new VideoPPTV();
|
vp.setVideo(v);
|
vp.setPptvid(pv.getAid());
|
vp.setType("cartoon");
|
Object obj = session
|
.createQuery(
|
"select count(*) from VideoPPTV vp where vp.pptvid=? and vp.video.id=? and vp.type='cartoon'")
|
.setParameter(0, vp.getPptvid()).setParameter(1, vp.getVideo().getId()).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
session.persist(vp);
|
}
|
|
// 加入来源
|
obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.video.id=? and rv.resource.id=16")
|
.setParameter(0, v.getId()).uniqueResult();
|
|
if (Integer.parseInt(obj + "") <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("16"));
|
rv.setVideo(v);
|
session.persist(rv);
|
}
|
|
// 加入类型
|
for (int type : typeList) {
|
obj = session
|
.createQuery(
|
"select count(*) from CategoryVideo cv where cv.video.id=? and cv.videoType.id=?")
|
.setParameter(0, v.getId()).setParameter(1, (long) type).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
CategoryVideo cv = new CategoryVideo();
|
cv.setVideo(v);
|
cv.setVideoType(new VideoType(type));
|
session.persist(cv);
|
}
|
}
|
session.flush();
|
session.getTransaction().commit();
|
return v;
|
} else {// 不存在视频
|
session.getTransaction().begin();
|
|
String videoId = session.save(info) + "";
|
info.setId(videoId);
|
if (!StringUtil.isNullOrEmpty(videoId)) {
|
// 加入视频映射
|
VideoPPTV vp = new VideoPPTV();
|
vp.setVideo(new VideoInfo(videoId));
|
vp.setPptvid(pv.getAid());
|
vp.setType("cartoon");
|
Object obj = session
|
.createQuery(
|
"select count(*) from VideoPPTV vp where vp.pptvid=? and vp.video.id=? and vp.type='cartoon'")
|
.setParameter(0, vp.getPptvid()).setParameter(1, vp.getVideo().getId()).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
session.persist(vp);
|
}
|
|
// 加入来源
|
obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.video.id=? and rv.resource.id=16")
|
.setParameter(0, videoId).uniqueResult();
|
|
if (Integer.parseInt(obj + "") <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("16"));
|
rv.setVideo(new VideoInfo(videoId));
|
session.persist(rv);
|
}
|
|
// 加入类型
|
for (long type : typeList) {
|
obj = session
|
.createQuery(
|
"select count(*) from CategoryVideo cv where cv.video.id=? and cv.videoType.id=?")
|
.setParameter(0, videoId).setParameter(1, type).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
CategoryVideo cv = new CategoryVideo();
|
cv.setVideo(new VideoInfo(videoId));
|
cv.setVideoType(new VideoType(type));
|
session.persist(cv);
|
}
|
}
|
}
|
session.flush();
|
session.getTransaction().commit();
|
return info;
|
}
|
}
|
});
|
|
if (isUpdate) {
|
try {
|
Comparator<PPTVCartoonDetail> cm = new Comparator<PPTVCartoonDetail>() {
|
|
public int compare(PPTVCartoonDetail o1, PPTVCartoonDetail o2) {
|
return Integer.parseInt(o1.getSeq()) - Integer.parseInt(o2.getSeq());
|
}
|
};
|
Collections.sort(pv.getDetailList(), cm);
|
VideoPushHistory vh = new VideoPushHistory();
|
vh.setCreatetime(System.currentTimeMillis() + "");
|
vh.setDetailId(pv.getDetailList().get(pv.getDetailList().size() - 1).getVid());
|
vh.setType("cartoon");
|
vh.setVideoInfo(video);
|
vh.setTag(video.getTag());
|
vh.setResourceId("16");
|
videoPushHistoryDao.create(vh);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
}
|
|
@SuppressWarnings("rawtypes")
|
public void addPPTVShortToVideoInfo(final PPTVShortVideo pv, final boolean isUpdate) {
|
final VideoInfo info = PPTVUtil.convertShortToVideoInfo(pv);// 视频转换
|
final String name = info.getName();
|
if (!(Boolean) pptvMovieVideoDao.excute(new HibernateCallback<Boolean>() {
|
public Boolean doInHibernate(Session session) throws HibernateException {
|
return JuheVideoUtil.isNeedAdd(session, name);
|
}
|
}))
|
return;
|
|
final List<Integer> typeList = PPTVUtil.getVideoTypeList(pv.getCategory(), pv.getSubcat());
|
|
pptvShortVideoDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
// 判断视频是否存在
|
VideoInfo v = isVideoExist(session, info, "小视频", typeList);
|
if (v != null) {// 存在该视频
|
session.getTransaction().begin();
|
|
if (isUpdate) {
|
v.setUpdatetime(info.getUpdatetime());
|
v.setTag(info.getTag());
|
session.update(v);
|
}
|
// 加入视频映射
|
VideoPPTV vp = new VideoPPTV();
|
vp.setVideo(v);
|
vp.setPptvid(pv.getAid());
|
vp.setType("short");
|
Object obj = session
|
.createQuery(
|
"select count(*) from VideoPPTV vp where vp.pptvid=? and vp.video.id=? and vp.type='short'")
|
.setParameter(0, vp.getPptvid()).setParameter(1, vp.getVideo().getId()).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
session.persist(vp);
|
}
|
|
// 加入来源
|
obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.video.id=? and rv.resource.id=16")
|
.setParameter(0, v.getId()).uniqueResult();
|
|
if (Integer.parseInt(obj + "") <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("16"));
|
rv.setVideo(v);
|
session.persist(rv);
|
}
|
|
// 加入类型
|
for (long type : typeList) {
|
obj = session
|
.createQuery(
|
"select count(*) from CategoryVideo cv where cv.video.id=? and cv.videoType.id=?")
|
.setParameter(0, v.getId()).setParameter(1, type).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
CategoryVideo cv = new CategoryVideo();
|
cv.setVideo(v);
|
cv.setVideoType(new VideoType(type));
|
session.persist(cv);
|
}
|
}
|
session.flush();
|
session.getTransaction().commit();
|
} else {// 不存在视频
|
session.getTransaction().begin();
|
session.flush();
|
String videoId = session.save(info) + "";
|
if (!StringUtil.isNullOrEmpty(videoId)) {
|
// 加入视频映射
|
VideoPPTV vp = new VideoPPTV();
|
vp.setVideo(new VideoInfo(videoId));
|
vp.setPptvid(pv.getAid());
|
vp.setType("short");
|
Object obj = session
|
.createQuery(
|
"select count(*) from VideoPPTV vp where vp.pptvid=? and vp.video.id=? and vp.type='short'")
|
.setParameter(0, vp.getPptvid()).setParameter(1, vp.getVideo().getId()).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
session.persist(vp);
|
}
|
|
// 加入来源
|
obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.video.id=? and rv.resource.id=16")
|
.setParameter(0, videoId).uniqueResult();
|
|
if (Integer.parseInt(obj + "") <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("16"));
|
rv.setVideo(new VideoInfo(videoId));
|
session.persist(rv);
|
}
|
|
// 加入类型
|
for (long type : typeList) {
|
obj = session
|
.createQuery(
|
"select count(*) from CategoryVideo cv where cv.video.id=? and cv.videoType.id=?")
|
.setParameter(0, videoId).setParameter(1, type).uniqueResult();
|
if (Integer.parseInt(obj + "") <= 0) {
|
CategoryVideo cv = new CategoryVideo();
|
cv.setVideo(new VideoInfo(videoId));
|
cv.setVideoType(new VideoType(type));
|
session.persist(cv);
|
}
|
}
|
}
|
session.getTransaction().commit();
|
}
|
return null;
|
}
|
});
|
}
|
|
public VideoDetailInfo convertToVideoDetail(PPTVMovieVideo pv) {
|
VideoDetailInfo info = new VideoDetailInfo();
|
info.setExtraId(pv.getVid());
|
info.setId(Long.parseLong(pv.getVid()));
|
info.setTag(pv.getWorkName());
|
info.setType("movie");
|
return info;
|
}
|
|
public VideoDetailInfo convertToVideoDetail(PPTVTVDetail pv) {
|
VideoDetailInfo info = new VideoDetailInfo();
|
info.setExtraId(pv.getVid());
|
info.setId(Long.parseLong(pv.getVid()));
|
info.setTag(pv.getSeq());
|
info.setType("tv");
|
return info;
|
}
|
|
public VideoDetailInfo convertToVideoDetail(PPTVShowDetail pv) {
|
VideoDetailInfo info = new VideoDetailInfo();
|
info.setExtraId(pv.getVid());
|
info.setId(Long.parseLong(pv.getVid()));
|
info.setTag(pv.getSingleTitle());
|
info.setType("show");
|
return info;
|
}
|
|
public VideoDetailInfo convertToVideoDetail(PPTVCartoonDetail pv) {
|
VideoDetailInfo info = new VideoDetailInfo();
|
info.setExtraId(pv.getVid());
|
info.setId(Long.parseLong(pv.getVid()));
|
info.setTag(pv.getSeq());
|
info.setType("cartoon");
|
return info;
|
}
|
|
public VideoDetailInfo convertToVideoDetail(PPTVShortVideo pv) {
|
VideoDetailInfo info = new VideoDetailInfo();
|
info.setExtraId(pv.getAid());
|
info.setId(Long.parseLong(pv.getAid()));
|
info.setTag(pv.getSingleTitle());
|
info.setType("short");
|
return info;
|
}
|
|
public List<VideoDetailInfo> getVideoDetailList(String videoid) {
|
|
List<VideoPPTV> list = videoPPTVDao.list("from VideoPPTV vy where vy.video.id=?", new String[] { videoid });
|
List<VideoDetailInfo> detailList = new ArrayList<VideoDetailInfo>();
|
if (list != null && list.size() > 0) {
|
final VideoPPTV pptv = list.get(0);
|
if ("movie".equalsIgnoreCase(pptv.getType())) {
|
|
List<PPTVMovieVideo> movieList = pptvMovieVideoDao
|
.list("from PPTVMovieVideo pm where pm.vid=" + pptv.getPptvid());
|
if (movieList != null && movieList.size() > 0)
|
detailList.add(convertToVideoDetail(movieList.get(0)));
|
} else if ("tv".equalsIgnoreCase(pptv.getType())) {
|
List<PPTVTVDetail> li = pptvtvDetailDao
|
.list("from PPTVTVDetail pd where pd.videoId=" + pptv.getPptvid());
|
Comparator<PPTVTVDetail> cp = new Comparator<PPTVTVDetail>() {
|
public int compare(PPTVTVDetail o1, PPTVTVDetail o2) {
|
return Integer.parseInt(o1.getSeq()) - Integer.parseInt(o2.getSeq());
|
}
|
};
|
Collections.sort(li, cp);
|
for (PPTVTVDetail pd : li) {
|
detailList.add(convertToVideoDetail(pd));
|
}
|
|
} else if ("show".equalsIgnoreCase(pptv.getType())) {
|
List<PPTVShowDetail> li = pptvShowDetailDao
|
.list("from PPTVShowDetail pd where pd.videoId=" + pptv.getPptvid());
|
Comparator<PPTVShowDetail> cp = new Comparator<PPTVShowDetail>() {
|
|
public int compare(PPTVShowDetail o1, PPTVShowDetail o2) {
|
return Integer.parseInt(o2.getSeq()) - Integer.parseInt(o1.getSeq());
|
}
|
};
|
Collections.sort(li, cp);
|
for (
|
|
PPTVShowDetail pd : li)
|
|
{
|
detailList.add(convertToVideoDetail(pd));
|
}
|
} else if ("cartoon".equalsIgnoreCase(pptv.getType())) {
|
|
List<PPTVCartoonDetail> li = pptvCartoonDetailDao
|
.list("from PPTVCartoonDetail pd where pd.videoId=" + pptv.getPptvid());
|
Comparator<PPTVCartoonDetail> cp = new Comparator<PPTVCartoonDetail>() {
|
public int compare(PPTVCartoonDetail o1, PPTVCartoonDetail o2) {
|
return Integer.parseInt(o1.getSeq()) - Integer.parseInt(o2.getSeq());
|
}
|
};
|
Collections.sort(li, cp);
|
for (PPTVCartoonDetail pd : li)
|
|
{
|
detailList.add(convertToVideoDetail(pd));
|
}
|
|
} else if ("short".equalsIgnoreCase(pptv.getType())) {
|
|
List<PPTVShortVideo> shortList = pptvShortVideoDao
|
.list("from PPTVShortVideo pm where pm.aid=" + pptv.getPptvid());
|
if (shortList != null && shortList.size() > 0)
|
detailList
|
.add(convertToVideoDetail(pptvShortVideoDao.find(PPTVShortVideo.class, pptv.getPptvid())));
|
}
|
}
|
return detailList;
|
}
|
|
public VideoDetailInfo getLatestVideoDetail(String videoid) {
|
|
List<VideoPPTV> list = videoPPTVDao.list("from VideoPPTV vy where vy.video.id=?", new String[] { videoid });
|
if (list != null && list.size() > 0) {
|
final VideoPPTV pptv = list.get(0);
|
if ("movie".equalsIgnoreCase(pptv.getType())) {
|
List<PPTVMovieVideo> movieList = pptvMovieVideoDao
|
.list("from PPTVMovieVideo pm where pm.vid=" + pptv.getPptvid());
|
if (movieList != null && movieList.size() > 0)
|
return convertToVideoDetail(movieList.get(0));
|
} else if ("tv".equalsIgnoreCase(pptv.getType())) {
|
List<PPTVTVDetail> li = pptvtvDetailDao.list("from PPTVTVDetail pd where pd.videoId=" + pptv.getPptvid()
|
+ " order by CAST(pd.seq as integer) desc", 0, 1, null);
|
return convertToVideoDetail(li.get(0));
|
} else if ("show".equalsIgnoreCase(pptv.getType())) {
|
List<PPTVShowDetail> li = pptvShowDetailDao.list("from PPTVShowDetail pd where pd.videoId="
|
+ pptv.getPptvid() + " order by CAST(pd.seq as integer) desc", 0, 1, null);
|
return convertToVideoDetail(li.get(0));
|
} else if ("cartoon".equalsIgnoreCase(pptv.getType())) {
|
List<PPTVCartoonDetail> li = pptvCartoonDetailDao.list("from PPTVCartoonDetail pd where pd.videoId="
|
+ pptv.getPptvid() + " order by CAST(pd.seq as integer) desc", 0, 1, null);
|
return convertToVideoDetail(li.get(0));
|
} else if ("short".equalsIgnoreCase(pptv.getType())) {
|
List<PPTVShortVideo> shortList = pptvShortVideoDao
|
.list("from PPTVShortVideo pm where pm.aid=" + pptv.getPptvid());
|
if (shortList != null && shortList.size() > 0)
|
return convertToVideoDetail(shortList.get(0));
|
}
|
}
|
|
return null;
|
}
|
|
public int getShowType(String vid) {
|
List<VideoPPTV> list = videoPPTVDao.list("from VideoPPTV vy where vy.video.id=?", new String[] { vid });
|
if (list != null && list.size() > 0) {
|
final VideoPPTV pptv = list.get(0);
|
if ("movie".equalsIgnoreCase(pptv.getType())) {
|
return 1;
|
} else if ("tv".equalsIgnoreCase(pptv.getType())) {
|
return 2;
|
} else if ("show".equalsIgnoreCase(pptv.getType())) {
|
return 1;
|
} else if ("cartoon".equalsIgnoreCase(pptv.getType())) {
|
return 2;
|
} else if ("short".equalsIgnoreCase(pptv.getType())) {
|
return 1;
|
}
|
}
|
return 1;
|
}
|
|
private void addPlayStatistics(String detailSystemId, String id, String type) {
|
List<VideoPPTV> list = videoPPTVDao.list("from VideoPPTV vp where vp.type=? and vp.pptvid=?", 0, 1,
|
new Serializable[] { type, id });
|
if (list != null && list.size() > 0) {
|
if (list.get(0).getVideo() != null)
|
statisticsService.addStatistics(detailSystemId, list.get(0).getVideo().getId());
|
}
|
}
|
|
public PlayUrl getPlayUrl(String detailSystemId, String id, String type, int resourceid, String videoId) {
|
PlayUrl playUrl = new PlayUrl();
|
playUrl.setPlayType(2);
|
|
List<VideoResource> list = videoResourceDao.list("from VideoResource vr where vr.id=" + resourceid);
|
if (list != null && list.size() > 0)
|
playUrl.setResource(list.get(0));
|
if (StringUtil.isNullOrEmpty(videoId))
|
addPlayStatistics(detailSystemId, id, type);
|
else
|
statisticsService.addStatistics(detailSystemId, videoId);
|
|
JSONObject object = new JSONObject();
|
object.put("vid", id);
|
if ("movie".equalsIgnoreCase(type)) {
|
List<PPTVMovieVideo> videoList = pptvMovieVideoDao.list("from PPTVMovieVideo pv where pv.vid=?", 0, 1,
|
new Serializable[] { id });
|
if (videoList != null && videoList.size() > 0) {
|
object.put("playlink", videoList.get(0).getPlaySDKurl());
|
playUrl.setUrl(videoList.get(0).getPlaySDKurl());
|
}
|
} else if ("tv".equalsIgnoreCase(type)) {
|
List<PPTVTVDetail> videoList = pptvtvDetailDao.list("from PPTVTVDetail pd where pd.vid=?", 0, 1,
|
new Serializable[] { id });
|
if (videoList != null && videoList.size() > 0) {
|
object.put("playlink", videoList.get(0).getPlayLink());
|
playUrl.setUrl(videoList.get(0).getPlayLink());
|
}
|
} else if ("show".equalsIgnoreCase(type)) {
|
List<PPTVShowDetail> videoList = pptvShowDetailDao.list("from PPTVShowDetail pd where pd.vid=?", 0, 1,
|
new Serializable[] { id });
|
if (videoList != null && videoList.size() > 0) {
|
object.put("playlink", videoList.get(0).getPlayLink());
|
playUrl.setUrl(videoList.get(0).getPlayLink());
|
}
|
} else if ("cartoon".equalsIgnoreCase(type)) {
|
List<PPTVCartoonDetail> videoList = pptvCartoonDetailDao.list("from PPTVCartoonDetail pd where pd.vid=?", 0,
|
1, new Serializable[] { id });
|
if (videoList != null && videoList.size() > 0) {
|
object.put("playlink", videoList.get(0).getPlayLink());
|
playUrl.setUrl(videoList.get(0).getPlayLink());
|
}
|
} else if ("short".equalsIgnoreCase(type)) {
|
List<PPTVShortVideo> videoList = pptvShortVideoDao.list("from PPTVShortVideo pv where pv.vid=?", 0, 1,
|
new Serializable[] { id });
|
if (videoList != null && videoList.size() > 0) {
|
object.put("playlink", videoList.get(0).getPlaylink());
|
playUrl.setUrl(videoList.get(0).getPlaylink());
|
}
|
}
|
|
playUrl.setParams(object.toString());
|
return playUrl;
|
}
|
|
}
|