From 19533a17aa55fafc70d0a385928e785cb50e1ebc Mon Sep 17 00:00:00 2001 From: admin <2780501319@qq.com> Date: 星期五, 30 七月 2021 02:05:14 +0800 Subject: [PATCH] 爱奇艺视频更新 --- src/main/java/com/yeshi/buwan/service/imp/juhe/PPTVServiceImpl.java | 255 ++++++++++++++++++++++++++++++++++---------------- 1 files changed, 173 insertions(+), 82 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/service/imp/juhe/PPTVServiceImpl.java b/src/main/java/com/yeshi/buwan/service/imp/juhe/PPTVServiceImpl.java index 3dfc8f4..9af1335 100644 --- a/src/main/java/com/yeshi/buwan/service/imp/juhe/PPTVServiceImpl.java +++ b/src/main/java/com/yeshi/buwan/service/imp/juhe/PPTVServiceImpl.java @@ -2,6 +2,7 @@ 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; @@ -9,19 +10,23 @@ import com.yeshi.buwan.dao.video.AlbumVideoMapDao; import com.yeshi.buwan.domain.VideoInfo; import com.yeshi.buwan.domain.VideoResourceMapExtraInfo; +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.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.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; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -50,6 +55,9 @@ private CategoryVideoService categoryVideoService; @Resource + private VideoTypeService videoTypeService; + + @Resource private VideoResourceMapExtraInfoDao videoResourceMapExtraInfoDao; @@ -59,89 +67,114 @@ if (series.getSeries() == null || series.getSeries().size() <= 0) return; - VideoInfo newVideoInfo = PPTVUtil.convertToVideoInfo(series); - VideoPPTVMap videoPPTV = videoPPTVMapDao.selectByInfoId(series.getInfoID()); - if (videoPPTV != null) {//娓犻亾瑙嗛宸茬粡瀛樺湪 - VideoInfo videoInfo = videoInfoService.getVideoInfo(videoPPTV.getVideoId() + ""); - if (videoInfo == null) - return; - newVideoInfo.setId(videoInfo.getId()); - if (!newVideoInfo.getTag().equalsIgnoreCase(videoInfo.getTag())) { - newVideoInfo.setCreatetime(videoInfo.getCreatetime()); - //鏇存柊淇℃伅tag淇℃伅 - videoInfo.setVideocount(newVideoInfo.getVideocount()); - videoInfo.setTag(newVideoInfo.getTag()); - videoInfo.setPicture(newVideoInfo.getPicture()); - videoInfo.setHpicture(newVideoInfo.getHpicture()); - videoInfo.setVpicture(newVideoInfo.getVpicture()); - videoInfo.setShow(newVideoInfo.getShow()); - videoInfo.setVideoType(newVideoInfo.getVideoType()); - videoInfoDao.update(videoInfo); - } - } else {//瑙嗛涓嶅瓨鍦� - //鍒ゆ柇2涓棰戝疄浣撴槸鍚︿负鍚屼竴瑙嗛 - VideoInfo oldVideo = videoInfoService.getExistSameVideoWithDirector(newVideoInfo); - if (oldVideo == null) { - //娣诲姞瑙嗛 - Serializable id = videoInfoDao.save(newVideoInfo); - newVideoInfo.setId(id + ""); - } else {//涓哄悓涓�瑙嗛 - //鏇存柊tag - newVideoInfo.setId(oldVideo.getId()); - oldVideo.setVideocount(newVideoInfo.getVideocount()); - oldVideo.setTag(newVideoInfo.getTag()); - oldVideo.setPicture(newVideoInfo.getPicture()); - oldVideo.setHpicture(newVideoInfo.getHpicture()); - oldVideo.setVpicture(newVideoInfo.getVpicture()); - oldVideo.setShow(newVideoInfo.getShow()); - oldVideo.setVideoType(newVideoInfo.getVideoType()); - videoInfoDao.update(oldVideo); + List<PPTVUtil.VideoConvertResult> newVideoInfoList = PPTVUtil.convertToVideoInfo(series); + if (newVideoInfoList == null) + return; + + for (PPTVUtil.VideoConvertResult newVideoInfoResult : newVideoInfoList) { + VideoInfo newVideoInfo = newVideoInfoResult.videoInfo; + + VideoType videoType = videoTypeService.getVideoType(newVideoInfo.getVideoType().getId()); + if (videoType.getParent() != null) + newVideoInfo.setVideoType(videoType.getParent()); + + VideoPPTVMapDao.DaoQuery daoQuery = new VideoPPTVMapDao.DaoQuery(); + daoQuery.programCode = newVideoInfoResult.programCode; + daoQuery.infoId = series.getInfoID(); + List<VideoPPTVMap> videoPPTVMapList = videoPPTVMapDao.list(daoQuery); + VideoPPTVMap videoPPTV = null; + if (videoPPTVMapList != null && videoPPTVMapList.size() > 0) + videoPPTV = videoPPTVMapList.get(0); + + if (videoPPTV != null) {//娓犻亾瑙嗛宸茬粡瀛樺湪 + VideoInfo videoInfo = videoInfoService.getVideoInfo(videoPPTV.getVideoId() + ""); + if (videoInfo == null) + return; + newVideoInfo.setId(videoInfo.getId()); + if (!newVideoInfo.getTag().equalsIgnoreCase(videoInfo.getTag())) { + newVideoInfo.setCreatetime(videoInfo.getCreatetime()); + //鏇存柊淇℃伅tag淇℃伅 + videoInfo.setVideocount(newVideoInfo.getVideocount()); + videoInfo.setTag(newVideoInfo.getTag()); + videoInfo.setPicture(newVideoInfo.getPicture()); + videoInfo.setHpicture(newVideoInfo.getHpicture()); + videoInfo.setVpicture(newVideoInfo.getVpicture()); + videoInfo.setShow(newVideoInfo.getShow()); + videoInfo.setVideoType(newVideoInfo.getVideoType()); + videoInfoDao.update(videoInfo); + } + } else {//瑙嗛涓嶅瓨鍦� + //鍒ゆ柇2涓棰戝疄浣撴槸鍚︿负鍚屼竴瑙嗛 + VideoInfo oldVideo = videoInfoService.getExistSameVideoWithDirector(newVideoInfo); + if (oldVideo == null) { + //娣诲姞瑙嗛 + Serializable id = videoInfoDao.save(newVideoInfo); + newVideoInfo.setId(id + ""); + } else {//涓哄悓涓�瑙嗛 + //鏇存柊tag + newVideoInfo.setId(oldVideo.getId()); + oldVideo.setVideocount(newVideoInfo.getVideocount()); + oldVideo.setTag(newVideoInfo.getTag()); + oldVideo.setPicture(newVideoInfo.getPicture()); + oldVideo.setHpicture(newVideoInfo.getHpicture()); + oldVideo.setVpicture(newVideoInfo.getVpicture()); + oldVideo.setShow(newVideoInfo.getShow()); + oldVideo.setVideoType(newVideoInfo.getVideoType()); + videoInfoDao.update(oldVideo); + } + + //鍔犲叆涓撹緫瑙嗛鏄犲皠 + AlbumVideoMap map = new AlbumVideoMap(); + map.setId(newVideoInfo.getId()); + map.setCreateTime(new Date()); + map.setVideoId(newVideoInfo.getId()); + map.setRootVideoType(newVideoInfo.getVideoType().getId()); + map.setVideoCount(newVideoInfo.getVideocount()); + albumVideoMapDao.save(map); + + //鍔犲叆鏄犲皠 + VideoPPTVMap vi = new VideoPPTVMap(); + vi.setInfoId(series.getInfoID()); + vi.setVideoId(newVideoInfo.getId()); + vi.setCreateTime(new Date()); + vi.setSeriesCode(series.getSeriesCode()); + vi.setProgramCode(newVideoInfoResult.programCode); + videoPPTVMapDao.save(vi); } - //鍔犲叆涓撹緫瑙嗛鏄犲皠 - AlbumVideoMap map = new AlbumVideoMap(); - map.setCreateTime(new Date()); - map.setVideoId(newVideoInfo.getId()); - map.setRootVideoType(newVideoInfo.getVideoType().getId()); - map.setVideoCount(newVideoInfo.getVideocount()); - albumVideoMapDao.save(map); + //娣诲姞瑙嗛璧勬簮闄勫姞淇℃伅 + VideoResourceMapExtraInfo vrm = new VideoResourceMapExtraInfo(newVideoInfo.getId(), (long) PPTVUtil.RESOURCE_ID); + VideoResourceMapExtraInfo extra = videoResourceMapExtraInfoDao.find(VideoResourceMapExtraInfo.class, vrm.getId()); + if (extra == null) { + vrm.setFree(Integer.parseInt(series.getFree())); + vrm.setCreateTime(new Date()); + videoResourceMapExtraInfoDao.save(vrm); + } else {//鏇存柊 + extra.setFree(Integer.parseInt(series.getFree())); + extra.setUpdateTime(new Date()); + videoResourceMapExtraInfoDao.update(extra); + } - //鍔犲叆鏄犲皠 - VideoPPTVMap vi = new VideoPPTVMap(); - vi.setInfoId(series.getInfoID()); - vi.setVideoId(newVideoInfo.getId()); - vi.setCreateTime(new Date()); - videoPPTVMapDao.save(vi); + //娣诲姞瑙嗛鏉ユ簮鏄犲皠 + resourceVideoService.addVideoResource(newVideoInfo.getId(), PPTVUtil.RESOURCE_ID + ""); + //娣诲姞瑙嗛鍒嗙被鏄犲皠 + categoryVideoService.addCategoryVideo(newVideoInfo.getId(), videoType.getId()); + CMQManager.getInstance().addSolrMsg(newVideoInfo.getId()); } - - //娣诲姞瑙嗛璧勬簮闄勫姞淇℃伅 - VideoResourceMapExtraInfo vrm = new VideoResourceMapExtraInfo(newVideoInfo.getId(), (long) PPTVUtil.RESOURCE_ID); - VideoResourceMapExtraInfo extra = videoResourceMapExtraInfoDao.find(VideoResourceMapExtraInfo.class, vrm.getId()); - if (extra == null) { - vrm.setFree(Integer.parseInt(series.getFree())); - vrm.setCreateTime(new Date()); - videoResourceMapExtraInfoDao.save(vrm); - } else {//鏇存柊 - extra.setFree(Integer.parseInt(series.getFree())); - extra.setUpdateTime(new Date()); - videoResourceMapExtraInfoDao.update(extra); - } - - //娣诲姞瑙嗛鏉ユ簮鏄犲皠 - resourceVideoService.addVideoResource(newVideoInfo.getId(), PPTVUtil.RESOURCE_ID + ""); - //娣诲姞瑙嗛鍒嗙被鏄犲皠 - categoryVideoService.addCategoryVideo(newVideoInfo.getId(), newVideoInfo.getVideoType().getId()); - CMQManager.getInstance().addSolrMsg(newVideoInfo.getId()); } @Override public void offLineSeries(String infoId) { + VideoPPTVMapDao.DaoQuery daoQuery = new VideoPPTVMapDao.DaoQuery(); + daoQuery.infoId = infoId; //鏌ヨ鍑哄搴旂殑瑙嗛ID - VideoPPTVMap map = videoPPTVMapDao.selectByInfoId(infoId); - if (map == null) + List<VideoPPTVMap> mapList = videoPPTVMapDao.list(daoQuery); + if (mapList == null || mapList.size() == 0) return; - videoPPTVMapDao.deleteByPrimaryKey(map.getVideoId()); - resourceVideoService.delete(map.getVideoId() + "", PPTVUtil.RESOURCE_ID + ""); + for (VideoPPTVMap map : mapList) { + videoPPTVMapDao.deleteByPrimaryKey(map.getVideoId()); + resourceVideoService.delete(map.getVideoId() + "", PPTVUtil.RESOURCE_ID + ""); + } } @Override @@ -183,7 +216,11 @@ @Override public void save(List<PPTVSeries> seriesList) { for (PPTVSeries series : seriesList) { - save(series); + try { + save(series); + } catch (Exception e) { + + } } } @@ -205,9 +242,12 @@ CMQManager.getInstance().addPPTVSeriesUpdateMsg(new PPTVMQMsg(series.getInfoID(), PPTVMQMsg.TYPE_ADD_OR_UPDATE)); } + System.out.println("addorupdate:" + series.getName()); + break; //鍒犻櫎 case "del": + System.out.println("delete:" + series.getName()); deleteSeries(series); infoIds.add(series.getInfoID()); break; @@ -239,6 +279,12 @@ } @Override + public VideoPPTVMap getVideoPPTVMapByVideoId(String videoId) { + VideoPPTVMap map = videoPPTVMapDao.get(videoId); + return map; + } + + @Override public PPTVProgram selectProgramById(String id) { return pptvProgramDao.get(id); } @@ -256,8 +302,53 @@ } @Override - public VideoPPTVMap selectVideoPPTVMapByInfoId(String infoId) { - return videoPPTVMapDao.selectByInfoId(infoId); + public VideoPPTVMap selectVideoPPTVMapByPPInfo(String infoId, String programCode) { + VideoPPTVMapDao.DaoQuery daoQuery = new VideoPPTVMapDao.DaoQuery(); + daoQuery.infoId = infoId; + daoQuery.programCode = programCode; + List<VideoPPTVMap> list = videoPPTVMapDao.list(daoQuery); + if (list == null || list.size() == 0) + return null; + return list.get(0); + } + + @Override + public PPTVSeries selectSeriesBySeriesCode(String cid) { + Query query = new Query(); + query.addCriteria(new Criteria().where("seriesCode").is(cid)); + return pptvSeriesDao.findOne(query); + } + + @Override + public PPTVSeries selectSeriesByInfoId(String infoId) { + return pptvSeriesDao.get(infoId); + } + + @Override + public void updateSeriesGoodsInfo(String infoId, PPTVGoodsInfo goodsInfo) { + Query query = new Query(); + query.addCriteria(Criteria.where("_id").is(infoId)); + Update update = new Update(); + update.set("goodsInfo", goodsInfo); + pptvSeriesDao.update(query, update); + } + + @Override + public void updateProgramGoodsInfo(String vid, PPTVGoodsInfo goodsInfo) { + Query query = new Query(); + query.addCriteria(Criteria.where("_id").is(vid)); + Update update = new Update(); + update.set("goodsInfo", goodsInfo); + pptvProgramDao.update(query, update); + } + + @Override + public void syncSeries(String cid) { + PPTVSeries series = PPTVApiUtil.getDetail(cid); + if (series != null) { + save(series); + } + } /** @@ -269,7 +360,7 @@ PPTVQuery query = new PPTVQuery(); query.seriesCode = series.getSeriesCode(); Set<String> seriesCodeSet = deleteMap(query); - pptvSeriesDao.delete(series.getInfoID()); + pptvSeriesDao.deleteByPrimaryKey(series.getInfoID()); } @@ -308,7 +399,7 @@ PPTVQuery query = new PPTVQuery(); query.programCode = program.getProgramCode(); Set<String> infoIdSet = deleteMap(query); - pptvProgramDao.delete(program.getProgramCode()); + pptvProgramDao.deleteByPrimaryKey(program.getProgramCode()); return infoIdSet; } -- Gitblit v1.8.0