admin
2021-03-13 7becc97c5bfdd827b9a999c26746bb8e8bc3e25c
src/main/java/com/yeshi/buwan/service/imp/VideoManager.java
@@ -7,6 +7,9 @@
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import com.yeshi.buwan.domain.video.AlbumVideoMap;
import com.yeshi.buwan.service.inter.juhe.AlbumVideoMapService;
import com.yeshi.buwan.util.mq.CMQManager;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate4.HibernateCallback;
@@ -40,6 +43,9 @@
   private VideoTypeDao videoTypeDao;
   @Resource
   private VideoDetailInfoDao videoDetailInfoDao;
    @Resource
    private ClearService clearService;
   /**
    * 主键查询某一个视频的信息
@@ -417,95 +423,23 @@
   }
   @SuppressWarnings("unchecked")
    @Resource
    private AlbumVideoMapService albumVideoMapService;
    /**
     * 删除视频
     *
     * @param videoId
     */
   public void deleteVideo(final String videoId) {
      try {
         videoInfoDao.excute(new HibernateCallback() {
            public Object doInHibernate(Session session) throws HibernateException {
               try {
                  List<HomeVideo> hlist = session.createQuery("from HomeVideo v where v.video.id=?")
                        .setParameter(0, videoId).list();
                  session.getTransaction().begin();
                  JuheVideoUtil.clearData(session, videoId);
                  if (hlist != null && hlist.size() > 0) {
                     for (HomeVideo hv : hlist) {
                        session.delete(hv);
                     }
                  }
                  // 删除收藏
                  session.createSQLQuery("delete from wk_video_collection where videoid=" + videoId)
                        .executeUpdate();
                  List<VideoBanQuanVideo> qlist = session
                        .createQuery("from VideoBanQuanVideo c where c.info.id=?").setParameter(0, videoId)
                        .list();
                  if (qlist != null && qlist.size() > 0) {
                     for (VideoBanQuanVideo c : qlist)
                        session.delete(c);
                  }
                  List<HomeAd> hdList = session
                        .createQuery("from HomeAd ha where ha.linkType=1 and ha.video.id=?")
                        .setParameter(0, videoId).list();
                  for (HomeAd had : hdList) {
                     List<SuperHomeAd> shadL = session
                           .createQuery("from SuperHomeAd shad where shad.homeAd.id=?")
                           .setParameter(0, had.getId()).list();
                     for (SuperHomeAd shad : shadL)
                        session.delete(shad);
                     session.delete(had);
                  }
                  // 专题视频删除
                  List<SpecialVideo> svList = session.createQuery("from SpecialVideo ha where ha.video.id=?")
                        .setParameter(0, videoId).list();
                  for (SpecialVideo sv : svList) {
                     List<SuperSpecial> shadL = session
                           .createQuery("from SuperSpecial shad where shad.special.id=?")
                           .setParameter(0, sv.getSpecial().getId()).list();
                     for (SuperSpecial shad : shadL)
                        session.delete(shad);
                     session.delete(sv);
                  }
                  // 合集视频删除
                  List<VideoIntersectionVideo> viList = session
                        .createQuery("from VideoIntersectionVideo ha where ha.video.id=?")
                        .setParameter(0, videoId).list();
                  for (VideoIntersectionVideo sv : viList) {
                     session.delete(sv);
                  }
                  // 视频删除
                  List<VideoDetailInfo> list = session.createQuery("from VideoDetailInfo v where v.video.id=?")
                        .setParameter(0, videoId).list();
                  // 删除视频的详细信息
                  for (VideoDetailInfo object : list) {
                     // 删除链接信息
                     for (VideoUrl vu : object.getUrls())
                        session.delete(vu);
                     // 删除详情
                     session.delete(object);
                  }
                  // 删除视频源信息
                  session.createSQLQuery("delete  from wk_video_video where id=?").setParameter(0, videoId)
                        .executeUpdate();
                  session.flush();
                  session.getTransaction().commit();
               } catch (Exception e) {
                  e.printStackTrace();
                  session.getTransaction().rollback();
               }
               return null;
            }
         });
      } catch (Exception e) {
         e.printStackTrace();
      }
        //清除sql数据表相关依赖
        clearService.clearDependVideo(videoId);
        //清除MongoDB相关依赖
        albumVideoMapService.deleteByVideoId(videoId);
        //更新搜索引擎数据
        CMQManager.getInstance().addSolrMsg(videoId);
        videoInfoDao.delete(new VideoInfo(videoId));
   }
   // 更新视频的观看数