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