admin
2024-10-17 b30fb8afd3cd6228bda9b182dc412bb3c8daf69c
src/main/java/com/yeshi/buwan/service/imp/VideoInfoService.java
@@ -1,33 +1,27 @@
package com.yeshi.buwan.service.imp;
import java.io.Serializable;
import java.util.*;
import javax.annotation.Resource;
import com.yeshi.buwan.util.HibernateSessionFactory;
import com.yeshi.buwan.dao.CategoryVideoDao;
import com.yeshi.buwan.dao.VideoInfoDao;
import com.yeshi.buwan.domain.*;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.dto.mq.VideoDataChangeMQMsg;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
import com.yeshi.buwan.util.mq.CMQManager;
import com.yeshi.buwan.util.mq.rabbit.RabbitmqManager;
import com.yeshi.buwan.util.video.VideoConstant;
import org.hibernate.HibernateException;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.orm.hibernate4.HibernateCallback;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yeshi.buwan.dao.CategoryVideoDao;
import com.yeshi.buwan.dao.VideoInfoDao;
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.VideoUrl;
import com.yeshi.buwan.domain.entity.PlayUrl;
import javax.annotation.Resource;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Service
public class VideoInfoService {
@@ -47,9 +41,21 @@
    @Resource
    private ClearService clearService;
    @Resource
    private RabbitmqManager rabbitmqManager;
    @Transactional
    public VideoInfo getVideoInfo(String vid) {
        return videoInfoDao.find(VideoInfo.class, vid);
    }
    @Cacheable(value = "videoCache", key = "'getVideoInfoDetail-'+#vid")
    public VideoInfo getVideoInfoCache(String vid) {
        return videoInfoDao.find(VideoInfo.class, vid);
    }
    @SuppressWarnings("unchecked")
    public List<VideoInfo> simpleRandomVideoList(final int i) {
@@ -77,12 +83,14 @@
    }
    @Transactional
    public void save(VideoInfo videoInfo) {
    public void saveWithCategoryAndResource(VideoInfo videoInfo) {
        videoInfoDao.save(videoInfo);
        rabbitmqManager.addVideoDataChanged(new VideoDataChangeMQMsg(VideoDataChangeMQMsg.TYPE_VIDEO_INFO, videoInfo.getId(), VideoDataChangeMQMsg.ACTION_ADD));
        CategoryVideo ca = new CategoryVideo();
        ca.setVideo(videoInfo);
        ca.setVideoType(videoInfo.getVideoType());
        categoryVideoDao.create(ca);
       rabbitmqManager.addVideoDataChanged(new VideoDataChangeMQMsg(VideoDataChangeMQMsg.TYPE_VIDEO_CATEGORY, videoInfo.getId(), VideoDataChangeMQMsg.ACTION_ADD));
        List<VideoResource> resourceList = videoInfo.getResourceList();
        ResourceVideo rs = null;
        for (VideoResource videoResource : resourceList) {
@@ -91,6 +99,21 @@
            rs.setVideo(videoInfo);
            resourceVideoService.save(rs);
        }
        rabbitmqManager.addVideoDataChanged(new VideoDataChangeMQMsg(VideoDataChangeMQMsg.TYPE_VIDEO_RESOURCE, videoInfo.getId(), VideoDataChangeMQMsg.ACTION_ADD));
    }
    @Transactional
    public Serializable save(VideoInfo videoInfo) {
        Serializable id = videoInfoDao.save(videoInfo);
        rabbitmqManager.addVideoDataChanged(new VideoDataChangeMQMsg(VideoDataChangeMQMsg.TYPE_VIDEO_INFO, videoInfo.getId(), VideoDataChangeMQMsg.ACTION_ADD));
        return id;
    }
    @Transactional
    public void update(VideoInfo videoInfo) {
        videoInfoDao.update(videoInfo);
        rabbitmqManager.addVideoDataChanged(new VideoDataChangeMQMsg(VideoDataChangeMQMsg.TYPE_VIDEO_INFO, videoInfo.getId(), VideoDataChangeMQMsg.ACTION_UPDATE));
    }
    public List<VideoDetailInfo> getVideoDetailList(String videoid, VideoResource vr, int page, int pageSize) {
@@ -243,6 +266,7 @@
        return videoInfoDao.listByVideoIds(videoIds);
    }
    @Transactional
    public void hiddenVideo(String id) {
        VideoInfo videoInfo = videoInfoDao.find(VideoInfo.class, id);
        if (videoInfo != null && "1".equalsIgnoreCase(videoInfo.getShow())) {
@@ -313,7 +337,7 @@
        }
        if (needUpdateSolr) {
            CMQManager.getInstance().addSolrMsg(videoInfo.getId());
            rabbitmqManager.addSolrMsg(videoInfo.getId());
        }