| | |
| | | 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 { |
| | | |
| | |
| | | * @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; |
| | |
| | | * @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]; |
| | | } |
| | | |
| | | |
| | | } |