admin
2021-03-25 9438097857e16f4929924d0d349c346d36b5f947
src/main/java/com/yeshi/buwan/service/imp/SearchService.java
@@ -1,13 +1,15 @@
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.*;
@@ -16,6 +18,8 @@
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;
@@ -27,6 +31,9 @@
@Service
public class SearchService {
    private Logger logger= LoggerFactory.getLogger(SearchService.class);
    @Resource
    private SearchDao searchDao;
    @Resource
@@ -284,7 +291,11 @@
            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);
@@ -327,11 +338,15 @@
            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));
@@ -615,4 +630,23 @@
    }
    /**
     * 将搜索结果对象转为视频对象
     *
     * @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;
    }
}