admin
2021-08-27 8fee151ffae0c3818694b7318583814bf92663e2
聚合视频资源包调整,接入韩迷
1个文件已删除
85 文件已重命名
141个文件已修改
8个文件已添加
2827 ■■■■ 已修改文件
src/main/java/com/yeshi/buwan/controller/PPTVController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/TestController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/admin/api/ClassController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/admin/api/HomeTypeController.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/admin/api/SpecialController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/admin/api/VideoAdminController.java 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/api/VIPController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/api/VideoInfoController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/api/VideoParserController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/api/VideoPlayController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/parser/ClassParser.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/parser/FoundParser.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/parser/HomeParser.java 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/parser/OtherParser.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/parser/SearchParser.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/parser/UserParser.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/AcFunTypeDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/AcFunVideoDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/AcTypeEqVideoTypeDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/funtv/FunTVAlbum2Dao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/funtv/FunTVAlbumDao.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/funtv/FunTVAlbumVideoMapDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/funtv/FunTVShortVideo2Dao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/funtv/FunTVVideo2Dao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/funtv/FunTVVideoDao.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/funtv/VideoFunTV2Dao.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/funtv/VideoFunTVDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/funtv/VideoFunTVNewDao.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/iqiyi/IqiyiAlbum2Dao.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/iqiyi/IqiyiUpdateQueueDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/iqiyi/IqiyiVideoInfoDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/iqiyi/VideoIqiyi2Dao.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/iqiyi/VideoIqiyiDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/iqiyi/VideoIqiyiNewDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/mogotv/MogoTVClipInfoDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/mogotv/MogoTVSearchVideoMapDao.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/mogotv/MogoTVVideoDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/pptv/PPTVProgramDao.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/pptv/PPTVSeriesDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/pptv/PPTVSeriesProgramMapDao.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/pptv/VideoPPTVMapDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/sohu/SoHuAlbumDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/sohu/SoHuVideoDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/tencent/TencentCoverInfoDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/tencent/TencentCoverVideoDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/tencent/TencentSearchVideoMapDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/youku/YouKuSearchVideoMapDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/youku/YouKuShowDetailDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/juhe/youku/YouKuVideoDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/video/VideoResourceVersionMapDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/domain/HomeVideo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/domain/solr/SolrAlbumVideo.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/domain/vip/VideoBuyRecord.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/exception/video/IqiyiVideoSolrException.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/job/JuHeVideoUpdateJob.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/job/RankJob.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/job/video/AcfunVideoUpdate.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/job/video/FunTV2VideoUpdate.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/job/video/Iqiyi2VideoUpdate.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/job/video/MogoTVVideoUpdate.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/job/video/PPTVVideoUpdate.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/job/video/ShortVideoUpdateJob.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/job/video/TencentVideoUpdate.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/job/video/YouKuVideoUpdate.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/AcFunTypeService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/AcFunVideoService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/AcTypeEqVideoTypeService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/DetailSystemConfigService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/LoginUserServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/ResourceVideoService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/SearchService.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/SpecialService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/ad/DeviceAdStrategyServiceImpl.java 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/AcfunVideoNewService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/AlbumVideoMapServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/BilibiliVideoServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/FunTV2ServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/FunTVService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/Iqiyi2ServiceImpl.java 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/IqiyiQueueService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/IqiyiService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/MogoTVServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/PPTVServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/SoHuService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/TencentVideoServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/juhe/YouKuServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/order/OrderServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/recommend/HomeVideoServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/inter/ad/DeviceAdStrategyService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/inter/juhe/AlbumVideoMapService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/inter/juhe/FunTV2Service.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/inter/juhe/Iqiyi2Service.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/inter/juhe/MogoTVService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/inter/juhe/PPTVService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/inter/juhe/TencentVideoService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/inter/juhe/YouKuService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/manager/search/SolrAlbumVideoDataManager.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/manager/search/SolrInternetSearchVideoDataManager.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/manager/search/SolrShortVideoDataManager.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/RedisManager.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/SpringContext.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/factory/InternetSearchVideoFactory.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/factory/SolrShortVideoFactory.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/factory/VideoInfoFactory.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/factory/vo/UserInfoVOFactory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/log/VideoLogFactory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/rank/IqiyiRankUtil.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/rank/TencentRankUtil.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/rank/YoukuRankUtil.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/video/AcfunApiUtil.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/video/VideoDetailUtil.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/video/VideoUtil.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/video/shortvideo/ShortVideoUtil.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/video/web/IqiyiWebUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/video/web/TencentWebUtil.java 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/video/web/YouKuWebUtil.java 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/acFun/AcFunAdpater.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/acFun/AcFunType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/acFun/AcFunUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/acFun/AcFunVideo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/acFun/AcTypeEqVideoType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/acFun/AcfunVideoMap.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/acFun/AcfunVideoMapDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/acFun/AcfunVideoNew.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/acFun/AcfunVideoNewDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/acFun/AcfunVideoResult.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/bilibili/BilibiliUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/FunTVAlbumFactory.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/FunTVApi.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/FunTVDataParseUtil.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/FunTVNewApi.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/FunTVUtil.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/FunTVUtil2.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/FunTVVideoFactory.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/entity/FunTVAlbum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/entity/FunTVAlbum2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/entity/FunTVAlbumVideoMap.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/entity/FunTVShortVideo2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/entity/FunTVVideo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/entity/FunTVVideo2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/entity/VideoFunTV.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/entity/VideoFunTV2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVCartoonAlbum.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVCartoonVideo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVMovieVideo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVShortVideo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVShowAlbum.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVShowVideo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVTVAlbum.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVTVVideo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/vo/base/FunTVBaseAlbum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/funtv/vo/base/FunTVBaseVideo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/hanmi/HanmiApiUtil.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/hanmi/entity/HanmiShow.java 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/hanmi/entity/HanmiShowEpisode.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/iqiyi/IqiYiAPI.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/iqiyi/IqiYiNewAPI.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/IqiyiAlbum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/IqiyiAlbum2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/IqiyiChannel.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/IqiyiUpdateQueue.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/IqiyiVideoInfo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/PlayControls.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/ThreeCategory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/VideoIqiyi.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/VideoIqiyi2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/iqiyi/util/IqiyiUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/iqiyi/util/IqiyiUtil2.java 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/iqiyi/vo/IqiyiAlbumListResult.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/mogotv/MogoTVApiUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/mogotv/MogoTVUtil.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/mogotv/entity/MogoTVClipInfo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/mogotv/entity/MogoTVSearchVideoMap.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/mogotv/entity/MogoTVVideo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/pptv/PPTVApiUtil.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/pptv/PPTVQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/pptv/PPTVUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/pptv/PPTVVipManager.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/pptv/entity/PPTVGoodsInfo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/pptv/entity/PPTVProgram.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/pptv/entity/PPTVSeries.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/pptv/entity/PPTVSeriesProgramMap.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/pptv/entity/VideoPPTVMap.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/sohu/SoHuApi.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/sohu/SoHuUtil.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/sohu/entity/RootCategory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/sohu/entity/SecondCategory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/sohu/entity/SoHuAlbum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/sohu/entity/SoHuPlay.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/sohu/entity/SoHuVideo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/sohu/entity/SohuVideoContent.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/sohu/entity/VideoSoHu.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/tencent/TencentVideoApiUtil.java 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/tencent/TencentVideoUtil.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/tencent/entity/TencentCoverInfo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/tencent/entity/TencentCoverVideo.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/tencent/entity/TencentSearchVideoMap.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/youku/YouKuApiUtil.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/youku/YouKuUtil.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/youku/entity/YouKuSearchVideoMap.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/youku/entity/YouKuShowDetail.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/youku/entity/YouKuShowSimple.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/videos/youku/entity/YouKuVideo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/vo/video/VideoAdminInfoVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/vo/video/VideoDetailVO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/domain/video/funtv/VideoFunTV.hbm.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/domain/video/iqiyi/IqiyiAlbum.hbm.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/domain/video/iqiyi/IqiyiUpdateQueue.hbm.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/domain/video/iqiyi/IqiyiVideoInfo.hbm.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/domain/video/iqiyi/VideoIqiyi.hbm.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/domain/video/sohu/SoHuAlbum.hbm.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/domain/video/sohu/SoHuVideo.hbm.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/domain/video/sohu/VideoSoHu.hbm.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/hibernate.cfg.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/admin/new/fenqu.html 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/admin/new/tuijian-lanmuneirong-videos.html 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/ClearVideo.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/DES.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/FunTV.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/FunTV2.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/Iqiyi.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/Iqiyi2.java 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/PPTVTest.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/SoHuTest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/SolrTest.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/Test.java 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/VideoTest.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/VideoUpdate.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/VideoUpdateTest.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/video/MogoTest.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/video/RankTest.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/video/TencentTest.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/video/VideoResourceVersionTest.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/video/YouKuTest.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/vip/VIPTest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/PPTVController.java
@@ -1,9 +1,7 @@
package com.yeshi.buwan.controller;
import com.yeshi.buwan.pptv.PPTVApiUtil;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.util.AESUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.videos.pptv.PPTVApiUtil;
import com.yeshi.buwan.videos.pptv.PPTVUtil;
import com.yeshi.buwan.util.log.LoggerUtil;
import org.json.JSONObject;
import org.springframework.stereotype.Controller;
@@ -13,7 +11,6 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@Controller
@RequestMapping("pptv")
src/main/java/com/yeshi/buwan/controller/TestController.java
@@ -1,16 +1,11 @@
package com.yeshi.buwan.controller;
import com.yeshi.buwan.domain.system.DetailSystem;
import com.yeshi.buwan.domain.vip.OrderRecord;
import com.yeshi.buwan.exception.PPTVException;
import com.yeshi.buwan.exception.vip.VIPException;
import com.yeshi.buwan.funtv.FunTVUtil;
import com.yeshi.buwan.videos.funtv.FunTVUtil;
import com.yeshi.buwan.service.imp.DetailSystemConfigService;
import com.yeshi.buwan.service.imp.SearchService;
import com.yeshi.buwan.service.inter.order.OrderService;
import com.yeshi.buwan.service.inter.vip.VIPService;
import com.yeshi.buwan.util.JsonUtilV2;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
@@ -19,7 +14,6 @@
import javax.annotation.Resource;
import java.io.PrintWriter;
import java.util.Date;
import java.util.Map;
@Controller
@@ -63,7 +57,7 @@
    @RequestMapping("searchAlbum")
    public void searchAlbum(String key, PrintWriter out) {
        SearchService.SearchResult result = searchService.searchAlbum(0, key, 1, 20);
        SearchService.SearchResult result = searchService.searchAlbum(0, key, null,1, 20);
        out.print(JsonUtil.loadTrueResult(result));
    }
src/main/java/com/yeshi/buwan/controller/admin/api/ClassController.java
@@ -12,6 +12,7 @@
import com.yeshi.buwan.service.inter.recommend.HomeVideoService;
import com.yeshi.buwan.util.*;
import com.yeshi.buwan.util.video.VideoUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -132,7 +133,7 @@
            hv.setPicture(pictureStr[i]);
            hv.setType(new HomeType(hometypeid + ""));
            hv.setVideoId(videoStr[i]);
            hv.setFromType(0);
            hv.setFromType(VideoUtil.getVideoFromType(hv.getVideoId()));
            hv.setBigPicture(false);
        }
src/main/java/com/yeshi/buwan/controller/admin/api/HomeTypeController.java
@@ -14,7 +14,9 @@
import com.yeshi.buwan.domain.recommend.HomeRecommendSpecial;
import com.yeshi.buwan.service.inter.recommend.HomeRecommendSpecialService;
import com.yeshi.buwan.service.inter.recommend.HomeVideoService;
import com.yeshi.buwan.util.NumberUtil;
import com.yeshi.buwan.util.SystemUtil;
import com.yeshi.buwan.util.video.VideoUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -144,6 +146,7 @@
                hv.setType(new HomeType(ht));
                hv.setVideoId(vid);
                hv.setBigPicture(false);
                hv.setFromType(VideoUtil.getVideoFromType(hv.getVideoId()));
                list.add(hv);
            }
        }
