From 7804263c6061aef813f0db27cb3046f746572606 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 06 三月 2021 16:07:26 +0800 Subject: [PATCH] 后台管理优化 --- src/main/java/com/yeshi/buwan/service/manager/SolrAlbumVideoDataManager.java | 101 ++++++++++++++++++++++++++++++++------------------ 1 files changed, 64 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/service/manager/SolrAlbumDataManager.java b/src/main/java/com/yeshi/buwan/service/manager/SolrAlbumVideoDataManager.java similarity index 67% rename from src/main/java/com/yeshi/buwan/service/manager/SolrAlbumDataManager.java rename to src/main/java/com/yeshi/buwan/service/manager/SolrAlbumVideoDataManager.java index 936f88c..2ba98e9 100644 --- a/src/main/java/com/yeshi/buwan/service/manager/SolrAlbumDataManager.java +++ b/src/main/java/com/yeshi/buwan/service/manager/SolrAlbumVideoDataManager.java @@ -1,7 +1,7 @@ package com.yeshi.buwan.service.manager; import com.yeshi.buwan.domain.ResourceVideo; -import com.yeshi.buwan.domain.SolrVideo; +import com.yeshi.buwan.domain.solr.SolrAlbumVideo; import com.yeshi.buwan.domain.VideoInfo; import com.yeshi.buwan.domain.VideoResource; import com.yeshi.buwan.domain.video.AlbumVideoMap; @@ -9,7 +9,10 @@ import com.yeshi.buwan.dto.search.SolrVideoSearchFilter; import com.yeshi.buwan.service.imp.ResourceVideoService; import com.yeshi.buwan.service.imp.VideoInfoService; +import com.yeshi.buwan.service.imp.VideoResourceService; +import com.yeshi.buwan.service.inter.VideoResourceMapExtraInfoService; import com.yeshi.buwan.service.inter.juhe.AlbumVideoMapService; +import com.yeshi.buwan.service.inter.video.VideoInfoExtraService; import com.yeshi.buwan.util.StringUtil; import com.yeshi.buwan.util.factory.SolrVideoFactory; import org.apache.solr.client.solrj.response.UpdateResponse; @@ -19,6 +22,7 @@ import org.springframework.data.solr.core.SolrTemplate; import org.springframework.data.solr.core.query.Criteria; import org.springframework.data.solr.core.query.Query; +import org.springframework.data.solr.core.query.SimpleFilterQuery; import org.springframework.data.solr.core.query.SimpleQuery; import org.springframework.data.solr.core.query.result.ScoredPage; import org.springframework.stereotype.Component; @@ -30,11 +34,11 @@ * 鎼滅储寮曟搸-涓撹緫鏁版嵁绠$悊 */ @Component -public class SolrAlbumDataManager { +public class SolrAlbumVideoDataManager { - private final static String CORE_NAME = "buwan_album"; + private final String CORE_NAME = "buwan_album"; - private final Logger logger = LoggerFactory.getLogger(SolrAlbumDataManager.class); + private final Logger logger = LoggerFactory.getLogger(SolrAlbumVideoDataManager.class); @Resource private SolrTemplate solrTemplate; @@ -49,8 +53,26 @@ private ResourceVideoService resourceVideoService; + @Resource + private VideoInfoExtraService videoInfoExtraService; + + @Resource + private VideoResourceService videoResourceService; + + public void saveOrUpdate(VideoInfo videoInfo) { - UpdateResponse updateResponse = solrTemplate.saveBean(CORE_NAME, SolrVideoFactory.create(videoInfo, videoInfo.getResourceList())); + List<VideoResource> resourceList = videoResourceService.getResourceList(); + List<Long> rids = new ArrayList<>(); + for (VideoResource vr : resourceList) { + rids.add(Long.parseLong(vr.getId())); + } + + List<VideoInfo> videoList = new ArrayList<>(); + videoList.add(videoInfo); + videoInfoExtraService.batchExtra(videoList, rids); + + + UpdateResponse updateResponse = solrTemplate.saveBean(CORE_NAME, SolrVideoFactory.createAlbum(videoInfo, videoInfo.getResourceList())); if (updateResponse.getStatus() == 0) { solrTemplate.commit(CORE_NAME); } else { @@ -59,9 +81,17 @@ } public void saveOrUpdate(List<VideoInfo> videoInfoList) { - List<SolrVideo> solrVideoList = new ArrayList<>(); + List<VideoResource> resourceList = videoResourceService.getResourceList(); + List<Long> rids = new ArrayList<>(); + for (VideoResource vr : resourceList) { + rids.add(Long.parseLong(vr.getId())); + } + videoInfoExtraService.batchExtra(videoInfoList, rids); + + + List<SolrAlbumVideo> solrVideoList = new ArrayList<>(); for (VideoInfo vi : videoInfoList) { - solrVideoList.add(SolrVideoFactory.create(vi, vi.getResourceList())); + solrVideoList.add(SolrVideoFactory.createAlbum(vi, vi.getResourceList())); } UpdateResponse updateResponse = solrTemplate.saveBeans(CORE_NAME, solrVideoList); if (updateResponse.getStatus() == 0) { @@ -84,7 +114,7 @@ // } // } public void deleteById(String id) { - UpdateResponse updateResponse = solrTemplate.deleteByIds(CORE_NAME, id); + UpdateResponse updateResponse = solrTemplate.deleteById(CORE_NAME, id); if (updateResponse.getStatus() == 0) { solrTemplate.commit(CORE_NAME); } else { @@ -92,9 +122,9 @@ } } - public SolrVideo findOne(String id) { - Optional<SolrVideo> solrVideo = solrTemplate.getById(CORE_NAME, id, SolrVideo.class); - return solrVideo.get(); + public SolrAlbumVideo findOne(String id) { + SolrAlbumVideo solrVideo = solrTemplate.getById(CORE_NAME, id, SolrAlbumVideo.class); + return solrVideo; } public SolrResultDTO find(SolrVideoSearchFilter filter, int page, int pageSize) { @@ -105,35 +135,30 @@ Query query = null; if (!StringUtil.isNullOrEmpty(filter.getKey())) { //solr绮惧噯妫�绱㈤渶瑕佸甫寮曞彿 - query = new SimpleQuery("name:\"" + filter.getKey() + "\""); + query = new SimpleQuery(new Criteria("name").expression("\"" + filter.getKey() + "\"").or("mainactor").expression("\"" + filter.getKey() + "\"")); + } else if (!StringUtil.isNullOrEmpty(filter.getActor())) { + query = new SimpleQuery(new Criteria("mainactor").expression("\"" + filter.getActor() + "\"")); + } else if (!StringUtil.isNullOrEmpty(filter.getDirector())) { + query = new SimpleQuery(new Criteria("director").expression("\"" + filter.getDirector() + "\"")); } else { - query = new SimpleQuery(); + query = new SimpleQuery("*:*"); } - Criteria criteria = new Criteria("contenttype").is(filter.getContentType()); + if (filter.getVideoType() != null) { - criteria = criteria.and("root_video_type").is(filter.getVideoType()); - } - - if (filter.getActor() != null) { - criteria = criteria.and("mainactor").expression("\"" + filter.getActor() + "\""); - } - - if (filter.getDirector() != null) { - criteria = criteria.and("director").expression("\"" + filter.getDirector() + "\""); + query.addFilterQuery(new SimpleFilterQuery(Criteria.where("root_video_type").is(filter.getVideoType()))); } if (filter.getResourceIds() != null && filter.getResourceIds().length > 0) { - criteria = criteria.and("resourceIds").contains(filter.getResourceIds()); + query.addFilterQuery(new SimpleFilterQuery(Criteria.where("resourceIds").contains(filter.getResourceIds()))); + } + if(filter.getFreeType()!=null){ + query.addFilterQuery(new SimpleFilterQuery(Criteria.where("free_type").is(filter.getFreeType()))); } - /** 娣诲姞鏉′欢 */ - if (criteria != null) - query.addCriteria(criteria); - /** 璁剧疆鍒嗛〉寮�濮嬭褰曟暟(绗竴椤�) 榛樿0 */ - query.setOffset((page - 1) * pageSize * 1L); + query.setOffset((page - 1) * pageSize); /** 璁剧疆姣忛〉鏄剧ず璁板綍鏁帮紝榛樿10 */ query.setRows(pageSize); if (StringUtil.isNullOrEmpty(filter.getSortKey())) { @@ -141,23 +166,25 @@ } else { query.addSort(new Sort(Sort.Direction.DESC, filter.getSortKey())); } - ScoredPage<SolrVideo> result = solrTemplate.queryForPage(CORE_NAME, query, SolrVideo.class); + + + ScoredPage<SolrAlbumVideo> result = solrTemplate.queryForPage(CORE_NAME, query, SolrAlbumVideo.class); System.out.println("鎬昏褰曟暟锛�" + result.getTotalElements()); - List<SolrVideo> list = result.getContent(); + List<SolrAlbumVideo> list = result.getContent(); return new SolrResultDTO(list, (int) result.getTotalElements()); } public List<String> getSuggestKeyList(String key) { Query query = new SimpleQuery("name:\"" + key + "\""); /** 璁剧疆鍒嗛〉寮�濮嬭褰曟暟(绗竴椤�) 榛樿0 */ - query.setOffset(0L); + query.setOffset(0); /** 璁剧疆姣忛〉鏄剧ず璁板綍鏁帮紝榛樿10 */ query.setRows(10); - ScoredPage<SolrVideo> result = solrTemplate.queryForPage(CORE_NAME, query, SolrVideo.class); + ScoredPage<SolrAlbumVideo> result = solrTemplate.queryForPage(CORE_NAME, query, SolrAlbumVideo.class); System.out.println("鎬昏褰曟暟锛�" + result.getTotalElements()); - List<SolrVideo> list = result.getContent(); + List<SolrAlbumVideo> list = result.getContent(); List<String> keyList = new ArrayList<>(); - for (SolrVideo sv : list) + for (SolrAlbumVideo sv : list) if (!keyList.contains(sv.getName())) keyList.add(sv.getName()); return keyList; @@ -195,10 +222,9 @@ vi.setResourceList(map.get(vi.getId())); } } - saveOrUpdate(videoList); } catch (Exception e) { - logger.error("涓撹緫鎼滅储寮曟搸鏁版嵁鍚屾澶辫触"); + logger.error("涓撹緫鎼滅储寮曟搸鏁版嵁鍚屾澶辫触",e); } } } @@ -207,6 +233,7 @@ AlbumVideoMap map = albumVideoMapService.selectByVideoId(videoId); if (map == null) return; + VideoInfo video = videoInfoService.getVideoInfo(videoId); if (video != null) { List<ResourceVideo> rvList = resourceVideoService.getResourceList(video.getId()); -- Gitblit v1.8.0