admin
2021-04-22 745320cbb4edfa4fbc8f0f95483a4ee7893d5769
src/main/java/com/yeshi/buwan/pptv/PPTVUtil.java
@@ -9,7 +9,9 @@
import com.yeshi.buwan.util.video.VideoConstant;
import com.yeshi.buwan.vo.AcceptData;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class PPTVUtil {
@@ -58,7 +60,26 @@
     * @param series
     * @return
     */
    public static VideoInfo convertToVideoInfo(PPTVSeries series) {
    public static List<VideoConvertResult> convertToVideoInfo(PPTVSeries series) {
        Long videoTypeId = getVideoType(series);
        if (videoTypeId == null)
            return null;
        List<VideoConvertResult> list = new ArrayList<>();
        if (videoTypeId.longValue() == VideoConstant.VIDEO_CATEGORY_DIANYING) {
            //PPTV电影一个百科ID下面可能有多个视频(国语版/粤语版)
            for (PPTVProgram program : series.getSeries()) {
                list.add(new VideoConvertResult(convertToVideoInfo(series, program), program.getProgramCode()));
            }
        } else {
            list.add(new VideoConvertResult(convertToVideoInfo(series, null), null));
        }
        return list;
    }
    private static VideoInfo convertToVideoInfo(PPTVSeries series, PPTVProgram program) {
        int year = Integer.parseInt(series.getReleaseYear());
        int month = 1;
        int day = 1;
@@ -108,7 +129,7 @@
        }
        String latestHpicture = series.getSeries().get(series.getSeries().size() - 1).getSubHorCover();
        String latestHpicture = program != null ? program.getSubHorCover() : series.getSeries().get(series.getSeries().size() - 1).getSubHorCover();
        long updateTime = System.currentTimeMillis();
@@ -129,7 +150,7 @@
        vi.setLatestVpicture("");
        vi.setMainActor(mainActor);
        vi.setMonth(month + "");
        vi.setName(series.getName());
        vi.setName(program != null ? program.getProgramSetTiltle() : series.getName());
        vi.setNowNumber(0 + "");
        vi.setOrderby("0");
        vi.setPicture(series.getCover());
@@ -141,7 +162,7 @@
        vi.setWatchCount(0 + "");
        vi.setYear(year + "");
        vi.setUpdatetime(updateTime + "");
        vi.setVideocount(series.getSeries().size());
        vi.setVideocount(program != null ? 1 : series.getSeries().size());
        return vi;
    }
@@ -212,8 +233,13 @@
     * @return
     */
    public static String getPlayUrl(PPTVSeries series, PPTVProgram program) {
        return getPlayUrl(series, program.getProgramCode());
    }
    public static String getPlayUrl(PPTVSeries series, String programCode) {
        //programtype 电影-3  其他-2
        return String.format("https://acmd.api.pptv.com/2021/bwysdqmovie_thrid_h5.html?cid=%s&vid=%s&programtype=%s", series.getSeriesCode(), program.getProgramCode(), series.getProgramType().contains("电影") ? 3 : 2);
        return String.format("https://acmd.api.pptv.com/2021/bwysdqmovie_thrid_h5.html?cid=%s&vid=%s&programtype=%s", series.getSeriesCode(), programCode, series.getProgramType().contains("电影") ? 3 : 2);
//        return String.format(" http://vip.pptv.com/activity/2021/pg_bwysdqmovie?cid=%s&vid=%s&programtype=%s", series.getSeriesCode(), program.getProgramCode(), series.getProgramType().contains("电影") ? 3 : 2);
    }
@@ -234,4 +260,52 @@
        return "1".equalsIgnoreCase((free + "").trim());
    }
    /**
     * 获取商品购买成功的缓存Key
     *
     * @param uid
     * @param goodsNo
     * @return
     */
    public static String getBuyGoodsCacheKey(String uid, String goodsNo) {
        return String.format("pptvbuygoods-%s-%s", uid, goodsNo);
    }
    /**
     * 获取虚拟的视频ID
     *
     * @param cid
     * @return
     */
    public static String getVisualVideoId(String cid, String vid) {
        return "pptv-" + cid + "-" + vid;
    }
    /**
     * 解析infoId
     *
     * @param videoId
     * @return
     */
    public static String[] parseCidAndVidFromVisualVideoId(String videoId) {
        if (videoId == null)
            return null;
        if (!videoId.contains("pptv-"))
            return null;
        return videoId.replace("pptv-", "").trim().split("-");
    }
    public static class VideoConvertResult {
        public VideoInfo videoInfo;
        public String programCode;
        public VideoConvertResult(VideoInfo videoInfo, String programCode) {
            this.videoInfo = videoInfo;
            this.programCode = programCode;
        }
    }
}