admin
2021-03-27 71613f2db369a8cd5dfd9eed51e099955bd12cf1
全网搜bug修复
18个文件已修改
130 ■■■■ 已修改文件
src/main/java/com/yeshi/buwan/controller/TestController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/parser/HomeParser.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/job/video/MogoTVVideoUpdate.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/job/video/TencentVideoUpdate.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/job/video/YouKuVideoUpdate.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/SearchService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/InternetSearchVideoServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/MogoTVServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/TencentVideoServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/YouKuServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/inter/juhe/InternetSearchVideoService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/SpringContext.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/factory/InternetSearchVideoFactory.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/LogTest.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/SolrTest.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/video/MogoTest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/video/TencentTest.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/video/YouKuTest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/TestController.java
@@ -6,11 +6,13 @@
import com.yeshi.buwan.exception.vip.VIPException;
import com.yeshi.buwan.funtv.FunTVUtil;
import com.yeshi.buwan.service.imp.DetailSystemConfigService;
import com.yeshi.buwan.service.imp.SearchService;
import com.yeshi.buwan.service.inter.vip.VIPService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.yeshi.utils.JsonUtil;
import javax.annotation.Resource;
import java.io.PrintWriter;
@@ -29,6 +31,9 @@
    @Resource
    private VIPService vipService;
    @Resource
    private SearchService searchService;
    Logger logger = LoggerFactory.getLogger(TestController.class);
@@ -61,5 +66,11 @@
        }
    }
    @RequestMapping("searchAlbum")
    public void searchAlbum(String key, PrintWriter out) {
        SearchService.SearchResult result = searchService.searchAlbum(0, key, 1, 20);
        out.print(JsonUtil.loadTrueResult(result));
    }
}
src/main/java/com/yeshi/buwan/controller/parser/HomeParser.java
@@ -55,6 +55,9 @@
@Controller
public class HomeParser {
    private Logger logger=LoggerFactory.getLogger(HomeParser.class);
    @Resource
    private SystemService systemService;
    @Resource
@@ -379,7 +382,10 @@
        if (Integer.parseInt(resourceId) == YouKuUtil.RESOURCE_ID) {
            try {
                info = youKuUtil.getVideoInfo(internetSearchVideo);
            } catch (Exception e) {
                logger.error("全网搜视频详情出错:"+videoId);
                e.printStackTrace();
                out.print(JsonUtil.loadFalseAdmin(e.getMessage()));
                return;
            }
@@ -388,6 +394,7 @@
            try {
                info = mogoTVUtil.getVideoInfo(internetSearchVideo);
            } catch (Exception e) {
                logger.error("全网搜视频详情出错:"+videoId);
                out.print(JsonUtil.loadFalseAdmin(e.getMessage()));
                return;
            }
@@ -395,6 +402,7 @@
            try {
                info = tencentVideoUtil.getVideoInfo(internetSearchVideo);
            } catch (Exception e) {
                logger.error("全网搜视频详情出错:"+videoId);
                out.print(JsonUtil.loadFalseAdmin(e.getMessage()));
                return;
            }
src/main/java/com/yeshi/buwan/job/video/MogoTVVideoUpdate.java
@@ -42,7 +42,7 @@
                    System.out.println(clipInfo.getTitle() + ":" + clipInfo.getClipId());
                    try {
                        MogoTVClipInfo detail = getClipDetail(clipInfo);
                        mogoTVService.save(detail);
                        mogoTVService.addToInternetSearch(detail);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
@@ -105,7 +105,7 @@
            MogoTVClipInfo clipInfo = mogoTVService.getSimpleClipDetail(cid);
            if (clipInfo != null) {
                MogoTVClipInfo info = getClipDetail(clipInfo);
                mogoTVService.save(info);
                mogoTVService.addToInternetSearch(info);
            }
        }
        return ReturnT.SUCCESS;
src/main/java/com/yeshi/buwan/job/video/TencentVideoUpdate.java
@@ -39,7 +39,7 @@
            for (TencentCoverInfo coverInfo : coverInfoList) {
                System.out.println(coverInfo.getTitle()+":"+coverInfo.getCover_id());
                try {
                    tencentVideoService.save(coverInfo);
                    tencentVideoService.addToInternetSearch(coverInfo);
                } catch (Exception e) {
                    e.printStackTrace();
                }
@@ -100,7 +100,7 @@
        for (String cid : cids) {
            try {
                TencentCoverInfo detail = getCoverDetail(cid);
                tencentVideoService.save(detail);
                tencentVideoService.addToInternetSearch(detail);
            } catch (Exception e) {
                e.printStackTrace();
            }
src/main/java/com/yeshi/buwan/job/video/YouKuVideoUpdate.java
@@ -62,7 +62,7 @@
                    System.out.println(simple.getName() + ":" + simple.getId());
                    try {
                        YouKuShowDetail detail = getShowDetail(simple.getId());
                        youKuService.save(detail);
                        youKuService.addToInternetSearch(detail);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
@@ -91,7 +91,7 @@
                String[] ids = param.split(",");
                for (String id : ids) {
                    YouKuShowDetail detail = getShowDetail(id);
                    youKuService.save(detail);
                    youKuService.addToInternetSearch(detail);
                }
            }
        } else {
src/main/java/com/yeshi/buwan/service/imp/SearchService.java
@@ -288,7 +288,7 @@
    }
    private SearchResult searchAlbum(int videoType, String key, int page, int pageSize) {
    public SearchResult searchAlbum(int videoType, String key, int page, int pageSize) {
        List<VideoInfo> localList = new ArrayList<>();
        //专辑视频集合
        Set<String> solrAlbumVids = new HashSet<>();
@@ -344,19 +344,24 @@
                    }
                }
            }
            //todo 按关键词的匹配度排序
            //按关键词的匹配度排序
            Comparator<VideoInfo> cm = new Comparator<VideoInfo>() {
                @Override
                public int compare(VideoInfo o1, VideoInfo o2) {
                    float s1 = CompareStrSimUtil.getSimilarityRatio(o1.getName(), key, true);
                    float s2 = CompareStrSimUtil.getSimilarityRatio(o2.getName(), key, true);
                    return s2 > s1 ? 1 : -1;
                    if (s1 != s2)//相似度越高越靠前
                        return s2 > s1 ? 1 : -1;
                    else
                        return o1.getDefinition() - o2.getDefinition();//高清排在前
                }
            };
            Collections.sort(localList,cm);
            Collections.sort(localList, cm);
        }
        //未搜索到内容
        if (localList == null || localList.size() == 0) {
            logger.warn("专辑搜索无结果#{}", key);
        }
        return new SearchResult(albumCount, localList);
    }
