package com.yeshi.buwan.service.imp.juhe;
|
|
import java.io.Serializable;
|
import java.util.ArrayList;
|
import java.util.Calendar;
|
import java.util.Collections;
|
import java.util.Comparator;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.apache.log4j.Logger;
|
import org.hibernate.HibernateException;
|
import org.hibernate.Session;
|
import org.springframework.orm.hibernate4.HibernateCallback;
|
import org.springframework.stereotype.Service;
|
|
import com.yeshi.buwan.dao.ResourceVideoDao;
|
import com.yeshi.buwan.dao.juhe.iqiyi.IqiyiVideoInfoDao;
|
import com.yeshi.buwan.dao.juhe.iqiyi.VideoIqiyiDao;
|
import com.yeshi.buwan.domain.AdminInfo;
|
import com.yeshi.buwan.domain.CategoryVideo;
|
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.VideoType;
|
import com.yeshi.buwan.domain.push.VideoPushHistory;
|
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum;
|
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiVideoInfo;
|
import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi;
|
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil;
|
import com.yeshi.buwan.log.LogHelper;
|
import com.yeshi.buwan.service.imp.StatisticsService;
|
import com.yeshi.buwan.service.imp.push.PushService;
|
import com.yeshi.buwan.util.StringUtil;
|
import com.yeshi.buwan.util.TimeUtil;
|
|
import net.sf.json.JSONArray;
|
|
@Service
|
public class IqiyiService {
|
static Logger logger = Logger.getLogger(IqiyiService.class);
|
@Resource
|
private IqiyiVideoInfoDao iqiyiVideoInfoDao;
|
@Resource
|
private VideoIqiyiDao videoIqiyiDao;
|
@Resource
|
private StatisticsService statisticsService;
|
@Resource
|
private PushService pushService;
|
|
@Resource
|
private ResourceVideoDao resourceVideoDao;
|
|
|
static {
|
// PropertyConfigurator.configure(".\\src\\log4j.properties");
|
}
|
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
public String saveAlbum(final IqiyiAlbum album) {
|
if (album.getCreditList() != null && album.getCreditList().length() > 512)
|
album.setCreditList(album.getCreditList().substring(0, 512));
|
|
return videoIqiyiDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
Serializable id = "";
|
try {
|
List<IqiyiAlbum> list = session.createQuery("from IqiyiAlbum a where a.albumId=?")
|
.setParameter(0, album.getAlbumId()).list();
|
if (list == null || list.size() == 0) {
|
session.getTransaction().begin();
|
id = session.save(album);
|
session.flush();
|
session.getTransaction().commit();
|
} else
|
id = list.get(0).getId();
|
|
} catch (Exception e) {
|
logger.error(album.getId() + "---" + album.getAlbumName());
|
logger.error(e.getMessage());
|
e.printStackTrace();
|
session.getTransaction().rollback();
|
System.out.println(album.getId() + "---" + album.getAlbumName());
|
}
|
return id.toString();
|
}
|
}) + "";
|
|
}
|
|
public IqiyiVideoInfo getLatestVideoInfo(String albumId) {
|
List<IqiyiVideoInfo> list = iqiyiVideoInfoDao.list(
|
"from IqiyiVideoInfo iv where iv.albumId=? order by iv.playOrder desc", 0, 1, new String[] { albumId });
|
return list != null && list.size() > 0 ? list.get(0) : null;
|
}
|
|
@SuppressWarnings("unchecked")
|
public static IqiyiVideoInfo getLatestVideoInfo(String albumId, Session session) {
|
List<IqiyiVideoInfo> list = session
|
.createQuery("from IqiyiVideoInfo iv where iv.albumId=? order by iv.playOrder desc")
|
.setParameter(0, albumId).setFirstResult(0).setMaxResults(1).list();
|
|
return list != null && list.size() > 0 ? list.get(0) : null;
|
}
|
|
@SuppressWarnings("rawtypes")
|
public void saveVideoInfo(final IqiyiVideoInfo vi) {
|
videoIqiyiDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
try {
|
List list = session.createQuery("from IqiyiVideoInfo a where a.tvId=?")
|
.setParameter(0, vi.getTvId()).list();
|
if (list == null || list.size() == 0) {
|
session.getTransaction().begin();
|
session.persist(vi);
|
session.flush();
|
session.getTransaction().commit();
|
}
|
|
} catch (Exception e) {
|
logger.error("saveVideoInfo");
|
logger.error(e.getMessage());
|
e.printStackTrace();
|
session.getTransaction().rollback();
|
}
|
return null;
|
}
|
});
|
}
|
|
public String saveAlbumVideoInfo(IqiyiAlbum album, List<IqiyiVideoInfo> videoList) {
|
String id = saveAlbum(album);
|
IqiyiVideoInfo latestVideoIfo = getLatestVideoInfo(album.getAlbumId() + "");
|
int startP = 0;
|
Comparator<IqiyiVideoInfo> c = new Comparator<IqiyiVideoInfo>() {
|
|
public int compare(IqiyiVideoInfo o1, IqiyiVideoInfo o2) {
|
return o1.getPlayOrder() - o2.getPlayOrder();
|
}
|
};
|
|
Collections.sort(videoList, c);
|
|
if (latestVideoIfo != null) {
|
for (int i = 0; i < videoList.size(); i++) {
|
if (latestVideoIfo.getTvId() == videoList.get(i).getTvId()) {
|
startP = i + 1;
|
}
|
}
|
}
|
if (videoList.size() > 1) {
|
System.out.println("--");
|
}
|
|
if (startP < videoList.size())// 有更新内容
|
{
|
// startP = startP == 0 ? videoList.size() : startP;
|
videoList = videoList.subList(startP, videoList.size());
|
for (IqiyiVideoInfo info : videoList)
|
saveVideoInfo(info);
|
}
|
return id;
|
}
|
|
public void deleteByTvId(final String tvId) {
|
iqiyiVideoInfoDao.excute(new HibernateCallback<Object>() {
|
@Override
|
public Object doInHibernate(Session session) throws HibernateException {
|
session.getTransaction().begin();
|
session.createSQLQuery("delete from `wk_iqiyi_album_tvid` WHERE `tvid`=" + tvId).executeUpdate();
|
session.getTransaction().commit();
|
session.close();
|
return null;
|
}
|
});
|
|
}
|
|
private static boolean isSameVideoType(int categoryid, long typeid) {
|
|
switch (categoryid) {
|
case 1:
|
if (typeid == 151)
|
return true;
|
break;
|
case 2:
|
if (typeid == 150)
|
return true;
|
break;
|
case 4:
|
if (typeid == 153)
|
return true;
|
break;
|
case 6:
|
if (typeid == 152)
|
return true;
|
break;
|
}
|
|
return false;
|
|
}
|
|
// 判断是否为同一视频
|
@SuppressWarnings("unchecked")
|
private static VideoInfo isSameVideo(IqiyiAlbum album, Session session) {
|
Calendar ca = Calendar.getInstance();
|
ca.setTimeInMillis(TimeUtil.convertGernalTime(album.getTvYear(), "yyyyMMdd"));
|
int year = ca.get(Calendar.YEAR);
|
List<VideoInfo> list = session.createQuery("from VideoInfo vi where vi.name=?")
|
.setParameter(0, album.getSourceId() > 0 ? album.getSource() : album.getAlbumName()).list();
|
if (list != null && list.size() > 0)
|
for (int i = 0; i < list.size(); i++) {
|
|
if (Math.abs(Integer.parseInt(list.get(i).getYear()) - year) < 2) {// 年份相差1年以下且属于同一个分类才归为一起
|
// 判断分类
|
if (album.getCategoryId() == 1 || album.getCategoryId() == 2 || album.getCategoryId() == 4
|
|| album.getCategoryId() == 6) {// 正片分类
|
List<CategoryVideo> cvList = session
|
.createQuery("from CategoryVideo cv where cv.video.id=" + list.get(i).getId()).list();
|
boolean isS = false;
|
for (CategoryVideo cv : cvList) {
|
if (isSameVideoType(album.getCategoryId(), cv.getVideoType().getId())
|
|| (cv.getVideoType().getParent() != null && isSameVideoType(album.getCategoryId(),
|
cv.getVideoType().getParent().getId()))) {// 类型相同
|
return list.get(i);
|
}
|
|
}
|
|
} else // 不必比较分类--只要名称相同则判断为相同
|
{ // 判断上个是否为正片分类
|
List<VideoType> typeList = session
|
.createQuery("select cv.videoType from CategoryVideo cv where cv.video.id=?")
|
.setParameter(0, list.get(i).getId()).list();
|
boolean isZhengpian = false;
|
if (typeList != null)
|
for (VideoType ltype : typeList) {
|
if (ltype.getId() == 150 || ltype.getId() == 151 || ltype.getId() == 152
|
|| ltype.getId() == 153
|
|| (ltype.getParent() != null && ltype.getParent().getId() == 150)
|
|| (ltype.getParent() != null && ltype.getParent().getId() == 151)
|
|| (ltype.getParent() != null && ltype.getParent().getId() == 152)
|
|| (ltype.getParent() != null && ltype.getParent().getId() == 153)) {
|
isZhengpian = true;
|
break;
|
}
|
}
|
|
if (!isZhengpian)
|
return list.get(i);
|
else
|
return null;
|
}
|
}
|
|
}
|
|
return null;
|
}
|
|
/**
|
* 将专辑插入视频表
|
*
|
* @param album
|
*/
|
|
@SuppressWarnings("unchecked")
|
public String insertAlbumToVideoInfo(final IqiyiAlbum album, final List<IqiyiVideoInfo> videoList,
|
final boolean isUpdate) {
|
if (JSONArray.fromObject(album.getTvIds()).size() <= 0)// 还没有视频信息
|
return null;
|
|
return videoIqiyiDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
String vid = null;
|
VideoInfo updateVideo = null;
|
try {
|
if (album.getSourceId() <= 0) {
|
session.getTransaction().begin();
|
List<VideoIqiyi> list = session.createQuery("from VideoIqiyi vi where vi.album.albumId=?")
|
.setParameter(0, album.getAlbumId()).setMaxResults(1).list();
|
|
if (list == null || list.size() == 0) {// 该专辑未加入到videoinfo
|
VideoInfo vi = convertAlbumTOVideoInfo(album, session);
|
vi.setVideocount(videoList.size());
|
VideoInfo same = isSameVideo(album, session);
|
String id = "";
|
if (same == null) {
|
id = session.save(vi).toString();
|
// if(id!=null)
|
// session.createSQLQuery(String.format("CALL
|
// copyvideotemp(%s)",id)).executeUpdate();
|
} else {
|
List<IqiyiVideoInfo> ilist = session
|
.createQuery(
|
"from IqiyiVideoInfo vi where vi.albumId=? order by vi.playOrder desc")
|
.setParameter(0, album.getAlbumId() + "").setFirstResult(0).setMaxResults(1)
|
.list();
|
id = same.getId();
|
if (!StringUtil.isNullOrEmpty(ilist.get(0).getUpdateTime())) {
|
same.setUpdatetime(TimeUtil.convertGernalTime(ilist.get(0).getUpdateTime(),
|
"yyyy-MM-dd HH:mm:ss") + "");
|
} else {
|
same.setUpdatetime(TimeUtil.convertGernalTime(album.getTvYear(), "yyyyMMdd") + "");
|
}
|
|
String tag = IqiyiUtil.getAlbumTag(album, session);
|
LogHelper.iqiyi("爱奇艺TAG:" + tag);
|
if (!StringUtil.isNullOrEmpty(tag)) {// tag不为空
|
if (album.getCategoryId() == 6 && album.getContentType() == 1)// 综艺
|
// 并且是正片
|
{
|
same.setTag(tag);
|
} else if (album.getCategoryId() != 6) {
|
same.setTag(tag);
|
}
|
}
|
|
session.update(same);// 更新原来的视频
|
|
Object obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.resource.id=? and rv.video.id=?")
|
.setParameter(0, 13 + "").setParameter(1, same.getId()).uniqueResult();
|
|
long c = Long.parseLong(obj + "");
|
if (c <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("13"));
|
rv.setVideo(new VideoInfo(same.getId()));
|
session.persist(rv);
|
}
|
|
}
|
// 将视频保存到渠道列表
|
vid = id;
|
Object obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.resource.id=? and rv.video.id=?")
|
.setParameter(0, 13 + "").setParameter(1, id).uniqueResult();
|
long c = Long.parseLong(obj + "");
|
if (c <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("13"));
|
rv.setVideo(new VideoInfo(id));
|
session.persist(rv);
|
}
|
|
VideoIqiyi vii = new VideoIqiyi();
|
vii.setAlbum(new IqiyiAlbum(album.getId()));
|
vii.setVideo(new VideoInfo(id));
|
session.persist(vii);
|
} else// 更新时间与tag
|
{
|
List<IqiyiVideoInfo> ilist = session
|
.createQuery(
|
"from IqiyiVideoInfo vi where vi.albumId=? order by vi.playOrder desc")
|
.setParameter(0, album.getAlbumId() + "").setFirstResult(0).setMaxResults(1).list();
|
if (ilist != null && ilist.size() > 0) {
|
// if
|
// (!StringUtil.isNullOrEmpty(ilist.get(0).getUpdateTime()))
|
// {
|
// list.get(0).getVideo()
|
// .setUpdatetime(TimeUtil.convertGernalTime(ilist.get(0).getUpdateTime(),
|
// "yyyy-MM-dd HH:mm:ss") + "");
|
// } else {
|
// list.get(0).getVideo().setUpdatetime(
|
// TimeUtil.convertGernalTime(ilist.get(0).getTvYear(),
|
// "yyyyMMdd") + "");
|
// }
|
list.get(0).getVideo().setVideocount(videoList.size());
|
if (!StringUtil.isNullOrEmpty(ilist.get(0).getVideoImage())) {
|
list.get(0).getVideo().setLatestHpicture(
|
IqiyiUtil.getHPicture(ilist.get(0).getVideoImage()));
|
list.get(0).getVideo().setLatestVpicture(ilist.get(0).getVideoImage());
|
}
|
}
|
|
if (isUpdate)
|
list.get(0).getVideo().setUpdatetime(System.currentTimeMillis() + "");
|
|
String tag = IqiyiUtil.getAlbumTag(album, session);
|
if (!StringUtil.isNullOrEmpty(tag)) {// tag不为空
|
if (!tag.equalsIgnoreCase(list.get(0).getVideo().getTag())) {// tag不一样
|
list.get(0).getVideo().setTag(tag);
|
if (ilist != null && ilist.size() > 0) {
|
updateVideo = list.get(0).getVideo();
|
List<VideoDetailInfo> detailList = new ArrayList<>();
|
detailList.add(convertVideoinfoToDetail(album, ilist.get(0)));
|
updateVideo.setVideoDetailList(detailList);
|
}
|
}
|
}
|
session.update(list.get(0).getVideo());
|
vid = list.get(0).getVideo().getId();
|
Object obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.resource.id=? and rv.video.id=?")
|
.setParameter(0, 13 + "").setParameter(1, list.get(0).getVideo().getId())
|
.uniqueResult();
|
|
long c = Long.parseLong(obj + "");
|
if (c <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("13"));
|
rv.setVideo(new VideoInfo(list.get(0).getVideo().getId()));
|
session.persist(rv);
|
}
|
}
|
// 更新tag
|
session.flush();
|
session.getTransaction().commit();
|
} else {
|
// sourceid>0
|
Object detailCountObj = session
|
.createQuery(
|
"select count(*) from IqiyiAlbum a where a.sourceId=" + album.getSourceId())
|
.uniqueResult();
|
int videoDetailCount = Integer.parseInt(detailCountObj + "");
|
|
List<VideoIqiyi> list = session
|
.createQuery(
|
"from VideoIqiyi vi where vi.album.sourceId=? order by UNIX_TIMESTAMP(vi.album.createdTime) desc")
|
.setParameter(0, album.getSourceId()).setFirstResult(0).setMaxResults(1).list();
|
session.getTransaction().begin();
|
if (list == null || list.size() == 0) {// 不存在
|
VideoInfo vi = convertAlbumTOVideoInfo(album, session);
|
String videoid = "";
|
|
VideoInfo same = isSameVideo(album, session);
|
if (same == null) {
|
vi.setVideocount(videoDetailCount);
|
videoid = session.save(vi).toString();
|
} else
|
videoid = same.getId();
|
|
vid = videoid;
|
VideoIqiyi vii = new VideoIqiyi();
|
vii.setAlbum(album);
|
vii.setVideo(new VideoInfo(videoid));
|
session.persist(vii);
|
|
Object obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.resource.id=? and rv.video.id=?")
|
.setParameter(0, 13 + "").setParameter(1, videoid).uniqueResult();
|
|
long c = Long.parseLong(obj + "");
|
if (c <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("13"));
|
rv.setVideo(new VideoInfo(videoid));
|
session.persist(rv);
|
}
|
|
if (same != null)// 更新内容
|
{
|
list = session
|
.createQuery(
|
"from VideoIqiyi vi where vi.album.sourceId=? order by UNIX_TIMESTAMP(vi.album.tvYear) desc")
|
.setParameter(0, album.getSourceId()).setFirstResult(0).setMaxResults(1).list();
|
String tag = IqiyiUtil.getAlbumTag(list.get(0).getAlbum(), session);
|
if (!tag.equalsIgnoreCase(same.getTag())) {
|
same.setTag(tag);
|
|
if (isUpdate) {
|
updateVideo = same;
|
List<VideoDetailInfo> detailList = new ArrayList<VideoDetailInfo>();
|
detailList.add(convertAlbumToDetail(list.get(0).getAlbum()));
|
updateVideo.setVideoDetailList(detailList);
|
}
|
}
|
same.setUpdatetime(
|
TimeUtil.convertGernalTime(list.get(0).getAlbum().getTvYear(), "yyyyMMdd")
|
+ "");
|
session.update(same);
|
|
obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.resource.id=? and rv.video.id=?")
|
.setParameter(0, 13 + "").setParameter(1, list.get(0).getVideo().getId())
|
.uniqueResult();
|
|
c = Long.parseLong(obj + "");
|
if (c <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("13"));
|
rv.setVideo(same);
|
session.persist(rv);
|
}
|
|
}
|
|
} else {
|
Object ob = session
|
.createQuery(
|
"select count(*) from VideoIqiyi vi where vi.album.sourceId=? and vi.album.albumId=?")
|
.setParameter(0, album.getSourceId()).setParameter(1, album.getAlbumId())
|
.uniqueResult();
|
long count = Long.parseLong(ob.toString());
|
if (count <= 0) {// 需要加入VideoIqiyi
|
VideoIqiyi vi = new VideoIqiyi();
|
vi.setVideo(list.get(0).getVideo());
|
vi.setAlbum(album);
|
session.persist(vi);
|
if (album.getSourceId() > 0) {// 综艺
|
// 查询最新做更新
|
list = session
|
.createQuery(
|
"from VideoIqiyi vi where vi.album.sourceId=? order by UNIX_TIMESTAMP(vi.album.tvYear) desc")
|
.setParameter(0, album.getSourceId()).setFirstResult(0).setMaxResults(1)
|
.list();
|
String tag = IqiyiUtil.getAlbumTag(list.get(0).getAlbum(), session);
|
|
list.get(0).getVideo().setTag(tag);
|
// list.get(0).getVideo().setUpdatetime(
|
// TimeUtil.convertGernalTime(list.get(0).getAlbum().getTvYear(),
|
// "yyyyMMdd")
|
// + "");
|
if (isUpdate)
|
list.get(0).getVideo().setUpdatetime(System.currentTimeMillis() + "");
|
|
if (!StringUtil.isNullOrEmpty(list.get(0).getAlbum().getPosterPicUrl())) {
|
list.get(0).getVideo().setLatestHpicture( IqiyiUtil.getHPicture( list.get(0).getAlbum()
|
.getPosterPicUrl()));
|
list.get(0).getVideo()
|
.setLatestVpicture(list.get(0).getAlbum().getPosterPicUrl());
|
}
|
list.get(0).getVideo().setVideocount(videoDetailCount);
|
|
session.update(list.get(0).getVideo());
|
if (isUpdate) {
|
updateVideo = list.get(0).getVideo();
|
List<VideoDetailInfo> detailList = new ArrayList<VideoDetailInfo>();
|
detailList.add(convertAlbumToDetail(list.get(0).getAlbum()));
|
updateVideo.setVideoDetailList(detailList);
|
}
|
}
|
}
|
|
Object obj = session
|
.createQuery(
|
"select count(*) from ResourceVideo rv where rv.resource.id=? and rv.video.id=?")
|
.setParameter(0, 13 + "").setParameter(1, list.get(0).getVideo().getId())
|
.uniqueResult();
|
|
long c = Long.parseLong(obj + "");
|
if (c <= 0) {
|
ResourceVideo rv = new ResourceVideo();
|
rv.setResource(new VideoResource("13"));
|
rv.setVideo(list.get(0).getVideo());
|
session.persist(rv);
|
}
|
vid = list.get(0).getVideo().getId();
|
}
|
session.flush();
|
session.getTransaction().commit();
|
}
|
|
} catch (Exception e) {
|
logger.error("insertAlbumToVideoInfo");
|
logger.error(e.getMessage());
|
session.getTransaction().rollback();
|
e.printStackTrace();
|
}
|
|
try {
|
if (updateVideo != null && isUpdate) {
|
VideoPushHistory vh = new VideoPushHistory();
|
vh.setCreatetime(System.currentTimeMillis() + "");
|
vh.setDetailId(updateVideo.getVideoDetailList().get(0).getId() + "");
|
vh.setType(updateVideo.getVideoDetailList().get(0).getType());
|
vh.setResourceId("13");
|
vh.setTag(updateVideo.getTag());
|
vh.setVideoInfo(updateVideo);
|
pushService.addVideoPushHistory(vh);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
return vid;
|
}
|
}) + "";
|
|
}
|
|
private static VideoDetailInfo convertAlbumToDetail(IqiyiAlbum ia) {
|
VideoDetailInfo vi = new VideoDetailInfo();
|
vi.setAdmin(new AdminInfo("1"));
|
vi.setId(ia.getAlbumId());
|
vi.setIntroduction(ia.getDesc());
|
vi.setName(ia.getSource());
|
vi.setTag(ia.getTvYear() + " " + (StringUtil.isNullOrEmpty(ia.getFocus()) ? "" : ia.getFocus()));
|
vi.setType("album");
|
return vi;
|
}
|
|
private static VideoDetailInfo convertVideoinfoToDetail(IqiyiAlbum album, IqiyiVideoInfo info) {
|
VideoDetailInfo vi = new VideoDetailInfo();
|
vi.setAdmin(new AdminInfo("1"));
|
vi.setId(info.getTvId());
|
vi.setExtraId(info.getTvId() + "");
|
vi.setIntroduction("");
|
vi.setName("");
|
vi.setTag(info.getPlayOrder() + "");
|
if (album != null)
|
if (album.getCategoryId() == 1)
|
vi.setTag(album.getAlbumName());
|
|
info.getSubTitle();
|
|
vi.setType("tvid");
|
return vi;
|
}
|
|
@SuppressWarnings("rawtypes")
|
public List<List<String>> getSourceAlbumList() {
|
List<List<String>> olist = new ArrayList<List<String>>();
|
|
List list = videoIqiyiDao.sqlList(
|
"SELECT a.`sourceId`,a.categoryId FROM wk_iqiyi_album a WHERE a.`sourceId`>0 GROUP BY a.`sourceId` ");
|
for (int i = 0; i < list.size(); i++) {
|
List<String> ilist = new ArrayList<String>();
|
Object[] obj = (Object[]) list.get(i);
|
ilist.add(obj[0] + "");
|
ilist.add(obj[1] + "");
|
olist.add(ilist);
|
}
|
return olist;
|
}
|
|
@SuppressWarnings("rawtypes")
|
public List<List<String>> getSourceAlbumListBySourceId(String sourceId) {
|
List<List<String>> olist = new ArrayList<List<String>>();
|
|
List list = videoIqiyiDao.sqlList("SELECT a.`sourceId`,a.categoryId FROM wk_iqiyi_album a WHERE a.`sourceId`="
|
+ sourceId + " GROUP BY a.`sourceId` ");
|
for (int i = 0; i < list.size(); i++) {
|
List<String> ilist = new ArrayList<String>();
|
Object[] obj = (Object[]) list.get(i);
|
ilist.add(obj[0] + "");
|
ilist.add(obj[1] + "");
|
olist.add(ilist);
|
}
|
return olist;
|
}
|
|
@SuppressWarnings("unchecked")
|
public List<VideoDetailInfo> getVideoDetailList(final String videoid,int page,int pageSize) {
|
return (List<VideoDetailInfo>) videoIqiyiDao.excute(new HibernateCallback<List<VideoDetailInfo>>() {
|
public List<VideoDetailInfo> doInHibernate(Session session) throws HibernateException {
|
try {
|
List<IqiyiAlbum> list = session
|
.createQuery(
|
"select a.album from VideoIqiyi a where a.video.id=? order by UNIX_TIMESTAMP(a.album.tvYear) desc")
|
.setFirstResult((page-1)*pageSize).setMaxResults(pageSize)
|
.setParameter(0, videoid).list();
|
if (list == null || list.size() == 0) {
|
return null;
|
}
|
|
List<VideoDetailInfo> detailList = new ArrayList<VideoDetailInfo>();
|
|
if (list.size() > 1) {
|
for (IqiyiAlbum ia : list)
|
// 综艺只加正片
|
if (ia.getCategoryId() == 6) {
|
if (ia.getContentType() == 1)
|
detailList.add(convertAlbumToDetail(ia));
|
} else
|
detailList.add(convertAlbumToDetail(ia));
|
} else {
|
List<IqiyiVideoInfo> ivlist = session
|
.createQuery("from IqiyiVideoInfo a where a.albumId=? order by a.playOrder")
|
.setFirstResult((page-1)*pageSize).setMaxResults(pageSize)
|
.setParameter(0, list.get(0).getAlbumId() + "").list();
|
|
for (IqiyiVideoInfo ia : ivlist)
|
detailList.add(convertVideoinfoToDetail(list.get(0), ia));
|
}
|
return detailList;
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
logger.error("getVideoDetailList");
|
logger.error(e.getMessage());
|
}
|
return new ArrayList<VideoDetailInfo>();
|
}
|
});
|
|
}
|
|
// 获取最新一集的详情
|
@SuppressWarnings("unchecked")
|
public VideoDetailInfo getLatestVideoDetail(final String videoid) {
|
return (VideoDetailInfo) videoIqiyiDao.excute(new HibernateCallback<VideoDetailInfo>() {
|
public VideoDetailInfo doInHibernate(Session session) throws HibernateException {
|
try {
|
List<IqiyiAlbum> list = session
|
.createQuery(
|
"select a.album from VideoIqiyi a where a.video.id=? order by UNIX_TIMESTAMP(a.album.tvYear) desc")
|
.setFirstResult(0).setMaxResults(2).setParameter(0, videoid).list();
|
if (list == null || list.size() == 0) {
|
return null;
|
}
|
|
List<VideoDetailInfo> detailList = new ArrayList<VideoDetailInfo>();
|
|
if (list.size() > 1) {
|
for (IqiyiAlbum ia : list)
|
detailList.add(convertAlbumToDetail(ia));
|
|
} else {
|
List<IqiyiVideoInfo> ivlist = session
|
.createQuery("from IqiyiVideoInfo a where a.albumId=? order by a.playOrder desc")
|
.setParameter(0, list.get(0).getAlbumId() + "").list();
|
|
for (IqiyiVideoInfo ia : ivlist)
|
detailList.add(convertVideoinfoToDetail(list.get(0), ia));
|
}
|
return detailList.get(0);
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
logger.error("getVideoDetailList");
|
logger.error(e.getMessage());
|
}
|
return null;
|
}
|
});
|
|
}
|
|
public String getAlbumTag(IqiyiAlbum album) {
|
String tag = "";
|
if (album.getCategoryId() == 1) {
|
if (album.getSourceId() > 0)
|
tag = "更新至" + TimeUtil.getGernalTime(TimeUtil.convertGernalTime(album.getTvYear(), "yyyyMMdd"),
|
"yyyy-MM-dd");
|
else
|
tag = "评分:" + album.getScore();
|
} else if (album.getCategoryId() == 2) {
|
IqiyiVideoInfo video = getLatestVideoInfo(album.getAlbumId() + "");
|
tag = "更新至" + video.getPlayOrder() + "集";
|
if (video.getPlayOrder() == album.getSets()) {
|
tag = album.getSets() + "集全";
|
}
|
} else if (album.getCategoryId() == 6) {
|
tag = "更新至"
|
+ TimeUtil.getGernalTime(TimeUtil.convertGernalTime(album.getTvYear(), "yyyyMMdd"), "yyyy-MM-dd")
|
+ "期";
|
} else if (album.getCategoryId() == 4) {
|
IqiyiVideoInfo video = getLatestVideoInfo(album.getAlbumId() + "");
|
tag = "更新至" + video.getPlayOrder() + "集";
|
if (video.getPlayOrder() == album.getSets()) {
|
tag = album.getSets() + "集全";
|
}
|
}
|
return tag;
|
}
|
|
@SuppressWarnings({ "deprecation", "unchecked" })
|
public VideoInfo convertAlbumTOVideoInfo(IqiyiAlbum album, Session session) {
|
Calendar ca = Calendar.getInstance();
|
if ("0".equalsIgnoreCase(album.getTvYear())) {
|
album.setTvYear("20160101");
|
}
|
ca.setTimeInMillis(TimeUtil.convertGernalTime(album.getTvYear(), "yyyyMMdd"));
|
int day = ca.get(Calendar.DAY_OF_MONTH);
|
int month = ca.get(Calendar.MONTH) + 1;
|
int year = ca.get(Calendar.YEAR);
|
|
VideoInfo video = new VideoInfo();
|
video.setVideoType(new VideoType(IqiyiUtil.getType(album.getContentType())));
|
video.setArea(album.getArea());
|
video.setBaseurl(album.getHtml5Url());
|
video.setCanSave(false);
|
video.setCommentCount(0);
|
video.setCreatetime(System.currentTimeMillis());
|
video.setDay(day + "");
|
video.setDirector(album.getDirector());
|
video.setDuration(album.getTimeLength() + "");
|
video.setFinish("1");
|
video.setIntroduction(album.getDesc());
|
video.setMainActor(album.getActor());
|
video.setMonth(month + "");
|
if (album.getSourceId() == 0)
|
video.setName(album.getAlbumName());
|
else
|
video.setName(album.getSource());
|
video.setNowNumber("1");
|
video.setOrderby("0" + "");
|
video.setPicture(album.getPicUrl());
|
|
// info.setPlayPicture(info.getPicture().replace(".jpg",
|
// "_480_270.jpg"));
|
|
video.setVpicture(IqiyiUtil.getVPicture(album.getPicUrl()));
|
video.setHpicture( IqiyiUtil.getHPicture( album.getPicUrl()));
|
|
video.setScore(album.getScore());
|
video.setShare("0");
|
video.setShow("1");
|
if (session != null)
|
video.setTag(IqiyiUtil.getAlbumTag(album, session));
|
else
|
video.setTag(getAlbumTag(album));
|
video.setThirdType("1");
|
video.setTotalNumber("0");
|
List<IqiyiVideoInfo> infolist = session
|
.createQuery("from IqiyiVideoInfo vi where vi.albumId=? order by UNIX_TIMESTAMP(vi.updateTime) desc")
|
.setFirstResult(0).setMaxResults(1).setParameter(0, album.getAlbumId() + "").list();
|
if (infolist != null && infolist.size() > 0) {
|
if (infolist.get(0).getTvYear().length() > 5)
|
video.setUpdatetime(TimeUtil.convertGernalTime(infolist.get(0).getTvYear(), "yyyyMMdd") + "");
|
else
|
video.setUpdatetime(TimeUtil.convertDateToTemp2(infolist.get(0).getUpdateTime()) + "");
|
} else {
|
video.setUpdatetime(TimeUtil.convertDateToTemp2(album.getCreatedTime()) + "");
|
}
|
video.setWatchCount(0 + "");
|
video.setYear(year + "");
|
video.setAdmin(new AdminInfo("1"));
|
video.setContentType(album.getContentType());
|
video.setCommentCount(0);
|
if (infolist.size() > 0) {
|
video.setLatestHpicture(infolist.get(0).getVideoImage());
|
video.setVideocount(infolist.size());
|
video.setLatestHpicture(IqiyiUtil.getHPicture( infolist.get(0).getVideoImage()));
|
video.setLatestVpicture(IqiyiUtil.getVPicture(infolist.get(0).getVideoImage()));
|
}
|
|
return video;
|
}
|
|
// 添加播放统计
|
public void addPlayStatistic(String detailSystemId, IqiyiVideoInfo video) {
|
List list = videoIqiyiDao.sqlList(
|
"SELECT i.`videoid` FROM wk_video_iqiyi i WHERE i.`albumid`=(SELECT a.`id` FROM wk_iqiyi_album a WHERE a.`albumId`=?)",
|
new Serializable[] { Long.parseLong(video.getAlbumId()) });
|
if (list != null && list.size() > 0) {
|
statisticsService.addStatistics(detailSystemId, list.get(0) + "");
|
}
|
}
|
|
/**
|
* 删除指定的iqiyi源视频
|
*/
|
public void deleteIqiyiVideoByVideoId(final String videoId) {
|
// 删除VideoIqiyi
|
List<VideoIqiyi> list = videoIqiyiDao.list("from VideoIqiyi i where i.video.id=" + videoId);
|
for (VideoIqiyi iqiyi : list)
|
videoIqiyiDao.delete(iqiyi);
|
// 删除ResourceVideo
|
List<ResourceVideo> resourceVideoList = resourceVideoDao
|
.list("from ResourceVideo rv where rv.video.id=" + videoId + " and rv.resource.id=19");
|
for (ResourceVideo rv : resourceVideoList)
|
resourceVideoDao.delete(rv);
|
// 判读是否删除相关VideoInfo
|
resourceVideoList = resourceVideoDao.list("from ResourceVideo rv where rv.video.id=" + videoId);
|
// 需要隐藏视频
|
if (resourceVideoList.size() <= 0) {
|
videoIqiyiDao.excute(new HibernateCallback() {
|
@Override
|
public Object doInHibernate(Session session) throws HibernateException {
|
session.getTransaction().begin();
|
session.createSQLQuery("update wk_video_video v set v.show=0 where v.id=" + videoId)
|
.executeUpdate();
|
session.flush();
|
session.getTransaction().commit();
|
return null;
|
}
|
});
|
}
|
|
}
|
|
}
|