From 4011b8d0b377af33e2bc435f7726329630d706cb Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 02 三月 2021 18:28:52 +0800
Subject: [PATCH] 搜索引擎接口更新
---
src/main/java/com/yeshi/buwan/service/imp/SearchService.java | 48 +++++++++++++++++++++++++++++++-----------------
1 files changed, 31 insertions(+), 17 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 d514e43..7e0d0b3 100644
--- a/src/main/java/com/yeshi/buwan/service/imp/SearchService.java
+++ b/src/main/java/com/yeshi/buwan/service/imp/SearchService.java
@@ -5,6 +5,8 @@
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.service.manager.SolrAlbumDataManager;
import com.yeshi.buwan.util.*;
import com.yeshi.buwan.util.factory.VideoInfoFactory;
@@ -40,11 +42,14 @@
@Resource
private SolrAlbumDataManager solrAlbumDataManager;
+ @Resource
+ private VideoResourceMapExtraInfoService videoResourceMapExtraInfoService;
+
@SuppressWarnings("rawtypes")
@Cacheable(value = "userCache", key = "'suggestSearch'+'-'+#key+'-'+#system")
public List<String> suggestSearch(String key, String system) {
if (StringUtil.isNullOrEmpty(key) || key.startsWith("%"))
- return new ArrayList<String>();
+ return new ArrayList<>();
List<String> list;
Session session = null;
@@ -55,7 +60,7 @@
sql = "select name as result from wk_video_video where name like ?";
}
- list = new ArrayList<String>();
+ list = new ArrayList<>();
List li = null;
try {
@@ -81,7 +86,7 @@
}
Iterator<String> it = set.iterator();
- list = new ArrayList<String>();
+ list = new ArrayList<>();
while (it.hasNext()) {
list.add(it.next());
if (list.size() > 10)
@@ -123,7 +128,7 @@
.append(") order by REPLACE(v.name,?,'') ,v.watchCount desc").toString();
else
sql = "from VideoInfo v where v.show='1' and (v.name like ?) order by REPLACE(v.name,?,''),v.watchCount desc";// 鏀逛负sql
- List<Serializable> list = new ArrayList<Serializable>();
+ List<Serializable> list = new ArrayList<>();
BaiduVideoUtil util = new BaiduVideoUtil();
List<VideoInfo> localList = videoInfoDao.list(sql, (page - 1) * Constant.pageCount, Constant.pageCount,
new String[]{(new StringBuilder("")).append(key).append("%").toString(), key});
@@ -184,7 +189,7 @@
searchDao.create(sh);
// 鏌ヨ鏁版嵁搴�
- List<VideoInfo> list = new ArrayList<VideoInfo>();
+ List<VideoInfo> list = new ArrayList<>();
List<VideoInfo> localList = null;
try {
long startt = System.currentTimeMillis();
@@ -208,7 +213,7 @@
sql = sql.substring(0, sql.length() - 9);
List rlist = videoInfoDao.sqlList(sql);
- List<Integer> pList = new ArrayList<Integer>();
+ List<Integer> pList = new ArrayList<>();
for (int i = 0; i < localList.size(); i++) {
if (Integer.parseInt(rlist.get(i) + "") < 1) {
pList.add(i);
@@ -263,7 +268,7 @@
//涓撹緫鏁伴噺
long albumCount = 0L;
- List<VideoInfo> list = new ArrayList<VideoInfo>();
+ List<VideoInfo> list = new ArrayList<>();
List<VideoInfo> localList = null;
try {
long startt = System.currentTimeMillis();
@@ -275,7 +280,12 @@
//涓撹緫瑙嗛闆嗗悎
Set<String> solrAlbumVids = new HashSet<>();
- SolrResultDTO solrResultDTO = solrAlbumDataManager.findByKey(key, 1, videoType == 0 ? null : videoType, page, pageSize);
+ SolrVideoSearchFilter filter = new SolrVideoSearchFilter();
+ filter.setKey(key);
+ filter.setVideoType(videoType == 0 ? null : videoType);
+ filter.setContentType(1);
+
+ SolrResultDTO solrResultDTO = solrAlbumDataManager.find(filter, page, pageSize);
if (solrResultDTO != null) {
albumCount = solrResultDTO.getTotalCount();
@@ -335,7 +345,7 @@
sql = sql.substring(0, sql.length() - 9);
List rlist = StringUtil.isNullOrEmpty(sql) ? new ArrayList() : videoInfoDao.sqlList(sql);
- List<Integer> pList = new ArrayList<Integer>();
+ List<Integer> pList = new ArrayList<>();
for (int i = 0; i < localList.size(); i++) {
if (Integer.parseInt(rlist.get(i) + "") < 1) {
pList.add(i);
@@ -360,6 +370,10 @@
list.add(info);
}
}
+
+ //鑾峰彇闄勫姞淇℃伅
+ list = videoResourceMapExtraInfoService.batchExtraInfo(list, resourceList);
+
return new VideoListResultVO(list, videoType == 0 ? albumCount : 1000L);
}
@@ -379,7 +393,7 @@
@SuppressWarnings({"rawtypes"})
@Cacheable(value = "userCache", key = "'getHotSearchList'+'-'+#system")
public List<String> getHotSearchList(String system) {
- List<String> list = new ArrayList<String>();
+ List<String> list = new ArrayList<>();
try {
List li = searchDao.sqlList(
"SELECT h.`name` FROM wk_video_super_hotsearch sh LEFT JOIN wk_video_hotsearch h ON sh.`hotsearchid`=h.`id` WHERE sh.`detailsystem`=? ORDER BY h.`orderby` DESC",
@@ -452,16 +466,16 @@
}
@SuppressWarnings("unchecked")
- public List<HotSearchAdmin> getHotSearchAdmin(String key, int detailSystem, int page) {
- List<HotSearchAdmin> zhiBoClassList = new ArrayList<HotSearchAdmin>();
+ public List<HotSearchAdmin> getHotSearchAdmin(String key, String systemId, int detailSystem, int page) {
+ List<HotSearchAdmin> zhiBoClassList = new ArrayList<>();
try {
- List<DetailSystem> detailSystemList = detailSystemDao.list("from DetailSystem");
+ List<DetailSystem> detailSystemList = detailSystemDao.list("from DetailSystem ds where ds.system.id=" + systemId);
String sql = "";
if (detailSystem > 0)
sql = "select sh.hotSearch from SuperHotSearch sh where sh.hotSearch.name like ? and sh.detailSystem.id="
+ detailSystem + " order by sh.createtime desc";
else
- sql = "from HotSearch zb where zb.name like ? order by zb.createtime desc";
+ sql = "from HotSearch zb where zb.name like ? and zb.system.id=" + systemId + " order by zb.createtime desc";
List<HotSearch> list = hotSearchDao.list(sql, (page - 1) * Constant.pageCount, Constant.pageCount,
new Serializable[]{"%" + key + "%"});
@@ -469,7 +483,7 @@
List<DetailSystem> detailSystemS = detailSystemDao
.list("select vb.detailSystem from SuperHotSearch vb where vb.hotSearch.id=" + vb.getId());
- List<DetailSystemSelect> dssList = new ArrayList<DetailSystemSelect>();
+ List<DetailSystemSelect> dssList = new ArrayList<>();
for (DetailSystem ds : detailSystemList) {
DetailSystemSelect dss = new DetailSystemSelect();
@@ -499,13 +513,13 @@
return zhiBoClassList;
}
- public long getHotSearchAdminCount(String key, int detailSystem) {
+ public long getHotSearchAdminCount(String key,String systemId, int detailSystem) {
String sql = "";
if (detailSystem > 0)
sql = "select count(*) from (select count(*) from wk_video_super_hotsearch zb left join wk_video_hotsearch c on c.id=zb.hotsearchid where zb.detailsystem="
+ detailSystem + " and c.name like '%" + key + "%' group by zb.hotsearchid) s";
else
- sql = "select count(*) from wk_video_hotsearch h where h.name like '%" + key + "%'";
+ sql = "select count(*) from wk_video_hotsearch h where h.name like '%" + key + "%' and h.system="+systemId;
return videoBanQuanVideoDao.getCountSQL(sql);
}
--
Gitblit v1.8.0