| | |
| | | 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; |
| | |
| | | private VideoTypeDao videoTypeDao; |
| | | @Resource |
| | | private VideoDetailInfoDao videoDetailInfoDao; |
| | | |
| | | @Resource |
| | | private ClearService clearService; |
| | | |
| | | /** |
| | | * 主键查询某一个视频的信息 |
| | |
| | | |
| | | } |
| | | |
| | | @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)); |
| | | } |
| | | |
| | | // 更新视频的观看数 |