admin
2019-08-05 34e65d72e73acab040b68d01ef6b4764b4408624
修改推荐记录点击详情跳转方式不对的bug
3个文件已修改
86 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/PushController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/Constant.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/PushController.java
@@ -267,7 +267,9 @@
                        params = JumpDetailParamsFactory.createGoodsParams(auctionId);
                        // 单个商品跳转商品详情
                        jumpDetail = jumpDetailV2Service.getByTypeCache("goodsdetail");
                        jumpDetail = jumpDetailV2Service.getByTypeCache("goodsdetail",
                                Constant.getPlatformCode(acceptData.getPlatform()),
                                Integer.parseInt(acceptData.getVersion()));
                    } else {
                        String url = configService.get("push_goods_details");
@@ -279,7 +281,9 @@
                        params = JumpDetailParamsFactory.createWEBParams(url);
                        // 跳转推荐详情
                        jumpDetail = jumpDetailV2Service.getByTypeCache("web");
                        jumpDetail = jumpDetailV2Service.getByTypeCache("web",
                                Constant.getPlatformCode(acceptData.getPlatform()),
                                Integer.parseInt(acceptData.getVersion()));
                    }
                    result.put("params", params);
                    result.put("jumpDetail", jumpDetail);
fanli/src/main/java/com/yeshi/fanli/util/Constant.java
@@ -230,6 +230,14 @@
        default:// 其他类型
            return "";
        }
    }
    public static int getPlatformCode(String platform) {
        if ("android".equalsIgnoreCase(platform))
            return 1;
        else if ("ios".equalsIgnoreCase(platform))
            return 2;
        else
            return 0;// 未知
    }
}
fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java
@@ -1,7 +1,6 @@
package com.yeshi.fanli.util.dataoke;
import java.io.IOException;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
@@ -21,8 +20,10 @@
import org.jsoup.select.Elements;
import org.yeshi.utils.HttpUtil;
import com.google.gson.ExclusionStrategy;
import com.google.gson.FieldAttributes;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.dto.dataoke.DaTaoKeApiResult;
import com.yeshi.fanli.dto.dataoke.DaTaoKeGoodsResult;
import com.yeshi.fanli.dto.taobao.TaoBaoShopDTO;
@@ -32,6 +33,7 @@
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -61,7 +63,20 @@
    final static String[] APP_SECRETS = new String[] { APP_KEY_SECRET, APP_KEY_SECRET_2 };
    static Gson gson = new Gson();
    static Gson gson = null;
    static {
        gson = new GsonBuilder().setExclusionStrategies(new ExclusionStrategy() {
            @Override
            public boolean shouldSkipField(FieldAttributes f) {
                return f.getName().equals("createTime");// 忽略createTime的解析
            }
            @Override
            public boolean shouldSkipClass(Class<?> clazz) {
                return false;
            }
        }).create();
    }
    private static String get(String url) {
        HttpClient client = new HttpClient();
@@ -211,11 +226,7 @@
        if (dataJson != null) {
            JSONArray array = dataJson.optJSONArray("list");
            if (array != null) {
                String data = array.toString();
                Type type = new TypeToken<List<DaTaoKeDetailV2>>() {
                }.getType();
                List<DaTaoKeDetailV2> list = gson.fromJson(data, type);
                List<DaTaoKeDetailV2> list = parseDaTaoKeDetailV2List(array);
                daTaoKeGoodsResult.setGoodsList(list);
            }
            daTaoKeGoodsResult.setPageId(dataJson.optString("pageId"));
@@ -255,11 +266,7 @@
        if (dataJson != null) {
            JSONArray array = dataJson.optJSONArray("list");
            if (array != null) {
                String data = array.toString();
                Type type = new TypeToken<List<DaTaoKeDetailV2>>() {
                }.getType();
                List<DaTaoKeDetailV2> list = gson.fromJson(data, type);
                List<DaTaoKeDetailV2> list = parseDaTaoKeDetailV2List(array);
                daTaoKeGoodsResult.setGoodsList(list);
            }
            daTaoKeGoodsResult.setPageId(dataJson.optString("pageId"));
@@ -292,11 +299,8 @@
        if (dataJson != null) {
            JSONArray array = dataJson.optJSONArray("list");
            if (array != null) {
                String data = array.toString();
                Type type = new TypeToken<List<DaTaoKeDetailV2>>() {
                }.getType();
                List<DaTaoKeDetailV2> list = gson.fromJson(data, type);
                List<DaTaoKeDetailV2> list = parseDaTaoKeDetailV2List(array);
                daTaoKeGoodsResult.setGoodsList(list);
            }
            daTaoKeGoodsResult.setPageId(dataJson.optString("pageId"));
@@ -328,11 +332,7 @@
        if (dataJson != null) {
            JSONArray array = dataJson.optJSONArray("list");
            if (array != null) {
                String data = array.toString();
                Type type = new TypeToken<List<DaTaoKeDetailV2>>() {
                }.getType();
                List<DaTaoKeDetailV2> list = gson.fromJson(data, type);
                List<DaTaoKeDetailV2> list = parseDaTaoKeDetailV2List(array);
                daTaoKeGoodsResult.setGoodsList(list);
            }
            daTaoKeGoodsResult.setPageId(dataJson.optString("pageId"));
@@ -343,7 +343,6 @@
    public static DaTaoKeDetailV2 getGoodsDetail(Long id) {
        TaoKeAppInfo app = getRandomApp();
        DaTaoKeGoodsResult daTaoKeGoodsResult = new DaTaoKeGoodsResult();
        Map<String, String> params = new TreeMap<>();
        params.put("version", "v1.0.0");
        params.put("appKey", app.getAppKey());
@@ -354,7 +353,7 @@
        JSONObject json = JSONObject.fromObject(result);
        JSONObject dataJson = json.optJSONObject("data");
        if (dataJson != null) {
            return gson.fromJson(dataJson.toString(), DaTaoKeDetailV2.class);
            return parseDaTaoKeDetailV2(dataJson);
        }
        return null;
    }
@@ -395,11 +394,7 @@
        if (dataJson != null) {
            JSONArray array = dataJson.optJSONArray("list");
            if (array != null) {
                String data = array.toString();
                Type type = new TypeToken<List<DaTaoKeDetailV2>>() {
                }.getType();
                List<DaTaoKeDetailV2> list = gson.fromJson(data, type);
                List<DaTaoKeDetailV2> list = parseDaTaoKeDetailV2List(array);
                daTaoKeGoodsResult.setGoodsList(list);
            }
            daTaoKeGoodsResult.setPageId(dataJson.optString("pageId"));
@@ -506,7 +501,7 @@
            List<DaTaoKeDetailV2> list = new ArrayList<>();
            for (int i = 0; i < array.size(); i++) {
                JSONObject itemData = array.optJSONObject(i);
                DaTaoKeDetailV2 item = gson.fromJson(itemData.toString(), DaTaoKeDetailV2.class);
                DaTaoKeDetailV2 item = parseDaTaoKeDetailV2(itemData);
                item.setCouponConditions(itemData.optString("quanUsageCondition"));
                item.setShopType(itemData.optInt("istmall"));
                item.setOriginalPrice(new BigDecimal(itemData.optString("originPrice")));
@@ -519,6 +514,21 @@
    }
    private static List<DaTaoKeDetailV2> parseDaTaoKeDetailV2List(JSONArray array) {
        List<DaTaoKeDetailV2> detailList = new ArrayList<>();
        for (int i = 0; i < array.size(); i++) {
            DaTaoKeDetailV2 detail = parseDaTaoKeDetailV2(array.optJSONObject(i));
            detailList.add(detail);
        }
        return detailList;
    }
    private static DaTaoKeDetailV2 parseDaTaoKeDetailV2(JSONObject json) {
        DaTaoKeDetailV2 detail = gson.fromJson(json.toString(), DaTaoKeDetailV2.class);
        detail.setCreateTime(new Date(TimeUtil.convertToTimeTemp(json.optString("createTime"), "yyyy-MM-dd HH:mm:ss")));
        return detail;
    }
    class DaTaoKeResult {
        Date updateTime;
        List<DaTaoKeDetail> dataList;