@@ -727,7 +732,7 @@
    }
    class SearchResult {
    public static class SearchResult {
        private int totalCount;
        private List<VideoInfo> videoInfoList;
src/main/java/com/yeshi/buwan/service/imp/juhe/InternetSearchVideoServiceImpl.java
@@ -1,10 +1,12 @@
package com.yeshi.buwan.service.imp.juhe;
import com.yeshi.buwan.dao.juhe.youku.InternetSearchVideoDao;
import com.yeshi.buwan.domain.system.SystemConfig;
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.dto.mq.InternetSearchVideoMQMsg;
import com.yeshi.buwan.exception.ParamsException;
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.service.inter.system.SystemConfigService;
import com.yeshi.buwan.util.mq.CMQManager;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
@@ -21,10 +23,30 @@
    @Resource
    private InternetSearchVideoDao internetSearchVideoDao;
    @Resource
    private SystemConfigService systemConfigService;
    private boolean isCanSave(InternetSearchVideo video) {
        SystemConfig systemConfig = systemConfigService.getConfigByKeyCache("internetSearchInvalidKeyForSave");
        if (systemConfig == null)
            return true;
        String value = systemConfig.getValue();
        String[] invalidNames = value.split("#");
        for (String st : invalidNames) {
            if (video.getName().contains(st)) {
                return false;
            }
        }
        return true;
    }
    @Validated
    @Override
    public void save(@Valid InternetSearchVideo video) throws ParamsException, Exception {
    public InternetSearchVideo save(@Valid InternetSearchVideo video) throws ParamsException, Exception {
        if (!isCanSave(video))
            return null;
        InternetSearchVideo oldVideo = internetSearchVideoDao.get(video.getId());
        Set<Integer> resourceIds = listResourceId(video);
        int resourceId = Integer.parseInt(video.getResourceIds());
@@ -43,6 +65,8 @@
        msg.setId(video.getId());
        msg.setResourceId(resourceId);
        CMQManager.getInstance().addInternetSearchVideoUpdateMsg(msg);
        return video;
    }
    private Set<Integer> listResourceId(InternetSearchVideo video) {
src/main/java/com/yeshi/buwan/service/imp/juhe/MogoTVServiceImpl.java
@@ -47,7 +47,6 @@
                }
                mogoTVVideoDao.save(video);
            }
        internetSearchVideoService.save(InternetSearchVideoFactory.create(detail));
    }
    @Override
@@ -124,8 +123,11 @@
    @Override
    public void addToInternetSearch(MogoTVClipInfo clipDetail) throws Exception {
        save(clipDetail);
        InternetSearchVideo video = InternetSearchVideoFactory.create(clipDetail);
        internetSearchVideoService.save(video);
        if (internetSearchVideoService.save(video) == null) {
            return;
        }
        MogoTVSearchVideoMap map = new MogoTVSearchVideoMap();
        map.setClipId(clipDetail.getClipId());
        map.setVideoId(video.getId());
src/main/java/com/yeshi/buwan/service/imp/juhe/TencentVideoServiceImpl.java
@@ -62,8 +62,6 @@
                tencentCoverVideoDao.save(video);
            }
        internetSearchVideoService.save(InternetSearchVideoFactory.create(detail));
    }
    @Override
