From f537abe9f3646c739beaf15076246a2f71a347e9 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 20 二月 2025 16:57:55 +0800 Subject: [PATCH] IOS广告增加区域屏蔽 --- src/main/java/com/yeshi/buwan/service/imp/ResourceVideoService.java | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 112 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/service/imp/ResourceVideoService.java b/src/main/java/com/yeshi/buwan/service/imp/ResourceVideoService.java index a4b183c..c98b249 100644 --- a/src/main/java/com/yeshi/buwan/service/imp/ResourceVideoService.java +++ b/src/main/java/com/yeshi/buwan/service/imp/ResourceVideoService.java @@ -1,9 +1,14 @@ package com.yeshi.buwan.service.imp; -import java.util.ArrayList; -import java.util.List; +import java.io.Serializable; +import java.util.*; +import com.yeshi.buwan.dao.VideoResourceMapExtraInfoDao; 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.util.mq.rabbit.RabbitmqManager; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; @@ -14,6 +19,9 @@ import com.yeshi.buwan.dao.ResourceVideoDao; import com.yeshi.buwan.domain.ResourceVideo; import com.yeshi.buwan.domain.VideoInfo; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; @Service public class ResourceVideoService { @@ -21,10 +29,17 @@ @Autowired private ResourceVideoDao resourceVideoDao; + @Resource + private VideoResourceMapExtraInfoDao videoResourceMapExtraInfoDao; + + @Resource + private RabbitmqManager rabbitmqManager; + + @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 @@ -51,6 +66,82 @@ }); } + /** + * 鑾峰彇璧勬簮鍒楄〃 + * + * @param videoId + * @return + */ + @Transactional + public List<ResourceVideo> getResourceList(String videoId) { + List<VideoInfo> videoInfoList = new ArrayList<>(); + videoInfoList.add(new VideoInfo(videoId)); + 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; + } + + /** + * @return java.util.List<com.yeshi.buwan.domain.ResourceVideo> + * @author hxh + * @description 鏍规嵁ResourceId鏌ヨ + * @date 10:58 2024/8/16 + * @param: resourceId + * @param: page + * @param: pageSize + **/ + public List<ResourceVideo> listResourceVideo(Long resourceId, int page, int pageSize) { + return resourceVideoDao.list("from ResourceVideo rv where rv.resource.id=? ", (page - 1) * pageSize, pageSize, new Serializable[]{resourceId + ""}); + } + + + /** + * 鏍规嵁瑙嗛ID涓嶳esourceId鏌ヨ + * + * @param videoId + * @param sourceId + * @return + */ + + public long countByVideoIdAndResourceId(String videoId, long sourceId) { + return resourceVideoDao.countByVideoIdAndResourceId(videoId, sourceId + ""); + } + public void save(ResourceVideo resourceVideo) { resourceVideoDao.save(resourceVideo); } @@ -58,13 +149,31 @@ public void addVideoResource(String videoId, String resourceId) { ResourceVideo rv = resourceVideoDao.selectByVideoIdAndResourceId(videoId, resourceId); if (rv == null) { + System.out.println(videoId + ":" + resourceId); rv = new ResourceVideo(); rv.setResource(new VideoResource(resourceId + "")); rv.setVideo(new VideoInfo(videoId + "")); resourceVideoDao.save(rv); + rabbitmqManager.addVideoExtraInfoChanged(new VideoExtraInfoChangeMQMsg(VideoExtraInfoChangeMQMsg.TYPE_RESOURCE, videoId, VideoExtraInfoChangeMQMsg.ACTION_ADD)); + rabbitmqManager.addVideoDataChanged(new VideoDataChangeMQMsg(VideoDataChangeMQMsg.TYPE_VIDEO_RESOURCE, videoId, VideoDataChangeMQMsg.ACTION_ADD)); } } + @Transactional + public void delete(String videoId, String resourceId) { + ResourceVideo resourceVideo = resourceVideoDao.selectByVideoIdAndResourceId(videoId, resourceId + ""); + if (resourceVideo != null) { + resourceVideoDao.delete(resourceVideo); + rabbitmqManager.addVideoExtraInfoChanged(new VideoExtraInfoChangeMQMsg(VideoExtraInfoChangeMQMsg.TYPE_RESOURCE, videoId, VideoExtraInfoChangeMQMsg.ACTION_DELETE)); + rabbitmqManager.addVideoDataChanged(new VideoDataChangeMQMsg(VideoDataChangeMQMsg.TYPE_VIDEO_RESOURCE, videoId, VideoDataChangeMQMsg.ACTION_DELETE)); + } + + VideoResourceMapExtraInfo extraInfo = new VideoResourceMapExtraInfo(videoId, Long.parseLong(resourceId)); + extraInfo = videoResourceMapExtraInfoDao.find(VideoResourceMapExtraInfo.class, extraInfo.getId()); + if (extraInfo != null) { + videoResourceMapExtraInfoDao.delete(extraInfo); + } + } } -- Gitblit v1.8.0