admin
2021-04-08 d7a3014c38dbb1061cba70e7dbb49d58831e6399
PPTV解析优化
4个文件已修改
132 ■■■■■ 已修改文件
src/main/java/com/yeshi/buwan/controller/api/ApiControllerV2.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/parser/UserParser.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/pptv/PPTVApiUtil.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/pptv/entity/PPTVSeries.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/api/ApiControllerV2.java
@@ -279,6 +279,10 @@
            userParser.searchNew(acceptData, request, out);
        } else if (method.equalsIgnoreCase("getHotSearch")) {// 获取热门搜索
            userParser.getHotSearch(acceptData, request, out);
        } else if (method.equalsIgnoreCase("getHotSearchNew")) {// 获取热门搜索
            userParser.getHotSearchNew(acceptData, request, out);
        } else if (method.equalsIgnoreCase("getSearchRank")) {// 获取搜索排行
            userParser.getSearchRank(acceptData, request, out);
        } else if (method.equalsIgnoreCase("guessLike")) {// 猜你喜欢
            userParser.guessLike(acceptData, request, out);
        } else if (method.equalsIgnoreCase("getUserInfo")) {// 获取用户信息
src/main/java/com/yeshi/buwan/controller/parser/UserParser.java
@@ -1,9 +1,12 @@
package com.yeshi.buwan.controller.parser;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yeshi.buwan.domain.*;
import com.yeshi.buwan.domain.Collection;
import com.yeshi.buwan.domain.solr.SolrAlbumVideo;
import com.yeshi.buwan.domain.system.DetailSystem;
import com.yeshi.buwan.domain.system.DetailSystemConfig;
import com.yeshi.buwan.domain.user.LoginUser;
import com.yeshi.buwan.domain.video.InternetSearchVideo;
import com.yeshi.buwan.dto.log.BaseLog;
@@ -15,6 +18,7 @@
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.service.imp.*;
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
import com.yeshi.buwan.service.inter.system.SystemConfigService;
import com.yeshi.buwan.service.manager.SolrAlbumVideoDataManager;
import com.yeshi.buwan.service.manager.SolrInternetSearchVideoDataManager;
import com.yeshi.buwan.util.*;
@@ -24,6 +28,7 @@
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.rank.IqiyiRankUtil;
import com.yeshi.buwan.util.video.VideoCategoryConstant;
import com.yeshi.buwan.util.video.VideoConstant;
import com.yeshi.buwan.vo.AcceptData;
@@ -38,7 +43,9 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.util.*;
@Controller
@@ -72,6 +79,8 @@
    private SolrInternetSearchVideoDataManager solrInternetSearchVideoDataManager;
    @Resource
    private ConfigParser configParser;
    @Resource
    private SystemConfigService systemConfigService;
    public void getUid(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
        DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName());
@@ -614,6 +623,90 @@
    }
    //新版热门搜索
    public void getHotSearchNew(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
        DetailSystemConfig config = configService.getConfigByKey("hot_search", acceptData.getDetailSystem(), acceptData.getVersion());
        if (config == null) {
            out.print(JsonUtil.loadFalseJson("无内容"));
            return;
        }
        String value = config.getValue();
        Type type = new TypeToken<List<String>>() {
        }.getType();
        List<String> list = new Gson().fromJson(value, type);
        JSONObject object = new JSONObject();
        object.put("count", list.size() + "");
        JSONArray array = new JSONArray();
        for (int i = 0; i < list.size(); i++) {
            array.add(list.get(i));
        }
        object.put("data", array);
        out.print(JsonUtil.loadTrueJson(object.toString()));
    }
    //获取搜索排行榜
    public void getSearchRank(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
//        try {
//            Map<String, List<String>> map = IqiyiRankUtil.getRank(10);
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
        //搜索排行
        String value = systemConfigService.getConfigValueByKeyCache("searchRank");
        Map<Integer, JSONObject> map = new TreeMap<>();
        if (!StringUtil.isNullOrEmpty(value)) {
            JSONObject root = JSONObject.fromObject(value);
            for (Iterator<String> its = root.keys(); its.hasNext(); ) {
                String key = its.next();
                JSONArray array = root.optJSONArray(key);
                JSONObject data = new JSONObject();
                switch (key) {
                    case "热搜":
                        data.put("热搜榜", array);
                        map.put(0, data);
                        break;
                    case "电视剧":
                        data.put("电视剧榜", array);
                        map.put(1, data);
                        break;
                    case "电影":
                        data.put("电影榜", array);
                        map.put(2, data);
                        break;
                    case "综艺":
                        data.put("综艺榜", array);
                        map.put(3, data);
                        break;
                    case "动漫":
                        data.put("动漫榜", array);
                        map.put(4, data);
                        break;
                }
            }
        }
        JSONObject data = new JSONObject();
        for (Iterator<Integer> its = map.keySet().iterator(); its.hasNext(); ) {
            Integer key = its.next();
            JSONObject item = map.get(key);
            String k = item.keys().next().toString();
            data.put(k, item.optJSONArray(k));
        }
        JSONObject object = new JSONObject();
        object.put("data", data);
        out.print(JsonUtil.loadTrueJson(object.toString()));
    }
    // 获取用户信息
    public void getUserInfo(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
        UserData data = userService.getUserData(acceptData.getUid());
src/main/java/com/yeshi/buwan/pptv/PPTVApiUtil.java
@@ -1,6 +1,7 @@
package com.yeshi.buwan.pptv;
import com.google.gson.Gson;
import com.yeshi.buwan.pptv.entity.PPTVGoodsInfo;
import com.yeshi.buwan.pptv.entity.PPTVProgram;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.util.StringUtil;
@@ -159,6 +160,17 @@
            if (pptvSeries == null)
                pptvSeries = gson.fromJson(item.toString(), PPTVSeries.class);
            PPTVGoodsInfo goodsInfo = new PPTVGoodsInfo();
            goodsInfo.setGoodsNo(item.optString("goodsNo"));
            goodsInfo.setGoodsName(item.optString("goodsName"));
            goodsInfo.setStatus(item.optString("goodsStatus"));
            goodsInfo.setIsNoVipPricing(item.optString("isNoVipPricing"));
            goodsInfo.setIsTicket(item.optString("isTicket"));
            goodsInfo.setIsVipPricing(item.optString("isVipPricing"));
            pptvSeries.setGoodsInfo(goodsInfo);
            List<String> keys = new ArrayList<>();
            for (Iterator<String> its = item.keys(); its.hasNext(); ) {
                String key = its.next();
@@ -172,7 +184,18 @@
            }
            String itemStr = item.toString().replace("series_", "");
            JSONObject pitem = JSONObject.fromObject(itemStr);
            goodsInfo = new PPTVGoodsInfo();
            goodsInfo.setGoodsNo(pitem.optString("goodsNo"));
            goodsInfo.setGoodsName(pitem.optString("goodsName"));
            goodsInfo.setStatus(pitem.optString("goodsStatus"));
            goodsInfo.setIsNoVipPricing(pitem.optString("isNoVipPricing"));
            goodsInfo.setIsTicket(pitem.optString("isTicket"));
            goodsInfo.setIsVipPricing(pitem.optString("isVipPricing"));
            PPTVProgram program = gson.fromJson(itemStr, PPTVProgram.class);
            program.setGoodsInfo(goodsInfo);
            programList.add(program);
        }
        pptvSeries.setSeries(programList);
src/main/java/com/yeshi/buwan/pptv/entity/PPTVSeries.java
@@ -92,6 +92,16 @@
    @Transient
    private List<PPTVProgram> series;
    //商品信息
    private PPTVGoodsInfo goodsInfo;
    public PPTVGoodsInfo getGoodsInfo() {
        return goodsInfo;
    }
    public void setGoodsInfo(PPTVGoodsInfo goodsInfo) {
        this.goodsInfo = goodsInfo;
    }
    public Date getCreateTime() {
        return createTime;
@@ -100,8 +110,6 @@
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public List<PPTVProgram> getSeries() {