admin
2020-06-20 0ab8a2ea521a838124f517daf4e61dee971a6d4c
src/main/java/com/ks/tool/bkz/util/FirstOrderSubDataUtil.java
@@ -4,11 +4,15 @@
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.ks.tool.bkz.dto.FirstOrderSubInfoDTO;
import com.ks.tool.bkz.dto.FirstOrderSubParseResult;
import com.ks.tool.bkz.entity.FirstOrderSubInfo;
import com.ks.tool.bkz.exception.TBCookieException;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class FirstOrderSubDataUtil {
@@ -18,18 +22,28 @@
     * @param data
     * @return
     */
    public static List<FirstOrderSubInfoDTO> parseOrderSubData(String data) {
    public static FirstOrderSubParseResult parseOrderSubData(String data) throws TBCookieException {
        data = data.trim().substring(data.indexOf("("));
        if (data.endsWith(")"))
            data = data.substring(0, data.length() - 1);
        //Cookie过期
        JSONObject dataJSON = JSONObject.parseObject(data);
        if (dataJSON.getJSONArray("ret") != null && dataJSON.getJSONArray("ret").toString().contains("令牌"))
            throw new TBCookieException(1,"cookie失效");
        JSONObject resultValue = dataJSON.getJSONObject("data").getJSONObject("resultValue");
        for (Iterator<String> its = resultValue.keySet().iterator(); its.hasNext(); ) {
            String key = its.next();
            if (NumberUtil.isNumeric(key)) {
                JSONArray array = resultValue.getJSONObject(key).getJSONObject("data").getJSONArray("entity").getJSONObject(0).getJSONArray("model");
                Type type = new TypeToken<List<FirstOrderSubInfoDTO>>() {
                JSONObject entity = resultValue.getJSONObject(key).getJSONObject("data").getJSONArray("entity").getJSONObject(0);
                boolean hasNextPage = entity.getBoolean("hasNextPage");
                JSONArray array = entity.getJSONArray("model");
                Type type = new TypeToken<List<FirstOrderSubInfo>>() {
                }.getType();
                List<FirstOrderSubInfoDTO> list = new Gson().fromJson(array.toString(), type);
                return list;
                List<FirstOrderSubInfo> list = new Gson().fromJson(array.toString(), type);
                return new FirstOrderSubParseResult(hasNextPage, list);
            }
        }
        return null;
@@ -44,9 +58,26 @@
     * @param data
     * @return
     */
    public static String getSign(String token, long time, String appKey, String data) {
    public static String getSign(String token, String time, String appKey, String data) {
        return StringUtil.Md5(String.format("%s&%s&%s&%s", token, time, appKey, data));
    }
    /**
     * 获取token
     *
     * @param cookie
     * @return
     */
    public static String getTokenFromCookie(String cookie) {
        Map<String, String> map = new HashMap<>();
        String[] sts = cookie.split(";");
        for (String st : sts) {
            map.put(st.split("=")[0].trim(), st.split("=")[1].trim());
        }
        String tk = map.get("_m_h5_tk");
        return tk.split("_")[0];
    }
}