| | |
| | | package com.yeshi.buwan.service.imp; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | |
| | | import com.yeshi.buwan.dao.VideoResourceMapExtraInfoDao; |
| | | import com.yeshi.buwan.dao.juhe.iqiyi.VideoIqiyiDao; |
| | | import com.yeshi.buwan.domain.VideoResource; |
| | | import com.yeshi.buwan.domain.VideoResourceMapExtraInfo; |
| | | import com.yeshi.buwan.dto.mq.VideoDataChangeMQMsg; |
| | | import com.yeshi.buwan.dto.mq.VideoExtraInfoChangeMQMsg; |
| | | import com.yeshi.buwan.iqiyi.entity.VideoIqiyi; |
| | | import com.yeshi.buwan.util.mq.CMQManager; |
| | | import org.hibernate.HibernateException; |
| | | import org.hibernate.Query; |
| | |
| | | @SuppressWarnings("unchecked") |
| | | public List<ResourceVideo> getResourceList(final List<VideoInfo> list) { |
| | | if (list == null || list.size() == 0) { |
| | | return new ArrayList<ResourceVideo>(); |
| | | return new ArrayList<>(); |
| | | } |
| | | return (List<ResourceVideo>) resourceVideoDao.excute(new HibernateCallback<List<ResourceVideo>>() { |
| | | @Override |
| | |
| | | return getResourceList(videoInfoList); |
| | | } |
| | | |
| | | /** |
| | | * 获取默认的源 |
| | | * |
| | | * @param videoId |
| | | * @param avaiableResourceIds |
| | | * @return |
| | | */ |
| | | public VideoResource getDefaultVideoResource(String videoId, Set<Long> avaiableResourceIds) { |
| | | List<ResourceVideo> resourceVideoList = resourceVideoDao.list("FROM ResourceVideo rv where rv.video.id=? order by rv.resource.orderby desc", videoId); |
| | | //删除无用来源 |
| | | for (int i = 0; i < resourceVideoList.size(); i++) { |
| | | if (!avaiableResourceIds.contains(Long.parseLong(resourceVideoList.get(i).getResource().getId())) || resourceVideoList.get(i).getResource() == null) { |
| | | resourceVideoList.remove(i--); |
| | | } |
| | | } |
| | | //排序 |
| | | |
| | | List<VideoResource> resourceList = new ArrayList<>(); |
| | | |
| | | for (ResourceVideo rv : resourceVideoList) { |
| | | resourceList.add(rv.getResource()); |
| | | } |
| | | |
| | | Comparator<VideoResource> cm = new Comparator<VideoResource>() { |
| | | @Override |
| | | public int compare(VideoResource o1, VideoResource o2) { |
| | | return o2.getOrderby() - o1.getOrderby(); |
| | | } |
| | | }; |
| | | |
| | | Collections.sort(resourceList, cm); |
| | | if (resourceList.size() > 0) |
| | | return resourceList.get(0); |
| | | |
| | | return null; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据视频ID与ResourceId查询 |
| | |
| | | rv.setVideo(new VideoInfo(videoId + "")); |
| | | resourceVideoDao.save(rv); |
| | | CMQManager.getInstance().addVideoExtraInfoChanged(new VideoExtraInfoChangeMQMsg(VideoExtraInfoChangeMQMsg.TYPE_RESOURCE, videoId, VideoExtraInfoChangeMQMsg.ACTION_ADD)); |
| | | CMQManager.getInstance().addVideoDataChanged(new VideoDataChangeMQMsg(VideoDataChangeMQMsg.TYPE_VIDEO_RESOURCE,videoId, VideoDataChangeMQMsg.ACTION_ADD)); |
| | | } |
| | | } |
| | | |
| | |
| | | if (resourceVideo != null) { |
| | | resourceVideoDao.delete(resourceVideo); |
| | | CMQManager.getInstance().addVideoExtraInfoChanged(new VideoExtraInfoChangeMQMsg(VideoExtraInfoChangeMQMsg.TYPE_RESOURCE, videoId, VideoExtraInfoChangeMQMsg.ACTION_DELETE)); |
| | | CMQManager.getInstance().addVideoDataChanged(new VideoDataChangeMQMsg(VideoDataChangeMQMsg.TYPE_VIDEO_RESOURCE,videoId, VideoDataChangeMQMsg.ACTION_DELETE)); |
| | | } |
| | | |
| | | VideoResourceMapExtraInfo extraInfo = new VideoResourceMapExtraInfo(videoId, Long.parseLong(resourceId)); |