From 62a447d89331aee1feae7724c7616aa1bb2cfe79 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 16 十月 2024 14:28:37 +0800
Subject: [PATCH] 将CMQ替换为rabbitmq
---
fanli/src/main/java/com/yeshi/fanli/util/vipshop/VipShopApiUtil.java | 597 +++++++++++++++++++++++++++++++++++------------------------
1 files changed, 357 insertions(+), 240 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/util/vipshop/VipShopApiUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/vipshop/VipShopApiUtil.java
index d1874e7..333d349 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/vipshop/VipShopApiUtil.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/vipshop/VipShopApiUtil.java
@@ -1,240 +1,357 @@
-package com.yeshi.fanli.util.vipshop;
-
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.yeshi.utils.StringUtil;
-
-import com.google.gson.Gson;
-import com.yeshi.fanli.dto.vip.VIPSearchFilter;
-import com.yeshi.fanli.dto.vip.VIPSearchResult;
-import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo;
-
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
-/**
- * TODO 鏈畬鎴� 鍞搧浼氭帴鍙�
- *
- * @author Administrator
- *
- */
-public class VipShopApiUtil {
-
- private final static String appKey = "f9e7f22f";
- private final static String appSecret = "9B2291352497FAF42B2DF44BFCF62316";
-
- /**
- * 鑾峰彇绛惧悕
- *
- * @param params
- * @return
- */
- private static String getSign(Map<String, String> systemParams, JSONObject taskParams) {
- List<String> list = new ArrayList<>();
- for (Iterator<String> its = systemParams.keySet().iterator(); its.hasNext();) {
- String key = its.next();
- String value = systemParams.get(key);
- list.add(key + value);
- }
- Collections.sort(list);
- String source = "";
- for (String st : list)
- source += st;
- source += taskParams.toString();
- return StringUtil.MD5Hmac(source, appSecret);
- }
-
- private static Map<String, String> getSystemParams(String service, String method) {
- Map<String, String> params = new HashMap<String, String>();
- params.put("service", service);
- params.put("method", method);
- params.put("version", "1.0");
- params.put("timestamp", System.currentTimeMillis() / 1000 + "");
- params.put("format", "json");
- params.put("appKey", appKey);
- return params;
- }
-
- /**
- * 鍩虹璇锋眰
- *
- * @param service
- * @param method
- * @param taskParams
- * @return
- */
- private static String baseRequest(String service, String method, JSONObject taskParams) {
- Map<String, String> systemParams = getSystemParams(service, method);
- String sign = getSign(systemParams, taskParams);
- systemParams.put("sign", sign);
- String baseUrl = "https://gw.vipapis.com";
- baseUrl += "?";
- for (Iterator<String> its = systemParams.keySet().iterator(); its.hasNext();) {
- String key = its.next();
- String value = "";
- try {
- value = URLEncoder.encode(systemParams.get(key), "UTF-8");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- baseUrl += key + "=" + value + "&";
- }
- baseUrl = baseUrl.endsWith("&") ? baseUrl.substring(0, baseUrl.length() - 1) : baseUrl;
- String result = post(baseUrl, taskParams.toString());
- return result;
- }
-
- @SuppressWarnings("deprecation")
- private static String post(String url, String body) {
- HttpClient client = new HttpClient();
- PostMethod method = new PostMethod(url);
- method.addRequestHeader("Content-Type", "application/json;charset=UTF-8");
- method.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
- method.setRequestBody(body);
- try {
- client.executeMethod(method);
- return method.getResponseBodyAsString();
- } catch (HttpException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return null;
- }
-
- /**
- * 鎼滅储
- * @Title: search
- * @Description:
- * @param searchFilter
- * @return
- * VIPSearchResult 杩斿洖绫诲瀷
- * @throws
- */
- public static VIPSearchResult search(VIPSearchFilter searchFilter) {
- Map<String, String> taskParams = new HashMap<>();
- taskParams.put("keyword", searchFilter.getKeyword());
- taskParams.put("page", searchFilter.getPage() + "");
- taskParams.put("pageSize", searchFilter.getPageSize() + "");
- taskParams.put("requestId", System.currentTimeMillis() + "_" + UUID.randomUUID());
- if (searchFilter.getPriceStart() != null)
- taskParams.put("priceStart", searchFilter.getPriceStart());
-
- if (searchFilter.getPriceEnd() != null)
- taskParams.put("priceEnd", searchFilter.getPriceEnd());
- if (searchFilter.getOrder() != null)
- taskParams.put("order", searchFilter.getOrder() + "");
- if (searchFilter.getFieldName() != null)
- taskParams.put("fieldName", searchFilter.getFieldName() + "");
-
- JSONObject root = new JSONObject();
- root.put("request", JSONObject.fromObject(taskParams));
- String result = baseRequest("com.vip.adp.api.open.service.UnionGoodsService", "query", root);
- System.out.println(result);
- List<VIPGoodsInfo> goodsList = new ArrayList<>();
- JSONObject resultJson = JSONObject.fromObject(result);
- Gson gson = new Gson();
- if (resultJson.optInt("returnCode") == 0) {
- resultJson = resultJson.optJSONObject("result");
- int count = resultJson.optInt("total");
- JSONArray array = resultJson.optJSONArray("goodsInfoList");
- for (int i = 0; i < array.size(); i++) {
- VIPGoodsInfo info = gson.fromJson(array.optJSONObject(i).toString(), VIPGoodsInfo.class);
- if (info != null)
- goodsList.add(info);
- }
- return new VIPSearchResult(goodsList, count);
- }
- return null;
- }
-
- /**
- * 鍟嗗搧ID杞摼
- *
- * @param goodsId
- */
- public static String convertLink(String goodsId, String tag) {
- JSONObject taskParams = new JSONObject();
- JSONArray goodsIdArray = new JSONArray();
- goodsIdArray.add(goodsId);
- taskParams.put("goodsIdList", goodsIdArray);
- taskParams.put("chanTag", tag);
- taskParams.put("requestId", System.currentTimeMillis() + "_" + UUID.randomUUID());
- String result = baseRequest("com.vip.adp.api.open.service.UnionUrlService", "genByGoodsId",
- JSONObject.fromObject(taskParams));
- System.out.println(result);
- return null;
- }
-
- /**
- * 鏍规嵁鍟嗗搧ID鑾峰彇鍟嗗搧璇︽儏
- *
- * @param goodsIdList
- * @return
- */
- public static List<VIPGoodsInfo> getGoodsDetail(List<String> goodsIdList) {
- JSONObject params = new JSONObject();
- params.put("goodsIdList", goodsIdList);
- params.put("requestId", UUID.randomUUID());
- String result = baseRequest("com.vip.adp.api.open.service.UnionGoodsService", "getByGoodsIds",
- JSONObject.fromObject(params));
- System.out.println(result);
- JSONObject resultJson = JSONObject.fromObject(result);
- Gson gson = new Gson();
- List<VIPGoodsInfo> goodsList = new ArrayList<>();
- if (resultJson.optInt("returnCode") == 0) {
- JSONArray array = resultJson.optJSONArray("result");
- for (int i = 0; i < array.size(); i++) {
- VIPGoodsInfo info = gson.fromJson(array.optJSONObject(i).toString(), VIPGoodsInfo.class);
- if (info != null)
- goodsList.add(info);
- }
- return goodsList;
- }
- return null;
- }
-
- /**
- * 鑾峰彇鍟嗗搧璇︽儏
- *
- * @param goodsId
- * @return
- */
- public static VIPGoodsInfo getGoodsDetail(String goodsId) {
- List<String> goodsIdList = new ArrayList<>();
- goodsIdList.add(goodsId);
- List<VIPGoodsInfo> goodsList = getGoodsDetail(goodsIdList);
- if (goodsList == null || goodsList.size() == 0)
- return null;
- return goodsList.get(0);
- }
-
- public static void getOrderList() {
- JSONObject params = new JSONObject();
- // params.put("status", 1);
- params.put("orderTimeStart", System.currentTimeMillis() - 1000 * 60 * 60L);
- params.put("orderTimeEnd", System.currentTimeMillis());
- params.put("page", 1);
- // params.put("pageSize", );
- // params.put("updateTimeStart", );
- // params.put("updateTimeEnd", );
- params.put("requestId", UUID.randomUUID());
- JSONObject root = new JSONObject();
- root.put("queryModel", params);
- String result = baseRequest("com.vip.adp.api.open.service.UnionOrderService", "orderList", root);
- System.out.println(result);
- }
-
-}
+package com.yeshi.fanli.util.vipshop;
+
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.lang.reflect.Type;
+import java.net.URLEncoder;
+import java.util.*;
+
+import com.yeshi.fanli.util.Constant;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.yeshi.utils.StringUtil;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import com.yeshi.fanli.dto.vip.VIPConvertResultDTO;
+import com.yeshi.fanli.dto.vip.VIPSearchFilter;
+import com.yeshi.fanli.dto.vip.VIPSearchResult;
+import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo;
+import com.yeshi.fanli.dto.vipshop.VipShopOrderQueryModel;
+import com.yeshi.fanli.dto.vipshop.VipShopQueryOrderResultDTO;
+import com.yeshi.fanli.entity.vipshop.VipShopOrder;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+/**
+ * TODO 鏈畬鎴� 鍞搧浼氭帴鍙�
+ * 鍟嗗搧鎺ュ彛閾炬帴锛歨ttps://vop.vip.com/home#/api/method/detail/com.vip.adp.api.open.service.UnionGoodsService-1.3.0/getByGoodsIds
+ * @author Administrator
+ */
+public class VipShopApiUtil {
+
+ private final static String appKey = "f9e7f22f";
+ private final static String appSecret = "9B2291352497FAF42B2DF44BFCF62316";
+
+ //鏄惁閲囩敤璁㈠崟渚犺浆閾�
+ private final static boolean CONVERT_DINGDANXIA = true;
+
+ /**
+ * 鑾峰彇绛惧悕
+ *
+ * @param systemParams
+ * @param taskParams
+ * @return
+ */
+ private static String getSign(Map<String, String> systemParams, JSONObject taskParams) {
+ List<String> list = new ArrayList<>();
+ for (Iterator<String> its = systemParams.keySet().iterator(); its.hasNext(); ) {
+ String key = its.next();
+ String value = systemParams.get(key);
+ list.add(key + value);
+ }
+ Collections.sort(list);
+ String source = "";
+ for (String st : list)
+ source += st;
+ source += taskParams.toString();
+ return StringUtil.MD5Hmac(source, appSecret);
+ }
+
+ private static Map<String, String> getSystemParams(String service, String method) {
+ Map<String, String> params = new HashMap<String, String>();
+ params.put("service", service);
+ params.put("method", method);
+ params.put("version", "1.0");
+ params.put("timestamp", System.currentTimeMillis() / 1000 + "");
+ params.put("format", "json");
+ params.put("appKey", appKey);
+ return params;
+ }
+
+ /**
+ * 鍩虹璇锋眰
+ *
+ * @param service
+ * @param method
+ * @param taskParams
+ * @return
+ */
+ private static String baseRequest(String service, String method, JSONObject taskParams) {
+ Map<String, String> systemParams = getSystemParams(service, method);
+ String sign = getSign(systemParams, taskParams);
+ systemParams.put("sign", sign);
+ String baseUrl = "https://gw.vipapis.com";
+ baseUrl += "?";
+ for (Iterator<String> its = systemParams.keySet().iterator(); its.hasNext(); ) {
+ String key = its.next();
+ String value = "";
+ try {
+ value = URLEncoder.encode(systemParams.get(key), "UTF-8");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ baseUrl += key + "=" + value + "&";
+ }
+ baseUrl = baseUrl.endsWith("&") ? baseUrl.substring(0, baseUrl.length() - 1) : baseUrl;
+ String result = post(baseUrl, taskParams.toString());
+ return result;
+ }
+
+ @SuppressWarnings("deprecation")
+ private static String post(String url, String body) {
+ HttpClient client = new HttpClient();
+ PostMethod method = new PostMethod(url);
+ method.addRequestHeader("Content-Type", "application/json;charset=UTF-8");
+ method.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
+ method.setRequestBody(body);
+ try {
+ client.executeMethod(method);
+ return method.getResponseBodyAsString();
+ } catch (HttpException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * 鎼滅储
+ *
+ * @param searchFilter
+ * @return VIPSearchResult 杩斿洖绫诲瀷
+ * @throws
+ * @Title: search
+ * @Description:
+ */
+ public static VIPSearchResult search(VIPSearchFilter searchFilter) {
+ Map<String, String> taskParams = new HashMap<>();
+ taskParams.put("keyword", searchFilter.getKeyword());
+ taskParams.put("page", searchFilter.getPage() + "");
+ taskParams.put("pageSize", searchFilter.getPageSize() + "");
+ taskParams.put("requestId", System.currentTimeMillis() + "_" + UUID.randomUUID());
+ if (searchFilter.getPriceStart() != null)
+ taskParams.put("priceStart", searchFilter.getPriceStart());
+
+ if (searchFilter.getPriceEnd() != null)
+ taskParams.put("priceEnd", searchFilter.getPriceEnd());
+ if (searchFilter.getOrder() != null)
+ taskParams.put("order", searchFilter.getOrder() + "");
+ if (searchFilter.getFieldName() != null)
+ taskParams.put("fieldName", searchFilter.getFieldName() + "");
+
+ //鏂板鍙傛暟
+ taskParams.put("chanTag", "default_pid");
+ taskParams.put("openId", "default_open_id");
+ taskParams.put("realCall", "true");
+
+
+
+
+ JSONObject root = new JSONObject();
+ root.put("request", JSONObject.fromObject(taskParams));
+ String result = baseRequest("com.vip.adp.api.open.service.UnionGoodsService", "query", root);
+ System.out.println(result);
+ List<VIPGoodsInfo> goodsList = new ArrayList<>();
+ JSONObject resultJson = JSONObject.fromObject(result);
+ Gson gson = new Gson();
+ if (resultJson.optInt("returnCode") == 0) {
+ resultJson = resultJson.optJSONObject("result");
+ int count = resultJson.optInt("total");
+
+ JSONArray array = resultJson.optJSONArray("goodsInfoList");
+ if (array != null && array.size() > 0) {
+ for (int i = 0; i < array.size(); i++) {
+ JSONObject optJSONObject = array.optJSONObject(i);
+ if (optJSONObject == null) {
+ continue;
+ }
+ VIPGoodsInfo info = gson.fromJson(array.optJSONObject(i).toString(), VIPGoodsInfo.class);
+ if (info != null)
+ goodsList.add(info);
+ }
+ }
+
+ return new VIPSearchResult(goodsList, count);
+ }
+ return null;
+ }
+
+
+ public static VIPSearchResult getGoodsList(int channelType, int page) {
+ Map<String, String> taskParams = new HashMap<>();
+ taskParams.put("channelType", channelType + "");
+ taskParams.put("page", page + "");
+ taskParams.put("pageSize", 20 + "");
+ taskParams.put("requestId", System.currentTimeMillis() + "_" + UUID.randomUUID());
+
+ //鏂板鍙傛暟
+ taskParams.put("chanTag", "default_pid");
+ taskParams.put("openId", "default_open_id");
+ taskParams.put("realCall", "true");
+
+
+ JSONObject root = new JSONObject();
+ root.put("request", JSONObject.fromObject(taskParams));
+ String result = baseRequest("com.vip.adp.api.open.service.UnionGoodsService", "goodsList", root);
+ System.out.println(result);
+ List<VIPGoodsInfo> goodsList = new ArrayList<>();
+ JSONObject resultJson = JSONObject.fromObject(result);
+ Gson gson = new Gson();
+ if (resultJson.optInt("returnCode") == 0) {
+ resultJson = resultJson.optJSONObject("result");
+ int count = resultJson.optInt("total");
+ JSONArray array = resultJson.optJSONArray("goodsInfoList");
+ for (int i = 0; i < array.size(); i++) {
+ VIPGoodsInfo info = gson.fromJson(array.optJSONObject(i).toString(), VIPGoodsInfo.class);
+ if (info != null)
+ goodsList.add(info);
+ }
+ return new VIPSearchResult(goodsList, count);
+ }
+ return null;
+ }
+
+ /**
+ * 鍟嗗搧ID杞摼
+ *
+ * @param goodsId
+ */
+ public static VIPConvertResultDTO convertLink(String goodsId, String tag) {
+
+ if (CONVERT_DINGDANXIA) {
+ return DingDanXiaApiUtil.convertLink(goodsId, tag);
+ }
+
+ JSONObject taskParams = new JSONObject();
+ JSONArray goodsIdArray = new JSONArray();
+ goodsIdArray.add(goodsId);
+ taskParams.put("goodsIdList", goodsIdArray);
+ taskParams.put("chanTag", tag);
+ taskParams.put("requestId", System.currentTimeMillis() + "_" + UUID.randomUUID());
+ String result = baseRequest("com.vip.adp.api.open.service.UnionUrlService", "genByGoodsId",
+ JSONObject.fromObject(taskParams));
+ System.out.println(result);
+ JSONObject resultJSON = JSONObject.fromObject(result);
+ if (resultJSON.optInt("returnCode") == 0) {
+ String re = resultJSON.optJSONObject("result").optJSONArray("urlInfoList").optJSONObject(0).toString();
+ return new Gson().fromJson(re, VIPConvertResultDTO.class);
+ }
+ return null;
+ }
+
+
+ public static VIPConvertResultDTO convertLinkByUrl(String url, String tag) {
+
+ if (CONVERT_DINGDANXIA) {
+ return DingDanXiaApiUtil.convertLinkByUrl(url, tag);
+ }
+ JSONObject taskParams = new JSONObject();
+ JSONArray urlArray = new JSONArray();
+ urlArray.add(url);
+ taskParams.put("urlList", urlArray);
+ if (tag != null) {
+ taskParams.put("chanTag", tag);
+ }
+ taskParams.put("requestId", System.currentTimeMillis() + "_" + UUID.randomUUID());
+ String result = baseRequest("com.vip.adp.api.open.service.UnionUrlService", "genByVIPUrl",
+ JSONObject.fromObject(taskParams));
+ System.out.println(result);
+ JSONObject resultJSON = JSONObject.fromObject(result);
+ if (resultJSON.optInt("returnCode") == 0) {
+ String re = resultJSON.optJSONObject("result").optJSONArray("urlInfoList").optJSONObject(0).toString();
+ return new Gson().fromJson(re, VIPConvertResultDTO.class);
+ }
+ return null;
+ }
+
+ /**
+ * 鏍规嵁鍟嗗搧ID鑾峰彇鍟嗗搧璇︽儏
+ *
+ * @param goodsIdList
+ * @return
+ */
+ public static List<VIPGoodsInfo> getGoodsDetail(List<String> goodsIdList) {
+ JSONObject params = new JSONObject();
+ params.put("goodsIdList", goodsIdList);
+ params.put("requestId", UUID.randomUUID());
+ //鏂板鍙傛暟
+ params.put("chanTag", "default_pid");
+ JSONObject request = new JSONObject();
+ request.put("openId", "default_open_id");
+ request.put("realCall", "true");
+ params.put("request", request);
+
+ String result = baseRequest("com.vip.adp.api.open.service.UnionGoodsService", "getByGoodsIds",
+ JSONObject.fromObject(params));
+ System.out.println(result);
+ JSONObject resultJson = JSONObject.fromObject(result);
+ Gson gson = new Gson();
+ List<VIPGoodsInfo> goodsList = new ArrayList<>();
+ if (resultJson.optInt("returnCode") == 0) {
+ JSONArray array = resultJson.optJSONArray("result");
+ for (int i = 0; i < array.size(); i++) {
+ VIPGoodsInfo info = gson.fromJson(array.optJSONObject(i).toString(), VIPGoodsInfo.class);
+ if (info != null)
+ goodsList.add(info);
+ }
+ return goodsList;
+ }
+ return null;
+ }
+
+ /**
+ * 鑾峰彇鍟嗗搧璇︽儏
+ *
+ * @param goodsId
+ * @return
+ */
+ public static VIPGoodsInfo getGoodsDetail(String goodsId) {
+ List<String> goodsIdList = new ArrayList<>();
+ goodsIdList.add(goodsId);
+ List<VIPGoodsInfo> goodsList = getGoodsDetail(goodsIdList);
+ if (goodsList == null || goodsList.size() == 0)
+ return null;
+ return goodsList.get(0);
+ }
+
+ public static VipShopQueryOrderResultDTO getOrderList(VipShopOrderQueryModel query) {
+ JSONObject params = JSONObject.fromObject(new Gson().toJson(query));
+ params.put("requestId", UUID.randomUUID());
+ JSONObject root = new JSONObject();
+ root.put("queryModel", params);
+ String result = baseRequest("com.vip.adp.api.open.service.UnionOrderService", "orderList", root);
+ System.out.println(result);
+ JSONObject json = JSONObject.fromObject(result);
+ if (json.optInt("returnCode") == 0) {
+ JSONObject resultJson = json.optJSONObject("result");
+ int total = resultJson.optInt("total");
+ JSONArray array = JSONArray.fromObject(resultJson.optJSONArray("orderInfoList"));
+ if (array != null) {
+ Type type = new TypeToken<ArrayList<VipShopOrder>>() {
+ }.getType();
+ List<VipShopOrder> orderList = new Gson().fromJson(array.toString(), type);
+ return new VipShopQueryOrderResultDTO(orderList, total);
+ }
+ }
+ return null;
+ }
+
+ public static void main(String[] args) {
+// VIPSearchFilter sf=new VIPSearchFilter();
+// sf.setKeyword("鑺卞崏");
+// sf.setPage(1);
+// sf.setPageSize(Constant.PAGE_SIZE);
+// search(sf);
+
+ getGoodsDetail("6920553939593155215");
+
+// convertLinkByUrl("https://t.vip.com/T7RyKKCJLj9", "437032");
+// convertLink("560392904","437032");
+// getOrderList(VipShopOrderQueryModel.createOrderSn(Arrays.asList(new String[]{"23090254293903"}),1));
+ }
+
+}
--
Gitblit v1.8.0