package com.newvideo.util; import java.util.List; import javax.annotation.Resource; import org.hibernate.Session; import com.newvideo.domain.VideoInfo; import com.newvideo.domain.recommend.SuperCategoryRecommendVideo; public class JuheVideoUtil { @Resource private HibernateSessionFactory hibernateSessionFactory; // 清理掉死数据 @SuppressWarnings("unchecked") public void clearDeadData() { Session session = hibernateSessionFactory.getSession(); try { // 清理没有加入resourceVideo的死数据 List list = session .createSQLQuery( "SELECT v.* FROM wk_video_video v LEFT JOIN wk_video_iqiyi q ON q.`videoid`=v.`id` LEFT JOIN wk_video_sohu sh ON sh.`videoid`=v.`id` WHERE (q.`videoid` IS NULL AND sh.`videoid` IS NULL)") .addEntity(VideoInfo.class).list(); for (VideoInfo vi : list) { // 清除 categoryVideo ,清除resourceVideo ,清除VideoIqiyi // ,清除VideoSoHu,清除video clearData(session, vi.getId()); } // list = session // .createSQLQuery( // "SELECT v.* FROM wk_video_video v LEFT JOIN wk_category_video cv // ON v.`id`=cv.`videoid` WHERE cv.`videoid` IS NULL") // .addEntity(VideoInfo.class).list(); // for (VideoInfo vi : list) { // // 清除 categoryVideo ,清除resourceVideo ,清除VideoIqiyi // // ,清除VideoSoHu,清除video // clearData(session, vi.getId()); // } } catch (Exception e) { if (session.getTransaction().isActive()) session.getTransaction().rollback(); e.printStackTrace(); } finally { session.close(); } } @SuppressWarnings("unchecked") public static void clearData(Session session, String vid) { session.createQuery("delete from CategoryVideo cv where cv.video.id=?").setParameter(0, vid).executeUpdate(); session.createQuery("delete from ResourceVideo cv where cv.video.id=?").setParameter(0, vid).executeUpdate(); session.createQuery("delete from VideoIqiyi cv where cv.video.id=?").setParameter(0, vid).executeUpdate(); session.createQuery("delete from VideoSoHu cv where cv.video.id=?").setParameter(0, vid).executeUpdate(); session.createQuery("delete from VideoYouKu cv where cv.video.id=?").setParameter(0, vid).executeUpdate(); session.createQuery("delete from VideoPPTV cv where cv.video.id=?").setParameter(0, vid).executeUpdate(); session.createQuery("delete from VideoInfo cv where cv.id=?").setParameter(0, vid).executeUpdate(); List scrList = (List) session .createQuery("from SuperCategoryRecommendVideo cv where cv.categoryRecommendVideo.videoInfo.id=?") .setParameter(0, vid).list(); for (SuperCategoryRecommendVideo scr : scrList) session.delete(scr); session.createQuery("delete from CategoryRecommendCacheVideo cv where cv.videoInfo.id=?").setParameter(0, vid) .executeUpdate(); session.createQuery("delete from CategoryRecommendVideo cv where cv.videoInfo.id=?").setParameter(0, vid) .executeUpdate(); session.createQuery("delete from Attention cv where cv.videoInfo.id=?").setParameter(0, vid).executeUpdate(); } public static boolean isNeedDelete(VideoInfo vi, String detailSystem) {// 是否需要屏蔽某个来源 // if (detailSystem.equalsIgnoreCase("") && vi.getPicture() != null // && vi.getPicture().contains("sohu")) // return true; // else return false; } public static boolean isNeedAdd(Session session, String name) { Object obj = session .createSQLQuery("SELECT count(*) FROM wk_juhe_filter_key WHERE LOCATE( `key`,'" + name + "')") .uniqueResult(); if (Integer.parseInt(obj + "") > 0) return false; else return true; } }