From cba071db4529097598095e2971949dfd109f12b9 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 22 十月 2020 16:49:25 +0800 Subject: [PATCH] 图片显示403问题解决 --- src/main/java/com/yeshi/buwan/service/imp/SearchService.java | 107 ++++++++++++++++++++++++++--------------------------- 1 files changed, 52 insertions(+), 55 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/service/imp/SearchService.java b/src/main/java/com/yeshi/buwan/service/imp/SearchService.java index 876d12e..d514e43 100644 --- a/src/main/java/com/yeshi/buwan/service/imp/SearchService.java +++ b/src/main/java/com/yeshi/buwan/service/imp/SearchService.java @@ -1,32 +1,25 @@ package com.yeshi.buwan.service.imp; -import java.io.Serializable; -import java.io.UnsupportedEncodingException; -import java.util.*; - -import javax.annotation.Resource; - -import com.yeshi.buwan.dao.video.AlbumVideoMapDao; +import com.yeshi.buwan.dao.*; import com.yeshi.buwan.domain.*; -import com.yeshi.buwan.domain.video.AlbumVideoMap; +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.service.manager.SolrAlbumDataManager; import com.yeshi.buwan.util.*; import com.yeshi.buwan.util.factory.VideoInfoFactory; import com.yeshi.buwan.util.video.VideoConstant; +import com.yeshi.buwan.vo.video.VideoListResultVO; import org.hibernate.HibernateException; import org.hibernate.Session; import org.springframework.cache.annotation.Cacheable; import org.springframework.orm.hibernate4.HibernateCallback; import org.springframework.stereotype.Service; -import com.yeshi.buwan.dao.DetailSystemDao; -import com.yeshi.buwan.dao.HotSearchDao; -import com.yeshi.buwan.dao.SearchDao; -import com.yeshi.buwan.dao.SuperHotSearchDao; -import com.yeshi.buwan.dao.VideoBanQuanVideoDao; -import com.yeshi.buwan.dao.VideoInfoDao; -import com.yeshi.buwan.domain.web.DetailSystemSelect; -import com.yeshi.buwan.domain.web.HotSearchAdmin; +import javax.annotation.Resource; +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.*; @Service public class SearchService { @@ -41,14 +34,9 @@ @Resource private SuperHotSearchDao superHotSearchDao; @Resource - private ConfigService configService; - @Resource private VideoBanQuanVideoDao videoBanQuanVideoDao; @Resource private DetailSystemDao detailSystemDao; - @Resource - private AlbumVideoMapDao albumVideoMapDao; - @Resource private SolrAlbumDataManager solrAlbumDataManager; @@ -250,8 +238,8 @@ @Cacheable(value = "userCache", key = "'searchNew'+'-'+#detailSystem+'-'+#key+'-'+#page+'-'+#videoType+'-'+#system+'-'+#cacheMD5") - public List<VideoInfo> searchNew(String detailSystem, String ip, String uid, String key, int page, int videoType, - String system, List<Long> resourceList, String cacheMD5) { + public VideoListResultVO searchNew(String detailSystem, String ip, String uid, String key, int page, int videoType, + String system, List<Long> resourceList, String cacheMD5) { String resourceWhere = ""; for (Long re : resourceList) { resourceWhere += " rv.resourceid=" + re + " or"; @@ -273,6 +261,8 @@ searchDao.create(sh); // 鏌ヨ鏁版嵁搴� + //涓撹緫鏁伴噺 + long albumCount = 0L; List<VideoInfo> list = new ArrayList<VideoInfo>(); List<VideoInfo> localList = null; try { @@ -281,43 +271,51 @@ localList = new ArrayList<>(); //鍏堟悳绱笓杈� - List<SolrVideo> solrVideoList = solrAlbumDataManager.findByKey(key, 1, videoType == 0 ? null : videoType, page); + int pageSize = 20; + //涓撹緫瑙嗛闆嗗悎 Set<String> solrAlbumVids = new HashSet<>(); - for (SolrVideo sv : solrVideoList) { - VideoInfo video = VideoInfoFactory.create(sv); - video.setShowType(1); - if (!StringUtil.isNullOrEmpty(video.getMainActor())) { - video.setMainActor("涓绘紨锛�" + video.getMainActor()); - } - //璁剧疆tag - String tag = ""; - if (!StringUtil.isNullOrEmpty(sv.getYear())) { - tag += sv.getYear() + "/"; - } + SolrResultDTO solrResultDTO = solrAlbumDataManager.findByKey(key, 1, videoType == 0 ? null : videoType, page, pageSize); + if (solrResultDTO != null) { + albumCount = solrResultDTO.getTotalCount(); - if (video.getVideoType() != null) { - String vt = VideoConstant.getMainCategoryName(sv.getRootVideoType()); - if (!StringUtil.isNullOrEmpty(vt)) { - tag += vt + "/"; + for (SolrVideo sv : solrResultDTO.getVideoList()) { + VideoInfo video = VideoInfoFactory.create(sv); + video.setShowType(1); + if (!StringUtil.isNullOrEmpty(video.getMainActor())) { + video.setMainActor("涓绘紨锛�" + video.getMainActor()); } + + //璁剧疆tag + String tag = ""; + if (!StringUtil.isNullOrEmpty(sv.getYear())) { + tag += sv.getYear() + "/"; + } + + if (video.getVideoType() != null) { + String vt = VideoConstant.getMainCategoryName(sv.getRootVideoType()); + 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); + + localList.add(video); + solrAlbumVids.add(video.getId()); } - - if (!StringUtil.isNullOrEmpty(video.getArea())) { - tag += video.getArea() + "/"; - } - - if (tag.endsWith("/")) - tag = tag.substring(0, tag.length() - 1); - video.setTag(tag); - - localList.add(video); - solrAlbumVids.add(video.getId()); } + int commonSolrPage = page - solrResultDTO.getTotalCount() / pageSize; - if (videoType == 0) { + if (videoType == 0 && commonSolrPage > 0) { //鎼滅储鍘熷鐨� - List<VideoInfo> solrList = SolrUtil.search(key, page); + List<VideoInfo> solrList = SolrUtil.search(key, commonSolrPage); for (VideoInfo vi : solrList) { if (!solrAlbumVids.contains(vi.getId())) { localList.add(vi); @@ -336,7 +334,7 @@ if (sql.endsWith("union all")) sql = sql.substring(0, sql.length() - 9); - List rlist = videoInfoDao.sqlList(sql); + List rlist = StringUtil.isNullOrEmpty(sql) ? new ArrayList() : videoInfoDao.sqlList(sql); List<Integer> pList = new ArrayList<Integer>(); for (int i = 0; i < localList.size(); i++) { if (Integer.parseInt(rlist.get(i) + "") < 1) { @@ -362,8 +360,7 @@ list.add(info); } } - - return list; + return new VideoListResultVO(list, videoType == 0 ? albumCount : 1000L); } public long searchCount(String key, String system) { -- Gitblit v1.8.0