| | |
| | | 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.VideoExtraInfoChangeMQMsg; |
| | | import com.yeshi.buwan.iqiyi.entity.VideoIqiyi; |
| | | import com.yeshi.buwan.util.mq.CMQManager; |
| | | import org.hibernate.HibernateException; |
| | | import org.hibernate.Query; |
| | |
| | | @Autowired |
| | | private ResourceVideoDao resourceVideoDao; |
| | | |
| | | @Resource |
| | | private VideoResourceMapExtraInfoDao videoResourceMapExtraInfoDao; |
| | | |
| | | |
| | | @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查询 |
| | |
| | | @Transactional |
| | | public void delete(String videoId, String resourceId) { |
| | | ResourceVideo resourceVideo = resourceVideoDao.selectByVideoIdAndResourceId(videoId, resourceId + ""); |
| | | if (resourceVideo != null) |
| | | if (resourceVideo != null) { |
| | | resourceVideoDao.delete(resourceVideo); |
| | | CMQManager.getInstance().addVideoResourceDeleteMsg(videoId); |
| | | CMQManager.getInstance().addVideoExtraInfoChanged(new VideoExtraInfoChangeMQMsg(VideoExtraInfoChangeMQMsg.TYPE_RESOURCE, videoId, VideoExtraInfoChangeMQMsg.ACTION_DELETE)); |
| | | CMQManager.getInstance().addVideoExtraInfoChanged(new VideoExtraInfoChangeMQMsg(VideoExtraInfoChangeMQMsg.TYPE_RESOURCE, videoId, VideoExtraInfoChangeMQMsg.ACTION_DELETE)); |
| | | } |
| | | |
| | | VideoResourceMapExtraInfo extraInfo = new VideoResourceMapExtraInfo(videoId, Long.parseLong(resourceId)); |
| | | extraInfo = videoResourceMapExtraInfoDao.find(VideoResourceMapExtraInfo.class, extraInfo.getId()); |
| | | if (extraInfo != null) { |
| | | videoResourceMapExtraInfoDao.delete(extraInfo); |
| | | } |
| | | } |
| | | |
| | | |