From 4011b8d0b377af33e2bc435f7726329630d706cb Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 02 三月 2021 18:28:52 +0800
Subject: [PATCH] 搜索引擎接口更新

---
 src/main/java/com/yeshi/buwan/service/imp/VideoInfoService.java |  254 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 162 insertions(+), 92 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/service/imp/VideoInfoService.java b/src/main/java/com/yeshi/buwan/service/imp/VideoInfoService.java
index aea17ab..9607e09 100644
--- a/src/main/java/com/yeshi/buwan/service/imp/VideoInfoService.java
+++ b/src/main/java/com/yeshi/buwan/service/imp/VideoInfoService.java
@@ -2,10 +2,13 @@
 
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.List;
 
 import javax.annotation.Resource;
 
+import com.yeshi.buwan.util.TimeUtil;
+import com.yeshi.buwan.util.video.VideoConstant;
 import org.hibernate.HibernateException;
 import org.hibernate.SQLQuery;
 import org.hibernate.Session;
@@ -28,108 +31,175 @@
 @Service
 public class VideoInfoService {
 
-	@Autowired
-	private VideoInfoDao dao;
+    @Autowired
+    private VideoInfoDao videoInfoDao;
 
-	@Autowired
-	private CategoryVideoDao cdao;
+    @Autowired
+    private CategoryVideoDao categoryVideoDao;
 
-	@Autowired
-	private ResourceVideoService resourceVideoService;
+    @Autowired
+    private ResourceVideoService resourceVideoService;
 
-	@Resource
-	private VideoResourceService videoResourceService;
+    @Resource
+    private VideoResourceService videoResourceService;
 
-	public VideoInfo getVideoInfo(String vid) {
-		return dao.find(VideoInfo.class, vid);
-	}
+    public VideoInfo getVideoInfo(String vid) {
+        return videoInfoDao.find(VideoInfo.class, vid);
+    }
 
-	@SuppressWarnings("unchecked")
-	public List<VideoInfo> simpleRandomVideoList(final int i) {
-		return (List<VideoInfo>) dao.excute(new HibernateCallback<List<VideoInfo>>() {
+    @SuppressWarnings("unchecked")
+    public List<VideoInfo> simpleRandomVideoList(final int i) {
+        return (List<VideoInfo>) videoInfoDao.excute(new HibernateCallback<List<VideoInfo>>() {
 
-			@Override
-			public List<VideoInfo> doInHibernate(Session session) throws HibernateException {
-				SQLQuery query = session.createSQLQuery(
-						"SELECT v.* FROM wk_video_video v RIGHT JOIN (SELECT * FROM wk_recommend_category_cache WHERE videotypeid = 152 ORDER BY RAND() LIMIT 0,"
-								+ i + ")  c ON c.videoid=v.id");
-				query.addEntity(VideoInfo.class);
-				return query.list();
-			}
-		});
-	}
+            @Override
+            public List<VideoInfo> doInHibernate(Session session) throws HibernateException {
+                SQLQuery query = session.createSQLQuery(
+                        "SELECT v.* FROM wk_video_video v RIGHT JOIN (SELECT * FROM wk_recommend_category_cache WHERE videotypeid = 152 ORDER BY RAND() LIMIT 0,"
+                                + i + ")  c ON c.videoid=v.id");
+                query.addEntity(VideoInfo.class);
+                return query.list();
+            }
+        });
+    }
 
-	public VideoInfo getVideoInfo(String name, VideoType videoType) {
-		List<VideoInfo> list = dao.list(
-				"select c.video from CategoryVideo c where c.video.name = ? and c.videoType.id = ?",
-				new Serializable[] { name, videoType.getId() });
-		if (list.size() > 0) {
-			return list.get(0);
-		}
-		return null;
-	}
+    public VideoInfo getVideoInfo(String name, VideoType videoType) {
+        List<VideoInfo> list = videoInfoDao.list(
+                "select c.video from CategoryVideo c where c.video.name = ? and c.videoType.id = ?",
+                new Serializable[]{name, videoType.getId()});
+        if (list.size() > 0) {
+            return list.get(0);
+        }
+        return null;
+    }
 
-	@Transactional
-	public void save(VideoInfo videoInfo) {
-		dao.save(videoInfo);
-		CategoryVideo ca = new CategoryVideo();
-		ca.setVideo(videoInfo);
-		ca.setVideoType(videoInfo.getVideoType());
-		cdao.create(ca);
-		List<VideoResource> resourceList = videoInfo.getResourceList();
-		ResourceVideo rs = null;
-		for (VideoResource videoResource : resourceList) {
-			rs = new ResourceVideo();
-			rs.setResource(videoResource);
-			rs.setVideo(videoInfo);
-			resourceVideoService.save(rs);
-		}
-	}
+    @Transactional
+    public void save(VideoInfo videoInfo) {
+        videoInfoDao.save(videoInfo);
+        CategoryVideo ca = new CategoryVideo();
+        ca.setVideo(videoInfo);
+        ca.setVideoType(videoInfo.getVideoType());
+        categoryVideoDao.create(ca);
+        List<VideoResource> resourceList = videoInfo.getResourceList();
+        ResourceVideo rs = null;
+        for (VideoResource videoResource : resourceList) {
+            rs = new ResourceVideo();
+            rs.setResource(videoResource);
+            rs.setVideo(videoInfo);
+            resourceVideoService.save(rs);
+        }
+    }
 
-	public List<VideoDetailInfo> getVideoDetailList(String videoid, VideoResource vr) {
-		VideoInfo find = dao.find(VideoInfo.class, videoid);
-		if (find != null) {
-			if (vr.getName().equals("AcFun")) {
-				List<VideoDetailInfo> detailInfos = new ArrayList<VideoDetailInfo>();
-				VideoDetailInfo vd = new VideoDetailInfo();
-				vd.setVideo(find);
-				vd.setIntroduction(find.getIntroduction());
-				vd.setName(find.getName());
-				vd.setTag("");
-				vd.setType("acFunVideo");
-				vd.setId(Long.parseLong(find.getId()));
-				vd.setWatchCount(Long.parseLong(find.getWatchCount()));
-				VideoUrl vurl = new VideoUrl();
-				vurl.setResource(vr);
-				vurl.setUrl(find.getBaseurl());
-				vurl.setInvalid(0 + "");
-				vurl.setBaseUrl(find.getBaseurl());
-				List<VideoUrl> urls = new ArrayList<VideoUrl>();
-				urls.add(vurl);
-				vd.setUrls(urls);
-				detailInfos.add(vd);
-				return detailInfos;
-			}
-		}
+    public List<VideoDetailInfo> getVideoDetailList(String videoid, VideoResource vr, int page, int pageSize) {
+        VideoInfo find = videoInfoDao.find(VideoInfo.class, videoid);
+        if (find != null) {
+            if (vr.getName().equals("AcFun")) {
+                List<VideoDetailInfo> detailInfos = new ArrayList<VideoDetailInfo>();
+                VideoDetailInfo vd = new VideoDetailInfo();
+                vd.setVideo(find);
+                vd.setIntroduction(find.getIntroduction());
+                vd.setName(find.getName());
+                vd.setTag("");
+                vd.setType("acFunVideo");
+                vd.setId(Long.parseLong(find.getId()));
+                vd.setWatchCount(Long.parseLong(find.getWatchCount()));
+                VideoUrl vurl = new VideoUrl();
+                vurl.setResource(vr);
+                vurl.setUrl(find.getBaseurl());
+                vurl.setInvalid(0 + "");
+                vurl.setBaseUrl(find.getBaseurl());
+                List<VideoUrl> urls = new ArrayList<VideoUrl>();
+                urls.add(vurl);
+                vd.setUrls(urls);
+                detailInfos.add(vd);
+                return detailInfos;
+            }
+        }
 
-		return null;
-	}
+        return null;
+    }
 
-	public PlayUrl getPlayUrl(String detailSystemId, String id, String type, int resourceid, String videoid) {
-		if (type.equals("acFunVideo")) {
-			PlayUrl playUrl = new PlayUrl();
-			VideoResource videoResource = videoResourceService.getResource(resourceid + "");
-			playUrl.setResource(videoResource);
-			VideoInfo find = dao.find(VideoInfo.class, videoid);
-			playUrl.setUrl(find.getBaseurl());
-			playUrl.setPlayType(1);
-			playUrl.setParams("");
-			// 娣诲姞鎾斁娆℃暟
-			find.setWatchCount("" + (Integer.parseInt(find.getWatchCount()) + 1));
-			dao.update(find);
-			return playUrl;
-		}
-		return null;
-	}
+    public PlayUrl getPlayUrl(String detailSystemId, String id, String type, int resourceid, String videoid) {
+        if (type.equals("acFunVideo")) {
+            PlayUrl playUrl = new PlayUrl();
+            VideoResource videoResource = videoResourceService.getResource(resourceid + "");
+            playUrl.setResource(videoResource);
+            VideoInfo find = videoInfoDao.find(VideoInfo.class, videoid);
+            playUrl.setUrl(find.getBaseurl());
+            playUrl.setPlayType(1);
+            playUrl.setParams("");
+            // 娣诲姞鎾斁娆℃暟
+            find.setWatchCount("" + (Integer.parseInt(find.getWatchCount()) + 1));
+            videoInfoDao.update(find);
+            return playUrl;
+        }
+        return null;
+    }
+
+
+    /**
+     * 鏄惁瀛樺湪鐩稿悓鐨勮棰�
+     *
+     * @param newVideoInfo
+     * @return
+     */
+    public VideoInfo getExistSameVideo(VideoInfo newVideoInfo) {
+        int year = Integer.parseInt(newVideoInfo.getYear());
+        List<VideoInfo> list = videoInfoDao.listByName(newVideoInfo.getName(), 0, 5);
+        if (list != null && list.size() > 0)
+            for (int i = 0; i < list.size(); i++) {
+                if (Math.abs(Integer.parseInt(list.get(i).getYear()) - year) < 2) {// 骞翠唤鐩稿樊1骞翠互涓嬩笖灞炰簬鍚屼竴涓垎绫绘墠褰掍负涓�璧�
+                    // 鍒ゆ柇鍒嗙被
+                    if (VideoConstant.isMainCategory(newVideoInfo.getVideoType().getId())) {// 姝g墖鍒嗙被
+                        List<CategoryVideo> cvList = categoryVideoDao.listByVideoId(list.get(i).getId());
+                        boolean isS = false;
+                        for (CategoryVideo cv : cvList) {
+                            if (newVideoInfo.getVideoType().getId() == cv.getVideoType().getId()
+                                    || (cv.getVideoType().getParent() != null && newVideoInfo.getVideoType().getId() ==
+                                    cv.getVideoType().getParent().getId())) {// 绫诲瀷鐩稿悓
+                                return list.get(i);
+                            }
+                        }
+                    } else // 涓嶅繀姣旇緝鍒嗙被--鍙鍚嶇О鐩稿悓鍒欏垽鏂负鐩稿悓
+                    { // 鍒ゆ柇涓婁釜鏄惁涓烘鐗囧垎绫�
+                        List<CategoryVideo> typeList = categoryVideoDao.listByVideoId(list.get(i).getId());
+                        boolean isZhengpian = false;
+                        if (typeList != null)
+                            for (CategoryVideo categoryVideo : typeList) {
+                                VideoType ltype = categoryVideo.getVideoType();
+                                if (VideoConstant.isMainCategory(ltype.getId())
+                                        || (ltype.getParent() != null && VideoConstant.isMainCategory(ltype.getParent().getId()))) {
+                                    isZhengpian = true;
+                                    break;
+                                }
+                            }
+
+                        if (!isZhengpian)
+                            return list.get(i);
+                        else
+                            return null;
+                    }
+                }
+            }
+        return null;
+    }
+
+
+    public List<VideoInfo> listByVideoIds(List<String> videoIds) {
+        return videoInfoDao.listByVideoIds(videoIds);
+    }
+
+    public void hiddenVideo(String id) {
+        VideoInfo videoInfo = videoInfoDao.find(VideoInfo.class, id);
+        if (videoInfo != null && "1".equalsIgnoreCase(videoInfo.getShow())) {
+            videoInfo.setShow("0");
+            videoInfoDao.update(videoInfo);
+        }
+    }
+
+
+    //浠庢柊缁熻
+    public void statisticVideoExtraInfo(String videoId) {
+        videoInfoDao.statisticVideoExtraInfo(videoId);
+    }
 
 }

--
Gitblit v1.8.0