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