| | |
| | | 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; |
| | |
| | | if (series.getSeries() == null || series.getSeries().size() <= 0) |
| | | return; |
| | | |
| | | VideoInfo newVideoInfo = PPTVUtil.convertToVideoInfo(series); |
| | | if (newVideoInfo == null) |
| | | List<PPTVUtil.VideoConvertResult> newVideoInfoList = PPTVUtil.convertToVideoInfo(series); |
| | | if (newVideoInfoList == null) |
| | | return; |
| | | |
| | | VideoType videoType = videoTypeService.getVideoType(newVideoInfo.getVideoType().getId()); |
| | | if (videoType.getParent() != null) |
| | | newVideoInfo.setVideoType(videoType.getParent()); |
| | | for (PPTVUtil.VideoConvertResult newVideoInfoResult : newVideoInfoList) { |
| | | VideoInfo newVideoInfo = newVideoInfoResult.videoInfo; |
| | | |
| | | 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); |
| | | 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.setId(newVideoInfo.getId()); |
| | | 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(), videoType.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 |
| | |
| | | } |
| | | |
| | | @Override |
| | | public VideoPPTVMap getVideoPPTVMapByVideoId(String videoId) { |
| | | VideoPPTVMap map = videoPPTVMapDao.get(videoId); |
| | | return map; |
| | | } |
| | | |
| | | @Override |
| | | public PPTVProgram selectProgramById(String id) { |
| | | return pptvProgramDao.get(id); |
| | | } |
| | |
| | | } |
| | | |
| | | @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 |
| | |
| | | } |
| | | |
| | | @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) { |