admin
2021-08-27 8fee151ffae0c3818694b7318583814bf92663e2
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(),