admin
2021-03-24 c44a4296e8913080bff7ca0ee1b65356ed34ec3d
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,7 +10,9 @@
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.PPTVQuery;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.pptv.entity.PPTVProgram;
@@ -19,6 +22,7 @@
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 org.springframework.stereotype.Service;
@@ -49,6 +53,9 @@
    private CategoryVideoService categoryVideoService;
    @Resource
    private VideoTypeService videoTypeService;
    @Resource
    private VideoResourceMapExtraInfoDao videoResourceMapExtraInfoDao;
@@ -59,6 +66,13 @@
            return;
        VideoInfo newVideoInfo = PPTVUtil.convertToVideoInfo(series);
        if (newVideoInfo == null)
            return;
        VideoType videoType = videoTypeService.getVideoType(newVideoInfo.getVideoType().getId());
        if (videoType.getParent() != null)
            newVideoInfo.setVideoType(videoType.getParent());
        VideoPPTVMap videoPPTV = videoPPTVMapDao.selectByInfoId(series.getInfoID());
        if (videoPPTV != null) {//渠道视频已经存在
            VideoInfo videoInfo = videoInfoService.getVideoInfo(videoPPTV.getVideoId() + "");
@@ -79,7 +93,7 @@
            }
        } else {//视频不存在
            //判断2个视频实体是否为同一视频
            VideoInfo oldVideo = videoInfoService.getExistSameVideo(newVideoInfo);
            VideoInfo oldVideo = videoInfoService.getExistSameVideoWithDirector(newVideoInfo);
            if (oldVideo == null) {
                //添加视频
                Serializable id = videoInfoDao.save(newVideoInfo);
@@ -99,6 +113,7 @@
            //加入专辑视频映射
            AlbumVideoMap map = new AlbumVideoMap();
            map.setId(newVideoInfo.getId());
            map.setCreateTime(new Date());
            map.setVideoId(newVideoInfo.getId());
            map.setRootVideoType(newVideoInfo.getVideoType().getId());
@@ -108,7 +123,7 @@
            //加入映射
            VideoPPTVMap vi = new VideoPPTVMap();
            vi.setInfoId(series.getInfoID());
            vi.setVideoId(Long.parseLong(newVideoInfo.getId()));
            vi.setVideoId(newVideoInfo.getId());
            vi.setCreateTime(new Date());
            videoPPTVMapDao.save(vi);
        }
@@ -129,7 +144,7 @@
        //添加视频来源映射
        resourceVideoService.addVideoResource(newVideoInfo.getId(), PPTVUtil.RESOURCE_ID + "");
        //添加视频分类映射
        categoryVideoService.addCategoryVideo(newVideoInfo.getId(), newVideoInfo.getVideoType().getId());
        categoryVideoService.addCategoryVideo(newVideoInfo.getId(), videoType.getId());
        CMQManager.getInstance().addSolrMsg(newVideoInfo.getId());
    }
@@ -139,7 +154,7 @@
        VideoPPTVMap map = videoPPTVMapDao.selectByInfoId(infoId);
        if (map == null)
            return;
        videoPPTVMapDao.delete(map.getVideoId());
        videoPPTVMapDao.deleteByPrimaryKey(map.getVideoId());
        resourceVideoService.delete(map.getVideoId() + "", PPTVUtil.RESOURCE_ID + "");
    }
@@ -167,6 +182,14 @@
                programList.addAll(tempList);
            }
        }
        Comparator<PPTVProgram> comparator = new Comparator<PPTVProgram>() {
            @Override
            public int compare(PPTVProgram o1, PPTVProgram o2) {
                return o1.getRank() - o2.getRank();
            }
        };
        Collections.sort(programList, comparator);
        series.setSeries(programList);
        return series;
    }
@@ -174,7 +197,11 @@
    @Override
    public void save(List<PPTVSeries> seriesList) {
        for (PPTVSeries series : seriesList) {
            save(series);
            try {
                save(series);
            } catch (Exception e) {
            }
        }
    }
@@ -193,12 +220,15 @@
                    series.setCreateTime(new Date());
                    pptvSeriesDao.save(series);
                    //处理新增/改变的剧集信息
//                    CMQManager.getInstance().addPPTVSeriesUpdateMsg(new PPTVMQMsg(series.getInfoID(), PPTVMQMsg.TYPE_ADD_OR_UPDATE));
                    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;
@@ -214,7 +244,7 @@
        for (String id : infoIds) {
            //处理删除的剧集信息
//            CMQManager.getInstance().addPPTVSeriesUpdateMsg(new PPTVMQMsg(id, PPTVMQMsg.TYPE_DELETE));
            CMQManager.getInstance().addPPTVSeriesUpdateMsg(new PPTVMQMsg(id, PPTVMQMsg.TYPE_DELETE));
        }
@@ -229,6 +259,28 @@
        return getSeriesDetail(map.getInfoId());
    }
    @Override
    public PPTVProgram selectProgramById(String id) {
        return pptvProgramDao.get(id);
    }
    @Override
    public PPTVSeriesProgramMap selectMapByCode(String seriesCode, String programCode) {
        PPTVQuery query = new PPTVQuery();
        query.programCode = programCode;
        query.seriesCode = seriesCode;
        query.count = 1;
        List<PPTVSeriesProgramMap> list = pptvSeriesProgramMapDao.list(query);
        if (list == null || list.size() == 0)
            return null;
        return list.get(0);
    }
    @Override
    public VideoPPTVMap selectVideoPPTVMapByInfoId(String infoId) {
        return videoPPTVMapDao.selectByInfoId(infoId);
    }
    /**
     * 删除剧集
     *
@@ -238,7 +290,7 @@
        PPTVQuery query = new PPTVQuery();
        query.seriesCode = series.getSeriesCode();
        Set<String> seriesCodeSet = deleteMap(query);
        pptvSeriesDao.delete(series.getInfoID());
        pptvSeriesDao.deleteByPrimaryKey(series.getInfoID());
    }
@@ -277,7 +329,7 @@
        PPTVQuery query = new PPTVQuery();
        query.programCode = program.getProgramCode();
        Set<String> infoIdSet = deleteMap(query);
        pptvProgramDao.delete(program.getProgramCode());
        pptvProgramDao.deleteByPrimaryKey(program.getProgramCode());
        return infoIdSet;
    }