From f13ed98e1de0ec7b85ed179212cc095f63480eed Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 25 三月 2021 18:18:20 +0800 Subject: [PATCH] 全网搜优酷兼容 --- src/test/java/com/hxh/spring/test/SolrTest.java | 164 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 154 insertions(+), 10 deletions(-) diff --git a/src/test/java/com/hxh/spring/test/SolrTest.java b/src/test/java/com/hxh/spring/test/SolrTest.java index 7ce37f1..33d3665 100644 --- a/src/test/java/com/hxh/spring/test/SolrTest.java +++ b/src/test/java/com/hxh/spring/test/SolrTest.java @@ -1,24 +1,34 @@ package com.hxh.spring.test; import com.yeshi.buwan.dao.HomeNoticeDao; -import com.yeshi.buwan.domain.HomeNotice; -import com.yeshi.buwan.domain.SolrVideo; +import com.yeshi.buwan.dao.video.AlbumVideoMapDao; import com.yeshi.buwan.domain.VideoInfo; +import com.yeshi.buwan.domain.solr.SolrAlbumVideo; +import com.yeshi.buwan.domain.video.AlbumVideoMap; +import com.yeshi.buwan.domain.video.InternetSearchVideo; import com.yeshi.buwan.dto.search.SolrResultDTO; import com.yeshi.buwan.dto.search.SolrVideoSearchFilter; -import com.yeshi.buwan.iqiyi.util.IqiyiUtil; +import com.yeshi.buwan.pptv.PPTVUtil; import com.yeshi.buwan.service.imp.VideoInfoService; -import com.yeshi.buwan.service.manager.SolrAlbumDataManager; +import com.yeshi.buwan.service.inter.juhe.AlbumVideoMapService; +import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; +import com.yeshi.buwan.service.manager.SolrAlbumVideoDataManager; +import com.yeshi.buwan.service.manager.SolrCommonVideoDataManager; +import com.yeshi.buwan.service.manager.SolrInternetSearchVideoDataManager; +import com.yeshi.buwan.util.Constant; +import com.yeshi.buwan.util.StringUtil; +import com.yeshi.buwan.util.factory.VideoInfoFactory; +import com.yeshi.buwan.util.video.VideoConstant; import org.junit.Test; import org.junit.runner.RunWith; -import org.springframework.data.solr.server.support.HttpSolrClientFactory; -import org.springframework.data.solr.server.support.HttpSolrClientFactoryBean; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; import javax.annotation.Resource; -import java.util.List; +import java.util.*; @RunWith(SpringJUnit4ClassRunner.class) @@ -27,13 +37,24 @@ public class SolrTest { @Resource - private SolrAlbumDataManager solrDataManager; + private SolrAlbumVideoDataManager solrDataManager; + + @Resource + private SolrCommonVideoDataManager solrCommonVideoDataManager; @Resource private VideoInfoService videoInfoService; @Resource private HomeNoticeDao homeNoticeDao; + @Resource + private AlbumVideoMapService albumVideoMapService; + + @Resource + private SolrInternetSearchVideoDataManager solrInternetSearchVideoDataManager; + + @Resource + private InternetSearchVideoService internetSearchVideoService; @Test public void test1() { @@ -49,14 +70,137 @@ @Test public void addSolrAlbum() { - solrDataManager.syncAlbum("8224447"); + solrDataManager.syncAlbum("8268378"); + System.out.println(); + } - HttpSolrClientFactory factory=new HttpSolrClientFactory(); + + @Test + public void syncSolrCommonVideo() { +// solrCommonVideoDataManager.syncAllVideo(); + } + + + private VideoInfo loadAlbumData(VideoInfo video) { + video.setShowType(1); + if (!StringUtil.isNullOrEmpty(video.getMainActor())) { + video.setMainActor("涓绘紨锛�" + video.getMainActor()); + } + + //璁剧疆tag + String tag = ""; + if (!StringUtil.isNullOrEmpty(video.getYear())) { + tag += video.getYear() + "/"; + } + + if (video.getVideoType() != null) { + String vt = VideoConstant.getMainCategoryName(video.getVideoType().getId()); + if (!StringUtil.isNullOrEmpty(vt)) { + tag += vt + "/"; + } + } + + if (!StringUtil.isNullOrEmpty(video.getArea())) { + tag += video.getArea() + "/"; + } + + if (tag.endsWith("/")) + tag = tag.substring(0, tag.length() - 1); + video.setTag(tag); + + return video; + } + + + private int searchAll(String key) { + int page = 1; + int pageSize = 20; + SolrVideoSearchFilter filter = new SolrVideoSearchFilter(); + filter.setKey(key); + filter.setContentType(1); + List<VideoInfo> localList = new ArrayList<>(); + SolrResultDTO solrResultDTO = solrDataManager.find(filter, page, pageSize); + Set<String> albumSet = new HashSet<>(); + if (solrResultDTO != null) { + for (SolrAlbumVideo sv : (List<SolrAlbumVideo>) solrResultDTO.getVideoList()) { + VideoInfo video = VideoInfoFactory.create(sv); + albumSet.add(video.getName() + "#" + video.getVideoType().getId()); + video = loadAlbumData(video); + localList.add(video); + } + } + + + //鍏ㄧ綉鎼� + SolrResultDTO internetSearchResultDTO = solrInternetSearchVideoDataManager.find(filter, page, pageSize); + if (internetSearchResultDTO != null && internetSearchResultDTO.getVideoList().size() > 0) { + List<InternetSearchVideo> isvList = internetSearchResultDTO.getVideoList(); + //鍒犻櫎鍓嶉潰鏈夌殑鏁版嵁锛屾牴鎹畆ootType涓庡悕绉扮瓫閫� + for (int i = 0; i < isvList.size(); i++) { + String uniqueId = isvList.get(i).getName() + "#" + isvList.get(i).getRootType(); + if (albumSet.contains(uniqueId)) { + isvList.remove(i); + i--; + } + } + for (InternetSearchVideo sv : isvList) { + VideoInfo video = VideoInfoFactory.create(sv); + video = loadAlbumData(video); + localList.add(video); + } + } + return localList.size(); + } + + + @Test + public void search() { } + @Test + public void addInternet() { + InternetSearchVideo list = internetSearchVideoService.selectByPrimaryKey("59fafccefd20505b0aade6d9ba0e8ed1"); //listAll(1, 10); + solrInternetSearchVideoDataManager.saveOrUpdate(list); + } + @Resource + private AlbumVideoMapDao albumVideoMapDao; + + @Test + public void test2() { + + for (int i = 0; i < 100; i++) { + Query query = new Query(); + query.addCriteria(Criteria.where("id").type(7)); + query.limit(100); + List<AlbumVideoMap> list = albumVideoMapDao.findList(query); + + + for (AlbumVideoMap map : list) { + AlbumVideoMap newMap = new AlbumVideoMap(); + newMap.setVideoCount(map.getVideoCount()); + newMap.setRootVideoType(map.getRootVideoType()); + newMap.setVideoId(map.getVideoId()); + newMap.setCreateTime(new Date()); + newMap.setId(map.getVideoId()); + albumVideoMapDao.save(newMap); + albumVideoMapDao.deleteByPrimaryKey(map.getId()); + } + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + +// @Test +// public void clear(){ +// solrDataManager.clear(); +// } + } -- Gitblit v1.8.0