@@ -138,8 +136,11 @@
    @Override
    public void addToInternetSearch(TencentCoverInfo showDetail) throws Exception {
        save(showDetail);
        InternetSearchVideo video = InternetSearchVideoFactory.create(showDetail);
        internetSearchVideoService.save(video);
        if (internetSearchVideoService.save(video) == null) {
            return;
        }
        TencentSearchVideoMap map = new TencentSearchVideoMap();
        map.setCoverId(showDetail.getId());
        map.setVideoId(video.getId());
src/main/java/com/yeshi/buwan/service/imp/juhe/YouKuServiceImpl.java
@@ -46,8 +46,6 @@
                }
                youKuVideoDao.save(video);
            }
        internetSearchVideoService.save(InternetSearchVideoFactory.create(detail));
    }
    @Override
@@ -120,8 +118,11 @@
    @Override
    public void addToInternetSearch(YouKuShowDetail showDetail) throws Exception {
        save(showDetail);
        InternetSearchVideo video = InternetSearchVideoFactory.create(showDetail);
        internetSearchVideoService.save(video);
        if (internetSearchVideoService.save(video) == null) {
            return;
        }
        YouKuSearchVideoMap map = new YouKuSearchVideoMap();
        map.setShowId(showDetail.getId());
        map.setVideoId(video.getId());
src/main/java/com/yeshi/buwan/service/inter/juhe/InternetSearchVideoService.java
@@ -9,7 +9,7 @@
public interface InternetSearchVideoService {
    public void save(@Valid InternetSearchVideo video) throws ParamsException, Exception;
    public InternetSearchVideo save(@Valid InternetSearchVideo video) throws ParamsException, Exception;
    public Set<Integer> listResourceId(String id);
src/main/java/com/yeshi/buwan/util/SpringContext.java
@@ -81,8 +81,8 @@
            doAddPPTVVideo();
            doDeleteVideoResource();
            doUpdateVideoExtraInfo();
            doInternetSearchVideoUpdateJob();
        }
        doInternetSearchVideoUpdateJob();
    }
    private void doSolrJob() {
src/main/java/com/yeshi/buwan/util/factory/InternetSearchVideoFactory.java
@@ -3,6 +3,7 @@
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.tencent.entity.TencentCoverVideo;
import com.yeshi.buwan.util.TimeUtil;
import com.yeshi.buwan.util.video.VideoConstant;
import com.yeshi.buwan.youku.entity.YouKuShowDetail;
@@ -93,6 +94,12 @@
    public static InternetSearchVideo create(TencentCoverInfo info) {
        int videoCount = 0;
        for (TencentCoverInfo.VipIdsBean idsBean : info.getVip_ids()) {
            if (idsBean.getF() == 2 || idsBean.getF() == 7)
                videoCount++;
        }
        InternetSearchVideo video = new InternetSearchVideo();
        video.setActors(StringUtil.concat(info.getLeading_actor(), ","));
        video.setArea(info.getArea_name());
@@ -118,7 +125,7 @@
        } else
            video.setTag(info.getEpisode_updated());
        video.setUpdateTime(new Date());
        video.setVideoCount(info.getVideoList().size());
        video.setVideoCount(videoCount);
        video.setYear(info.getYear());
        video.setId(InternetSearchVideo.createId(video.getName(), video.getRootType(), video.getYear()));
        return video;
src/test/java/com/hxh/spring/test/LogTest.java
@@ -179,7 +179,7 @@
    @Test
    public void userActive() throws Exception {
        Gson gson = new Gson();
        List<String> list = loadLog("C:\\Users\\Administrator\\Desktop\\日志\\布丸播放\\active_2021_03_23.log");
        List<String> list = loadLog("C:\\Users\\Administrator\\Desktop\\日志\\布丸播放\\active_2021_03_27.log");
        Map<String, List<UserActiveLogInfo>> map = new HashMap<>();
        for (String st : list) {
            UserActiveLogInfo activeLogInfo = gson.fromJson(st, UserActiveLogInfo.class);
@@ -247,6 +247,7 @@
        System.out.println("搜索之后播放总数:" + searchPlayCount + "比例为:" + getPercent(map.size(), searchPlayCount));
        System.out.println("搜索之后未播放总数:" + searchNoPlay + "比例为:" + getPercent(map.size(), searchNoPlay));
        System.out.println("未搜索也未播放总数:" + noSearchAndPlay + "比例为:" + getPercent(map.size(), noSearchAndPlay));
        System.out.println("搜索满意度:" +getPercent(searchCount, searchPlayCount));
        System.out.println("未能成功进入首页总数:" + noComeInCount + "比例为:" + getPercent(map.size(), noComeInCount));
        System.out.println("进入首页后无动作的总数:" + comeinAndNoAction + "比例为:" + getPercent(map.size(), comeinAndNoAction));
    }
src/test/java/com/hxh/spring/test/SolrTest.java
@@ -161,10 +161,19 @@
    @Test
    public void addInternet() {
        InternetSearchVideo list = internetSearchVideoService.selectByPrimaryKey("8a2332ccbabb5eb7076f690365db692a"); //listAll(1, 10);
        InternetSearchVideo list = internetSearchVideoService.selectByPrimaryKey("9693a5f3de443fe48a5272ce12c859f3"); //listAll(1, 10);
        solrInternetSearchVideoDataManager.saveOrUpdate(list);
    }
    @Test
    public void deleteInternet() {
        String st="161469b4aa35ca7ae1cc5d3ddaa23276,3b57b603b4eef496ce0de50f06ca40c0";
        for (String id : st.split(","))
            solrInternetSearchVideoDataManager.deleteById(id);
    }
    @Resource
    private AlbumVideoMapDao albumVideoMapDao;
src/test/java/com/hxh/spring/test/video/MogoTest.java
@@ -40,7 +40,7 @@
    @Test
    public void test2() {
        try {
            mogoTVVideoUpdate.updateLatestVideo("综艺");
            mogoTVVideoUpdate.updateLatestVideo("电视剧");
        } catch (Exception e) {
            e.printStackTrace();
        }
src/test/java/com/hxh/spring/test/video/TencentTest.java
@@ -1,11 +1,8 @@
package com.hxh.spring.test.video;
import com.yeshi.buwan.job.video.MogoTVVideoUpdate;
import com.yeshi.buwan.job.video.TencentVideoUpdate;
import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.service.inter.juhe.MogoTVService;
import com.yeshi.buwan.service.inter.juhe.TencentVideoService;
import com.yeshi.buwan.tencent.entity.TencentCoverInfo;
import org.junit.Test;
src/test/java/com/hxh/spring/test/video/YouKuTest.java
@@ -36,7 +36,7 @@
    @Test
    public void test1() {
        try {
            youKuVideoUpdate.updateLatestVideo("ceba4745ea10415eb791");
            youKuVideoUpdate.updateLatestVideo("bb8e820fe05d414a8232");
        } catch (Exception e) {
            e.printStackTrace();
        }