@@ -337,7 +340,7 @@
    }
    @RequestMapping(value = "/updatehomevideo", method = RequestMethod.POST)
    public void updateHomeVideo(long id, String tag, String picture, String orderby,Boolean bigPicture, PrintWriter out) {
    public void updateHomeVideo(long id, String tag, String picture, String orderby, Boolean bigPicture, PrintWriter out) {
        HomeVideo hv = homeTypeService.getHomeVideoById(id + "");
        if (hv == null) {
            JSONObject object = new JSONObject();
src/main/java/com/yeshi/buwan/controller/admin/api/SpecialController.java
@@ -42,8 +42,8 @@
    private SystemService systemService;
    @RequestMapping(value = "/getspeciallist", method = RequestMethod.POST)
    public void getSpecialList(PrintWriter out) {
        List<Special> list = specialService.getSpecialList();
    public void getSpecialList(HttpSession session, PrintWriter out) {
        List<Special> list = specialService.getSpecialListBySystem(SystemUtil.getAdminSelectedSystemId(session));
        JSONArray array = new JSONArray();
        if (list != null)
            for (Special special : list) {
src/main/java/com/yeshi/buwan/controller/admin/api/VideoAdminController.java
@@ -8,15 +8,24 @@
import com.google.common.base.Function;
import com.google.common.collect.Maps;
import com.google.gson.Gson;
import com.yeshi.buwan.domain.HomeVideo;
import com.yeshi.buwan.domain.VideoResource;
import com.yeshi.buwan.domain.solr.SolrAlbumVideo;
import com.yeshi.buwan.domain.solr.SolrShortVideo;
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.domain.video.VideoInfoExtra;
import com.yeshi.buwan.dto.search.SolrResultDTO;
import com.yeshi.buwan.dto.search.SolrShortVideoSearchFilter;
import com.yeshi.buwan.dto.search.SolrVideoSearchFilter;
import com.yeshi.buwan.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.exception.video.IqiyiVideoSolrException;
import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2;
import com.yeshi.buwan.service.imp.VideoResourceService;
import com.yeshi.buwan.service.inter.juhe.Iqiyi2Service;
import com.yeshi.buwan.service.inter.video.VideoInfoExtraService;
import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager;
import com.yeshi.buwan.service.manager.search.SolrInternetSearchVideoDataManager;
import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager;
import com.yeshi.buwan.util.Constant;
import com.yeshi.buwan.vo.video.VideoAdminInfoVO;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@@ -25,11 +34,9 @@
import org.springframework.web.bind.annotation.RequestMethod;
import com.google.gson.GsonBuilder;
import com.yeshi.buwan.acFun.AcFunUtil;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.service.imp.ClassService;
import com.yeshi.buwan.service.imp.ResourceVideoService;
import com.yeshi.buwan.service.imp.VideoManager;
import com.yeshi.buwan.util.JsonUtil;
import com.yeshi.buwan.util.StringUtil;
@@ -48,8 +55,6 @@
    @Resource
    private ClassService classService;
    @Resource
    private ResourceVideoService resourceVideoService;
    @Resource
    private VideoResourceService videoResourceService;
@@ -57,8 +62,6 @@
    @Resource
    private IqiyiUtil iqiyiUtil;
    @Resource
    private AcFunUtil acFunUtil;
    @Resource
    private ThreadPoolTaskExecutor taskExecutor;
@@ -67,7 +70,20 @@
    private SolrAlbumVideoDataManager solrAlbumDataManager;
    @Resource
    private SolrInternetSearchVideoDataManager solrInternetSearchVideoDataManager;
    @Resource
    private SolrShortVideoDataManager solrShortVideoDataManager;
    @Resource
    private VideoInfoExtraService videoInfoExtraService;
    @Resource
    private Iqiyi2Service iqiyi2Service;
    @Resource
    private IqiyiUtil2 iqiyiUtil2;
    @RequestMapping(value = "/changevideoshow", method = RequestMethod.POST)
    public void changeVideoShow(String id, int show, PrintWriter out) {
@@ -95,7 +111,7 @@
    }
    @RequestMapping(value = "/videolist", method = RequestMethod.POST)
    public void videoList(int videotype, int page, String key, String type, String resourceIds, int contenttype, String freeType, String area, PrintWriter out) {
    public void videoList(int videotype, int page, String key, String type, String resourceIds, int fromtype, int contenttype, String freeType, String area, PrintWriter out) {
        if (StringUtil.isNullOrEmpty(type)) {
            type = "name";
@@ -149,12 +165,45 @@
            for (VideoResource vr : resourceList) {
                resourceMap.put(Long.parseLong(vr.getId()), vr.getName());
            }
            if (fromtype == HomeVideo.FROM_TYPE_LOCAL) {
                SolrResultDTO dto = solrAlbumDataManager.find(filter, page, Constant.pageCount);
                if (dto.getVideoList() != null)
                    for (SolrAlbumVideo videoInfo : (List<SolrAlbumVideo>) dto.getVideoList())
                        voList.add(VideoAdminInfoVO.create(videoInfo, resourceMap));
                count = dto.getTotalCount();
            } else if (fromtype == HomeVideo.FROM_TYPE_INTERNET) {
                SolrResultDTO dto = solrInternetSearchVideoDataManager.find(filter, page, Constant.pageCount);
                if (dto.getVideoList() != null)
                    for (InternetSearchVideo videoInfo : (List<InternetSearchVideo>) dto.getVideoList())
                        voList.add(VideoAdminInfoVO.create(videoInfo, resourceMap));
                count = dto.getTotalCount();
            } else if (fromtype == HomeVideo.FROM_TYPE_SHORT) {
                SolrShortVideoSearchFilter shortFilter = new SolrShortVideoSearchFilter();
                shortFilter.setRootVideoType(filter.getVideoType());
                if (!StringUtil.isNullOrEmpty(key)) {
                    String[] keys = key.split(" ");
                    if (!StringUtil.isNullOrEmpty(keys[0]))
                        shortFilter.setTag(keys[0].trim());
                    if (keys.length > 1) {
                        shortFilter.setKey(key.substring(key.indexOf(keys[0])).trim());
                    }
                }
            SolrResultDTO dto = solrAlbumDataManager.find(filter, page, Constant.pageCount);
            if (dto.getVideoList() != null)
                for (SolrAlbumVideo videoInfo : (List<SolrAlbumVideo>) dto.getVideoList())
                    voList.add(VideoAdminInfoVO.create(videoInfo,resourceMap));
            count = dto.getTotalCount();
                if (!StringUtil.isNullOrEmpty(filter.getArea())) {
                    shortFilter.setAreas(Arrays.asList(new String[]{filter.getArea()}));
                    //某些短视频分类为日韩
                    if (filter.getArea().equalsIgnoreCase("韩国")) {
                        shortFilter.getAreas().add("日韩");
                    }
                }
                shortFilter.setFuzzy(true);
                SolrResultDTO dto = solrShortVideoDataManager.find(shortFilter, page, Constant.pageCount);
                if (dto.getVideoList() != null)
                    for (SolrShortVideo videoInfo : (List<SolrShortVideo>) dto.getVideoList())
                        voList.add(VideoAdminInfoVO.create(videoInfo, resourceMap));
                count = dto.getTotalCount();
            }
        } else {
            list = classService.getTypeVideoListAdmin(videotype == 0 ? "" : videotype + "", page, key,
                    contenttype);
@@ -223,7 +272,18 @@
        if (StringUtil.isNullOrEmpty(aid)) {
            out.print(JsonUtil.loadFalseAdmin("未能获取到专辑"));
        } else {
            iqiyiUtil.updateAlbum(aid);
            try {
                iqiyi2Service.validAlbumSolrState(Long.parseLong(aid));
                iqiyiUtil2.syncByAid(Long.parseLong(aid),false);
            } catch (IqiyiVideoSolrException e) {
                if (e.getCode() == IqiyiVideoSolrException.CODE_ALBUM_NOT_SAVE ||
                        e.getCode() == IqiyiVideoSolrException.CODE_ALBUM_NOT_EXIST || e.getCode() == IqiyiVideoSolrException.CODE_ALBUM_NOT_ADD_TO_VIDEO) {
                    iqiyiUtil2.syncByAid(Long.parseLong(aid),false);
                } else {
                    out.print(JsonUtil.loadFalseAdmin(e.getMsg()));
                    return;
                }
            }
            out.print(JsonUtil.loadTrueAdmin("专辑更新成功"));
        }
    }
src/main/java/com/yeshi/buwan/controller/api/VIPController.java
@@ -11,8 +11,8 @@
import com.yeshi.buwan.exception.order.PayException;
import com.yeshi.buwan.exception.vip.VIPException;
import com.yeshi.buwan.exception.vip.VideoBuyRecordException;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.pptv.entity.VideoPPTVMap;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap;
import com.yeshi.buwan.service.inter.LoginUserService;
import com.yeshi.buwan.service.inter.juhe.PPTVService;
import com.yeshi.buwan.service.inter.order.OrderService;
@@ -20,8 +20,6 @@
import com.yeshi.buwan.service.inter.vip.VIPPriceService;
import com.yeshi.buwan.service.inter.vip.VIPService;
import com.yeshi.buwan.util.*;
import com.yeshi.buwan.util.user.VipUtil;
import com.yeshi.buwan.util.vip.VIPOrderUtil;
import com.yeshi.buwan.vo.AcceptData;
import com.yeshi.buwan.vo.client.user.UserInfoVO;
import com.yeshi.buwan.vo.order.OrderInfoVO;
@@ -41,7 +39,6 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
@Controller
@RequestMapping("api/v2/vip")
src/main/java/com/yeshi/buwan/controller/api/VideoInfoController.java
@@ -6,10 +6,10 @@
import com.yeshi.buwan.domain.vip.OrderRecord;
import com.yeshi.buwan.domain.vip.OrderType;
import com.yeshi.buwan.dto.order.PPTVVideoPrice;
import com.yeshi.buwan.pptv.PPTVApiUtil;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.pptv.entity.PPTVProgram;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.pptv.PPTVApiUtil;
import com.yeshi.buwan.videos.pptv.PPTVUtil;
import com.yeshi.buwan.videos.pptv.entity.PPTVProgram;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeries;
import com.yeshi.buwan.service.inter.LoginUserService;
import com.yeshi.buwan.service.inter.juhe.PPTVService;
import com.yeshi.buwan.service.inter.order.OrderService;
@@ -17,7 +17,6 @@
import com.yeshi.buwan.service.inter.vip.VIPService;
import com.yeshi.buwan.service.manager.GoldCornManager;
import com.yeshi.buwan.util.JsonUtilV2;
import com.yeshi.buwan.util.ThreadUtil;
import com.yeshi.buwan.vo.AcceptData;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
src/main/java/com/yeshi/buwan/controller/api/VideoParserController.java
@@ -1,7 +1,7 @@
package com.yeshi.buwan.controller.api;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.sohu.SoHuUtil;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.videos.sohu.SoHuUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
src/main/java/com/yeshi/buwan/controller/api/VideoPlayController.java
@@ -7,16 +7,14 @@
import com.yeshi.buwan.domain.video.VideoWatchHistory;
import com.yeshi.buwan.domain.vip.VideoBuyRecord;
import com.yeshi.buwan.exception.ParamsException;
import com.yeshi.buwan.pptv.PPTVApiUtil;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.pptv.entity.PPTVProgram;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.pptv.entity.PPTVSeriesProgramMap;
import com.yeshi.buwan.pptv.entity.VideoPPTVMap;
import com.yeshi.buwan.service.inter.LoginUserService;
import com.yeshi.buwan.videos.pptv.PPTVApiUtil;
import com.yeshi.buwan.videos.pptv.PPTVUtil;
import com.yeshi.buwan.videos.pptv.entity.PPTVProgram;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeriesProgramMap;
import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap;
import com.yeshi.buwan.service.inter.juhe.PPTVPlayProcessRecordService;
import com.yeshi.buwan.service.inter.juhe.PPTVService;
import com.yeshi.buwan.service.inter.push.PushDeviceTokenService;
import com.yeshi.buwan.service.inter.system.SystemConfigService;
import com.yeshi.buwan.service.inter.video.VideoWatchHistoryService;
import com.yeshi.buwan.service.inter.vip.VIPService;
src/main/java/com/yeshi/buwan/controller/parser/ClassParser.java
@@ -10,7 +10,7 @@
import com.yeshi.buwan.domain.system.DetailSystemConfig;
import com.yeshi.buwan.dto.search.SolrResultDTO;
import com.yeshi.buwan.dto.search.SolrVideoSearchFilter;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.videos.pptv.PPTVUtil;
import com.yeshi.buwan.service.imp.*;
import com.yeshi.buwan.service.imp.recommend.CategoryRecommendVideoService;
import com.yeshi.buwan.service.inter.recommend.HomeRecommendSpecialService;
src/main/java/com/yeshi/buwan/controller/parser/FoundParser.java
@@ -13,7 +13,7 @@
import com.yeshi.buwan.domain.system.DetailSystemConfig;
import com.yeshi.buwan.dto.search.SolrResultDTO;
import com.yeshi.buwan.dto.search.SolrVideoSearchFilter;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.videos.pptv.PPTVUtil;
import com.yeshi.buwan.service.imp.*;
import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager;
import com.yeshi.buwan.util.Constant;
src/main/java/com/yeshi/buwan/controller/parser/HomeParser.java
@@ -1,57 +1,51 @@
package com.yeshi.buwan.controller.parser;
import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.google.gson.Gson;
import com.yeshi.buwan.domain.*;
import com.yeshi.buwan.domain.jump.JumpDetail;
import com.yeshi.buwan.domain.jump.JumpTypeEnum;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.domain.recommend.HomeRecommendSpecial;
import com.yeshi.buwan.domain.solr.SolrShortVideo;
import com.yeshi.buwan.domain.special.SearchSpecialPositionMap;
import com.yeshi.buwan.domain.system.DetailSystemConfig;
import com.yeshi.buwan.domain.system.DetailSystem;
import com.yeshi.buwan.domain.system.DetailSystemConfig;
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.domain.video.VideoWatchHistory;
import com.yeshi.buwan.dto.log.BaseLog;
import com.yeshi.buwan.dto.statistic.video.VideoDetailStatisticData;
import com.yeshi.buwan.mogotv.MogoTVUtil;
import com.yeshi.buwan.pptv.PPTVApiUtil;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.pptv.entity.PPTVProgram;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.pptv.entity.VideoPPTVMap;
import com.yeshi.buwan.videos.mogotv.MogoTVUtil;
import com.yeshi.buwan.videos.pptv.PPTVApiUtil;
import com.yeshi.buwan.videos.pptv.PPTVUtil;
import com.yeshi.buwan.videos.pptv.entity.PPTVProgram;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap;
import com.yeshi.buwan.service.imp.*;
import com.yeshi.buwan.service.inter.ad.DeviceAdStrategyService;
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.service.inter.juhe.PPTVService;
import com.yeshi.buwan.service.inter.juhe.YouKuService;
import com.yeshi.buwan.service.inter.recommend.HomeRecommendSpecialService;
import com.yeshi.buwan.service.inter.recommend.HomeVideoService;
import com.yeshi.buwan.service.inter.search.SearchSpecialPositionMapService;
import com.yeshi.buwan.service.inter.video.VideoWatchHistoryService;
import com.yeshi.buwan.service.manager.VideoPlayStatisticManager;
import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager;
import com.yeshi.buwan.tencent.TencentVideoUtil;
import com.yeshi.buwan.videos.tencent.TencentVideoUtil;
import com.yeshi.buwan.util.*;
import com.yeshi.buwan.util.JuHe.VideoResourceUtil;
import com.yeshi.buwan.util.annotation.RequireUid;
import com.yeshi.buwan.util.factory.VideoInfoFactory;
import com.yeshi.buwan.util.log.LoggerUtil;
import com.yeshi.buwan.util.log.UserActiveLogFactory;
import com.yeshi.buwan.util.log.VideoLogFactory;
import com.yeshi.buwan.util.video.shortvideo.ShortVideoUtil;
import com.yeshi.buwan.util.mq.CMQManager;
import com.yeshi.buwan.util.video.VideoDetailUtil;
import com.yeshi.buwan.util.video.VideoUtil;
import com.yeshi.buwan.util.zhibo.MeiNvZhiBoUtil;
import com.yeshi.buwan.videos.bilibili.BilibiliUtil;
import com.yeshi.buwan.vo.AcceptData;
import com.yeshi.buwan.vo.video.VideoDetailVO;
import com.yeshi.buwan.youku.YouKuUtil;
import com.yeshi.buwan.youku.entity.YouKuSearchVideoMap;
import com.yeshi.buwan.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.videos.youku.YouKuUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.GetMethod;
@@ -59,13 +53,11 @@
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.util.JuHe.VideoResourceUtil;
import com.yeshi.buwan.util.video.VideoDetailUtil;
import com.yeshi.buwan.util.zhibo.MeiNvZhiBoUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
@Controller
public class HomeParser {
@@ -335,7 +327,7 @@
                homeType.setCount((int) videoCount);
                List<HomeVideo> tempHomeVideoList = new ArrayList<>();
                tempHomeVideoList.addAll(homeVideoList);
                while (tempHomeVideoList != null && tempHomeVideoList.size() > 0 && (tempHomeVideoList.size() - bigPictureCount) % homeType.getColumns() != 0)
                while (tempHomeVideoList != null && tempHomeVideoList.size() > 0 && (tempHomeVideoList.size() - bigPictureCount) % homeType.getColumns() != 0 && homeType.getColumns() < 4)
                    tempHomeVideoList.remove(tempHomeVideoList.size() - 1);
                homeType.setHomeVideoList(tempHomeVideoList);
@@ -647,7 +639,7 @@
        JSONObject obj = new JSONObject();
        if (VersionUtil.isGraterThan390(acceptData.getPlatform(), acceptData.getVersion())) {
            out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(new VideoDetailVO(Utils.convertVideo(info), deviceAdStrategyService.getVideoDetailAdStrategy(acceptData.getUtdId(), acceptData.getDetailSystem().getId(), loginUid), null, createVideoDetailSessionId(acceptData, loginUid, info.getName(), videoId, resourceId))), array.toString(),
            out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(new VideoDetailVO(Utils.convertVideo(info), deviceAdStrategyService.getVideoDetailAdStrategy(acceptData.getUtdId(), acceptData.getDetailSystem().getId(), acceptData.getVersion(), acceptData.getChannel(), loginUid), null, createVideoDetailSessionId(acceptData, loginUid, info.getName(), videoId, resourceId))), array.toString(),
                    obj.toString()));
        } else {
            out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(Utils.convertVideo(info)), array.toString(),
@@ -661,13 +653,15 @@
        if (!NumberUtil.isNumeric(videoId)) {
            String[] cidVid = PPTVUtil.parseCidAndVidFromVisualVideoId(videoId);
            if (cidVid == null) {
                int fromType = VideoUtil.getVideoFromType(videoId);
                //短视频
                if (ShortVideoUtil.isShortVideoId(videoId)) {
                if (fromType == HomeVideo.FROM_TYPE_SHORT) {
                    getVideoDetailForShortVideo(acceptData, videoId, request, out);
                    return;
                } else if (fromType == HomeVideo.FROM_TYPE_INTERNET) {
                    getVideoDetailForInternetSearch(acceptData, videoId, request, out);
                    return;
                }
                getVideoDetailForInternetSearch(acceptData, videoId, request, out);
                return;
            }
            String cid = cidVid[0];
            String vid = cidVid[1];
@@ -720,6 +714,12 @@
            if (defaultVideoResource != null) {
                resourceId = defaultVideoResource.getId();
            }
            //视频没有来源
            if (StringUtil.isNullOrEmpty(resourceId)) {
                CMQManager.getInstance().addVideoResourceDeleteMsg(videoId);
                out.print(JsonUtil.loadFalseJson("视频已下线"));
                return;
            }
        }
        ThreadUtil.run(new Runnable() {
@@ -743,7 +743,7 @@
        //PPTV网页播放
        if (resourceId != null && Integer.parseInt(resourceId) == PPTVUtil.RESOURCE_ID) {
        if (!StringUtil.isNullOrEmpty(resourceId) && Integer.parseInt(resourceId) == PPTVUtil.RESOURCE_ID) {
            JSONObject data = new JSONObject();
            VideoPPTVMap map = pptvService.getVideoPPTVMapByVideoId(videoId);
            int p = 0;
@@ -848,7 +848,7 @@
        if (VersionUtil.isGraterThan390(acceptData.getPlatform(), acceptData.getVersion())) {
            String sessionId = createVideoDetailSessionId(acceptData, loginUid, info.getName(), videoId, resourceId);
            out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(new VideoDetailVO(Utils.convertVideo(info), deviceAdStrategyService.getVideoDetailAdStrategy(acceptData.getUtdId(), acceptData.getDetailSystem().getId(), loginUid, videoId, from), attention, sessionId)), array.toString(),
            out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(new VideoDetailVO(Utils.convertVideo(info), deviceAdStrategyService.getVideoDetailAdStrategy(acceptData.getUtdId(), acceptData.getDetailSystem().getId(), acceptData.getVersion(), acceptData.getChannel(), loginUid, videoId, from), attention, sessionId)), array.toString(),
                    obj.toString()));
        } else {
            out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(Utils.convertVideo(info)), array.toString(),
src/main/java/com/yeshi/buwan/controller/parser/OtherParser.java
@@ -7,7 +7,7 @@
import com.yeshi.buwan.domain.recommend.AdRecommendRight;
import com.yeshi.buwan.domain.system.DetailSystem;
import com.yeshi.buwan.domain.system.SystemInfo;
import com.yeshi.buwan.funtv.FunTVNewApi;
import com.yeshi.buwan.videos.funtv.FunTVNewApi;
import com.yeshi.buwan.service.imp.*;
import com.yeshi.buwan.service.imp.recommend.AdRecommendRightService;
import com.yeshi.buwan.service.inter.jump.JumpDetailService;
src/main/java/com/yeshi/buwan/controller/parser/SearchParser.java
@@ -64,13 +64,31 @@
            out.print(JsonUtil.loadFalseJson("页码错误"));
            return;
        }
        int pageIndex = Integer.parseInt(page);
        switch (key) {
            case "3#hanju-bagua":
                pageIndex++;
                break;
            case "3#hanju-news":
                pageIndex += 2;
                break;
            case "3#hanju-stars":
                pageIndex += 3;
                break;
            case "3#hanju-hots":
                pageIndex += 4;
            case "3#hanju-music":
                pageIndex += 5;
                break;
        }
        List<VideoInfo> videoInfoList = new ArrayList<>();
        int pageSize = Constant.pageCount;
        boolean hasNextPage = false;
        if (searchSpecial.getAlbumQuery() != null) {
            SolrResultDTO solrResultDTO = solrAlbumVideoDataManager.find(searchSpecial.getAlbumQuery(), Integer.parseInt(page), pageSize);
            SolrResultDTO solrResultDTO = solrAlbumVideoDataManager.find(searchSpecial.getAlbumQuery(), pageIndex, pageSize);
            if (solrResultDTO != null) {
                List<SolrAlbumVideo> list = solrResultDTO.getVideoList();
                if (list != null) {
@@ -85,7 +103,7 @@
        }
        if (searchSpecial.getInternetQuery() != null) {
            SolrResultDTO solrResultDTO = solrInternetSearchVideoDataManager.find(searchSpecial.getInternetQuery(), Integer.parseInt(page), pageSize);
            SolrResultDTO solrResultDTO = solrInternetSearchVideoDataManager.find(searchSpecial.getInternetQuery(), pageIndex, pageSize);
            if (solrResultDTO != null) {
                List<InternetSearchVideo> list = solrResultDTO.getVideoList();
                if (list != null) {
@@ -100,7 +118,7 @@
        }
        if (searchSpecial.getShortQuery() != null) {
            SolrResultDTO solrResultDTO = solrShortVideoDataManager.find(searchSpecial.getShortQuery(), Integer.parseInt(page), pageSize);
            SolrResultDTO solrResultDTO = solrShortVideoDataManager.find(searchSpecial.getShortQuery(), pageIndex, pageSize);
            if (solrResultDTO != null) {
                List<SolrShortVideo> list = solrResultDTO.getVideoList();
                if (list != null) {
src/main/java/com/yeshi/buwan/controller/parser/UserParser.java
@@ -17,7 +17,7 @@
import com.yeshi.buwan.dto.user.LoginInfoDto;
import com.yeshi.buwan.exception.user.LoginUserException;
import com.yeshi.buwan.exception.user.RegisterUserException;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.videos.pptv.PPTVUtil;
import com.yeshi.buwan.service.imp.*;
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.service.inter.system.SystemConfigService;
@@ -34,7 +34,7 @@
import com.yeshi.buwan.util.log.UserActiveLogFactory;
import com.yeshi.buwan.util.video.VideoCategoryConstant;
import com.yeshi.buwan.util.video.VideoConstant;
import com.yeshi.buwan.util.video.shortvideo.ShortVideoUtil;
import com.yeshi.buwan.util.video.VideoUtil;
import com.yeshi.buwan.vo.AcceptData;
import com.yeshi.buwan.vo.video.VideoListResultVO;
import net.sf.json.JSONArray;
@@ -538,11 +538,13 @@
                }
            }
            vt = new VideoType();
            vt.setId(Constant.SEARCH_RESULT_TYPE_HIGH_DEFINITION);
            vt.setName("高清");
            typeList.add(vt);
            //韩剧不返回高清
            if (!acceptData.getDetailSystem().getId().equalsIgnoreCase("48")) {
                vt = new VideoType();
                vt.setId(Constant.SEARCH_RESULT_TYPE_HIGH_DEFINITION);
                vt.setName("高清");
                typeList.add(vt);
            }
            JSONArray array1 = new JSONArray();
@@ -651,14 +653,14 @@
    public void guessLike(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
        String videoId = request.getParameter("VideoId");
        if (!NumberUtil.isNumeric(videoId)) {
            if (ShortVideoUtil.isShortVideoId(videoId)) {
        int fromtype = VideoUtil.getVideoFromType(videoId);
        switch (fromtype) {
            case HomeVideo.FROM_TYPE_INTERNET:
                guessLikeForInternetSearch(acceptData, videoId, out);
                return;
            case HomeVideo.FROM_TYPE_SHORT:
                guessLikeForShortVideo(acceptData, videoId, out);
                return;
            }
            guessLikeForInternetSearch(acceptData, videoId, out);
            return;
        }
        DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName());
@@ -991,15 +993,14 @@
            return;
        }
        if (!NumberUtil.isNumeric(videoId)) {
            if (ShortVideoUtil.isShortVideoId(videoId)) {
        int fromtype = VideoUtil.getVideoFromType(videoId);
        switch (fromtype) {
            case HomeVideo.FROM_TYPE_INTERNET:
                getRelativeVideosForInternetSearch(acceptData, videoId, out);
                return;
            case HomeVideo.FROM_TYPE_SHORT:
                getRelativeVideosForShortVideo(acceptData, videoId, out);
                return;
            }
            getRelativeVideosForInternetSearch(acceptData, videoId, out);
            return;
        }
        List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion(), acceptData.getChannel());
@@ -1266,6 +1267,10 @@
        // 注册 --用户名,昵称,密码
        LoginUser user = userService.getLoginUser(loginUid);
        if (user.getState() != null && user.getState() == LoginUser.STATE_UNREGISTER) {
            out.print(JsonUtil.loadFalseJson("账户已注销"));
            return;
        }
        //隐藏user中的email
        user.setEmail(UserInfoVOFactory.getHiddenEmail(user.getEmail()));
        if (user.getPortrait() != null && !user.getPortrait().startsWith("http"))
src/main/java/com/yeshi/buwan/dao/AcFunTypeDao.java
@@ -3,7 +3,7 @@
import com.yeshi.buwan.dao.base.BaseDao;
import org.springframework.stereotype.Repository;
import com.yeshi.buwan.acFun.AcFunType;
import com.yeshi.buwan.videos.acFun.AcFunType;
@Repository
public class AcFunTypeDao extends BaseDao<AcFunType> {
src/main/java/com/yeshi/buwan/dao/AcFunVideoDao.java
@@ -3,7 +3,7 @@
import com.yeshi.buwan.dao.base.BaseDao;
import org.springframework.stereotype.Repository;
import com.yeshi.buwan.acFun.AcFunVideo;
import com.yeshi.buwan.videos.acFun.AcFunVideo;
@Repository
public class AcFunVideoDao extends BaseDao<AcFunVideo> {
src/main/java/com/yeshi/buwan/dao/AcTypeEqVideoTypeDao.java
@@ -3,7 +3,7 @@
import com.yeshi.buwan.dao.base.BaseDao;
import org.springframework.stereotype.Repository;
import com.yeshi.buwan.acFun.AcTypeEqVideoType;
import com.yeshi.buwan.videos.acFun.AcTypeEqVideoType;
@Repository
public class AcTypeEqVideoTypeDao extends BaseDao<AcTypeEqVideoType> {
src/main/java/com/yeshi/buwan/dao/juhe/funtv/FunTVAlbum2Dao.java
@@ -1,7 +1,7 @@
package com.yeshi.buwan.dao.juhe.funtv;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.funtv.entity.FunTVAlbum2;
import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
src/main/java/com/yeshi/buwan/dao/juhe/funtv/FunTVAlbumDao.java
@@ -1,11 +1,9 @@
package com.yeshi.buwan.dao.juhe.funtv;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
import com.yeshi.buwan.funtv.entity.FunTVAlbum;
import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum;
@Repository
public class FunTVAlbumDao extends MongodbBaseDao<FunTVAlbum> {
src/main/java/com/yeshi/buwan/dao/juhe/funtv/FunTVAlbumVideoMapDao.java
@@ -1,7 +1,7 @@
package com.yeshi.buwan.dao.juhe.funtv;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.funtv.entity.FunTVAlbumVideoMap;
import com.yeshi.buwan.videos.funtv.entity.FunTVAlbumVideoMap;
import org.springframework.stereotype.Repository;
@Repository
src/main/java/com/yeshi/buwan/dao/juhe/funtv/FunTVShortVideo2Dao.java
@@ -1,7 +1,7 @@
package com.yeshi.buwan.dao.juhe.funtv;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.funtv.entity.FunTVShortVideo2;
import com.yeshi.buwan.videos.funtv.entity.FunTVShortVideo2;
import org.springframework.stereotype.Repository;
@Repository
src/main/java/com/yeshi/buwan/dao/juhe/funtv/FunTVVideo2Dao.java
@@ -1,7 +1,7 @@
package com.yeshi.buwan.dao.juhe.funtv;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.funtv.entity.FunTVVideo2;
import com.yeshi.buwan.videos.funtv.entity.FunTVVideo2;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
src/main/java/com/yeshi/buwan/dao/juhe/funtv/FunTVVideoDao.java
@@ -6,8 +6,7 @@
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
import com.yeshi.buwan.dao.base.BaseDao;
import com.yeshi.buwan.funtv.entity.FunTVVideo;
import com.yeshi.buwan.videos.funtv.entity.FunTVVideo;
import java.util.ArrayList;
import java.util.List;
src/main/java/com/yeshi/buwan/dao/juhe/funtv/VideoFunTV2Dao.java
@@ -1,8 +1,7 @@
package com.yeshi.buwan.dao.juhe.funtv;
import com.yeshi.buwan.dao.base.BaseDao;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.funtv.entity.VideoFunTV2;
import com.yeshi.buwan.videos.funtv.entity.VideoFunTV2;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
src/main/java/com/yeshi/buwan/dao/juhe/funtv/VideoFunTVDao.java
@@ -1,7 +1,7 @@
package com.yeshi.buwan.dao.juhe.funtv;
import com.yeshi.buwan.dao.base.BaseDao;
import com.yeshi.buwan.funtv.entity.VideoFunTV;
import com.yeshi.buwan.videos.funtv.entity.VideoFunTV;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
src/main/java/com/yeshi/buwan/dao/juhe/funtv/VideoFunTVNewDao.java
@@ -1,13 +1,11 @@
package com.yeshi.buwan.dao.juhe.funtv;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.funtv.entity.VideoFunTV;
import com.yeshi.buwan.videos.funtv.entity.VideoFunTV;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.List;
@Repository
src/main/java/com/yeshi/buwan/dao/juhe/iqiyi/IqiyiAlbum2Dao.java
@@ -2,23 +2,18 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.iqiyi.entity.IqiyiVideoInfo;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.query.Iqiyi2AlbumQuery;
import com.yeshi.buwan.util.StringUtil;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Repository
src/main/java/com/yeshi/buwan/dao/juhe/iqiyi/IqiyiUpdateQueueDao.java
@@ -3,7 +3,7 @@
import org.springframework.stereotype.Repository;
import com.yeshi.buwan.dao.base.BaseDao;
import com.yeshi.buwan.iqiyi.entity.IqiyiUpdateQueue;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiUpdateQueue;
@Repository
public class IqiyiUpdateQueueDao extends BaseDao<IqiyiUpdateQueue> {
src/main/java/com/yeshi/buwan/dao/juhe/iqiyi/IqiyiVideoInfoDao.java
@@ -3,7 +3,7 @@
import org.springframework.stereotype.Repository;
import com.yeshi.buwan.dao.base.BaseDao;
import com.yeshi.buwan.iqiyi.entity.IqiyiVideoInfo;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiVideoInfo;
@Repository
public class IqiyiVideoInfoDao extends BaseDao<IqiyiVideoInfo> {
src/main/java/com/yeshi/buwan/dao/juhe/iqiyi/VideoIqiyi2Dao.java
@@ -1,7 +1,7 @@
package com.yeshi.buwan.dao.juhe.iqiyi;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.iqiyi.entity.VideoIqiyi2;
import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi2;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
@@ -36,4 +36,10 @@
        return findList(query);
    }
    public void deleteById(Long id) {
        Query query = new Query();
        query.addCriteria(Criteria.where("_id").is(id));
        delete(query);
    }
}
src/main/java/com/yeshi/buwan/dao/juhe/iqiyi/VideoIqiyiDao.java
@@ -3,7 +3,7 @@
import org.springframework.stereotype.Repository;
import com.yeshi.buwan.dao.base.BaseDao;
import com.yeshi.buwan.iqiyi.entity.VideoIqiyi;
import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi;
import java.util.List;
src/main/java/com/yeshi/buwan/dao/juhe/iqiyi/VideoIqiyiNewDao.java
@@ -1,7 +1,7 @@
package com.yeshi.buwan.dao.juhe.iqiyi;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.iqiyi.entity.VideoIqiyi;
import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi;
import org.springframework.stereotype.Repository;
@Repository
src/main/java/com/yeshi/buwan/dao/juhe/mogotv/MogoTVClipInfoDao.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.dao.juhe.mogotv;
import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
src/main/java/com/yeshi/buwan/dao/juhe/mogotv/MogoTVSearchVideoMapDao.java
@@ -1,8 +1,7 @@
package com.yeshi.buwan.dao.juhe.mogotv;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.mogotv.entity.MogoTVSearchVideoMap;
import com.yeshi.buwan.youku.entity.YouKuSearchVideoMap;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVSearchVideoMap;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
src/main/java/com/yeshi/buwan/dao/juhe/mogotv/MogoTVVideoDao.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.dao.juhe.mogotv;
import com.yeshi.buwan.mogotv.entity.MogoTVVideo;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVVideo;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
src/main/java/com/yeshi/buwan/dao/juhe/pptv/PPTVProgramDao.java
@@ -1,8 +1,7 @@
package com.yeshi.buwan.dao.juhe.pptv;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.pptv.entity.PPTVProgram;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.pptv.entity.PPTVProgram;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
src/main/java/com/yeshi/buwan/dao/juhe/pptv/PPTVSeriesDao.java
@@ -1,7 +1,7 @@
package com.yeshi.buwan.dao.juhe.pptv;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeries;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
src/main/java/com/yeshi/buwan/dao/juhe/pptv/PPTVSeriesProgramMapDao.java
@@ -1,8 +1,8 @@
package com.yeshi.buwan.dao.juhe.pptv;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.pptv.PPTVQuery;
import com.yeshi.buwan.pptv.entity.PPTVSeriesProgramMap;
import com.yeshi.buwan.videos.pptv.PPTVQuery;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeriesProgramMap;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
src/main/java/com/yeshi/buwan/dao/juhe/pptv/VideoPPTVMapDao.java
@@ -1,7 +1,7 @@
package com.yeshi.buwan.dao.juhe.pptv;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.pptv.entity.VideoPPTVMap;
import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
src/main/java/com/yeshi/buwan/dao/juhe/sohu/SoHuAlbumDao.java
@@ -3,7 +3,7 @@
import org.springframework.stereotype.Repository;
import com.yeshi.buwan.dao.base.BaseDao;
import com.yeshi.buwan.sohu.entity.SoHuAlbum;
import com.yeshi.buwan.videos.sohu.entity.SoHuAlbum;
@Repository
public class SoHuAlbumDao extends BaseDao<SoHuAlbum> {
src/main/java/com/yeshi/buwan/dao/juhe/sohu/SoHuVideoDao.java
@@ -3,7 +3,7 @@
import org.springframework.stereotype.Repository;
import com.yeshi.buwan.dao.base.BaseDao;
import com.yeshi.buwan.sohu.entity.SoHuVideo;
import com.yeshi.buwan.videos.sohu.entity.SoHuVideo;
@Repository
public class SoHuVideoDao extends BaseDao<SoHuVideo> {
src/main/java/com/yeshi/buwan/dao/juhe/tencent/TencentCoverInfoDao.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.dao.juhe.tencent;
import com.yeshi.buwan.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
src/main/java/com/yeshi/buwan/dao/juhe/tencent/TencentCoverVideoDao.java
@@ -1,7 +1,7 @@
package com.yeshi.buwan.dao.juhe.tencent;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.tencent.entity.TencentCoverVideo;
import com.yeshi.buwan.videos.tencent.entity.TencentCoverVideo;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
src/main/java/com/yeshi/buwan/dao/juhe/tencent/TencentSearchVideoMapDao.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.dao.juhe.tencent;
import com.yeshi.buwan.tencent.entity.TencentSearchVideoMap;
import com.yeshi.buwan.videos.tencent.entity.TencentSearchVideoMap;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
src/main/java/com/yeshi/buwan/dao/juhe/youku/YouKuSearchVideoMapDao.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.dao.juhe.youku;
import com.yeshi.buwan.youku.entity.YouKuSearchVideoMap;
import com.yeshi.buwan.videos.youku.entity.YouKuSearchVideoMap;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
src/main/java/com/yeshi/buwan/dao/juhe/youku/YouKuShowDetailDao.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.dao.juhe.youku;
import com.yeshi.buwan.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
src/main/java/com/yeshi/buwan/dao/juhe/youku/YouKuVideoDao.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.dao.juhe.youku;
import com.yeshi.buwan.youku.entity.YouKuVideo;
import com.yeshi.buwan.videos.youku.entity.YouKuVideo;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
src/main/java/com/yeshi/buwan/dao/video/VideoResourceVersionMapDao.java
@@ -53,7 +53,7 @@
        andList.add(Criteria.where("version").lte(version));
        if (channel != null) {
            Query childQuery = new Query();
            childQuery.addCriteria(new Criteria().andOperator(Criteria.where("detailSystemId").is(detailSystemId), Criteria.where("channel").is(channel.toLowerCase())));
            childQuery.addCriteria(new Criteria().andOperator(Criteria.where("detailSystemId").is(detailSystemId),Criteria.where("version").lte(version), Criteria.where("channel").is(channel.toLowerCase())));
            if (count(childQuery) > 0) {
                andList.add(Criteria.where("channel").is(channel));
            } else {
src/main/java/com/yeshi/buwan/domain/HomeVideo.java
@@ -16,8 +16,12 @@
@Entity
public class HomeVideo implements Serializable {
    //本地视频
    public final static int FROM_TYPE_LOCAL = 0;
    //全网搜
    public final static int FROM_TYPE_INTERNET = 1;
    //短视频
    public final static int FROM_TYPE_SHORT = 2;
    public HomeVideo(String id) {
src/main/java/com/yeshi/buwan/domain/solr/SolrAlbumVideo.java
@@ -9,6 +9,7 @@
/**
 * 搜索引擎中保存的专辑对象
 */
public class SolrAlbumVideo implements Serializable {
    public final static int FREE_TYPE_FREE = 0;
    //VIP
@@ -17,7 +18,7 @@
    public final static int FREE_TYPE_COUPON = 2;
    @Field
    @Field(value="id")
    private String id;
    @Field
    private String mainactor;
src/main/java/com/yeshi/buwan/domain/vip/VideoBuyRecord.java
@@ -1,6 +1,5 @@
package com.yeshi.buwan.domain.vip;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
src/main/java/com/yeshi/buwan/exception/video/IqiyiVideoSolrException.java
New file
@@ -0,0 +1,50 @@
package com.yeshi.buwan.exception.video;
/**
 * 爱奇艺搜索引擎异常
 */
public class IqiyiVideoSolrException extends Exception {
    //专辑没保存
    public final static int CODE_ALBUM_NOT_SAVE = 1;
    //专辑不存在
    public final static int CODE_ALBUM_NOT_EXIST = 2;
    //专辑未添加到视频
    public final static int CODE_ALBUM_NOT_ADD_TO_VIDEO = 10;
    //视频未添加到专辑搜索映射
    public final static int CODE_VIDEO_NOT_ADD_TO_SOLR_ALBUM = 20;
    //视频尚未同步到搜索引擎
    public final static int CODE_VIDEO_NOT_SYNC_TO_SOLR = 30;
    private int code;
    private String msg;
    public IqiyiVideoSolrException(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    public IqiyiVideoSolrException(String msg) {
        this.msg = msg;
    }
    public String getMsg() {
        return msg;
    }
    public int getCode() {
        return code;
    }
    @Override
    public String getMessage() {
        return msg;
    }
}
src/main/java/com/yeshi/buwan/job/JuHeVideoUpdateJob.java
@@ -4,23 +4,16 @@
import javax.annotation.Resource;
import com.yeshi.buwan.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.yeshi.buwan.acFun.AcFunUtil;
import com.yeshi.buwan.acFun.AcfunVideoNew;
import com.yeshi.buwan.acFun.AcfunVideoResult;
import com.yeshi.buwan.funtv.FunTVUtil;
import com.yeshi.buwan.iqiyi.entity.IqiyiUpdateQueue;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiUpdateQueue;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.log.LogHelper;
import com.yeshi.buwan.service.imp.juhe.AcfunVideoNewService;
import com.yeshi.buwan.service.imp.juhe.IqiyiQueueService;
import com.yeshi.buwan.sohu.SoHuUtil;
import com.yeshi.buwan.util.Constant;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.video.AcfunApiUtil;
/**
 * @author Administrator
src/main/java/com/yeshi/buwan/job/RankJob.java
@@ -11,6 +11,7 @@
import com.yeshi.buwan.service.inter.system.SystemConfigService;
import com.yeshi.buwan.util.EHCacheManager;
import com.yeshi.buwan.util.rank.IqiyiRankUtil;
import com.yeshi.buwan.util.rank.TencentRankUtil;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Component;
import org.yeshi.utils.AppMarketUtil;
@@ -29,14 +30,28 @@
    private SystemConfigService systemConfigService;
    //打开华为应用市场的广告
    //爱奇艺排行
    @XxlJob("rank-iqiyi-update")
    public ReturnT<String> updateRank(String params) throws Exception {
    public ReturnT<String> updateIqiyiRank(String params) throws Exception {
        Map<String, List<String>> map = IqiyiRankUtil.getRank(10);
        Map<String, List<String>> tencentMap = TencentRankUtil.getRank(10);
        map.put("热搜", tencentMap.get("总榜单"));
        map.put("动漫", tencentMap.get("动漫"));
        if (map != null && map.size() > 0) {
            String json = new Gson().toJson(map);
            systemConfigService.setValue("searchRank", json);
        }
        return ReturnT.SUCCESS;
    }
    //爱奇艺排行
    @XxlJob("rank-tencent-update")
    public ReturnT<String> updateTencentRank(String params) throws Exception {
        Map<String, List<String>> map = TencentRankUtil.getRank(10);
        if (map != null && map.size() > 0) {
            String json = new Gson().toJson(map);
            systemConfigService.setValue("searchRank", json);
        }
        return ReturnT.SUCCESS;
    }
src/main/java/com/yeshi/buwan/job/video/AcfunVideoUpdate.java
@@ -2,20 +2,16 @@
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.yeshi.buwan.acFun.AcFunUtil;
import com.yeshi.buwan.acFun.AcfunVideoNew;
import com.yeshi.buwan.acFun.AcfunVideoResult;
import com.yeshi.buwan.pptv.PPTVApiUtil;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.acFun.AcFunUtil;
import com.yeshi.buwan.videos.acFun.AcfunVideoNew;
import com.yeshi.buwan.videos.acFun.AcfunVideoResult;
import com.yeshi.buwan.service.imp.juhe.AcfunVideoNewService;
import com.yeshi.buwan.service.inter.juhe.PPTVService;
import com.yeshi.buwan.util.video.AcfunApiUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
@Component
public class AcfunVideoUpdate {
src/main/java/com/yeshi/buwan/job/video/FunTV2VideoUpdate.java
@@ -2,14 +2,11 @@
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.yeshi.buwan.funtv.FunTVNewApi;
import com.yeshi.buwan.funtv.entity.FunTVAlbum2;
import com.yeshi.buwan.funtv.entity.FunTVShortVideo2;
import com.yeshi.buwan.funtv.entity.FunTVVideo2;
import com.yeshi.buwan.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil2;
import com.yeshi.buwan.videos.funtv.FunTVNewApi;
import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2;
import com.yeshi.buwan.videos.funtv.entity.FunTVShortVideo2;
import com.yeshi.buwan.videos.funtv.entity.FunTVVideo2;
import com.yeshi.buwan.service.inter.juhe.FunTV2Service;
import com.yeshi.buwan.service.inter.juhe.Iqiyi2Service;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.mq.CMQManager;
import com.yeshi.buwan.vo.video.funtv.Funtv2ResultVO;
src/main/java/com/yeshi/buwan/job/video/Iqiyi2VideoUpdate.java
@@ -2,14 +2,13 @@
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.yeshi.buwan.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil2;
import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Component
@@ -32,7 +31,7 @@
        List<String> urlList = IqiyiUtil2.getAlbumUrlsFromUrl(param);
        for (String url : urlList) {
            String aid = IqiYiNewAPI.getAidByUrl(url);
            iqiyiUtil2.syncByAid(Long.parseLong(aid));
            iqiyiUtil2.syncByAid(Long.parseLong(aid),false);
            logger.info("更新专辑:" + aid);
        }
        return ReturnT.SUCCESS;
@@ -48,7 +47,7 @@
    @XxlJob("video-update-iqiyi-updateVideoByPlayerUrl")
    public ReturnT<String> updateVideoByPlayerUrl(String param) throws Exception {
        String aid = IqiYiNewAPI.getAidByUrl(param);
        iqiyiUtil2.syncByAid(Long.parseLong(aid));
        iqiyiUtil2.syncByAid(Long.parseLong(aid),false);
        logger.info("更新专辑:" + aid);
        return ReturnT.SUCCESS;
    }
src/main/java/com/yeshi/buwan/job/video/MogoTVVideoUpdate.java
@@ -2,9 +2,9 @@
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.yeshi.buwan.mogotv.MogoTVApiUtil;
import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.mogotv.entity.MogoTVVideo;
import com.yeshi.buwan.videos.mogotv.MogoTVApiUtil;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVVideo;
import com.yeshi.buwan.service.inter.juhe.MogoTVService;
import com.yeshi.buwan.util.StringUtil;
import org.slf4j.Logger;
src/main/java/com/yeshi/buwan/job/video/PPTVVideoUpdate.java
@@ -4,25 +4,15 @@
import com.xxl.job.core.handler.annotation.XxlJob;
import com.yeshi.buwan.dao.juhe.pptv.PPTVSeriesDao;
import com.yeshi.buwan.dao.juhe.pptv.VideoPPTVMapDao;
import com.yeshi.buwan.funtv.FunTVNewApi;
import com.yeshi.buwan.funtv.entity.FunTVAlbum2;
import com.yeshi.buwan.funtv.entity.FunTVShortVideo2;
import com.yeshi.buwan.funtv.entity.FunTVVideo2;
import com.yeshi.buwan.pptv.PPTVApiUtil;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.pptv.entity.VideoPPTVMap;
import com.yeshi.buwan.service.inter.juhe.FunTV2Service;
import com.yeshi.buwan.videos.pptv.PPTVApiUtil;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap;
import com.yeshi.buwan.service.inter.juhe.PPTVService;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.mq.CMQManager;
import com.yeshi.buwan.vo.video.funtv.Funtv2ResultVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@Component
src/main/java/com/yeshi/buwan/job/video/ShortVideoUpdateJob.java
@@ -3,19 +3,17 @@
import com.google.gson.Gson;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.yeshi.buwan.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager;
import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager;
import com.yeshi.buwan.tencent.TencentVideoUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.factory.SolrShortVideoFactory;
import com.yeshi.buwan.util.video.shortvideo.IqiyiWebUtil;
import com.yeshi.buwan.util.video.shortvideo.TencentWebUtil;
import net.sf.json.JSONObject;
import com.yeshi.buwan.util.video.web.IqiyiWebUtil;
import com.yeshi.buwan.util.video.web.TencentWebUtil;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
/**
@@ -91,12 +89,13 @@
    public ReturnT<String> updateIqiyiShortVideo(String param) throws Exception {
        URLParams urlParams = getParams(param);
        for (int i = 0; i < 20; i++) {
        for (int i = 19; i >= 0; i--) {
            try {
                List<Long> idList = IqiyiWebUtil.getVideoTvidList(IqiyiWebUtil.parseParams(urlParams.getUrl()), i + 1);
                if (idList.size() == 0) {
                    break;
                    continue;
                }
                Collections.reverse(idList);
                //保存
                for (Long id : idList) {
                    IqiyiAlbum2 album = IqiYiNewAPI.getAlbumOrVideoDetail(id);
@@ -125,11 +124,12 @@
            throw new Exception("area不能为空");
        }
        for (int i = 0; i < 20; i++) {
        for (int i = 19; i >= 0; i--) {
            try {
                List<TencentWebUtil.TencentWebVideoInfo> list = TencentWebUtil.getVideoList(TencentWebUtil.parseParams(urlParams.getUrl()), i + 1);
                if (list.size() == 0)
                    break;
                    continue;
                Collections.reverse(list);
                for (TencentWebUtil.TencentWebVideoInfo videoInfo : list) {
                    solrShortVideoDataManager.saveOrUpdate(SolrShortVideoFactory.create(videoInfo, urlParams.getArea(), urlParams.getVideoType()));
                }
src/main/java/com/yeshi/buwan/job/video/TencentVideoUpdate.java
@@ -2,15 +2,12 @@
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.yeshi.buwan.mogotv.MogoTVApiUtil;
import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.mogotv.entity.MogoTVVideo;
import com.yeshi.buwan.service.inter.juhe.MogoTVService;
import com.yeshi.buwan.service.inter.juhe.TencentVideoService;
import com.yeshi.buwan.tencent.TencentVideoApiUtil;
import com.yeshi.buwan.tencent.TencentVideoUtil;
import com.yeshi.buwan.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.videos.tencent.TencentVideoApiUtil;
import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.video.web.TencentWebUtil;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@@ -36,15 +33,20 @@
        int totalPage = 50;
        for (int i = 0; i < totalPage; i++) {
            List<TencentCoverInfo> coverInfoList = TencentVideoApiUtil.getVideoListByCategory(channel, i + 1);
            save(coverInfoList);
        }
    }
    private void save(List<TencentCoverInfo> coverInfoList) {
        if (coverInfoList != null)
            for (TencentCoverInfo coverInfo : coverInfoList) {
                System.out.println(coverInfo.getTitle()+":"+coverInfo.getCover_id());
                System.out.println(coverInfo.getTitle() + ":" + coverInfo.getCover_id());
                try {
                    tencentVideoService.addToInternetSearch(coverInfo);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
    private String getChannel(String cate) throws Exception {
@@ -87,6 +89,17 @@
    }
    @XxlJob("video-update-tencent-updateVideo-byweburl")
    public ReturnT<String> updateLatestVideoByWebUrl(String param) throws Exception {
        JSONObject json = JSONObject.fromObject(param);
        int page = json.optInt("page");
        String url = json.optString("url");
        List<TencentCoverInfo> list = TencentVideoApiUtil.getVideoList(TencentWebUtil.getApiUrl(url, page));
        save(list);
        return ReturnT.SUCCESS;
    }
    /**
     * 更新单个视频
     *
src/main/java/com/yeshi/buwan/job/video/YouKuVideoUpdate.java
@@ -2,17 +2,13 @@
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.yeshi.buwan.dao.juhe.pptv.PPTVSeriesDao;
import com.yeshi.buwan.dao.juhe.pptv.VideoPPTVMapDao;
import com.yeshi.buwan.pptv.PPTVApiUtil;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.service.inter.juhe.PPTVService;
import com.yeshi.buwan.service.inter.juhe.YouKuService;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.youku.YouKuApiUtil;
import com.yeshi.buwan.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.youku.entity.YouKuShowSimple;
import com.yeshi.buwan.youku.entity.YouKuVideo;
import com.yeshi.buwan.util.video.web.YouKuWebUtil;
import com.yeshi.buwan.videos.youku.YouKuApiUtil;
import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.videos.youku.entity.YouKuShowSimple;
import com.yeshi.buwan.videos.youku.entity.YouKuVideo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@@ -102,4 +98,30 @@
        return ReturnT.SUCCESS;
    }
    //更新专辑列表
    @XxlJob("video-update-youku-updateVideo-byCategoryUrl")
    public ReturnT<String> updatebyCategoryUrl(String param) throws Exception {
        String[] urlList = param.split(",");
        for (String url : urlList) {
            List<YouKuWebUtil.YouKuCoverInfo> list = YouKuWebUtil.parseCategoryList(url);
            if (list != null) {
                for (YouKuWebUtil.YouKuCoverInfo info : list) {
                    try {
                        YouKuShowDetail detail = getShowDetail(info.getShowId());
                        youKuService.addToInternetSearch(detail);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }
        return ReturnT.SUCCESS;
    }
}
src/main/java/com/yeshi/buwan/service/imp/AcFunTypeService.java
@@ -7,7 +7,7 @@
import org.springframework.stereotype.Service;
import com.yeshi.buwan.acFun.AcFunType;
import com.yeshi.buwan.videos.acFun.AcFunType;
import com.yeshi.buwan.dao.AcFunTypeDao;
@Service
src/main/java/com/yeshi/buwan/service/imp/AcFunVideoService.java
@@ -10,7 +10,7 @@
import org.springframework.orm.hibernate4.HibernateCallback;
import org.springframework.stereotype.Service;
import com.yeshi.buwan.acFun.AcFunVideo;
import com.yeshi.buwan.videos.acFun.AcFunVideo;
import com.yeshi.buwan.dao.AcFunVideoDao;
@Service
src/main/java/com/yeshi/buwan/service/imp/AcTypeEqVideoTypeService.java
@@ -7,8 +7,8 @@
import org.springframework.stereotype.Service;
import com.yeshi.buwan.acFun.AcFunType;
import com.yeshi.buwan.acFun.AcTypeEqVideoType;
import com.yeshi.buwan.videos.acFun.AcFunType;
import com.yeshi.buwan.videos.acFun.AcTypeEqVideoType;
import com.yeshi.buwan.dao.AcTypeEqVideoTypeDao;
import com.yeshi.buwan.domain.VideoType;
src/main/java/com/yeshi/buwan/service/imp/DetailSystemConfigService.java
@@ -50,6 +50,14 @@
        return configDao.selectByKey(key, Long.parseLong(system.getId()), version);
    }
    @Cacheable(value = "configCache", key = "'getConfigValueByKey-'+#key+'-'+#detailSystemId+'-'+#version")
    public String getConfigValueByKey(String key, String detailSystemId, int version) {
        DetailSystemConfig detailSystemConfig = configDao.selectByKey(key, Long.parseLong(detailSystemId), version);
        if (detailSystemConfig == null)
            return null;
        return detailSystemConfig.getValue();
    }
    // 更新某个配置文件
    public void updateConfig(final DetailSystemConfig cg) {
        configDao.excute(new HibernateCallback() {
src/main/java/com/yeshi/buwan/service/imp/LoginUserServiceImpl.java
@@ -6,8 +6,8 @@
import com.yeshi.buwan.domain.user.LoginUserExtra;
import com.yeshi.buwan.exception.user.LoginUserException;
import com.yeshi.buwan.exception.PPTVException;
import com.yeshi.buwan.pptv.PPTVApiUtil;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.videos.pptv.PPTVApiUtil;
import com.yeshi.buwan.videos.pptv.PPTVUtil;
import com.yeshi.buwan.service.inter.LoginUserService;
import org.springframework.stereotype.Service;
import org.yeshi.utils.StringUtil;
src/main/java/com/yeshi/buwan/service/imp/ResourceVideoService.java
@@ -3,11 +3,9 @@
import java.util.*;
import com.yeshi.buwan.dao.VideoResourceMapExtraInfoDao;
import com.yeshi.buwan.dao.juhe.iqiyi.VideoIqiyiDao;
import com.yeshi.buwan.domain.VideoResource;
import com.yeshi.buwan.domain.VideoResourceMapExtraInfo;
import com.yeshi.buwan.dto.mq.VideoExtraInfoChangeMQMsg;
import com.yeshi.buwan.iqiyi.entity.VideoIqiyi;
import com.yeshi.buwan.util.mq.CMQManager;
import org.hibernate.HibernateException;
import org.hibernate.Query;
src/main/java/com/yeshi/buwan/service/imp/SearchService.java
@@ -10,7 +10,7 @@
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.pptv.PPTVUtil;
import com.yeshi.buwan.videos.pptv.PPTVUtil;
import com.yeshi.buwan.service.inter.video.VideoInfoExtraService;
import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager;
import com.yeshi.buwan.service.manager.search.SolrInternetSearchVideoDataManager;
@@ -34,6 +34,8 @@
@Service
public class SearchService {
    private Logger logger = LoggerFactory.getLogger(SearchService.class);
    private final String ALBUM_SEARCH_FUZZY_KEYS = "《,》,。";
    @Resource
@@ -288,7 +290,7 @@
    }
    public SearchResult searchAlbum(int videoType, String key, int page, int pageSize) {
    public SearchResult searchAlbum(int videoType, String key, List<Long> resourceIds, int page, int pageSize) {
        List<VideoInfo> localList = new ArrayList<>();
        //专辑视频集合
        Set<String> solrAlbumVids = new HashSet<>();
@@ -298,8 +300,15 @@
        if (videoType == Constant.SEARCH_RESULT_TYPE_HIGH_DEFINITION) {
            filter.setResourceIds(Arrays.asList(new String[]{PPTVUtil.RESOURCE_ID + ""}));
            logger.info("高清搜索# key:{}", key);
        } else
        } else {
            List<String> rids = new ArrayList<>();
            for (Long rid : resourceIds) {
                rids.add(rid + "");
            }
            filter.setResourceIds(rids);
            filter.setVideoType(videoType == 0 ? null : videoType);
        }
        filter.setContentType(1);
        SolrResultDTO solrResultDTO = solrAlbumDataManager.find(filter, page, pageSize);
@@ -316,7 +325,7 @@
            }
        }
        //第一页,不为高清,主搜索引擎无法搜索到内容时搜索
        //第一页,不为高清时搜索
        if (page == 1 && videoType != Constant.SEARCH_RESULT_TYPE_HIGH_DEFINITION) {
            //page为1时 全网搜
            SolrResultDTO internetSearchResultDTO = solrInternetSearchVideoDataManager.find(filter, 1, 20);
@@ -327,7 +336,7 @@
                    isvList.addAll(iList);
                //删除前面有的数据,根据rootType与名称筛选
                for (int i = 0; i < isvList.size(); i++) {
                    String uniqueId = isvList.get(i).getName() + "#" + isvList.get(i).getRootType();
                    String uniqueId = isvList.get(i).getName() + "#" + isvList.get(i).getRootType() + "#" + isvList.get(i).getYear();
                    if (albumSet.contains(uniqueId)) {
                        isvList.remove(i);
                        i--;
@@ -350,7 +359,11 @@
                    float s1 = CompareStrSimUtil.getSimilarityRatio(o1.getName(), key, true);
                    float s2 = CompareStrSimUtil.getSimilarityRatio(o2.getName(), key, true);
//                        if (s1 != s2)//相似度越高越靠前
                    return s2 > s1 ? 1 : -1;
                    try {
                        return s1 != s2 ? (s2 > s1 ? 1 : -1) : (Integer.parseInt(o2.getYear()) - Integer.parseInt(o1.getYear()));
                    } catch (Exception e) {
                        return s2 > s1 ? 1 : -1;
                    }
//                        else
//                            return o1.getDefinition() - o2.getDefinition();//高清排在前
                } else {
@@ -418,7 +431,7 @@
        if (!StringUtil.isNullOrEmpty(key) && key.length() > 30)
            key = key.substring(0, 30);
        sh.setKey(key);
        if(uid!=null) {
        if (uid != null) {
            UserInfo user = new UserInfo();
            user.setId(uid);
            sh.setUser(user);
@@ -438,7 +451,7 @@
            localList = new ArrayList<>();
            //先搜索专辑
            int pageSize = 20;
            SearchResult searchResult = searchAlbum(videoType, key, page, pageSize);
            SearchResult searchResult = searchAlbum(videoType, key, resourceList, page, pageSize);
            if (searchResult != null && searchResult.videoInfoList != null) {
                localList.addAll(searchResult.videoInfoList);
            }
src/main/java/com/yeshi/buwan/service/imp/SpecialService.java
@@ -55,8 +55,8 @@
                new String[]{detailSystemId});
    }
    public List<Special> getSpecialList() {
        return specialDao.list("from Special");
    public List<Special> getSpecialListBySystem(String systemId) {
        return specialDao.list("from Special s where s.system.id=?",systemId);
    }
    @Cacheable(value = "classCache", key = "'getSpecialCount'+'-'+#detailSystemId")
src/main/java/com/yeshi/buwan/service/imp/ad/DeviceAdStrategyServiceImpl.java
@@ -3,14 +3,15 @@
import com.yeshi.buwan.dao.ad.DeviceAdStrategyDao;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.ad.DeviceAdStrategy;
import com.yeshi.buwan.service.imp.DetailSystemConfigService;
import com.yeshi.buwan.service.imp.VideoInfoService;
import com.yeshi.buwan.service.inter.ad.DeviceAdStrategyService;
import com.yeshi.buwan.service.inter.vip.VIPService;
import com.yeshi.buwan.util.RedisManager;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
import com.yeshi.buwan.util.video.VideoConstant;
import com.yeshi.buwan.vo.video.VideoDetailVO;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -31,6 +32,9 @@
    @Resource
    private RedisManager redisManager;
    @Resource
    private DetailSystemConfigService detailSystemConfigService;
    private DeviceAdStrategy init(String id, String deviceId, String detailSystemId) {
        DeviceAdStrategy strategy = new DeviceAdStrategy();
        strategy.setId(id);
@@ -46,17 +50,44 @@
        return strategy;
    }
    /**
     * 加载广告权重
     *
     * @param videoAdInfo
     * @param detailSystemId
     * @param version
     * @param channel
     */
    private VideoDetailVO.VideoAdInfo loadAdWeight(VideoDetailVO.VideoAdInfo videoAdInfo, String detailSystemId, int version, String channel) {
        String value = detailSystemConfigService.getConfigValueByKey("video_detail_full_video_version_channel_type", detailSystemId, version);
        if (StringUtil.isNullOrEmpty(value)) {
            return videoAdInfo;
        }
        JSONObject json = JSONObject.fromObject(value);
        if (json.optJSONObject(channel) == null) {
            json = json.optJSONObject("qq");
        } else {
            json = json.optJSONObject(channel);
        }
        if (json != null) {
            videoAdInfo.setFullVideoWeight(json.optInt("fullvideo"));
            videoAdInfo.setInterstitialWeight(json.optInt("interstitial"));
        }
        return videoAdInfo;
    }
    @Override
    public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, String loginUid) {
    public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, int version, String channel, String loginUid) {
        if (StringUtil.isNullOrEmpty(deviceId) || StringUtil.isNullOrEmpty(detailSystemId)) {
            return new VideoDetailVO.VideoAdInfo(true, true);
            return loadAdWeight(new VideoDetailVO.VideoAdInfo(true, true), detailSystemId, version, channel);
        }
        //走VIP判定逻辑
        if (!StringUtil.isNullOrEmpty(loginUid)) {
            if (vipService.isVIP(loginUid)) {
                //VIP不展示视频前贴和全屏
                return new VideoDetailVO.VideoAdInfo(false, false);
                return loadAdWeight(new VideoDetailVO.VideoAdInfo(false, false), detailSystemId, version, channel);
            }
        }
@@ -66,7 +97,7 @@
            strategy = init(id, deviceId, detailSystemId);
        }
        long now = System.currentTimeMillis();
        return new VideoDetailVO.VideoAdInfo(strategy.getDetailPVAExpireTime() < now, strategy.getDetailFSAExpireTime() < now);
        return loadAdWeight(new VideoDetailVO.VideoAdInfo(strategy.getDetailPVAExpireTime() < now, strategy.getDetailFSAExpireTime() < now), detailSystemId, version, channel);
    }
@@ -77,10 +108,10 @@
     * @param detailSystemId
     * @return
     */
    public VideoDetailVO.VideoAdInfo getVideoDetailShortVideoAdStrategy(String deviceId, String detailSystemId) {
    public VideoDetailVO.VideoAdInfo getVideoDetailShortVideoAdStrategy(String deviceId, String detailSystemId, int version, String channel) {
        if (StringUtil.isNullOrEmpty(deviceId) || StringUtil.isNullOrEmpty(detailSystemId)) {
            return new VideoDetailVO.VideoAdInfo(true, true);
            return loadAdWeight(new VideoDetailVO.VideoAdInfo(true, true), detailSystemId, version, channel);
        }
        String id = DeviceAdStrategy.createId(deviceId, detailSystemId);
        DeviceAdStrategy strategy = deviceAdStrategyDao.get(id);
@@ -97,20 +128,20 @@
        }
        long now = System.currentTimeMillis();
        return new VideoDetailVO.VideoAdInfo(strategy.getDetailShortVideoPVAExpireTime() < now, strategy.getDetailShortVideoFSAExpireTime() < now);
        return loadAdWeight(new VideoDetailVO.VideoAdInfo(strategy.getDetailShortVideoPVAExpireTime() < now, strategy.getDetailShortVideoFSAExpireTime() < now), detailSystemId, version, channel);
    }
    @Override
    public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, String loginUid, String videoId, String from) {
    public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, int version, String channel, String loginUid, String videoId, String from) {
        VideoDetailVO.VideoAdInfo videoAdInfo = getVideoDetailAdStrategy(deviceId, detailSystemId, loginUid);
        VideoDetailVO.VideoAdInfo videoAdInfo = getVideoDetailAdStrategy(deviceId, detailSystemId, version, channel, loginUid);
        //从APP首页推荐而来,并且有全屏視頻廣告
        if (videoAdInfo.isFullVideo() && "recommend".equalsIgnoreCase(from)) {
            //是否为4大分类
            VideoInfo videoInfo = videoInfoService.getVideoInfoCache(videoId);
            //除正片外不展示全屏视频广告
            if (videoInfo != null && videoInfo.getContentType() != null && videoInfo.getContentType() != 1) {
                VideoDetailVO.VideoAdInfo shortVideo = getVideoDetailShortVideoAdStrategy(deviceId, detailSystemId);
                VideoDetailVO.VideoAdInfo shortVideo = getVideoDetailShortVideoAdStrategy(deviceId, detailSystemId, version, channel);
                videoAdInfo.setFullVideo(videoAdInfo.isFullVideo() && shortVideo.isFullVideo());
            }
        }
@@ -171,7 +202,7 @@
        //记录当前看PP的次数
        String id = DeviceAdStrategy.createId(deviceId, detailSystemId);
        String ppDayCount = "pptv-watch-count-" + id;
        int timeS = (int) ((TimeUtil.convertGernalTime(TimeUtil.getGernalTime(System.currentTimeMillis() + 1000 * 60 * 60 * 24L, "yyyyMMdd"), "yyyyMMdd")-System.currentTimeMillis()) / 1000);
        int timeS = (int) ((TimeUtil.convertGernalTime(TimeUtil.getGernalTime(System.currentTimeMillis() + 1000 * 60 * 60 * 24L, "yyyyMMdd"), "yyyyMMdd") - System.currentTimeMillis()) / 1000);
        redisManager.increase(ppDayCount, 1);
        redisManager.expire(ppDayCount, timeS);
        String countStr = redisManager.getCommonString(ppDayCount);
src/main/java/com/yeshi/buwan/service/imp/juhe/AcfunVideoNewService.java
@@ -8,10 +8,10 @@
import org.springframework.stereotype.Service;
import com.yeshi.buwan.acFun.AcfunVideoMap;
import com.yeshi.buwan.acFun.AcfunVideoMapDao;
import com.yeshi.buwan.acFun.AcfunVideoNew;
import com.yeshi.buwan.acFun.AcfunVideoNewDao;
import com.yeshi.buwan.videos.acFun.AcfunVideoMap;
import com.yeshi.buwan.videos.acFun.AcfunVideoMapDao;
import com.yeshi.buwan.videos.acFun.AcfunVideoNew;
import com.yeshi.buwan.videos.acFun.AcfunVideoNewDao;
import com.yeshi.buwan.util.video.AcfunApiUtil;
@Service
src/main/java/com/yeshi/buwan/service/imp/juhe/AlbumVideoMapServiceImpl.java
@@ -1,11 +1,13 @@
package com.yeshi.buwan.service.imp.juhe;
import com.yeshi.buwan.dao.video.AlbumVideoMapDao;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.video.AlbumVideoMap;
import com.yeshi.buwan.service.inter.juhe.AlbumVideoMapService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Service
@@ -34,4 +36,16 @@
    public void deleteByVideoId(String videoId) {
        albumVideoMapDao.deleteByPrimaryKey(videoId);
    }
    @Override
    public void add(VideoInfo videoInfo) {
        //加入专辑视频映射
        AlbumVideoMap map = new AlbumVideoMap();
        map.setId(videoInfo.getId());
        map.setCreateTime(new Date());
        map.setVideoId(videoInfo.getId());
        map.setRootVideoType(videoInfo.getVideoType().getId());
        map.setVideoCount(videoInfo.getVideocount());
        albumVideoMapDao.save(map);
    }
}
src/main/java/com/yeshi/buwan/service/imp/juhe/BilibiliVideoServiceImpl.java
@@ -8,7 +8,6 @@
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.service.inter.juhe.BilibiliVideoService;
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.tencent.entity.TencentSearchVideoMap;
import com.yeshi.buwan.util.factory.InternetSearchVideoFactory;
import com.yeshi.buwan.videos.bilibili.BilibiliUtil;
import com.yeshi.buwan.videos.bilibili.entity.BilibiliEpInfo;
src/main/java/com/yeshi/buwan/service/imp/juhe/FunTV2ServiceImpl.java
@@ -6,21 +6,19 @@
import com.yeshi.buwan.dao.juhe.funtv.FunTVVideo2Dao;
import com.yeshi.buwan.dao.juhe.funtv.VideoFunTV2Dao;
import com.yeshi.buwan.dao.video.AlbumVideoMapDao;
import com.yeshi.buwan.domain.ResourceVideo;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.VideoResource;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.domain.system.DetailSystemConfig;
import com.yeshi.buwan.domain.video.AlbumVideoMap;
import com.yeshi.buwan.funtv.FunTVUtil2;
import com.yeshi.buwan.funtv.entity.FunTVAlbum2;
import com.yeshi.buwan.funtv.entity.FunTVShortVideo2;
import com.yeshi.buwan.funtv.entity.FunTVVideo2;
import com.yeshi.buwan.funtv.entity.VideoFunTV2;
import com.yeshi.buwan.videos.funtv.FunTVUtil2;
import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2;
import com.yeshi.buwan.videos.funtv.entity.FunTVShortVideo2;
import com.yeshi.buwan.videos.funtv.entity.FunTVVideo2;
import com.yeshi.buwan.videos.funtv.entity.VideoFunTV2;
import com.yeshi.buwan.service.imp.*;
import com.yeshi.buwan.service.inter.juhe.FunTV2Service;
import com.yeshi.buwan.service.inter.system.SystemConfigService;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.mq.CMQManager;
import com.yeshi.buwan.util.video.VideoConstant;
src/main/java/com/yeshi/buwan/service/imp/juhe/FunTVService.java
@@ -9,11 +9,11 @@
import com.yeshi.buwan.domain.*;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.domain.push.VideoPushHistory;
import com.yeshi.buwan.funtv.FunTVUtil;
import com.yeshi.buwan.funtv.entity.FunTVAlbum;
import com.yeshi.buwan.funtv.entity.FunTVAlbumVideoMap;
import com.yeshi.buwan.funtv.entity.FunTVVideo;
import com.yeshi.buwan.funtv.entity.VideoFunTV;
import com.yeshi.buwan.videos.funtv.FunTVUtil;
import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum;
import com.yeshi.buwan.videos.funtv.entity.FunTVAlbumVideoMap;
import com.yeshi.buwan.videos.funtv.entity.FunTVVideo;
import com.yeshi.buwan.videos.funtv.entity.VideoFunTV;
import com.yeshi.buwan.service.imp.*;
import com.yeshi.buwan.service.imp.push.PushService;
import com.yeshi.buwan.util.StringUtil;
src/main/java/com/yeshi/buwan/service/imp/juhe/Iqiyi2ServiceImpl.java
@@ -6,29 +6,30 @@
import com.yeshi.buwan.dao.video.AlbumVideoMapDao;
import com.yeshi.buwan.domain.*;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.domain.solr.SolrShortVideo;
import com.yeshi.buwan.domain.solr.SolrAlbumVideo;
import com.yeshi.buwan.domain.system.SystemConfig;
import com.yeshi.buwan.domain.video.AlbumVideoMap;
import com.yeshi.buwan.dto.mq.UpdateResourceVideoMQMsg;
import com.yeshi.buwan.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.iqiyi.entity.VideoIqiyi2;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil2;
import com.yeshi.buwan.exception.video.IqiyiVideoSolrException;
import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi2;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2;
import com.yeshi.buwan.query.Iqiyi2AlbumQuery;
import com.yeshi.buwan.service.imp.CategoryVideoService;
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.juhe.AlbumVideoMapService;
import com.yeshi.buwan.service.inter.juhe.Iqiyi2Service;
import com.yeshi.buwan.service.inter.system.SystemConfigService;
import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager;
import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.ThreadUtil;
import com.yeshi.buwan.util.TimeUtil;
import com.yeshi.buwan.util.log.VideoLogFactory;
import com.yeshi.buwan.util.mq.CMQManager;
import com.yeshi.buwan.util.video.shortvideo.ShortVideoUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.mongodb.core.query.Criteria;
@@ -76,7 +77,10 @@
    private SystemConfigService systemConfigService;
    @Resource
    private SolrShortVideoDataManager solrShortVideoDataManager;
    private AlbumVideoMapService albumVideoMapService;
    @Resource
    private SolrAlbumVideoDataManager solrAlbumVideoDataManager;
    public List<VideoDetailInfo> getVideoDetailList(String videoId, int page, int pageSize) {
        //查询专辑
@@ -289,6 +293,12 @@
        } else if (t == IqiyiUtil2.PLAY_HTML) {
            pu.setUrl(album.getH5Url());
        }
        //韩剧
        if ("48".equalsIgnoreCase(detailSystemId)) {
            pu.setUrl(pu.getUrl().replace("_bwap", "_hjvap"));
        }
        return pu;
    }
@@ -402,9 +412,10 @@
        }
        VideoIqiyi2 bean = videoIqiyi2Dao.selectByIqiyiId(id);
        if (bean != null) {
            videoIqiyi2Dao.delete(bean.getVideoId());
            videoIqiyi2Dao.deleteById(bean.getVideoId());
            //删除资源
            resourceVideoService.delete(bean.getVideoId() + "", IqiyiUtil2.RESOURCE_ID + "");
            resourceVideoService.delete(bean.getVideoId() + "", IqiyiUtil.RESOURCE_ID + "");
        }
    }
@@ -413,4 +424,29 @@
    public List<IqiyiAlbum2> listByIds(List<Long> idsList) {
        return iqiyiAlbum2Dao.listByIds(idsList);
    }
    @Override
    public void validAlbumSolrState(Long albumId) throws IqiyiVideoSolrException {
        long count = iqiyiAlbum2Dao.countById(albumId);
        if (count <= 0L) {
            throw new IqiyiVideoSolrException(IqiyiVideoSolrException.CODE_ALBUM_NOT_SAVE, "专辑尚未缓存");
        }
        VideoIqiyi2 videoIqiyi2 = videoIqiyi2Dao.selectByIqiyiId(albumId);
        if (videoIqiyi2 == null) {
            throw new IqiyiVideoSolrException(IqiyiVideoSolrException.CODE_ALBUM_NOT_ADD_TO_VIDEO, "专辑尚未添加到视频总览");
        }
        AlbumVideoMap albumVideoMap = albumVideoMapService.selectByVideoId(videoIqiyi2.getVideoId() + "");
        if (albumVideoMap == null) {
            throw new IqiyiVideoSolrException(IqiyiVideoSolrException.CODE_VIDEO_NOT_ADD_TO_SOLR_ALBUM, "视频未添加到专辑搜索映射");
        }
        SolrAlbumVideo solrAlbumVideo = solrAlbumVideoDataManager.findOne(videoIqiyi2.getVideoId());
        if (solrAlbumVideo == null) {
            throw new IqiyiVideoSolrException(IqiyiVideoSolrException.CODE_VIDEO_NOT_SYNC_TO_SOLR, "视频尚未同步到搜索引擎");
        }
    }
}
src/main/java/com/yeshi/buwan/service/imp/juhe/IqiyiQueueService.java
@@ -9,7 +9,7 @@
import org.springframework.stereotype.Service;
import com.yeshi.buwan.dao.juhe.iqiyi.IqiyiUpdateQueueDao;
import com.yeshi.buwan.iqiyi.entity.IqiyiUpdateQueue;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiUpdateQueue;
import com.yeshi.buwan.util.Constant;
@Service
src/main/java/com/yeshi/buwan/service/imp/juhe/IqiyiService.java
@@ -26,10 +26,10 @@
import com.yeshi.buwan.domain.VideoResource;
import com.yeshi.buwan.domain.VideoType;
import com.yeshi.buwan.domain.push.VideoPushHistory;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum;
import com.yeshi.buwan.iqiyi.entity.IqiyiVideoInfo;
import com.yeshi.buwan.iqiyi.entity.VideoIqiyi;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiVideoInfo;
import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.log.LogHelper;
import com.yeshi.buwan.service.imp.StatisticsService;
import com.yeshi.buwan.service.imp.push.PushService;
src/main/java/com/yeshi/buwan/service/imp/juhe/MogoTVServiceImpl.java
@@ -5,10 +5,10 @@
import com.yeshi.buwan.dao.juhe.mogotv.MogoTVVideoDao;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.mogotv.MogoTVUtil;
import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.mogotv.entity.MogoTVSearchVideoMap;
import com.yeshi.buwan.mogotv.entity.MogoTVVideo;
import com.yeshi.buwan.videos.mogotv.MogoTVUtil;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVSearchVideoMap;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVVideo;
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.service.inter.juhe.MogoTVService;
import com.yeshi.buwan.util.factory.InternetSearchVideoFactory;
src/main/java/com/yeshi/buwan/service/imp/juhe/PPTVServiceImpl.java
@@ -2,7 +2,6 @@
import com.yeshi.buwan.dao.VideoInfoDao;
import com.yeshi.buwan.dao.VideoResourceMapExtraInfoDao;
import com.yeshi.buwan.dao.VideoTypeDao;
import com.yeshi.buwan.dao.juhe.pptv.PPTVProgramDao;
import com.yeshi.buwan.dao.juhe.pptv.PPTVSeriesDao;
import com.yeshi.buwan.dao.juhe.pptv.PPTVSeriesProgramMapDao;
@@ -13,17 +12,16 @@
import com.yeshi.buwan.domain.VideoType;
import com.yeshi.buwan.domain.video.AlbumVideoMap;
import com.yeshi.buwan.dto.mq.PPTVMQMsg;
import com.yeshi.buwan.pptv.PPTVApiUtil;
import com.yeshi.buwan.pptv.PPTVQuery;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.pptv.entity.*;
import com.yeshi.buwan.videos.pptv.PPTVApiUtil;
import com.yeshi.buwan.videos.pptv.PPTVQuery;
import com.yeshi.buwan.videos.pptv.PPTVUtil;
import com.yeshi.buwan.videos.pptv.entity.*;
import com.yeshi.buwan.service.imp.CategoryVideoService;
import com.yeshi.buwan.service.imp.ResourceVideoService;
import com.yeshi.buwan.service.imp.VideoInfoService;
import com.yeshi.buwan.service.imp.VideoTypeService;
import com.yeshi.buwan.service.inter.juhe.PPTVService;
import com.yeshi.buwan.util.mq.CMQManager;
import com.yeshi.buwan.util.video.VideoConstant;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
src/main/java/com/yeshi/buwan/service/imp/juhe/SoHuService.java
@@ -25,10 +25,10 @@
import com.yeshi.buwan.domain.push.VideoPushHistory;
import com.yeshi.buwan.service.imp.StatisticsService;
import com.yeshi.buwan.service.imp.push.PushService;
import com.yeshi.buwan.sohu.SoHuUtil;
import com.yeshi.buwan.sohu.entity.SoHuAlbum;
import com.yeshi.buwan.sohu.entity.SoHuVideo;
import com.yeshi.buwan.sohu.entity.VideoSoHu;
import com.yeshi.buwan.videos.sohu.SoHuUtil;
import com.yeshi.buwan.videos.sohu.entity.SoHuAlbum;
import com.yeshi.buwan.videos.sohu.entity.SoHuVideo;
import com.yeshi.buwan.videos.sohu.entity.VideoSoHu;
import com.yeshi.buwan.util.StringUtil;
@Service
src/main/java/com/yeshi/buwan/service/imp/juhe/TencentVideoServiceImpl.java
@@ -7,10 +7,10 @@
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.service.inter.juhe.TencentVideoService;
import com.yeshi.buwan.tencent.TencentVideoUtil;
import com.yeshi.buwan.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.tencent.entity.TencentCoverVideo;
import com.yeshi.buwan.tencent.entity.TencentSearchVideoMap;
import com.yeshi.buwan.videos.tencent.TencentVideoUtil;
import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.videos.tencent.entity.TencentCoverVideo;
import com.yeshi.buwan.videos.tencent.entity.TencentSearchVideoMap;
import com.yeshi.buwan.util.factory.InternetSearchVideoFactory;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
src/main/java/com/yeshi/buwan/service/imp/juhe/YouKuServiceImpl.java
@@ -8,10 +8,10 @@
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.service.inter.juhe.YouKuService;
import com.yeshi.buwan.util.factory.InternetSearchVideoFactory;
import com.yeshi.buwan.youku.YouKuUtil;
import com.yeshi.buwan.youku.entity.YouKuSearchVideoMap;
import com.yeshi.buwan.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.youku.entity.YouKuVideo;
import com.yeshi.buwan.videos.youku.YouKuUtil;
import com.yeshi.buwan.videos.youku.entity.YouKuSearchVideoMap;
import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.videos.youku.entity.YouKuVideo;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
src/main/java/com/yeshi/buwan/service/imp/order/OrderServiceImpl.java
@@ -13,7 +13,7 @@
import com.yeshi.buwan.exception.order.PayException;
import com.yeshi.buwan.exception.vip.VIPException;
import com.yeshi.buwan.exception.vip.VideoBuyRecordException;
import com.yeshi.buwan.pptv.PPTVVipManager;
import com.yeshi.buwan.videos.pptv.PPTVVipManager;
import com.yeshi.buwan.service.inter.order.OrderService;
import com.yeshi.buwan.service.manager.GoldCornManager;
import com.yeshi.buwan.util.Constant;
src/main/java/com/yeshi/buwan/service/imp/recommend/HomeVideoServiceImpl.java
@@ -3,15 +3,18 @@
import com.yeshi.buwan.dao.HomeVideoDao;
import com.yeshi.buwan.domain.HomeVideo;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.solr.SolrShortVideo;
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.service.imp.VideoInfoService;
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.service.inter.recommend.HomeVideoService;
import com.yeshi.buwan.service.inter.video.VideoInfoExtraService;
import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager;
import com.yeshi.buwan.util.Constant;
import com.yeshi.buwan.util.NumberUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.factory.VideoInfoFactory;
import com.yeshi.buwan.util.video.VideoUtil;
import org.hibernate.Session;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
@@ -32,6 +35,9 @@
    @Resource
    private InternetSearchVideoService internetSearchVideoService;
    @Resource
    private SolrShortVideoDataManager solrShortVideoDataManager;
    @Resource
    private VideoInfoService videoInfoService;
@@ -111,12 +117,30 @@
            if (hv == null || hv.getVideo() != null || StringUtil.isNullOrEmpty(hv.getVideoId())) {
                continue;
            }
            if (NumberUtil.isNumeric(hv.getVideoId())) {
            if (VideoUtil.getVideoFromType(hv.getVideoId()) != HomeVideo.FROM_TYPE_INTERNET) {
                continue;
            }
            InternetSearchVideo internetSearchVideo = internetSearchVideoService.selectByPrimaryKeyCache(hv.getVideoId());
            if (internetSearchVideo != null) {
                hv.setVideo(VideoInfoFactory.create(internetSearchVideo));
            }
        }
        return homeVideoList;
    }
    private List<HomeVideo> betchShortVideos(List<HomeVideo> homeVideoList) {
        for (HomeVideo hv : homeVideoList) {
            if (hv == null || hv.getVideo() != null || StringUtil.isNullOrEmpty(hv.getVideoId())) {
                continue;
            }
            if (VideoUtil.getVideoFromType(hv.getVideoId()) != HomeVideo.FROM_TYPE_SHORT) {
                continue;
            }
            SolrShortVideo shortVideo = solrShortVideoDataManager.findOne(hv.getVideoId());
            if (shortVideo != null) {
                hv.setVideo(VideoInfoFactory.create(shortVideo));
            }
        }
@@ -146,7 +170,7 @@
                    rids.add("rv.`resourceid`=" + rid);
                }
            String sql = String.format("SELECT hv.* FROM wk_video_homevideo hv LEFT JOIN wk_resource_video rv ON rv.`videoid`=hv.`videoid` LEFT JOIN wk_video_video v ON v.`id`=hv.`videoid` WHERE  hv.`hometype`=%s AND ( (v.show=1 AND hv.from_type=0  %s) OR hv.from_type>0 )  ", homeId, rids.size() == 0 ? "" :"AND ("+ org.yeshi.utils.StringUtil.concat(rids, " or ")+")");
            String sql = String.format("SELECT hv.* FROM wk_video_homevideo hv LEFT JOIN wk_resource_video rv ON rv.`videoid`=hv.`videoid` LEFT JOIN wk_video_video v ON v.`id`=hv.`videoid` WHERE  hv.`hometype`=%s AND ( (v.show=1 AND hv.from_type=0  %s) OR hv.from_type>0 )  ", homeId, rids.size() == 0 ? "" : "AND (" + org.yeshi.utils.StringUtil.concat(rids, " or ") + ")");
            sql += " GROUP BY hv.id ORDER BY hv.`orderby` DESC,hv.`createtime` DESC";
@@ -157,6 +181,7 @@
        List<VideoInfo> videoInfoList = new ArrayList<>();
        homeVideos = betchInternetVideos(homeVideos);
        homeVideos = betchShortVideos(homeVideos);
        for (int i = 0; i < homeVideos.size(); i++) {
            if (homeVideos.get(i).getVideo() == null) {
                homeVideos.remove(i);
@@ -186,7 +211,7 @@
                    rids.add("rv.`resourceid`=" + rid);
                }
            String sql = String.format("SELECT  count(distinct(hv.id)) from wk_video_homevideo hv LEFT JOIN wk_resource_video rv ON rv.`videoid`=hv.`videoid` LEFT JOIN wk_video_video v ON v.`id`=hv.`videoid` WHERE  hv.`hometype`=%s AND ( (v.show=1 AND hv.from_type=0 %s) OR hv.from_type>0 ) ", homeId, rids.size() == 0 ? "" :"AND ("+ org.yeshi.utils.StringUtil.concat(rids, " or ")+")");
            String sql = String.format("SELECT  count(distinct(hv.id)) from wk_video_homevideo hv LEFT JOIN wk_resource_video rv ON rv.`videoid`=hv.`videoid` LEFT JOIN wk_video_video v ON v.`id`=hv.`videoid` WHERE  hv.`hometype`=%s AND ( (v.show=1 AND hv.from_type=0 %s) OR hv.from_type>0 ) ", homeId, rids.size() == 0 ? "" : "AND (" + org.yeshi.utils.StringUtil.concat(rids, " or ") + ")");
            return Long.parseLong(session.createSQLQuery(sql).uniqueResult() + "") + (hasBigPicture != null && hasBigPicture ? 1 : 0);
        });
src/main/java/com/yeshi/buwan/service/inter/ad/DeviceAdStrategyService.java
@@ -11,7 +11,7 @@
     * @param detailSystemId
     * @return
     */
    public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, String loginUid);
    public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, int version, String channel, String loginUid);
    /**
     * 获取视频详情页的广告展示策略(含单视频策略)
@@ -23,7 +23,7 @@
     * @param from
     * @return
     */
    public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, String loginUid, String videoId, String from);
    public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, int version, String channel, String loginUid, String videoId, String from);
    /**
src/main/java/com/yeshi/buwan/service/inter/juhe/AlbumVideoMapService.java
@@ -1,5 +1,6 @@
package com.yeshi.buwan.service.inter.juhe;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.video.AlbumVideoMap;
import javax.annotation.Resource;
@@ -34,7 +35,9 @@
    public AlbumVideoMap selectByVideoId(String videoId);
    @Resource
    public void deleteByVideoId(String videoId);
    public void add(VideoInfo videoInfo);
}
src/main/java/com/yeshi/buwan/service/inter/juhe/FunTV2Service.java
@@ -2,9 +2,9 @@
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.funtv.entity.FunTVAlbum2;
import com.yeshi.buwan.funtv.entity.FunTVShortVideo2;
import com.yeshi.buwan.funtv.entity.FunTVVideo2;
import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2;
import com.yeshi.buwan.videos.funtv.entity.FunTVShortVideo2;
import com.yeshi.buwan.videos.funtv.entity.FunTVVideo2;
import com.yeshi.buwan.vo.AcceptData;
import java.util.List;
src/main/java/com/yeshi/buwan/service/inter/juhe/Iqiyi2Service.java
@@ -3,7 +3,8 @@
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.exception.video.IqiyiVideoSolrException;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2;
import java.util.List;
@@ -35,6 +36,7 @@
    /**
     * 专辑下线
     *
     * @param id
     */
    public void offlineIqiyiAlbum(Long id);
@@ -62,6 +64,7 @@
    /**
     * 根据专辑ID删除
     *
     * @param id
     */
    public void deleteByAid(long id);
@@ -69,8 +72,17 @@
    /**
     * 根据ID查询
     *
     * @param idsList
     * @return
     */
    public List<IqiyiAlbum2> listByIds(List<Long> idsList);
    /**
     * 验证专辑的搜素引擎状态
     *
     * @param albumId
     */
    public void validAlbumSolrState(Long albumId) throws IqiyiVideoSolrException;
}
src/main/java/com/yeshi/buwan/service/inter/juhe/MogoTVService.java
@@ -1,10 +1,9 @@
package com.yeshi.buwan.service.inter.juhe;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.mogotv.entity.MogoTVSearchVideoMap;
import com.yeshi.buwan.mogotv.entity.MogoTVVideo;
import com.yeshi.buwan.youku.entity.YouKuSearchVideoMap;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVSearchVideoMap;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVVideo;
import java.util.List;
src/main/java/com/yeshi/buwan/service/inter/juhe/PPTVService.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.service.inter.juhe;
import com.yeshi.buwan.pptv.entity.*;
import com.yeshi.buwan.videos.pptv.entity.*;
import java.util.List;
src/main/java/com/yeshi/buwan/service/inter/juhe/TencentVideoService.java
@@ -1,9 +1,9 @@
package com.yeshi.buwan.service.inter.juhe;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.tencent.entity.TencentCoverVideo;
import com.yeshi.buwan.tencent.entity.TencentSearchVideoMap;
import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.videos.tencent.entity.TencentCoverVideo;
import com.yeshi.buwan.videos.tencent.entity.TencentSearchVideoMap;
import java.util.List;
src/main/java/com/yeshi/buwan/service/inter/juhe/YouKuService.java
@@ -1,9 +1,9 @@
package com.yeshi.buwan.service.inter.juhe;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.youku.entity.YouKuSearchVideoMap;
import com.yeshi.buwan.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.youku.entity.YouKuVideo;
import com.yeshi.buwan.videos.youku.entity.YouKuSearchVideoMap;
import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.videos.youku.entity.YouKuVideo;
import java.util.List;
src/main/java/com/yeshi/buwan/service/manager/search/SolrAlbumVideoDataManager.java
@@ -28,6 +28,7 @@
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.Serializable;
import java.util.*;
/**
@@ -122,7 +123,7 @@
        }
    }
    public SolrAlbumVideo findOne(String id) {
    public SolrAlbumVideo findOne(Serializable id) {
        SolrAlbumVideo solrVideo = solrTemplate.getById(CORE_NAME, id, SolrAlbumVideo.class);
        return solrVideo;
    }
@@ -141,7 +142,7 @@
                try {
                    query = new SimpleQuery(new Criteria("nameStr").startsWith(filter.getKey()).or("mainactor").expression("\"" + filter.getKey() + "\""));
                } catch (InvalidDataAccessApiUsageException e) {
                    query = new SimpleQuery(new Criteria("nameStr").expression("\""+filter.getKey()+"\"").or("mainactor").expression("\"" + filter.getKey() + "\""));
                    query = new SimpleQuery(new Criteria("nameStr").expression("\"" + filter.getKey() + "\"").or("mainactor").expression("\"" + filter.getKey() + "\""));
                }
            }
        } else if (!StringUtil.isNullOrEmpty(filter.getActor())) {
@@ -158,7 +159,14 @@
        }
        if (filter.getResourceIds() != null && filter.getResourceIds().size() > 0) {
            query.addFilterQuery(new SimpleFilterQuery(Criteria.where("resourceIds").contains(filter.getResourceIds())));
            Criteria ors = null;
            for (String rid : filter.getResourceIds()) {
                if (ors == null)
                    ors = Criteria.where("resourceIds").contains(rid);
                else
                    ors = ors.or("resourceIds").contains(rid);
            }
            query.addFilterQuery(new SimpleFilterQuery(ors));
        }
        if (filter.getFreeType() != null) {
            query.addFilterQuery(new SimpleFilterQuery(Criteria.where("free_type").is(filter.getFreeType())));
@@ -185,7 +193,7 @@
    }
    public List<String> getSuggestKeyList(String key) {
        Query query = new SimpleQuery(new Criteria("nameStr").expression(key+"*"));
        Query query = new SimpleQuery(new Criteria("nameStr").expression(key + "*"));
        /** 设置分页开始记录数(第一页) 默认0 */
        query.setOffset(0);
        /** 设置每页显示记录数,默认10 */
src/main/java/com/yeshi/buwan/service/manager/search/SolrInternetSearchVideoDataManager.java
@@ -102,7 +102,7 @@
            try {
                query = new SimpleQuery(new Criteria("nameStr").startsWith(key).or("actors").expression("\"" + key + "\""));
            } catch (InvalidDataAccessApiUsageException e) {
                query = new SimpleQuery(new Criteria("name").expression("\""+key+"\""));
                query = new SimpleQuery(new Criteria("name").expression("\"" + key + "\""));
            }
        } else if (!StringUtil.isNullOrEmpty(filter.getActor())) {
@@ -119,9 +119,14 @@
        }
        if (filter.getResourceIds() != null && filter.getResourceIds().size() > 0) {
//            String[] rids=new String[filter.getResourceIds().size()];
//            filter.getResourceIds().toArray(rids);
            query.addFilterQuery(new SimpleFilterQuery(Criteria.where("resourceIds").contains(filter.getResourceIds())));
            Criteria ors = null;
            for (String rid : filter.getResourceIds()) {
                if (ors == null)
                    ors = Criteria.where("resourceIds").contains(rid);
                else
                    ors = ors.or("resourceIds").contains(rid);
            }
            query.addFilterQuery(new SimpleFilterQuery(ors));
        }
@@ -146,7 +151,7 @@
    }
    public List<String> getSuggestKeyList(String key) {
        Query query = new SimpleQuery(new Criteria("nameStr").expression(key+"*"));
        Query query = new SimpleQuery(new Criteria("nameStr").expression(key + "*"));
        /** 设置分页开始记录数(第一页) 默认0 */
        query.setOffset(0);
        /** 设置每页显示记录数,默认10 */
src/main/java/com/yeshi/buwan/service/manager/search/SolrShortVideoDataManager.java
@@ -1,5 +1,6 @@
package com.yeshi.buwan.service.manager.search;
import com.yeshi.buwan.domain.HomeVideo;
import com.yeshi.buwan.domain.VideoResource;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.domain.solr.SolrShortVideo;
@@ -7,7 +8,7 @@
import com.yeshi.buwan.dto.search.SolrShortVideoSearchFilter;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.video.shortvideo.ShortVideoUtil;
import com.yeshi.buwan.util.video.VideoUtil;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -71,6 +72,7 @@
            solrTemplate.rollback();
        }
    }
    public void deleteById(String id) {
        UpdateResponse updateResponse = solrTemplate.deleteById(CORE_NAME, id);
        if (updateResponse.getStatus() == 0) {
@@ -162,7 +164,7 @@
    public PlayUrl getPlayUrl(String id, VideoResource videoResource) {
        //短视频
        if (ShortVideoUtil.isShortVideoId(id)) {
        if (VideoUtil.getVideoFromType(id) == HomeVideo.FROM_TYPE_SHORT) {
            SolrShortVideo solrShortVideo = findOne(id);
            if (solrShortVideo == null)
                return null;
src/main/java/com/yeshi/buwan/util/RedisManager.java
@@ -142,7 +142,7 @@
     */
    public void saveVideoList(String key, VideoListResultVO videoData) {
        Gson gson = new Gson();
        cacheCommonString(key, gson.toJson(videoData), 60 * 60 * 24);
        cacheCommonString(key, gson.toJson(videoData), 60 * 60 * 8);
    }
    /**
src/main/java/com/yeshi/buwan/util/SpringContext.java
@@ -1,19 +1,18 @@
package com.yeshi.buwan.util;
import com.alibaba.druid.pool.DruidDataSource;
import com.yeshi.buwan.dao.juhe.iqiyi.IqiyiAlbum2Dao;
import com.yeshi.buwan.dao.juhe.iqiyi.VideoIqiyi2Dao;
import com.yeshi.buwan.domain.ResourceVideo;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.VideoResource;
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.dto.mq.*;
import com.yeshi.buwan.funtv.entity.FunTVAlbum2;
import com.yeshi.buwan.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.iqiyi.entity.VideoIqiyi2;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil2;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2;
import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi2;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeries;
import com.yeshi.buwan.service.imp.JobThreadExecutorServiceImpl;
import com.yeshi.buwan.service.imp.ResourceVideoService;
import com.yeshi.buwan.service.imp.VideoInfoService;
@@ -208,7 +207,7 @@
                                                    iqiyi2Service.offlineIqiyiAlbum(Long.parseLong(videoMQMsg.getId()));
                                                } else {
                                                    //保存
                                                    iqiyiUtil2.syncByAid(iqiyiAlbum2.getId());
                                                    iqiyiUtil2.syncByAid(iqiyiAlbum2.getId(),false);
                                                }
                                                break;
                                        }
src/main/java/com/yeshi/buwan/util/factory/InternetSearchVideoFactory.java
@@ -1,14 +1,14 @@
package com.yeshi.buwan.util.factory;
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.videos.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.util.TimeUtil;
import com.yeshi.buwan.util.video.VideoConstant;
import com.yeshi.buwan.videos.bilibili.entity.BilibiliMediaInfo;
import com.yeshi.buwan.videos.bilibili.BilibiliUtil;
import com.yeshi.buwan.videos.bilibili.entity.BilibiliVideo;
import com.yeshi.buwan.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail;
import org.yeshi.utils.StringUtil;
import java.math.BigDecimal;
src/main/java/com/yeshi/buwan/util/factory/SolrShortVideoFactory.java
@@ -1,11 +1,11 @@
package com.yeshi.buwan.util.factory;
import com.yeshi.buwan.domain.solr.SolrShortVideo;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil2;
import com.yeshi.buwan.tencent.TencentVideoUtil;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2;
import com.yeshi.buwan.videos.tencent.TencentVideoUtil;
import com.yeshi.buwan.util.TimeUtil;
import com.yeshi.buwan.util.video.shortvideo.TencentWebUtil;
import com.yeshi.buwan.util.video.web.TencentWebUtil;
public class SolrShortVideoFactory {
src/main/java/com/yeshi/buwan/util/factory/VideoInfoFactory.java
@@ -6,7 +6,7 @@
import com.yeshi.buwan.domain.VideoType;
import com.yeshi.buwan.domain.solr.SolrShortVideo;
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.videos.pptv.PPTVUtil;
import com.yeshi.buwan.util.TimeUtil;
import java.util.ArrayList;
@@ -96,7 +96,7 @@
        video.setVpicture("");
        video.setLatestVpicture("");
        video.setId(solrVideo.getId());
        video.setTag(solrVideo.getTag());
//        video.setTag(solrVideo.getTag());
        video.setHpicture(solrVideo.getPicture());
        video.setArea(solrVideo.getArea());
        video.setCreatetime(0L);
src/main/java/com/yeshi/buwan/util/factory/vo/UserInfoVOFactory.java
@@ -3,7 +3,7 @@
import com.yeshi.buwan.domain.user.LoginUser;
import com.yeshi.buwan.domain.user.LoginUserExtra;
import com.yeshi.buwan.domain.vip.UserVIPInfo;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.videos.pptv.PPTVUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.vo.client.user.UserInfoVO;
src/main/java/com/yeshi/buwan/util/log/VideoLogFactory.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.util.log;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2;
/**
 * 视频日志
src/main/java/com/yeshi/buwan/util/rank/IqiyiRankUtil.java
@@ -37,4 +37,9 @@
        return map;
    }
    public static void main(String[] args) throws IOException {
        Map<String, List<String>> map = getRank(10);
        System.out.println(map);
    }
}
src/main/java/com/yeshi/buwan/util/rank/TencentRankUtil.java
New file
@@ -0,0 +1,44 @@
package com.yeshi.buwan.util.rank;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TencentRankUtil {
    public static Map<String, List<String>> getRank(int count) throws IOException {
        Document doc = Jsoup.connect("https://v.qq.com/biu/ranks/?t=hotsearch").timeout(20000).get();
        Element root = doc.getElementsByClass("mod_row_box").get(0);
        Elements items = root.getElementsByClass("mod_rank_figure");
        Map<String, List<String>> map = new HashMap<>();
        for (int i = 0; i < items.size(); i++) {
            Element item = items.get(i);
            String title = item.getElementsByClass("title").get(0).text();
            List<String> list = new ArrayList<>();
            Elements names = item.getElementsByClass("item");
            for (int j = 0; j < names.size(); j++) {
                Element name = names.get(j);
                String itemTitle = name.getElementsByTag("a").attr("title");
                list.add(itemTitle);
                if (list.size() >= count)
                    break;
            }
            map.put(title, list);
        }
        return map;
    }
    public static void main(String[] args) throws IOException {
        Map<String, List<String>> map = getRank(10);
        System.out.println(map);
    }
}
src/main/java/com/yeshi/buwan/util/rank/YoukuRankUtil.java
New file
@@ -0,0 +1,44 @@
package com.yeshi.buwan.util.rank;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class YoukuRankUtil {
    public static Map<String, List<String>> getRank(int count) throws IOException {
        Document doc = Jsoup.connect("https://v.qq.com/biu/ranks/?t=hotsearch").timeout(20000).get();
        Element root = doc.getElementsByClass("mod_row_box").get(0);
        Elements items = root.getElementsByClass("mod_rank_figure");
        Map<String, List<String>> map = new HashMap<>();
        for (int i = 0; i < items.size(); i++) {
            Element item = items.get(i);
            String title = item.getElementsByClass("title").get(0).text();
            List<String> list = new ArrayList<>();
            Elements names = item.getElementsByClass("item");
            for (int j = 0; j < names.size(); j++) {
                Element name = names.get(j);
                String itemTitle = name.getElementsByTag("a").attr("title");
                list.add(itemTitle);
                if (list.size() >= count)
                    break;
            }
            map.put(title, list);
        }
        return map;
    }
    public static void main(String[] args) throws IOException {
        Map<String, List<String>> map = getRank(10);
        System.out.println(map);
    }
}
src/main/java/com/yeshi/buwan/util/video/AcfunApiUtil.java
@@ -8,10 +8,8 @@
import java.util.Map;
import com.google.gson.Gson;
import com.yeshi.buwan.acFun.AcfunVideoNew;
import com.yeshi.buwan.acFun.AcfunVideoResult;
import com.yeshi.buwan.service.imp.juhe.AcfunVideoNewService;
import com.yeshi.buwan.util.BeanUtil;
import com.yeshi.buwan.videos.acFun.AcfunVideoNew;
import com.yeshi.buwan.videos.acFun.AcfunVideoResult;
import com.yeshi.buwan.util.HttpUtil;
import com.yeshi.buwan.util.StringUtil;
src/main/java/com/yeshi/buwan/util/video/VideoDetailUtil.java
@@ -1,17 +1,14 @@
package com.yeshi.buwan.util.video;
import com.yeshi.buwan.acFun.AcFunUtil;
import com.yeshi.buwan.videos.acFun.AcFunUtil;
import com.yeshi.buwan.dao.VideoInfoDao;
import com.yeshi.buwan.domain.ResourceVideo;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.VideoResource;
import com.yeshi.buwan.domain.*;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.funtv.FunTVUtil;
import com.yeshi.buwan.funtv.FunTVUtil2;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil2;
import com.yeshi.buwan.mogotv.MogoTVUtil;
import com.yeshi.buwan.videos.funtv.FunTVUtil;
import com.yeshi.buwan.videos.funtv.FunTVUtil2;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2;
import com.yeshi.buwan.videos.mogotv.MogoTVUtil;
import com.yeshi.buwan.service.imp.VideoInfoService;
import com.yeshi.buwan.service.imp.VideoResourceService;
import com.yeshi.buwan.service.imp.juhe.FunTVService;
@@ -19,14 +16,13 @@
import com.yeshi.buwan.service.imp.juhe.SoHuService;
import com.yeshi.buwan.service.inter.juhe.*;
import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager;
import com.yeshi.buwan.sohu.SoHuUtil;
import com.yeshi.buwan.tencent.TencentVideoUtil;
import com.yeshi.buwan.videos.sohu.SoHuUtil;
import com.yeshi.buwan.videos.tencent.TencentVideoUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.log.VideoLogFactory;
import com.yeshi.buwan.util.video.shortvideo.ShortVideoUtil;
import com.yeshi.buwan.videos.bilibili.BilibiliUtil;
import com.yeshi.buwan.vo.AcceptData;
import com.yeshi.buwan.youku.YouKuUtil;
import com.yeshi.buwan.videos.youku.YouKuUtil;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.slf4j.Logger;
@@ -294,7 +290,7 @@
    @Cacheable(value = "homeCache", key = "'getPlayUrl'+'-'+#detailSystemId+'-'+#id+'-'+#type+'-'+#resourceid")
    public PlayUrl getPlayUrl(AcceptData acceptData, String detailSystemId, String id, String type, int resourceid, String videoid) {
        playLogger.info(VideoLogFactory.createPlayUrlLog(detailSystemId, id, type, resourceid, videoid));
        if (ShortVideoUtil.isShortVideoId(id)) {
        if (VideoUtil.getVideoFromType(id) == HomeVideo.FROM_TYPE_SHORT) {
            VideoResource vr = videoResourceService.getResource(resourceid + "");
            return solrShortVideoDataManager.getPlayUrl(id, vr);
        }
src/main/java/com/yeshi/buwan/util/video/VideoUtil.java
New file
@@ -0,0 +1,28 @@
package com.yeshi.buwan.util.video;
import com.yeshi.buwan.domain.HomeVideo;
import com.yeshi.buwan.util.NumberUtil;
public class VideoUtil {
    /**
     * 根据视频ID获取视频来源的类型
     *
     * @param id
     * @return
     */
    public static int getVideoFromType(String id) {
        if (NumberUtil.isNumeric(id)) {
            return HomeVideo.FROM_TYPE_LOCAL;
        } else {
            if (id.startsWith("s-")) {
                return HomeVideo.FROM_TYPE_SHORT;
            } else {
                return HomeVideo.FROM_TYPE_INTERNET;
            }
        }
    }
}
src/main/java/com/yeshi/buwan/util/video/shortvideo/ShortVideoUtil.java
File was deleted
src/main/java/com/yeshi/buwan/util/video/web/IqiyiWebUtil.java
File was renamed from src/main/java/com/yeshi/buwan/util/video/shortvideo/IqiyiWebUtil.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.util.video.shortvideo;
package com.yeshi.buwan.util.video.web;
import com.yeshi.buwan.util.StringUtil;
import net.sf.json.JSONArray;
src/main/java/com/yeshi/buwan/util/video/web/TencentWebUtil.java
File was renamed from src/main/java/com/yeshi/buwan/util/video/shortvideo/TencentWebUtil.java
@@ -1,16 +1,15 @@
package com.yeshi.buwan.util.video.shortvideo;
package com.yeshi.buwan.util.video.web;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.StringUtil;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
public class TencentWebUtil {
@@ -105,7 +104,21 @@
        String result = HttpUtil.get(url, params, headers);
        Document document = Jsoup.parse(result);
        Elements els = document.getElementsByClass("list_item");
        return parseVideoList(els);
    }
    public static List<TencentWebVideoInfo> getVideoList(String url) throws Exception {
        Map<String, String> headers = new HashMap<>();
        headers.put("referer", "https://v.qq.com/channel/ent");
        headers.put("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36");
        String result = HttpUtil.get(url, new HashMap<>(), headers);
        Document document = Jsoup.parse(result);
        Elements els = document.getElementsByClass("list_item");
        return parseVideoList(els);
    }
    private static List<TencentWebVideoInfo> parseVideoList(Elements els) throws UnsupportedEncodingException {
        List<TencentWebVideoInfo> list = new ArrayList<>();
        for (int i = 0; i < els.size(); i++) {
            Element ele = els.get(i);
@@ -115,9 +128,20 @@
            title = new String(title.getBytes("ISO-8859-1"), "UTF-8");
            String picture = ele.getElementsByTag("img").get(0).attr("src");
            picture = picture.startsWith("http") ? picture : "https:" + picture;
            String duration = ele.getElementsByClass("figure_caption").get(0).ownText();
            System.out.println(duration);
            String duration = null;
            try {
                duration = ele.getElementsByClass("figure_caption").get(0).ownText();
                duration = duration.trim();
                for (int j = 0; j < duration.length(); j++) {
                    char ca = duration.charAt(j);
                    if (!(ca >= 48 && ca < 59)) {
                        duration = null;
                        break;
                    }
                }
                System.out.println(duration);
            } catch (Exception e) {
            }
            TencentWebVideoInfo videoInfo = new TencentWebVideoInfo();
            videoInfo.setDuration(duration);
            videoInfo.setId(id);
@@ -129,6 +153,27 @@
        return list;
    }
    public static String getApiUrl(String webUrl, int page) {
        Map<String, String> params = parseParams(webUrl);
        int pageSize = 30;
        params.put("append", "1");
        params.put("listpage", page + "");
        params.put("offset", (page - 1) * pageSize + "");
        params.put("pagesize", pageSize + "");
        String url = "https://v.qq.com/x/bu/pagesheet/list";
        List<String> paramsList = new ArrayList<>();
        for (Iterator<String> its = params.keySet().iterator(); its.hasNext(); ) {
            String key = its.next();
            String value = params.get(key);
            try {
                paramsList.add(key + "=" + URLDecoder.decode(value, "UTF-8"));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
        return url + "?" + StringUtil.concat(paramsList, "&");
    }
    public static void main(String[] args) throws Exception {
        List<TencentWebVideoInfo> videoInfos = getVideoList(parseParams("https://v.qq.com/channel/ent?_all=1&channel=ent&iarea=2&itype=-1&listpage=1&sort=40"), 1);
src/main/java/com/yeshi/buwan/util/video/web/YouKuWebUtil.java
New file
@@ -0,0 +1,196 @@
package com.yeshi.buwan.util.video.web;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.lang.reflect.Type;
import java.util.List;
public class YouKuWebUtil {
    public static void main(String[] args) throws Exception {
        List<YouKuCoverInfo> list = parseCategoryList("https://www.youku.com/category/show/c_97_s_6.html?theme=dark");
        System.out.println(list);
    }
    /**
     * 解析专辑列表
     *
     * @param url
     */
    public static List<YouKuCoverInfo> parseCategoryList(String url) throws Exception {
        Document document = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36").timeout(60000).get();
        Elements els = document.getElementsByTag("script");
        for (int i = 0; i < els.size(); i++) {
            String value = els.get(i).html();
            if (value.contains("window.__INITIAL_DATA__")) {
                System.out.println(value);
                return parseVideoList(value);
            }
        }
        return null;
    }
    private static List<YouKuCoverInfo> parseVideoList(String dtaa) throws ScriptException, NoSuchMethodException {
        String script = "var _window={};" + dtaa.replace("window.", "_window.").replace("document.", "_document.");
        script += ";function getData(){return  JSON.stringify(_window.__INITIAL_DATA__.categoryVideos);}";
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine jsEngine = manager.getEngineByName("javascript");
        try {
            jsEngine.eval(script);
        } catch (ScriptException e) {
            e.printStackTrace();
        }
        Gson gson = new Gson();
        if (jsEngine instanceof Invocable) {
            Invocable in = (Invocable) jsEngine;
            Object data = in.invokeFunction("getData");
            Type type = new TypeToken<List<YouKuCoverInfo>>() {
            }.getType();
            List<YouKuCoverInfo> list = gson.fromJson(data.toString(), type);
            if (list != null) {
                for (YouKuCoverInfo info : list) {
                    info.setShowId(parseShowIdFromVideoLink(info.getVideoLink()));
                }
            }
            return list;
        }
        return null;
    }
    private static String parseShowIdFromVideoLink(String videoLink) {
        if (videoLink.indexOf("/id_") > -1) {
            return videoLink.substring(videoLink.indexOf("/id_"), videoLink.indexOf(".htm")).replace("/id_", "").trim();
        }
        return null;
    }
    public static class YouKuCoverInfo {
        private String summaryType;
        private String access;
        private String type;
        private String showThumb;
        private String img;
        private String summary;
        private String title;
        private String subTitle;
        private String rightTagText;
        private String videoId;
        private String videoLink;
        private String showId;
        public String getShowId() {
            return showId;
        }
        public void setShowId(String showId) {
            this.showId = showId;
        }
        public String getSummaryType() {
            return summaryType;
        }
        public void setSummaryType(String summaryType) {
            this.summaryType = summaryType;
        }
        public String getAccess() {
            return access;
        }
        public void setAccess(String access) {
            this.access = access;
        }
        public String getType() {
            return type;
        }
        public void setType(String type) {
            this.type = type;
        }
        public String getShowThumb() {
            return showThumb;
        }
        public void setShowThumb(String showThumb) {
            this.showThumb = showThumb;
        }
        public String getImg() {
            return img;
        }
        public void setImg(String img) {
            this.img = img;
        }
        public String getSummary() {
            return summary;
        }
        public void setSummary(String summary) {
            this.summary = summary;
        }
        public String getTitle() {
            return title;
        }
        public void setTitle(String title) {
            this.title = title;
        }
        public String getSubTitle() {
            return subTitle;
        }
        public void setSubTitle(String subTitle) {
            this.subTitle = subTitle;
        }
        public String getRightTagText() {
            return rightTagText;
        }
        public void setRightTagText(String rightTagText) {
            this.rightTagText = rightTagText;
        }
        public String getVideoId() {
            return videoId;
        }
        public void setVideoId(String videoId) {
            this.videoId = videoId;
        }
        public String getVideoLink() {
            return videoLink;
        }
        public void setVideoLink(String videoLink) {
            this.videoLink = videoLink;
        }
    }
}
src/main/java/com/yeshi/buwan/videos/acFun/AcFunAdpater.java
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcFunAdpater.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.acFun;
package com.yeshi.buwan.videos.acFun;
import java.lang.reflect.Type;
import java.util.ArrayList;
src/main/java/com/yeshi/buwan/videos/acFun/AcFunType.java
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcFunType.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.acFun;
package com.yeshi.buwan.videos.acFun;
import javax.persistence.Column;
import javax.persistence.Entity;
src/main/java/com/yeshi/buwan/videos/acFun/AcFunUtil.java
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcFunUtil.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.acFun;
package com.yeshi.buwan.videos.acFun;
import java.util.ArrayList;
import java.util.Calendar;
src/main/java/com/yeshi/buwan/videos/acFun/AcFunVideo.java
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcFunVideo.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.acFun;
package com.yeshi.buwan.videos.acFun;
import javax.persistence.Entity;
import javax.persistence.Id;
src/main/java/com/yeshi/buwan/videos/acFun/AcTypeEqVideoType.java
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcTypeEqVideoType.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.acFun;
package com.yeshi.buwan.videos.acFun;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
src/main/java/com/yeshi/buwan/videos/acFun/AcfunVideoMap.java
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcfunVideoMap.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.acFun;
package com.yeshi.buwan.videos.acFun;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
src/main/java/com/yeshi/buwan/videos/acFun/AcfunVideoMapDao.java
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcfunVideoMapDao.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.acFun;
package com.yeshi.buwan.videos.acFun;
import org.springframework.stereotype.Repository;
src/main/java/com/yeshi/buwan/videos/acFun/AcfunVideoNew.java
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcfunVideoNew.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.acFun;
package com.yeshi.buwan.videos.acFun;
import java.util.Date;
import java.util.List;
src/main/java/com/yeshi/buwan/videos/acFun/AcfunVideoNewDao.java
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcfunVideoNewDao.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.acFun;
package com.yeshi.buwan.videos.acFun;
import java.util.Date;
src/main/java/com/yeshi/buwan/videos/acFun/AcfunVideoResult.java
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcfunVideoResult.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.acFun;
package com.yeshi.buwan.videos.acFun;
import java.util.List;
src/main/java/com/yeshi/buwan/videos/bilibili/BilibiliUtil.java
@@ -16,7 +16,7 @@
import com.yeshi.buwan.videos.bilibili.entity.BilibiliMediaInfo;
import com.yeshi.buwan.videos.bilibili.entity.BilibiliSearchVideoMap;
import com.yeshi.buwan.videos.bilibili.entity.BilibiliVideo;
import com.yeshi.buwan.youku.YouKuUtil;
import com.yeshi.buwan.videos.youku.YouKuUtil;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
src/main/java/com/yeshi/buwan/videos/funtv/FunTVAlbumFactory.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/FunTVAlbumFactory.java
@@ -1,8 +1,8 @@
package com.yeshi.buwan.funtv;
package com.yeshi.buwan.videos.funtv;
import com.yeshi.buwan.funtv.entity.FunTVAlbum;
import com.yeshi.buwan.funtv.entity.FunTVVideo;
import com.yeshi.buwan.funtv.vo.*;
import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum;
import com.yeshi.buwan.videos.funtv.entity.FunTVVideo;
import com.yeshi.buwan.videos.funtv.vo.*;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
src/main/java/com/yeshi/buwan/videos/funtv/FunTVApi.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/FunTVApi.java
@@ -1,13 +1,13 @@
package com.yeshi.buwan.funtv;
package com.yeshi.buwan.videos.funtv;
import java.io.UnsupportedEncodingException;
import java.util.List;
import com.yeshi.buwan.funtv.vo.FunTVCartoonAlbum;
import com.yeshi.buwan.funtv.vo.FunTVMovieVideo;
import com.yeshi.buwan.funtv.vo.FunTVShortVideo;
import com.yeshi.buwan.funtv.vo.FunTVShowAlbum;
import com.yeshi.buwan.funtv.vo.FunTVTVAlbum;
import com.yeshi.buwan.videos.funtv.vo.FunTVCartoonAlbum;
import com.yeshi.buwan.videos.funtv.vo.FunTVMovieVideo;
import com.yeshi.buwan.videos.funtv.vo.FunTVShortVideo;
import com.yeshi.buwan.videos.funtv.vo.FunTVShowAlbum;
import com.yeshi.buwan.videos.funtv.vo.FunTVTVAlbum;
import com.yeshi.buwan.util.HttpUtil;
public class FunTVApi {
src/main/java/com/yeshi/buwan/videos/funtv/FunTVDataParseUtil.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/FunTVDataParseUtil.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.funtv;
package com.yeshi.buwan.videos.funtv;
import java.io.StringReader;
import java.util.ArrayList;
@@ -15,14 +15,14 @@
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import com.yeshi.buwan.funtv.vo.FunTVCartoonAlbum;
import com.yeshi.buwan.funtv.vo.FunTVCartoonVideo;
import com.yeshi.buwan.funtv.vo.FunTVMovieVideo;
import com.yeshi.buwan.funtv.vo.FunTVShortVideo;
import com.yeshi.buwan.funtv.vo.FunTVShowAlbum;
import com.yeshi.buwan.funtv.vo.FunTVShowVideo;
import com.yeshi.buwan.funtv.vo.FunTVTVAlbum;
import com.yeshi.buwan.funtv.vo.FunTVTVVideo;
import com.yeshi.buwan.videos.funtv.vo.FunTVCartoonAlbum;
import com.yeshi.buwan.videos.funtv.vo.FunTVCartoonVideo;
import com.yeshi.buwan.videos.funtv.vo.FunTVMovieVideo;
import com.yeshi.buwan.videos.funtv.vo.FunTVShortVideo;
import com.yeshi.buwan.videos.funtv.vo.FunTVShowAlbum;
import com.yeshi.buwan.videos.funtv.vo.FunTVShowVideo;
import com.yeshi.buwan.videos.funtv.vo.FunTVTVAlbum;
import com.yeshi.buwan.videos.funtv.vo.FunTVTVVideo;
/**
 * 解析FunTV的数
src/main/java/com/yeshi/buwan/videos/funtv/FunTVNewApi.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/FunTVNewApi.java
@@ -1,10 +1,9 @@
package com.yeshi.buwan.funtv;
package com.yeshi.buwan.videos.funtv;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yeshi.buwan.funtv.entity.FunTVAlbum2;
import com.yeshi.buwan.funtv.entity.FunTVShortVideo2;
import com.yeshi.buwan.funtv.entity.FunTVVideo2;
import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2;
import com.yeshi.buwan.videos.funtv.entity.FunTVVideo2;
import com.yeshi.buwan.util.HttpUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
src/main/java/com/yeshi/buwan/videos/funtv/FunTVUtil.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/FunTVUtil.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.funtv;
package com.yeshi.buwan.videos.funtv;
import java.util.ArrayList;
import java.util.Calendar;
@@ -8,8 +8,8 @@
import javax.annotation.Resource;
import com.yeshi.buwan.funtv.vo.base.FunTVBaseAlbum;
import com.yeshi.buwan.funtv.vo.base.FunTVBaseVideo;
import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseAlbum;
import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseVideo;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate4.HibernateCallback;
@@ -19,18 +19,16 @@
import com.yeshi.buwan.domain.CategoryVideo;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.funtv.entity.FunTVAlbum;
import com.yeshi.buwan.funtv.vo.FunTVCartoonAlbum;
import com.yeshi.buwan.funtv.vo.FunTVCartoonVideo;
import com.yeshi.buwan.funtv.vo.FunTVMovieVideo;
import com.yeshi.buwan.funtv.vo.FunTVShortVideo;
import com.yeshi.buwan.funtv.vo.FunTVShowAlbum;
import com.yeshi.buwan.funtv.vo.FunTVShowVideo;
import com.yeshi.buwan.funtv.vo.FunTVTVAlbum;
import com.yeshi.buwan.funtv.vo.FunTVTVVideo;
import com.yeshi.buwan.funtv.entity.FunTVVideo;
import com.yeshi.buwan.service.imp.VideoResourceService;
import com.yeshi.buwan.service.imp.VideoService;
import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum;
import com.yeshi.buwan.videos.funtv.vo.FunTVCartoonAlbum;
import com.yeshi.buwan.videos.funtv.vo.FunTVCartoonVideo;
import com.yeshi.buwan.videos.funtv.vo.FunTVMovieVideo;
import com.yeshi.buwan.videos.funtv.vo.FunTVShortVideo;
import com.yeshi.buwan.videos.funtv.vo.FunTVShowAlbum;
import com.yeshi.buwan.videos.funtv.vo.FunTVShowVideo;
import com.yeshi.buwan.videos.funtv.vo.FunTVTVAlbum;
import com.yeshi.buwan.videos.funtv.vo.FunTVTVVideo;
import com.yeshi.buwan.videos.funtv.entity.FunTVVideo;
import com.yeshi.buwan.service.imp.juhe.FunTVService;
import com.yeshi.buwan.util.JuheVideoUtil;
import com.yeshi.buwan.util.NumberUtil;
src/main/java/com/yeshi/buwan/videos/funtv/FunTVUtil2.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/FunTVUtil2.java
@@ -1,21 +1,14 @@
package com.yeshi.buwan.funtv;
package com.yeshi.buwan.videos.funtv;
import com.yeshi.buwan.dao.CategoryVideoDao;
import com.yeshi.buwan.domain.CategoryVideo;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.VideoType;
import com.yeshi.buwan.funtv.entity.*;
import com.yeshi.buwan.funtv.vo.*;
import com.yeshi.buwan.funtv.vo.base.FunTVBaseAlbum;
import com.yeshi.buwan.funtv.vo.base.FunTVBaseVideo;
import com.yeshi.buwan.videos.funtv.entity.*;
import com.yeshi.buwan.service.imp.juhe.FunTVService;
import com.yeshi.buwan.util.JuheVideoUtil;
import com.yeshi.buwan.util.NumberUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
import com.yeshi.buwan.util.video.VideoConstant;
import com.yeshi.buwan.vo.AcceptData;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate4.HibernateCallback;
src/main/java/com/yeshi/buwan/videos/funtv/FunTVVideoFactory.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/FunTVVideoFactory.java
@@ -1,7 +1,7 @@
package com.yeshi.buwan.funtv;
package com.yeshi.buwan.videos.funtv;
import com.yeshi.buwan.funtv.entity.FunTVVideo;
import com.yeshi.buwan.funtv.vo.*;
import com.yeshi.buwan.videos.funtv.entity.FunTVVideo;
import com.yeshi.buwan.videos.funtv.vo.*;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
src/main/java/com/yeshi/buwan/videos/funtv/entity/FunTVAlbum.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/FunTVAlbum.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.funtv.entity;
package com.yeshi.buwan.videos.funtv.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient;
src/main/java/com/yeshi/buwan/videos/funtv/entity/FunTVAlbum2.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/FunTVAlbum2.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.funtv.entity;
package com.yeshi.buwan.videos.funtv.entity;
import com.google.gson.annotations.SerializedName;
import org.springframework.data.annotation.Id;
src/main/java/com/yeshi/buwan/videos/funtv/entity/FunTVAlbumVideoMap.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/FunTVAlbumVideoMap.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.funtv.entity;
package com.yeshi.buwan.videos.funtv.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
src/main/java/com/yeshi/buwan/videos/funtv/entity/FunTVShortVideo2.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/FunTVShortVideo2.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.funtv.entity;
package com.yeshi.buwan.videos.funtv.entity;
import com.google.gson.annotations.SerializedName;
import org.springframework.data.annotation.Id;
src/main/java/com/yeshi/buwan/videos/funtv/entity/FunTVVideo.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/FunTVVideo.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.funtv.entity;
package com.yeshi.buwan.videos.funtv.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient;
src/main/java/com/yeshi/buwan/videos/funtv/entity/FunTVVideo2.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/FunTVVideo2.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.funtv.entity;
package com.yeshi.buwan.videos.funtv.entity;
import com.google.gson.annotations.SerializedName;
import org.springframework.data.annotation.Id;
src/main/java/com/yeshi/buwan/videos/funtv/entity/VideoFunTV.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/VideoFunTV.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.funtv.entity;
package com.yeshi.buwan.videos.funtv.entity;
import org.springframework.data.annotation.Id;
src/main/java/com/yeshi/buwan/videos/funtv/entity/VideoFunTV2.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/VideoFunTV2.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.funtv.entity;
package com.yeshi.buwan.videos.funtv.entity;
import org.springframework.data.annotation.Id;
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVCartoonAlbum.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVCartoonAlbum.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.funtv.vo;
package com.yeshi.buwan.videos.funtv.vo;
import com.yeshi.buwan.funtv.vo.base.FunTVBaseAlbum;
import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseAlbum;
import java.util.List;
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVCartoonVideo.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVCartoonVideo.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.funtv.vo;
package com.yeshi.buwan.videos.funtv.vo;
import com.yeshi.buwan.funtv.vo.base.FunTVBaseVideo;
import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseVideo;
public class FunTVCartoonVideo extends FunTVBaseVideo {
    private String num;// 视频集数(分集必须提供,预告片花为空)
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVMovieVideo.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVMovieVideo.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.funtv.vo;
package com.yeshi.buwan.videos.funtv.vo;
import com.yeshi.buwan.funtv.vo.base.FunTVBaseVideo;
import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseVideo;
public class FunTVMovieVideo extends FunTVBaseVideo {
    private String aid;// 媒体ID
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVShortVideo.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVShortVideo.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.funtv.vo;
package com.yeshi.buwan.videos.funtv.vo;
import com.yeshi.buwan.funtv.vo.base.FunTVBaseVideo;
import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseVideo;
public class FunTVShortVideo  extends FunTVBaseVideo {
    private String title;
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVShowAlbum.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVShowAlbum.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.funtv.vo;
package com.yeshi.buwan.videos.funtv.vo;
import com.yeshi.buwan.funtv.vo.base.FunTVBaseAlbum;
import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseAlbum;
import java.util.List;
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVShowVideo.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVShowVideo.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.funtv.vo;
package com.yeshi.buwan.videos.funtv.vo;
import com.yeshi.buwan.funtv.vo.base.FunTVBaseVideo;
import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseVideo;
public class FunTVShowVideo  extends FunTVBaseVideo {
    private String issue;// 期号如2011-07-23期/issue//
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVTVAlbum.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVTVAlbum.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.funtv.vo;
package com.yeshi.buwan.videos.funtv.vo;
import com.yeshi.buwan.funtv.vo.base.FunTVBaseAlbum;
import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseAlbum;
import java.util.List;
src/main/java/com/yeshi/buwan/videos/funtv/vo/FunTVTVVideo.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVTVVideo.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.funtv.vo;
package com.yeshi.buwan.videos.funtv.vo;
import com.yeshi.buwan.funtv.vo.base.FunTVBaseVideo;
import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseVideo;
public class FunTVTVVideo extends FunTVBaseVideo {
    private String num;// 视频集数(分集必须提供,如是片花则为空)
src/main/java/com/yeshi/buwan/videos/funtv/vo/base/FunTVBaseAlbum.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/base/FunTVBaseAlbum.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.funtv.vo.base;
package com.yeshi.buwan.videos.funtv.vo.base;
/**
 * 风行专辑
src/main/java/com/yeshi/buwan/videos/funtv/vo/base/FunTVBaseVideo.java
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/base/FunTVBaseVideo.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.funtv.vo.base;
package com.yeshi.buwan.videos.funtv.vo.base;
public class FunTVBaseVideo {
    private String vid;// 视频ID/vid//
src/main/java/com/yeshi/buwan/videos/hanmi/HanmiApiUtil.java
New file
@@ -0,0 +1,135 @@
package com.yeshi.buwan.videos.hanmi;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.videos.hanmi.entity.HanmiShow;
import com.yeshi.buwan.videos.hanmi.entity.HanmiShowEpisode;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class HanmiApiUtil {
    public static HanmiShow parseShowDetail(String url) throws Exception {
        HanmiShow show = new HanmiShow();
        show.setUrl(url);
        return parseShowDetail(show);
    }
    public static HanmiShow parseShowDetail(HanmiShow show) throws Exception {
        if (show.getUrl() == null || !show.getUrl().startsWith("https://www.hmtv.me/show/")) {
            throw new Exception("链接不合法");
        }
        Document doc = Jsoup.connect(show.getUrl()).timeout(60000).referrer("https://www.hmtv.me/hanju").userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36").get();
        Element root = doc.getElementsByClass("video-content").get(0);
        Element titleItem = root.getElementsByClass("article-title").get(0);
        //标题
        String title = titleItem.getElementsByClass("item-title").get(0).ownText();
        String year = titleItem.getElementsByClass("item-year").get(0).ownText();
        //节目信息
        Element videoBox = root.getElementsByClass("video_box").get(0);
        String picture = videoBox.getElementsByClass("video_img").get(0).getElementsByTag("img").attr("src");
        Element videoInfo = videoBox.getElementsByClass("video_info").get(0);
        String videoInfoStr = videoInfo.html();
        String[] sts = videoInfoStr.split("<br>");
        Map<String, String> infos = new HashMap<>();
        for (String st : sts) {
            Document d = Jsoup.parse(st);
            String value = d.text();
            if (value.indexOf(":") > -1)
                infos.put(value.substring(0, value.indexOf(":")).trim(), value.substring(value.indexOf(":") + 1).trim());
        }
        //剧集列表
        Element eposide = root.getElementsByClass("video_list_li").get(0);
        Elements eposides = eposide.getElementsByTag("a");
        List<HanmiShowEpisode> episodeList = new ArrayList<>();
        for (int i = 0; i < eposides.size(); i++) {
            String href = eposides.get(i).attr("href");
            String tag = eposides.get(i).ownText();
            HanmiShowEpisode ep = new HanmiShowEpisode();
            ep.setOrderBy(i + 1);
            ep.setPlayUrl("https://www.hmtv.me" + href);
            ep.setTag(tag);
            episodeList.add(ep);
        }
        //简介
        String desc = root.getElementsByClass("jianjie").get(0).text();
        if (show.getTitle() == null)
            show.setTitle(title.split(" ")[0]);
        show.setYear(year.replace("(", "").replace(")", ""));
        show.setPicture(picture);
        if (infos.get("主演") != null)
            show.setActors(infos.get("主演").replace("/", ","));
        if (infos.get("导演") != null)
            show.setDirector(infos.get("导演"));
        if (infos.get("类型") != null)
            show.setCategorys(infos.get("类型"));
        if (infos.get("国家/地区") != null)
            show.setArea(infos.get("国家/地区"));
        if (infos.get("首播") != null)
            show.setRelaseDate(infos.get("首播").substring(0, infos.get("首播").indexOf("(") > -1 ? infos.get("首播").indexOf("(") : infos.get("首播").length()));
        show.setId(show.getUrl().replace("https://www.hmtv.me/show/", "").trim());
        show.setEpisodeList(episodeList);
        show.setUrl(show.getUrl());
        show.setDesc(desc.trim());
        return show;
    }
    public static List<HanmiShow> parseList(String listUrl) throws IOException {
        List<HanmiShow> list = new ArrayList<>();
        Document doc = Jsoup.connect(listUrl).timeout(60000).referrer("https://www.hmtv.me/hanju").userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36").get();
        Element root = doc.getElementsByClass("m-movies").get(0);
        Elements items = root.getElementsByClass("u-movie");
        for (int i = 0; i < items.size(); i++) {
            Element item = items.get(i);
            HanmiShow show = new HanmiShow();
            show.setUrl(item.getElementsByTag("a").get(0).attr("href"));
            show.setTag(item.getElementsByClass("zhuangtai").get(0).text());
            String score = item.getElementsByClass("pingfen").get(0).text();
            if (score != null) {
                score = score.replace("分", "");
                show.setScore(score);
            }
            show.setTitle(item.getElementsByTag("h2").get(0).getElementsByTag("a").get(0).ownText());
            list.add(show);
        }
        return list;
    }
    public static List<HanmiShow> parseDetailList(List<HanmiShow> showList) throws Exception {
        List<HanmiShow> list = new ArrayList<>();
        for (HanmiShow show : showList) {
            try {
                list.add(parseShowDetail(show));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return list;
    }
    public static void main(String[] args) throws Exception {
        parseDetailList(parseList("https://www.hmtv.me/hanju"));
    }
}
src/main/java/com/yeshi/buwan/videos/hanmi/entity/HanmiShow.java
New file
@@ -0,0 +1,173 @@
package com.yeshi.buwan.videos.hanmi.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.Date;
import java.util.List;
@Document(collection = "hanmiShow")
public class HanmiShow {
    @Id
    private String id;
    private String title;
    private String url;
    private String tag;
    private String desc;
    private String score;
    private String picture;
    private String director;
    private String actors;
    private String type;
    private String categorys;
    private String area;
    private String year;
    private String relaseDate;
    private Date createTime;
    private Date updateTime;
    @Transient
    private List<HanmiShowEpisode> episodeList;
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getDirector() {
        return director;
    }
    public void setDirector(String director) {
        this.director = director;
    }
    public String getActors() {
        return actors;
    }
    public void setActors(String actors) {
        this.actors = actors;
    }
    public String getCategorys() {
        return categorys;
    }
    public void setCategorys(String categorys) {
        this.categorys = categorys;
    }
    public String getArea() {
        return area;
    }
    public void setArea(String area) {
        this.area = area;
    }
    public String getRelaseDate() {
        return relaseDate;
    }
    public void setRelaseDate(String relaseDate) {
        this.relaseDate = relaseDate;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public List<HanmiShowEpisode> getEpisodeList() {
        return episodeList;
    }
    public void setEpisodeList(List<HanmiShowEpisode> episodeList) {
        this.episodeList = episodeList;
    }
    public String getYear() {
        return year;
    }
    public void setYear(String year) {
        this.year = year;
    }
    public String getPicture() {
        return picture;
    }
    public void setPicture(String picture) {
        this.picture = picture;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getTag() {
        return tag;
    }
    public void setTag(String tag) {
        this.tag = tag;
    }
    public String getDesc() {
        return desc;
    }
    public void setDesc(String desc) {
        this.desc = desc;
    }
    public String getScore() {
        return score;
    }
    public void setScore(String score) {
        this.score = score;
    }
}
src/main/java/com/yeshi/buwan/videos/hanmi/entity/HanmiShowEpisode.java
New file
@@ -0,0 +1,81 @@
package com.yeshi.buwan.videos.hanmi.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.Date;
@Document(collection = "hanmiShowEpisode")
public class HanmiShowEpisode {
    @Id
    private String id;
    private String showId;
    private int orderBy;
    private String tag;
    private String playUrl;
    private Date createTime;
    private Date updateTime;
    public static String createId(String showId, String tag) {
        return showId + "#" + tag;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getShowId() {
        return showId;
    }
    public void setShowId(String showId) {
        this.showId = showId;
    }
    public int getOrderBy() {
        return orderBy;
    }
    public void setOrderBy(int orderBy) {
        this.orderBy = orderBy;
    }
    public String getTag() {
        return tag;
    }
    public void setTag(String tag) {
        this.tag = tag;
    }
    public String getPlayUrl() {
        return playUrl;
    }
    public void setPlayUrl(String playUrl) {
        this.playUrl = playUrl;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
}
src/main/java/com/yeshi/buwan/videos/iqiyi/IqiYiAPI.java
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/IqiYiAPI.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.iqiyi;
package com.yeshi.buwan.videos.iqiyi;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Type;
@@ -10,10 +10,10 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum;
import com.yeshi.buwan.iqiyi.entity.IqiyiChannel;
import com.yeshi.buwan.iqiyi.entity.IqiyiVideoInfo;
import com.yeshi.buwan.iqiyi.entity.PlayControls;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiChannel;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiVideoInfo;
import com.yeshi.buwan.videos.iqiyi.entity.PlayControls;
import com.yeshi.buwan.util.HttpUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
src/main/java/com/yeshi/buwan/videos/iqiyi/IqiYiNewAPI.java
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/IqiYiNewAPI.java
@@ -1,9 +1,8 @@
package com.yeshi.buwan.iqiyi;
package com.yeshi.buwan.videos.iqiyi;
import com.google.gson.*;
import com.google.gson.reflect.TypeToken;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.iqiyi.vo.IqiyiAlbumListResult;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.videos.iqiyi.vo.IqiyiAlbumListResult;
import com.yeshi.buwan.util.HttpUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/IqiyiAlbum.java
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/IqiyiAlbum.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.iqiyi.entity;
package com.yeshi.buwan.videos.iqiyi.entity;
import com.google.gson.annotations.SerializedName;
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/IqiyiAlbum2.java
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/IqiyiAlbum2.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.iqiyi.entity;
package com.yeshi.buwan.videos.iqiyi.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/IqiyiChannel.java
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/IqiyiChannel.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.iqiyi.entity;
package com.yeshi.buwan.videos.iqiyi.entity;
public class IqiyiChannel {
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/IqiyiUpdateQueue.java
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/IqiyiUpdateQueue.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.iqiyi.entity;
package com.yeshi.buwan.videos.iqiyi.entity;
public class IqiyiUpdateQueue {
    private Long id;//主键ID
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/IqiyiVideoInfo.java
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/IqiyiVideoInfo.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.iqiyi.entity;
package com.yeshi.buwan.videos.iqiyi.entity;
import java.util.List;
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/PlayControls.java
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/PlayControls.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.iqiyi.entity;
package com.yeshi.buwan.videos.iqiyi.entity;
public class PlayControls {
    private int platformId;
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/ThreeCategory.java
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/ThreeCategory.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.iqiyi.entity;
package com.yeshi.buwan.videos.iqiyi.entity;
import com.google.gson.annotations.Expose;
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/VideoIqiyi.java
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/VideoIqiyi.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.iqiyi.entity;
package com.yeshi.buwan.videos.iqiyi.entity;
import com.yeshi.buwan.domain.VideoInfo;
src/main/java/com/yeshi/buwan/videos/iqiyi/entity/VideoIqiyi2.java
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/VideoIqiyi2.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.iqiyi.entity;
package com.yeshi.buwan.videos.iqiyi.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
src/main/java/com/yeshi/buwan/videos/iqiyi/util/IqiyiUtil.java
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/util/IqiyiUtil.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.iqiyi.util;
package com.yeshi.buwan.videos.iqiyi.util;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -10,8 +10,8 @@
import com.yeshi.buwan.domain.VideoResource;
import com.yeshi.buwan.domain.VideoType;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.iqiyi.IqiYiAPI;
import com.yeshi.buwan.iqiyi.entity.*;
import com.yeshi.buwan.videos.iqiyi.IqiYiAPI;
import com.yeshi.buwan.videos.iqiyi.entity.*;
import com.yeshi.buwan.log.LogHelper;
import com.yeshi.buwan.service.imp.juhe.IqiyiService;
import com.yeshi.buwan.util.JuheVideoUtil;
src/main/java/com/yeshi/buwan/videos/iqiyi/util/IqiyiUtil2.java
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/util/IqiyiUtil2.java
@@ -1,13 +1,12 @@
package com.yeshi.buwan.iqiyi.util;
package com.yeshi.buwan.videos.iqiyi.util;
import com.yeshi.buwan.domain.AdminInfo;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.domain.VideoType;
import com.yeshi.buwan.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.iqiyi.vo.IqiyiAlbumListResult;
import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.videos.iqiyi.vo.IqiyiAlbumListResult;
import com.yeshi.buwan.service.inter.juhe.Iqiyi2Service;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
import com.yeshi.buwan.util.log.VideoLogFactory;
import com.yeshi.buwan.util.mq.CMQManager;
@@ -99,6 +98,56 @@
        }
    }
    /**
     * 强制保存
     *
     * @param list
     */
    private void forceSaveAlbumAndVideo(List<IqiyiAlbum2> list) {
        if (list == null)
            return;
        for (IqiyiAlbum2 album : list) {
            if (album.getContentType() != 1)
                continue;
            if (!albumIsValid(album)) {//如果是无效的专辑就需要删除
                iqiyi2Service.deleteByAid(album.getId());
                continue;
            }
            logger.info(VideoLogFactory.createAddAlbumLog(album));
            int validCount = 0;
            if (album.getTvQipuIds() != null && album.getTvQipuIds().size() > 0) {
                int pageSize = 10;
                int page = album.getTvQipuIds().size() % pageSize == 0 ? album.getTvQipuIds().size() / pageSize : album.getTvQipuIds().size() / pageSize + 1;
                for (int p = 0; p < page; p++) {
                    int startIndex = p * pageSize;
                    int toIndex = (startIndex + pageSize) > album.getTvQipuIds().size() ? album.getTvQipuIds().size() : (startIndex + pageSize);
                    List<Long> tvQipuIds = new ArrayList<>();
                    tvQipuIds.addAll(album.getTvQipuIds().subList(startIndex, toIndex));
                    if (tvQipuIds.size() > 0) {
                        List<IqiyiAlbum2> detailList = IqiYiNewAPI.getAlbumOrVideoDetail(tvQipuIds);
                        if (detailList != null)
                            for (IqiyiAlbum2 video : detailList)
                                if (canPlay(video.getPlayControls())) {
                                    iqiyi2Service.saveIqiyiAlbum(video);
                                    validCount++;
                                } else
                                    iqiyi2Service.deleteByAid(video.getId());
                    }
                }
            }
            if(validCount==0){
                iqiyi2Service.deleteByAid(album.getId());
            }else {
                iqiyi2Service.saveIqiyiAlbum(album);
                CMQManager.getInstance().addIqiyiAlbumUpdateMsg(album.getId());
            }
        }
    }
    /**
     * 同步所有的专辑与视频
     *
@@ -123,11 +172,15 @@
     *
     * @param aid
     */
    public void syncByAid(Long aid) {
    public void syncByAid(Long aid, boolean force) {
        List<Long> aidList = new ArrayList<>();
        aidList.add(aid);
        List<IqiyiAlbum2> album2List = IqiYiNewAPI.getAlbumOrVideoDetail(aidList);
        saveAlbumAndVideo(album2List);
        if (force) {
            forceSaveAlbumAndVideo(album2List);
        } else {
            saveAlbumAndVideo(album2List);
        }
    }
    //拉取所有的电影
@@ -312,9 +365,13 @@
            return false;
        List<IqiyiAlbum2.PlayControlsBean> playControls = album2.getPlayControls();
        if (playControls == null)
        return canPlay(playControls);
    }
    public static boolean canPlay(List<IqiyiAlbum2.PlayControlsBean> playControlsBeans) {
        if (playControlsBeans == null)
            return false;
        for (IqiyiAlbum2.PlayControlsBean bean : playControls) {
        for (IqiyiAlbum2.PlayControlsBean bean : playControlsBeans) {
            if (bean.getPlatformId() == 15 && bean.getAvailableStatus() == 1)
                return true;
        }
src/main/java/com/yeshi/buwan/videos/iqiyi/vo/IqiyiAlbumListResult.java
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/vo/IqiyiAlbumListResult.java
@@ -1,6 +1,6 @@
package com.yeshi.buwan.iqiyi.vo;
package com.yeshi.buwan.videos.iqiyi.vo;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2;
import java.util.List;
src/main/java/com/yeshi/buwan/videos/mogotv/MogoTVApiUtil.java
File was renamed from src/main/java/com/yeshi/buwan/mogotv/MogoTVApiUtil.java
@@ -1,9 +1,9 @@
package com.yeshi.buwan.mogotv;
package com.yeshi.buwan.videos.mogotv;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.mogotv.entity.MogoTVVideo;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVVideo;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.yeshi.utils.HttpUtil;
src/main/java/com/yeshi/buwan/videos/mogotv/MogoTVUtil.java
File was renamed from src/main/java/com/yeshi/buwan/mogotv/MogoTVUtil.java
@@ -1,13 +1,13 @@
package com.yeshi.buwan.mogotv;
package com.yeshi.buwan.videos.mogotv;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.VideoResource;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.mogotv.entity.MogoTVSearchVideoMap;
import com.yeshi.buwan.mogotv.entity.MogoTVVideo;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVSearchVideoMap;
import com.yeshi.buwan.videos.mogotv.entity.MogoTVVideo;
import com.yeshi.buwan.service.imp.VideoResourceService;
import com.yeshi.buwan.service.imp.VideoTypeService;
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
src/main/java/com/yeshi/buwan/videos/mogotv/entity/MogoTVClipInfo.java
File was renamed from src/main/java/com/yeshi/buwan/mogotv/entity/MogoTVClipInfo.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.mogotv.entity;
package com.yeshi.buwan.videos.mogotv.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient;
src/main/java/com/yeshi/buwan/videos/mogotv/entity/MogoTVSearchVideoMap.java
File was renamed from src/main/java/com/yeshi/buwan/mogotv/entity/MogoTVSearchVideoMap.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.mogotv.entity;
package com.yeshi.buwan.videos.mogotv.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
src/main/java/com/yeshi/buwan/videos/mogotv/entity/MogoTVVideo.java
File was renamed from src/main/java/com/yeshi/buwan/mogotv/entity/MogoTVVideo.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.mogotv.entity;
package com.yeshi.buwan.videos.mogotv.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
src/main/java/com/yeshi/buwan/videos/pptv/PPTVApiUtil.java
File was renamed from src/main/java/com/yeshi/buwan/pptv/PPTVApiUtil.java
@@ -1,9 +1,9 @@
package com.yeshi.buwan.pptv;
package com.yeshi.buwan.videos.pptv;
import com.google.gson.Gson;
import com.yeshi.buwan.pptv.entity.PPTVGoodsInfo;
import com.yeshi.buwan.pptv.entity.PPTVProgram;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.pptv.entity.PPTVGoodsInfo;
import com.yeshi.buwan.videos.pptv.entity.PPTVProgram;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeries;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
import com.yeshi.buwan.util.log.LoggerUtil;
@@ -15,7 +15,6 @@
import org.slf4j.LoggerFactory;
import org.yeshi.utils.HttpUtil;
import java.lang.reflect.Field;
import java.net.URLEncoder;
import java.util.*;
src/main/java/com/yeshi/buwan/videos/pptv/PPTVQuery.java
File was renamed from src/main/java/com/yeshi/buwan/pptv/PPTVQuery.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.pptv;
package com.yeshi.buwan.videos.pptv;
public class PPTVQuery {
    public String seriesCode;
src/main/java/com/yeshi/buwan/videos/pptv/PPTVUtil.java
File was renamed from src/main/java/com/yeshi/buwan/pptv/PPTVUtil.java
@@ -1,9 +1,9 @@
package com.yeshi.buwan.pptv;
package com.yeshi.buwan.videos.pptv;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.VideoType;
import com.yeshi.buwan.pptv.entity.PPTVProgram;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.pptv.entity.PPTVProgram;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeries;
import com.yeshi.buwan.util.AESUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.video.VideoConstant;
src/main/java/com/yeshi/buwan/videos/pptv/PPTVVipManager.java
File was renamed from src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.pptv;
package com.yeshi.buwan.videos.pptv;
import com.yeshi.buwan.domain.user.LoginUserExtra;
import com.yeshi.buwan.domain.vip.OrderRecord;
@@ -10,8 +10,8 @@
import com.yeshi.buwan.exception.order.OrderException;
import com.yeshi.buwan.exception.vip.VIPException;
import com.yeshi.buwan.exception.vip.VideoBuyRecordException;
import com.yeshi.buwan.pptv.entity.PPTVProgram;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.pptv.entity.PPTVProgram;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeries;
import com.yeshi.buwan.service.inter.LoginUserService;
import com.yeshi.buwan.service.inter.juhe.PPTVService;
import com.yeshi.buwan.service.inter.vip.VIPPriceService;
src/main/java/com/yeshi/buwan/videos/pptv/entity/PPTVGoodsInfo.java
File was renamed from src/main/java/com/yeshi/buwan/pptv/entity/PPTVGoodsInfo.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.pptv.entity;
package com.yeshi.buwan.videos.pptv.entity;
import java.math.BigDecimal;
src/main/java/com/yeshi/buwan/videos/pptv/entity/PPTVProgram.java
File was renamed from src/main/java/com/yeshi/buwan/pptv/entity/PPTVProgram.java
@@ -1,10 +1,9 @@
package com.yeshi.buwan.pptv.entity;
package com.yeshi.buwan.videos.pptv.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.Date;
import java.util.List;
@Document(collection = "pptvProgram")
public class PPTVProgram {
src/main/java/com/yeshi/buwan/videos/pptv/entity/PPTVSeries.java
File was renamed from src/main/java/com/yeshi/buwan/pptv/entity/PPTVSeries.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.pptv.entity;
package com.yeshi.buwan.videos.pptv.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient;
src/main/java/com/yeshi/buwan/videos/pptv/entity/PPTVSeriesProgramMap.java
File was renamed from src/main/java/com/yeshi/buwan/pptv/entity/PPTVSeriesProgramMap.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.pptv.entity;
package com.yeshi.buwan.videos.pptv.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
src/main/java/com/yeshi/buwan/videos/pptv/entity/VideoPPTVMap.java
File was renamed from src/main/java/com/yeshi/buwan/pptv/entity/VideoPPTVMap.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.pptv.entity;
package com.yeshi.buwan.videos.pptv.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
src/main/java/com/yeshi/buwan/videos/sohu/SoHuApi.java
File was renamed from src/main/java/com/yeshi/buwan/sohu/SoHuApi.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.sohu;
package com.yeshi.buwan.videos.sohu;
import java.lang.reflect.Type;
import java.util.HashMap;
@@ -8,11 +8,11 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.yeshi.buwan.sohu.entity.RootCategory;
import com.yeshi.buwan.sohu.entity.SecondCategory;
import com.yeshi.buwan.sohu.entity.SoHuAlbum;
import com.yeshi.buwan.sohu.entity.SoHuVideo;
import com.yeshi.buwan.sohu.entity.SohuVideoContent;
import com.yeshi.buwan.videos.sohu.entity.RootCategory;
import com.yeshi.buwan.videos.sohu.entity.SecondCategory;
import com.yeshi.buwan.videos.sohu.entity.SoHuAlbum;
import com.yeshi.buwan.videos.sohu.entity.SoHuVideo;
import com.yeshi.buwan.videos.sohu.entity.SohuVideoContent;
import com.yeshi.buwan.util.HttpUtil;
import net.sf.json.JSONObject;
src/main/java/com/yeshi/buwan/videos/sohu/SoHuUtil.java
File was renamed from src/main/java/com/yeshi/buwan/sohu/SoHuUtil.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.sohu;
package com.yeshi.buwan.videos.sohu;
import java.util.ArrayList;
import java.util.Calendar;
@@ -23,11 +23,11 @@
import com.yeshi.buwan.domain.VideoType;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.service.imp.juhe.SoHuService;
import com.yeshi.buwan.sohu.entity.RootCategory;
import com.yeshi.buwan.sohu.entity.SecondCategory;
import com.yeshi.buwan.sohu.entity.SoHuAlbum;
import com.yeshi.buwan.sohu.entity.SoHuVideo;
import com.yeshi.buwan.sohu.entity.SohuVideoContent;
import com.yeshi.buwan.videos.sohu.entity.RootCategory;
import com.yeshi.buwan.videos.sohu.entity.SecondCategory;
import com.yeshi.buwan.videos.sohu.entity.SoHuAlbum;
import com.yeshi.buwan.videos.sohu.entity.SoHuVideo;
import com.yeshi.buwan.videos.sohu.entity.SohuVideoContent;
import com.yeshi.buwan.util.JuheVideoUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
src/main/java/com/yeshi/buwan/videos/sohu/entity/RootCategory.java
File was renamed from src/main/java/com/yeshi/buwan/sohu/entity/RootCategory.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.sohu.entity;
package com.yeshi.buwan.videos.sohu.entity;
import java.util.List;
src/main/java/com/yeshi/buwan/videos/sohu/entity/SecondCategory.java
File was renamed from src/main/java/com/yeshi/buwan/sohu/entity/SecondCategory.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.sohu.entity;
package com.yeshi.buwan.videos.sohu.entity;
import com.google.gson.annotations.SerializedName;
src/main/java/com/yeshi/buwan/videos/sohu/entity/SoHuAlbum.java
File was renamed from src/main/java/com/yeshi/buwan/sohu/entity/SoHuAlbum.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.sohu.entity;
package com.yeshi.buwan.videos.sohu.entity;
import java.util.List;
src/main/java/com/yeshi/buwan/videos/sohu/entity/SoHuPlay.java
File was renamed from src/main/java/com/yeshi/buwan/sohu/entity/SoHuPlay.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.sohu.entity;
package com.yeshi.buwan.videos.sohu.entity;
public class SoHuPlay {
    private String aid;
src/main/java/com/yeshi/buwan/videos/sohu/entity/SoHuVideo.java
File was renamed from src/main/java/com/yeshi/buwan/sohu/entity/SoHuVideo.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.sohu.entity;
package com.yeshi.buwan.videos.sohu.entity;
/**
 * 搜狐视频详情
src/main/java/com/yeshi/buwan/videos/sohu/entity/SohuVideoContent.java
File was renamed from src/main/java/com/yeshi/buwan/sohu/entity/SohuVideoContent.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.sohu.entity;
package com.yeshi.buwan.videos.sohu.entity;
public class SohuVideoContent {
    private String id;
src/main/java/com/yeshi/buwan/videos/sohu/entity/VideoSoHu.java
File was renamed from src/main/java/com/yeshi/buwan/sohu/entity/VideoSoHu.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.sohu.entity;
package com.yeshi.buwan.videos.sohu.entity;
import com.yeshi.buwan.domain.VideoInfo;
src/main/java/com/yeshi/buwan/videos/tencent/TencentVideoApiUtil.java
File was renamed from src/main/java/com/yeshi/buwan/tencent/TencentVideoApiUtil.java
@@ -1,8 +1,9 @@
package com.yeshi.buwan.tencent;
package com.yeshi.buwan.videos.tencent;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yeshi.buwan.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.util.video.web.TencentWebUtil;
import net.sf.json.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
@@ -12,7 +13,6 @@
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Iterator;
@@ -137,37 +137,39 @@
    }
    private static List<TencentCoverInfo> parseList(String url) {
    public static List<TencentCoverInfo> getVideoList(String url) throws Exception {
        List<TencentCoverInfo> coverInfoList = new ArrayList<>();
        try {
            Document document = Jsoup.connect(url).timeout(5000).get();
            Elements els = document.getElementsByAttributeValue("class", "list_item");
            for (int i = 0; i < els.size(); i++) {
                String href = els.get(i).getElementsByTag("a").get(0).attr("href");
                String img = els.get(i).getElementsByTag("img").get(0).attr("src");
                img = img.startsWith("http") ? img : "http:" + img;
                try {
                    TencentCoverInfo coverInfo = getCoverInfo(href);
                    coverInfo.setVertical_pic_url(img);
                    coverInfoList.add(coverInfo);
                } catch (Exception e) {
                    e.printStackTrace();
                }
        List<TencentWebUtil.TencentWebVideoInfo> list = TencentWebUtil.getVideoList(url);
        for (TencentWebUtil.TencentWebVideoInfo info : list) {
            try {
                TencentCoverInfo coverInfo = getCoverInfo(info.getPlayUrl());
                coverInfo.setVertical_pic_url(info.getPicture());
                coverInfoList.add(coverInfo);
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return coverInfoList;
    }
    public static List<TencentCoverInfo> getVideoListByCategory(String channel, int page) {
        return parseList(String.format("https://v.qq.com/x/bu/pagesheet/list?_all=1&append=1&channel=%s&ipay=2&listpage=%s&offset=%s&pagesize=30&sort=18", channel, page, (page - 1) * 30));
        String url = String.format("https://v.qq.com/x/bu/pagesheet/list?_all=1&append=1&channel=%s&ipay=2&listpage=%s&offset=%s&pagesize=30&sort=18", channel, page, (page - 1) * 30);
        try {
            return getVideoList(url);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    public static void main(String[] args) throws Exception {
        List<TencentCoverInfo> list1 = getVideoList(TencentWebUtil.getApiUrl("https://v.qq.com/channel/tv?_all=1&channel=tv&iarea=818&listpage=1&sort=18", 1));
        System.out.println(list1);
        if (1 > 0)
            return;
//        try {
        TencentCoverInfo info = getCoverInfo("https://v.qq.com/x/cover/7q544xyrava3vxf.html");
        System.out.println(info);
src/main/java/com/yeshi/buwan/videos/tencent/TencentVideoUtil.java
File was renamed from src/main/java/com/yeshi/buwan/tencent/TencentVideoUtil.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.tencent;
package com.yeshi.buwan.videos.tencent;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.domain.VideoInfo;
@@ -10,13 +10,12 @@
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.service.inter.juhe.TencentVideoService;
import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager;
import com.yeshi.buwan.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.tencent.entity.TencentCoverVideo;
import com.yeshi.buwan.tencent.entity.TencentSearchVideoMap;
import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.videos.tencent.entity.TencentCoverVideo;
import com.yeshi.buwan.videos.tencent.entity.TencentSearchVideoMap;
import com.yeshi.buwan.util.factory.VideoInfoFactory;
import com.yeshi.buwan.util.video.VideoConstant;
import com.yeshi.buwan.util.video.shortvideo.ShortVideoUtil;
import com.yeshi.buwan.youku.YouKuUtil;
import com.yeshi.buwan.videos.youku.YouKuUtil;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
src/main/java/com/yeshi/buwan/videos/tencent/entity/TencentCoverInfo.java
File was renamed from src/main/java/com/yeshi/buwan/tencent/entity/TencentCoverInfo.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.tencent.entity;
package com.yeshi.buwan.videos.tencent.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient;
src/main/java/com/yeshi/buwan/videos/tencent/entity/TencentCoverVideo.java
File was renamed from src/main/java/com/yeshi/buwan/tencent/entity/TencentCoverVideo.java
@@ -1,11 +1,10 @@
package com.yeshi.buwan.tencent.entity;
package com.yeshi.buwan.videos.tencent.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.Date;
import java.util.List;
@Document(collection = "tencentCoverVideo")
public class TencentCoverVideo {
src/main/java/com/yeshi/buwan/videos/tencent/entity/TencentSearchVideoMap.java
File was renamed from src/main/java/com/yeshi/buwan/tencent/entity/TencentSearchVideoMap.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.tencent.entity;
package com.yeshi.buwan.videos.tencent.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
src/main/java/com/yeshi/buwan/videos/youku/YouKuApiUtil.java
File was renamed from src/main/java/com/yeshi/buwan/youku/YouKuApiUtil.java
@@ -1,10 +1,10 @@
package com.yeshi.buwan.youku;
package com.yeshi.buwan.videos.youku;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yeshi.buwan.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.youku.entity.YouKuShowSimple;
import com.yeshi.buwan.youku.entity.YouKuVideo;
import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.videos.youku.entity.YouKuShowSimple;
import com.yeshi.buwan.videos.youku.entity.YouKuVideo;
import org.json.JSONObject;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.StringUtil;
@@ -48,6 +48,15 @@
        ps.put("opensysparams", new JSONObject(params).toString());
        return HttpUtil.get("https://openapi.youku.com/router/rest.json", ps, new HashMap<>());
    }
    public static void getSearchRank(String channel, int count) {
        Map<String, String> params = new HashMap<>();
        params.put("limit", count + "");
        if (channel != null) {
            params.put("channel", channel);
        }
        System.out.println(request("youku.search.keyword.rankinglist", params));
    }
    /**
@@ -109,9 +118,12 @@
    public static void main(String[] args) {
        getSearchRank(null,10);
//        YouKuShowDetail detail = getShowDetail("1e61efbfbdefbfbd04ef");
//        System.out.println(detail);
        getVideoList("0a17e614d7e311e68ce4", 1, 20);
//        getVideoList("0a17e614d7e311e68ce4", 1, 20);
//        ListResultDTO resultDTO = getShowListByCategory("电视剧", 1);
src/main/java/com/yeshi/buwan/videos/youku/YouKuUtil.java
File was renamed from src/main/java/com/yeshi/buwan/youku/YouKuUtil.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.youku;
package com.yeshi.buwan.videos.youku;
import com.yeshi.buwan.domain.VideoDetailInfo;
import com.yeshi.buwan.domain.VideoInfo;
@@ -9,12 +9,11 @@
import com.yeshi.buwan.service.imp.VideoTypeService;
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.service.inter.juhe.YouKuService;
import com.yeshi.buwan.util.JsonUtil;
import com.yeshi.buwan.util.factory.VideoInfoFactory;
import com.yeshi.buwan.util.video.VideoConstant;
import com.yeshi.buwan.youku.entity.YouKuSearchVideoMap;
import com.yeshi.buwan.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.youku.entity.YouKuVideo;
import com.yeshi.buwan.videos.youku.entity.YouKuSearchVideoMap;
import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.videos.youku.entity.YouKuVideo;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
src/main/java/com/yeshi/buwan/videos/youku/entity/YouKuSearchVideoMap.java
File was renamed from src/main/java/com/yeshi/buwan/youku/entity/YouKuSearchVideoMap.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.youku.entity;
package com.yeshi.buwan.videos.youku.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
src/main/java/com/yeshi/buwan/videos/youku/entity/YouKuShowDetail.java
File was renamed from src/main/java/com/yeshi/buwan/youku/entity/YouKuShowDetail.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.youku.entity;
package com.yeshi.buwan.videos.youku.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient;
src/main/java/com/yeshi/buwan/videos/youku/entity/YouKuShowSimple.java
File was renamed from src/main/java/com/yeshi/buwan/youku/entity/YouKuShowSimple.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.youku.entity;
package com.yeshi.buwan.videos.youku.entity;
public class YouKuShowSimple {
src/main/java/com/yeshi/buwan/videos/youku/entity/YouKuVideo.java
File was renamed from src/main/java/com/yeshi/buwan/youku/entity/YouKuVideo.java
@@ -1,4 +1,4 @@
package com.yeshi.buwan.youku.entity;
package com.yeshi.buwan.videos.youku.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
src/main/java/com/yeshi/buwan/vo/video/VideoAdminInfoVO.java
@@ -2,6 +2,8 @@
import com.yeshi.buwan.domain.solr.SolrAlbumVideo;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.solr.SolrShortVideo;
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
import com.yeshi.buwan.util.video.VideoConstant;
@@ -103,6 +105,58 @@
        return vo;
    }
    public static VideoAdminInfoVO create(InternetSearchVideo solrVideo, Map<Long, String> resourceNameMap) {
        VideoAdminInfoVO vo = new VideoAdminInfoVO();
        vo.setId(solrVideo.getId());
        vo.setName(solrVideo.getName());
        vo.setVpicture(solrVideo.getVpicture());
        vo.setShow(true + "");
        vo.setUpdatetime(TimeUtil.getGernalTime(
                Long.parseLong(
                        StringUtil.isNullOrEmpty(solrVideo.getUpdateTime().getTime() + "") ? "0" : solrVideo.getUpdateTime().getTime() + ""),
                "yyyy-MM-dd"));
        vo.setTag(solrVideo.getTag());
        vo.setFreeType(0);
        vo.setArea(solrVideo.getArea());
        vo.setHpicture(solrVideo.getHpicture());
        List<String> resources = new ArrayList<>();
        if (solrVideo.getResourceIds() != null) {
            String[] rids = solrVideo.getResourceIds().split(",");
            for (String rid : rids) {
                resources.add(resourceNameMap.get(Long.parseLong(rid)));
            }
        }
        vo.setResourceList(resources);
        if (solrVideo.getCreateTime() != null)
            vo.setCreateTime(TimeUtil.getGernalTime(solrVideo.getCreateTime().getTime(), "yyyy-MM-dd"));
        else
            vo.setCreateTime(TimeUtil.getGernalTime(solrVideo.getUpdateTime().getTime(), "yyyy-MM-dd"));
        return vo;
    }
    public static VideoAdminInfoVO create(SolrShortVideo solrVideo, Map<Long, String> resourceNameMap) {
        VideoAdminInfoVO vo = new VideoAdminInfoVO();
        vo.setId(solrVideo.getId());
        vo.setName(solrVideo.getName());
        vo.setShow(true + "");
        vo.setUpdatetime(TimeUtil.getGernalTime(solrVideo.getLocalUpdateTime(),
                "yyyy-MM-dd"));
        vo.setTag(solrVideo.getTag());
        vo.setFreeType(0);
        vo.setArea(solrVideo.getArea());
        vo.setHpicture(solrVideo.getPicture());
        List<String> resources = new ArrayList<>();
        if (solrVideo.getResourceId() != null) {
            resources.add(resourceNameMap.get(Long.parseLong(solrVideo.getResourceId() + "")));
        }
        vo.setResourceList(resources);
        vo.setCreateTime(TimeUtil.getGernalTime(solrVideo.getThirdUpdateTime(), "yyyy-MM-dd"));
        return vo;
    }
    public String getId() {
        return id;
    }
src/main/java/com/yeshi/buwan/vo/video/VideoDetailVO.java
@@ -55,12 +55,35 @@
        //全屏视频广告
        @Expose
        private boolean fullVideo;
        //全屏视频广告比例
        @Expose
        private int fullVideoWeight;
        //插屏广告比例
        @Expose
        private int interstitialWeight;
        public VideoAdInfo(boolean playVideo, boolean fullVideo) {
            this.playVideo = playVideo;
            this.fullVideo = fullVideo;
        }
        public int getFullVideoWeight() {
            return fullVideoWeight;
        }
        public void setFullVideoWeight(int fullVideoWeight) {
            this.fullVideoWeight = fullVideoWeight;
        }
        public int getInterstitialWeight() {
            return interstitialWeight;
        }
        public void setInterstitialWeight(int interstitialWeight) {
            this.interstitialWeight = interstitialWeight;
        }
        public boolean isPlayVideo() {
            return playVideo;
        }
src/main/resources/domain/video/funtv/VideoFunTV.hbm.xml
@@ -2,7 +2,7 @@
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.yeshi.buwan.funtv.entity">
<hibernate-mapping package="com.yeshi.buwan.videos.funtv.entity">
    <class name="VideoFunTV" table="wk_video_funtv">
        <id name="id" column="id">
            <generator class="native"></generator>
src/main/resources/domain/video/iqiyi/IqiyiAlbum.hbm.xml
@@ -2,7 +2,7 @@
<!DOCTYPE hibernate-mapping PUBLIC
          "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.yeshi.buwan.iqiyi.entity">
<hibernate-mapping package="com.yeshi.buwan.videos.iqiyi.entity">
    <class name="IqiyiAlbum" table="wk_iqiyi_album">
        <id name="id" column="id">
            <generator class="native"></generator>
src/main/resources/domain/video/iqiyi/IqiyiUpdateQueue.hbm.xml
@@ -2,7 +2,7 @@
<!DOCTYPE hibernate-mapping PUBLIC
          "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.yeshi.buwan.iqiyi.entity">
<hibernate-mapping package="com.yeshi.buwan.videos.iqiyi.entity">
    <class name="IqiyiUpdateQueue" table="wk_iqiyi_update_queue">
        <id name="id" column="id">
            <generator class="native"></generator>
src/main/resources/domain/video/iqiyi/IqiyiVideoInfo.hbm.xml
@@ -2,7 +2,7 @@
<!DOCTYPE hibernate-mapping PUBLIC
          "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.yeshi.buwan.iqiyi.entity">
<hibernate-mapping package="com.yeshi.buwan.videos.iqiyi.entity">
    <class name="IqiyiVideoInfo" table="wk_iqiyi_album_tvid">
        <id name="id" column="id">
            <generator class="native"></generator>
src/main/resources/domain/video/iqiyi/VideoIqiyi.hbm.xml
@@ -2,7 +2,7 @@
<!DOCTYPE hibernate-mapping PUBLIC
          "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.yeshi.buwan.iqiyi.entity">
<hibernate-mapping package="com.yeshi.buwan.videos.iqiyi.entity">
    <class name="VideoIqiyi" table="wk_video_iqiyi">
        <id name="id" column="id">
            <generator class="native"></generator>
src/main/resources/domain/video/sohu/SoHuAlbum.hbm.xml
@@ -2,7 +2,7 @@
<!DOCTYPE hibernate-mapping PUBLIC
          "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.yeshi.buwan.sohu.entity">
<hibernate-mapping package="com.yeshi.buwan.videos.sohu.entity">
    <class name="SoHuAlbum" table="wk_sohu_album">
        <id name="id" column="id">
            <generator class="native"></generator>
src/main/resources/domain/video/sohu/SoHuVideo.hbm.xml
@@ -2,7 +2,7 @@
<!DOCTYPE hibernate-mapping PUBLIC
          "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.yeshi.buwan.sohu.entity">
<hibernate-mapping package="com.yeshi.buwan.videos.sohu.entity">
    <class name="SoHuVideo" table="wk_sohu_video">
        <id name="id" column="id">
            <generator class="native"></generator>
src/main/resources/domain/video/sohu/VideoSoHu.hbm.xml
@@ -2,7 +2,7 @@
<!DOCTYPE hibernate-mapping PUBLIC
          "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.yeshi.buwan.sohu.entity">
<hibernate-mapping package="com.yeshi.buwan.videos.sohu.entity">
    <class name="VideoSoHu" table="wk_video_sohu">
        <id name="id" column="id">
            <generator class="native"></generator>
src/main/resources/hibernate.cfg.xml
@@ -183,9 +183,9 @@
        <mapping resource="domain/vip/OrderRecord.hbm.xml"/>
        <mapping class="com.yeshi.buwan.domain.AcFunTemporary"/>
        <mapping class="com.yeshi.buwan.acFun.AcFunVideo"/>
        <mapping class="com.yeshi.buwan.acFun.AcFunType"/>
        <mapping class="com.yeshi.buwan.acFun.AcTypeEqVideoType"/>
        <mapping class="com.yeshi.buwan.videos.acFun.AcFunVideo"/>
        <mapping class="com.yeshi.buwan.videos.acFun.AcFunType"/>
        <mapping class="com.yeshi.buwan.videos.acFun.AcTypeEqVideoType"/>
        <mapping class="com.yeshi.buwan.domain.Holmes"/>
src/main/webapp/admin/new/fenqu.html
@@ -124,8 +124,10 @@
            </div>
            <select name="select" class="form-control search select-detailsystem">
            <select name="select" class="form-control search select-fromtype">
                <option value="0">自有库</option>
                <option value="1">全网搜</option>
                <option value="2">短视频</option>
            </select>
            <select name="select" class="form-control search contenttype">
                <option value="1">正片</option>
@@ -257,7 +259,8 @@
                        <td width="12%">
                            <div style="position: relative">
                                <img v-bind:src="item.hpicture" class="cover-h">
                                <img v-if="item.freeType>0" src="image/icon_vip.png" style="position: absolute;right: 0;bottom: 0;height: 20px;">
                                <img v-if="item.freeType>0" src="image/icon_vip.png"
                                     style="position: absolute;right: 0;bottom: 0;height: 20px;">
                            </div>
                        </td>
                        <td width="8%">
@@ -606,28 +609,6 @@
            }
        }, 'json');
        //获取系统列表
        $.post('api/common/detailsystemlist', {}, function (data) {
            if (data.code == 0) {
                $(".select-detailsystem").empty();
                $(".select-detailsystem").append("<option value='0'>全部</option>");
                $(".detailsystem").empty();
                data.data.forEach(function (detailsystem) {
                    var html = "";
                    html += "<option value=" + detailsystem.id + ">";
                    html += detailsystem.name;
                    html += "</option>";
                    $(".select-detailsystem").append(html);
                    html = "<li><input type='checkbox' value=" + detailsystem.id + ">";
                    html += "<span>" + detailsystem.name;
                    html += "</span> </li>";
                    $(".detailsystem").append(html);
                });
            }
        }, 'json');
    });
</script>
@@ -638,8 +619,9 @@
        function getCheckedItems() {
            var ids = "";
            for (var i = 0; i < $(".check-item").length; i++) {
                if ($(".check-item").eq(i).is(':checked')) {
                    ids += $(".check-item").eq(i).attr("key") + ",";
                    ids += app.videos[i].id + ",";
                }
            }
            if (ids.length > 0)
@@ -658,6 +640,11 @@
                    //直接添加到推荐
                    var key = video.id;
                    $("#hometype .videoids").val(key);
                    //清空显示
                    // $("#hometype").find("input[type=checkbox]").each(function () {
                    //     this.checked = false;
                    // });
                    $("#hometype").modal("show");
                    // var index = layer.open({
@@ -721,7 +708,7 @@
                    $.post('api/video/videolist', {
                        "page": page,
                        "videotype": $(".search-div .videotypes select:last").val(),
                        "detailsystem": $(".search-div .select-detailsystem").val(),
                        "fromtype": $(".search-div .select-fromtype").val(),
                        "type": $(".search-div .type").val(),
                        "contenttype": $(".contenttype").val(),
                        "freeType": $(".freeType").val(),
src/main/webapp/admin/new/tuijian-lanmuneirong-videos.html
@@ -222,7 +222,19 @@
                    var pic = (da.picture == null || da.picture.length == 0) ? da.video.hpicture : da.picture;
                    fk.find(".picture img").attr("src", pic);
                    //fk.find(".picture img").attr("src", (da.picture.length < 8 ? da.juhe.hpicture : da.picture));
                    fk.find(".fromType").html(da.fromType==0?'自有库':"全网搜");
                    switch (da.fromType) {
                        case  0:
                            fk.find(".fromType").html('自有库');
                            break;
                        case  1:
                            fk.find(".fromType").html('全网搜');
                            break;
                        case  2:
                            fk.find(".fromType").html('短视频');
                            break;
                    }
                    fk.find(".tag").html(da.tag);
                    fk.find(".createtime").html(getCommonTime(da.createtime));
                    fk.find(".edit").attr("key", da.id);
@@ -253,7 +265,7 @@
                $(".table .anniu .edit").bind("click", function () {
                    var id = $(this).attr("key");
                    xadmin.open('修改', './tuijian-lanmuneirong-videos-edit.html?id='+id, 400, 250);
                    xadmin.open('修改', './tuijian-lanmuneirong-videos-edit.html?id=' + id, 400, 250);
                });
            }, 'json');
src/test/java/com/hxh/spring/test/ClearVideo.java
@@ -10,9 +10,9 @@
import com.yeshi.buwan.dao.VideoInfoDao;
import com.yeshi.buwan.domain.ResourceVideo;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum;
import com.yeshi.buwan.iqiyi.entity.IqiyiVideoInfo;
import com.yeshi.buwan.iqiyi.entity.VideoIqiyi;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiVideoInfo;
import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi;
import com.yeshi.buwan.service.imp.ClearService;
import com.yeshi.buwan.util.BeanUtil;
import org.springframework.test.context.ContextConfiguration;
src/test/java/com/hxh/spring/test/DES.java
@@ -9,7 +9,7 @@
public class DES {
    @org.junit.Test
    public void test1() {
        String st = "iDp+mknN2urZPWPAdmBTv1ME3YqW7QwsfhAy2vuuu5CVsK44pBV6Oc3DK0LVEPK/ub/3zZPrRFLcpzNeQC0aZHqfoLGqiUKMvuuaHz1qzAdv+nTV8eBkkVMAM6fQI8wdQYb/zqKW8Eiq9Dmc3GgSnjWBohTKFpFJv4FmiGN8aTwDMwzRJK2Yne1j/f2nXTSJ0otygjq7pazihUJK2LsOeA==";
        String st = "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";
        System.out.println(DESUtil.decode(st));
    }
src/test/java/com/hxh/spring/test/FunTV.java
@@ -6,11 +6,11 @@
import com.yeshi.buwan.dao.juhe.funtv.VideoFunTVNewDao;
import com.yeshi.buwan.domain.system.DetailSystem;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.funtv.FunTVApi;
import com.yeshi.buwan.funtv.FunTVDataParseUtil;
import com.yeshi.buwan.funtv.FunTVUtil;
import com.yeshi.buwan.funtv.entity.VideoFunTV;
import com.yeshi.buwan.funtv.vo.FunTVTVAlbum;
import com.yeshi.buwan.videos.funtv.FunTVApi;
import com.yeshi.buwan.videos.funtv.FunTVDataParseUtil;
import com.yeshi.buwan.videos.funtv.FunTVUtil;
import com.yeshi.buwan.videos.funtv.entity.VideoFunTV;
import com.yeshi.buwan.videos.funtv.vo.FunTVTVAlbum;
import com.yeshi.buwan.service.imp.juhe.FunTVService;
import com.yeshi.buwan.util.BeanUtil;
import com.yeshi.buwan.util.CacheUtil;
src/test/java/com/hxh/spring/test/FunTV2.java
@@ -4,12 +4,11 @@
import com.yeshi.buwan.dao.juhe.funtv.FunTVVideo2Dao;
import com.yeshi.buwan.dao.juhe.funtv.VideoFunTV2Dao;
import com.yeshi.buwan.dao.juhe.funtv.VideoFunTVNewDao;
import com.yeshi.buwan.funtv.FunTVNewApi;
import com.yeshi.buwan.funtv.FunTVUtil;
import com.yeshi.buwan.funtv.entity.FunTVAlbum2;
import com.yeshi.buwan.funtv.entity.FunTVShortVideo2;
import com.yeshi.buwan.funtv.entity.FunTVVideo2;
import com.yeshi.buwan.funtv.entity.VideoFunTV2;
import com.yeshi.buwan.videos.funtv.FunTVNewApi;
import com.yeshi.buwan.videos.funtv.FunTVUtil;
import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2;
import com.yeshi.buwan.videos.funtv.entity.FunTVVideo2;
import com.yeshi.buwan.videos.funtv.entity.VideoFunTV2;
import com.yeshi.buwan.job.video.FunTV2VideoUpdate;
import com.yeshi.buwan.service.imp.ResourceVideoService;
import com.yeshi.buwan.service.imp.VideoInfoService;
src/test/java/com/hxh/spring/test/Iqiyi.java
@@ -1,11 +1,11 @@
package com.hxh.spring.test;
import com.yeshi.buwan.dao.VideoInfoDao;
import com.yeshi.buwan.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.iqiyi.entity.IqiyiUpdateQueue;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.iqiyi.vo.IqiyiAlbumListResult;
import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiUpdateQueue;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.videos.iqiyi.vo.IqiyiAlbumListResult;
import com.yeshi.buwan.service.imp.ClearService;
import com.yeshi.buwan.service.imp.juhe.IqiyiQueueService;
import com.yeshi.buwan.util.BeanUtil;
@@ -13,7 +13,6 @@
import com.yeshi.buwan.util.TimeUtil;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.junit.Test;
import org.springframework.orm.hibernate4.HibernateCallback;
import java.util.ArrayList;
src/test/java/com/hxh/spring/test/Iqiyi2.java
@@ -2,15 +2,17 @@
import com.google.gson.Gson;
import com.yeshi.buwan.dao.juhe.iqiyi.IqiyiAlbum2Dao;
import com.yeshi.buwan.dao.juhe.iqiyi.VideoIqiyi2Dao;
import com.yeshi.buwan.dao.juhe.iqiyi.VideoIqiyiDao;
import com.yeshi.buwan.domain.ResourceVideo;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.VideoResource;
import com.yeshi.buwan.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.iqiyi.entity.VideoIqiyi;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil2;
import com.yeshi.buwan.iqiyi.vo.IqiyiAlbumListResult;
import com.yeshi.buwan.exception.video.IqiyiVideoSolrException;
import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2;
import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2;
import com.yeshi.buwan.videos.iqiyi.vo.IqiyiAlbumListResult;
import com.yeshi.buwan.job.video.Iqiyi2VideoUpdate;
import com.yeshi.buwan.query.Iqiyi2AlbumQuery;
import com.yeshi.buwan.service.imp.CategoryVideoService;
@@ -27,6 +29,7 @@
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.orm.hibernate4.HibernateObjectRetrievalFailureException;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
@@ -88,7 +91,7 @@
    @Test
    public void syncOne() {
        iqiyiUtil2.syncByAid(111367401L);
        iqiyiUtil2.syncByAid(111367401L, true);
//        iqiyiUtil2.syncByAid(253393601L);
//        iqiyiUtil2.syncByAid(253305701L);
//        iqiyiUtil2.syncByAid(247742201L);
@@ -120,7 +123,7 @@
//            iqiyi2Service.addToVideoInfo(album2);
//        }
        Long qikuID = 6544570339302501L;
        Long qikuID = 6917577458483001L;
        IqiyiAlbum2 album2 = iqiyi2Service.selectAlbumById(qikuID);
        if (album2 != null) {
@@ -140,7 +143,7 @@
        List<String> urlList = IqiyiUtil2.getAlbumUrlsFromUrl("https://www.iqiyi.com/v_u3d4t2dr7o.html?vfrm=pcw_dianshiju&vfrmblk=B&vfrmrst=fcs_2_p2");
        for (String url : urlList) {
            String aid = IqiYiNewAPI.getAidByUrl(url);
            iqiyiUtil2.syncByAid(Long.parseLong(aid));
            iqiyiUtil2.syncByAid(Long.parseLong(aid), true);
        }
    }
@@ -180,7 +183,7 @@
    public void count() {
//        long count = iqiyiAlbum2Dao.countVideoByAid(253120001L);
//        System.out.println(count);
        IqiyiAlbum2 album2 = iqiyiAlbum2Dao.get(7974832045751601L);
        IqiyiAlbum2 album2 = iqiyiAlbum2Dao.get(2928406697871201L);
        iqiyi2Service.addToVideoInfo(album2);
    }
@@ -293,11 +296,61 @@
    }
    @Resource
    private VideoIqiyi2Dao videoIqiyi2Dao;
    @Test
    public void getDetail() {
        iqiyiUtil2.syncByAid(222728201L);
        iqiyiUtil2.syncByAid(2928406697871201L, true);
//        System.out.println(album2);
    }
    //同步爱奇艺的专题
    @Test
    public void syncIqiyiAlbum() throws IOException {
//写入爱奇艺ID
//        File f = new File("D:/iqiyi.txt");
//        f.delete();
//        if (!f.exists())
//            f.createNewFile();
//        BufferedWriter out = new BufferedWriter(new FileWriter(f.getAbsolutePath()));
//        try {
//            for (int i = 0; i < 261; i++) {
//                List<VideoIqiyi2> list = videoIqiyi2Dao.listAll(i*100, 100);
//                for (VideoIqiyi2 iqiyi2 : list) {
//                    out.write(iqiyi2.getIqiyiId() + "");
//                    out.newLine();
//                }
//            }
//        } finally {
//            out.close();
//        }
        List<String> list = new ArrayList<>();
        Scanner scanner = new Scanner(new File("D:/iqiyi.txt"));
        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            list.add(line.trim());
        }
        scanner.close();
        for (int i = 25244; i < list.size(); i++)
            try {
                iqiyiUtil2.syncByAid(Long.parseLong(list.get(i)), true);
            } catch (HibernateObjectRetrievalFailureException e) {
                e.printStackTrace();
            }
    }
    @Test
    public void validSolrState() {
        try {
            iqiyi2Service.validAlbumSolrState(2928406697871201L);
        } catch (IqiyiVideoSolrException e) {
            e.printStackTrace();
        }
    }
}
src/test/java/com/hxh/spring/test/PPTVTest.java
@@ -6,15 +6,13 @@
import com.yeshi.buwan.dao.juhe.pptv.PPTVSeriesProgramMapDao;
import com.yeshi.buwan.dao.juhe.pptv.VideoPPTVMapDao;
import com.yeshi.buwan.job.video.PPTVVideoUpdate;
import com.yeshi.buwan.pptv.PPTVApiUtil;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.pptv.entity.PPTVSeriesProgramMap;
import com.yeshi.buwan.pptv.entity.VideoPPTVMap;
import com.yeshi.buwan.videos.pptv.PPTVApiUtil;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeriesProgramMap;
import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap;
import com.yeshi.buwan.service.inter.LoginUserService;
import com.yeshi.buwan.service.inter.juhe.PPTVService;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.log.LoggerUtil;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
src/test/java/com/hxh/spring/test/SoHuTest.java
@@ -7,7 +7,7 @@
import org.springframework.orm.hibernate4.HibernateCallback;
import com.yeshi.buwan.dao.juhe.sohu.SoHuVideoDao;
import com.yeshi.buwan.sohu.SoHuUtil;
import com.yeshi.buwan.videos.sohu.SoHuUtil;
import com.yeshi.buwan.util.BeanUtil;
public class SoHuTest {
src/test/java/com/hxh/spring/test/SolrTest.java
@@ -262,4 +262,18 @@
        }
    }
    @Test
    public void addToAlbum() {
        albumVideoMapService.add(videoInfoService.getVideoInfo("8441251"));
    }
    @Test
    public void getById() {
        SolrAlbumVideo solrAlbumVideo = solrDataManager.findOne("8441251");
        System.out.println(solrAlbumVideo);
    }
}
src/test/java/com/hxh/spring/test/Test.java
@@ -1,6 +1,7 @@
package com.hxh.spring.test;
import java.util.List;
import java.util.regex.Pattern;
import com.yeshi.buwan.domain.system.DetailSystem;
import com.yeshi.buwan.domain.VideoDetailInfo;
@@ -18,48 +19,49 @@
public class Test {
    @org.junit.Test
    public void test() {
        VideoResourceUtil videoResouceUtil = com.yeshi.buwan.util.BeanUtil.getBean(VideoResourceUtil.class);
        VideoDetailUtil videoDeailUtil = com.yeshi.buwan.util.BeanUtil.getBean(VideoDetailUtil.class);
        ClassService classService = com.yeshi.buwan.util.BeanUtil.getBean(ClassService.class);
    @org.junit.Test
    public void test() {
        VideoResourceUtil videoResouceUtil = com.yeshi.buwan.util.BeanUtil.getBean(VideoResourceUtil.class);
        VideoDetailUtil videoDeailUtil = com.yeshi.buwan.util.BeanUtil.getBean(VideoDetailUtil.class);
        ClassService classService = com.yeshi.buwan.util.BeanUtil.getBean(ClassService.class);
        List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(new DetailSystem("44"), Integer.parseInt(70 + ""),null);
        List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(new DetailSystem("44"), Integer.parseInt(70 + ""), null);
        VideoInfo info = (videoDeailUtil.getVideoInfo(null,3400048 + "", 13 + "", resourceList,
                CacheUtil.getMD5Long(resourceList)));
        VideoInfo info = (videoDeailUtil.getVideoInfo(null, 3400048 + "", 13 + "", resourceList,
                CacheUtil.getMD5Long(resourceList)));
        List<VideoType> typeList = classService.getVideoTypeList(info.getId());
        if (typeList != null && typeList.size() > 0) {
            VideoType type = typeList.get(0);
            while (type.getParent() != null)
                type = type.getParent();
            info.setVideoType(type);
        }
        List<VideoType> typeList = classService.getVideoTypeList(info.getId());
        if (typeList != null && typeList.size() > 0) {
            VideoType type = typeList.get(0);
            while (type.getParent() != null)
                type = type.getParent();
            info.setVideoType(type);
        }
        info.setPlayPicture(VideoPictureUtil.getShowPicture(info, "android", 70 + ""));
        for (VideoDetailInfo vd : info.getVideoDetailList()) {
            if (StringUtil.isNullOrEmpty(vd.getExtraId()))
                vd.setExtraId(vd.getId() + "");
        }
        info.setPlayPicture(VideoPictureUtil.getShowPicture(info, "android", 70 + ""));
        for (VideoDetailInfo vd : info.getVideoDetailList()) {
            if (StringUtil.isNullOrEmpty(vd.getExtraId()))
                vd.setExtraId(vd.getId() + "");
        }
    }
    }
    @org.junit.Test
    public void test2() {
        BanQuanService banQuanService = BeanUtil.getBean(BanQuanService.class);
        List<String> keys = banQuanService.getBanQuanKeyListAll(43);
        System.out.println(keys);
    }
    @org.junit.Test
    public void test2() {
        BanQuanService banQuanService = BeanUtil.getBean(BanQuanService.class);
        List<String> keys = banQuanService.getBanQuanKeyListAll(43);
        System.out.println(keys);
    }
    @org.junit.Test
    public void test3() {
        SolrUtil.dataimportVideo();
    }
    @org.junit.Test
    public void test4() {
        SolrUtil.dataimportVideo();
    }
    @org.junit.Test
    public void test3() {
        SolrUtil.dataimportVideo();
    }
    @org.junit.Test
    public void test4() {
        String regex = "^http://www\\.baidu\\.com";
        System.out.print(Pattern.matches(regex, "http://www.baidu.com"));
    }
}
src/test/java/com/hxh/spring/test/VideoTest.java
@@ -4,9 +4,9 @@
import com.yeshi.buwan.domain.system.DetailSystem;
import com.yeshi.buwan.domain.VideoInfo;
import com.yeshi.buwan.domain.entity.PlayUrl;
import com.yeshi.buwan.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.iqiyi.entity.IqiyiUpdateQueue;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI;
import com.yeshi.buwan.videos.iqiyi.entity.IqiyiUpdateQueue;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.service.imp.*;
import com.yeshi.buwan.service.imp.juhe.IqiyiQueueService;
import com.yeshi.buwan.util.BeanUtil;
@@ -21,7 +21,6 @@
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.yeshi.utils.HttpUtil;
import javax.annotation.Resource;
import java.io.Serializable;
src/test/java/com/hxh/spring/test/VideoUpdate.java
@@ -1,6 +1,6 @@
package com.hxh.spring.test;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.service.imp.shop.ShopService;
import com.yeshi.buwan.util.BeanUtil;
src/test/java/com/hxh/spring/test/VideoUpdateTest.java
@@ -1,7 +1,7 @@
package com.hxh.spring.test;
import com.yeshi.buwan.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.sohu.SoHuUtil;
import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil;
import com.yeshi.buwan.videos.sohu.SoHuUtil;
import com.yeshi.buwan.util.BeanUtil;
public class VideoUpdateTest {
src/test/java/com/hxh/spring/test/video/MogoTest.java
@@ -1,16 +1,10 @@
package com.hxh.spring.test.video;
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.job.video.MogoTVVideoUpdate;
import com.yeshi.buwan.job.video.YouKuVideoUpdate;
import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo;
import com.yeshi.buwan.videos.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.YouKuService;
import com.yeshi.buwan.util.factory.InternetSearchVideoFactory;
import com.yeshi.buwan.youku.YouKuApiUtil;
import com.yeshi.buwan.youku.entity.YouKuShowDetail;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
src/test/java/com/hxh/spring/test/video/RankTest.java
@@ -1,16 +1,28 @@
package com.hxh.spring.test.video;
import com.google.gson.Gson;
import com.yeshi.buwan.job.RankJob;
import com.yeshi.buwan.util.rank.IqiyiRankUtil;
import com.yeshi.buwan.util.rank.MaoYanUtil;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.yeshi.utils.StringUtil;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.List;
import java.util.Map;
@RunWith(SpringJUnit4ClassRunner.class) //使用junit4进行测试
@ContextConfiguration(locations = {"classpath:spring.xml"})
@WebAppConfiguration
public class RankTest {
    @Resource
    private RankJob rankJob;
    @Test
    public void getMaoYanRank() {
@@ -41,4 +53,10 @@
        }
    }
    @Test
    public void updateRank() throws Exception {
        rankJob.updateIqiyiRank("");
    }
}
src/test/java/com/hxh/spring/test/video/TencentTest.java
@@ -4,7 +4,8 @@
import com.yeshi.buwan.job.video.TencentVideoUpdate;
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.service.inter.juhe.TencentVideoService;
import com.yeshi.buwan.tencent.entity.TencentCoverInfo;
import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo;
import org.json.JSONObject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
@@ -41,6 +42,20 @@
    }
    @Test
    public void test3() {
        try {
            JSONObject data = new JSONObject();
            data.put("url", "https://v.qq.com/channel/movie?_all=1&channel=movie&charge=4&listpage=1&sort=18");
            for (int p = 1; p < 20; p++) {
                data.put("page", p);
                tencentVideoUpdate.updateLatestVideoByWebUrl(data.toString());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @Test
    public void addToSearch() {
        List<TencentCoverInfo> list = tencentVideoService.list("动漫", 1, 10);
        for (TencentCoverInfo info : list) {
src/test/java/com/hxh/spring/test/video/VideoResourceVersionTest.java
@@ -21,7 +21,7 @@
    @Test
    public void addBuWanAndroid() {
        String[] resourceIds = new String[]{"13", "19", "21", "22", "24"};
        String[] resourceIds = new String[]{"13", "20", "17", "19", "21", "22", "24","26", "27"};
        for (String rid : resourceIds) {
            try {
                videoResourceVersionMapService.add(new VideoResourceVersionMap("44", 1, rid, null));
@@ -45,30 +45,30 @@
    @Test
    public void addMGAndroid() {
        String[] resourceIds = null;
        resourceIds = new String[]{"13", "19", "21", "22", "24"};
        resourceIds = new String[]{"13", "20", "17", "19", "21", "22", "24","26", "27"};
        for (String rid : resourceIds) {
            try {
                videoResourceVersionMapService.add(new VideoResourceVersionMap("47", 1, rid, "meizu"));
                videoResourceVersionMapService.add(new VideoResourceVersionMap("47", 1, rid, null));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        resourceIds = new String[]{"25"};
        for (String rid : resourceIds) {
            try {
                videoResourceVersionMapService.add(new VideoResourceVersionMap("47", 1, rid, "meizu"));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
//        resourceIds = new String[]{"25"};
//        for (String rid : resourceIds) {
//            try {
//                videoResourceVersionMapService.add(new VideoResourceVersionMap("47", 1, rid, "meizu"));
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        }
    }
    @Test
    public void addHJAndroid() {
        String[] resourceIds = null;
        resourceIds = new String[]{"13", "19", "21", "22", "24", "25"};
        resourceIds = new String[]{"13", "20", "17", "19", "21", "22", "24","26", "27", "25"};
        for (String rid : resourceIds) {
            try {
                videoResourceVersionMapService.add(new VideoResourceVersionMap("48", 1, rid, null));
@@ -80,10 +80,10 @@
    @Test
    public void addBuWanIOS() {
        String[] resourceIds = new String[]{"19", "24", "25"};
        String[] resourceIds = new String[]{"13", "20", "17", "19", "21", "22", "24","26", "27"};
        for (String rid : resourceIds) {
            try {
                videoResourceVersionMapService.add(new VideoResourceVersionMap("43", 88, rid, "appstore"));
                videoResourceVersionMapService.add(new VideoResourceVersionMap("43", 1, rid, null));
            } catch (Exception e) {
                e.printStackTrace();
            }
src/test/java/com/hxh/spring/test/video/YouKuTest.java
@@ -6,8 +6,8 @@
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.service.inter.juhe.YouKuService;
import com.yeshi.buwan.util.factory.InternetSearchVideoFactory;
import com.yeshi.buwan.youku.YouKuApiUtil;
import com.yeshi.buwan.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.videos.youku.YouKuApiUtil;
import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
@@ -15,7 +15,6 @@
import org.springframework.test.context.web.WebAppConfiguration;
import javax.annotation.Resource;
import javax.swing.*;
import java.util.List;
//
@@ -42,6 +41,9 @@
        }
    }
    @Test
    public void test2() {
        List<YouKuShowDetail> details = youKuService.list("电影", 1, 2000);
@@ -57,6 +59,15 @@
    }
    @Test
    public void test3() {
        try {
            youKuVideoUpdate.updatebyCategoryUrl("https://www.youku.com/category/show/c_96_s_1.html?theme=dark");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @Test
    public void getDetail() {
        YouKuShowDetail detail = YouKuApiUtil.getShowDetail("ceba4745ea10415eb791");
        try {
src/test/java/com/hxh/spring/test/vip/VIPTest.java
@@ -7,7 +7,7 @@
import com.yeshi.buwan.exception.vip.VIPException;
import com.yeshi.buwan.exception.vip.VideoBuyRecordException;
import com.yeshi.buwan.job.OrderJob;
import com.yeshi.buwan.pptv.PPTVVipManager;
import com.yeshi.buwan.videos.pptv.PPTVVipManager;
import com.yeshi.buwan.service.inter.order.OrderService;
import com.yeshi.buwan.service.inter.vip.VIPPriceService;
import com.yeshi.buwan.service.inter.vip.VIPService;