| | |
| | | package com.yeshi.buwan.service.imp; |
| | | |
| | | import com.yeshi.buwan.dao.*; |
| | | import com.yeshi.buwan.dao.system.DetailSystemDao; |
| | | import com.yeshi.buwan.domain.*; |
| | | import com.yeshi.buwan.domain.solr.SolrAlbumVideo; |
| | | import com.yeshi.buwan.domain.system.DetailSystem; |
| | | import com.yeshi.buwan.domain.web.DetailSystemSelect; |
| | | import com.yeshi.buwan.domain.web.HotSearchAdmin; |
| | | import com.yeshi.buwan.dto.search.SolrResultDTO; |
| | | import com.yeshi.buwan.dto.search.SolrVideoSearchFilter; |
| | | import com.yeshi.buwan.service.inter.VideoResourceMapExtraInfoService; |
| | | import com.yeshi.buwan.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.service.inter.video.VideoInfoExtraService; |
| | | import com.yeshi.buwan.service.manager.SolrAlbumVideoDataManager; |
| | | import com.yeshi.buwan.util.*; |
| | |
| | | import com.yeshi.buwan.vo.video.VideoListResultVO; |
| | | import org.hibernate.HibernateException; |
| | | import org.hibernate.Session; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.cache.annotation.Cacheable; |
| | | import org.springframework.orm.hibernate4.HibernateCallback; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | |
| | | @Service |
| | | public class SearchService { |
| | | private Logger logger= LoggerFactory.getLogger(SearchService.class); |
| | | |
| | | |
| | | @Resource |
| | | private SearchDao searchDao; |
| | | @Resource |
| | |
| | | |
| | | SolrVideoSearchFilter filter = new SolrVideoSearchFilter(); |
| | | filter.setKey(key); |
| | | filter.setVideoType(videoType == 0 ? null : videoType); |
| | | if (videoType == Constant.SEARCH_RESULT_TYPE_HIGH_DEFINITION) { |
| | | filter.setResourceIds(new String[]{PPTVUtil.RESOURCE_ID + ""}); |
| | | logger.info("高清搜索# key:{}",key); |
| | | } else |
| | | filter.setVideoType(videoType == 0 ? null : videoType); |
| | | filter.setContentType(1); |
| | | |
| | | SolrResultDTO solrResultDTO = solrAlbumDataManager.find(filter, page, pageSize); |
| | |
| | | |
| | | if (videoType == 0 && commonSolrPage > 0) { |
| | | //搜索原始的 |
| | | List<VideoInfo> solrList = SolrUtil.search(key, commonSolrPage); |
| | | for (VideoInfo vi : solrList) { |
| | | if (!solrAlbumVids.contains(vi.getId())) { |
| | | localList.add(vi); |
| | | try { |
| | | List<VideoInfo> solrList = SolrUtil.search(key, commonSolrPage); |
| | | for (VideoInfo vi : solrList) { |
| | | if (!solrAlbumVids.contains(vi.getId())) { |
| | | localList.add(vi); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | |
| | | } |
| | | } |
| | | System.out.println("搜索耗时:" + (System.currentTimeMillis() - startt)); |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 将搜索结果对象转为视频对象 |
| | | * |
| | | * @param solrAlbumVideoList |
| | | * @param resourceList |
| | | * @return |
| | | */ |
| | | public List<VideoInfo> convertSolrAlbumResultToVideo(List<SolrAlbumVideo> solrAlbumVideoList, List<Long> resourceList) { |
| | | List<VideoInfo> videoInfoList = new ArrayList<>(); |
| | | for (SolrAlbumVideo sv : solrAlbumVideoList) { |
| | | VideoInfo video = VideoInfoFactory.create(sv); |
| | | videoInfoList.add(video); |
| | | } |
| | | //获取附加信息 |
| | | videoInfoList = videoInfoExtraService.batchExtra(videoInfoList, resourceList); |
| | | return videoInfoList; |
| | | } |
| | | |
| | | } |