From ebce479a2d0634c90e5f80045e204248336b410d Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期四, 30 五月 2019 09:42:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java | 461 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 457 insertions(+), 4 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
index 30b5e1b..f02503e 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -7,7 +7,11 @@
import java.util.List;
import java.util.Map;
+import org.yeshi.utils.taobao.TbImgUtil;
+
import com.taobao.api.ApiException;
+import com.yeshi.fanli.dto.taobao.TaoBaoShopInfoDTO;
+import com.yeshi.fanli.dto.taobao.TaoLiJinDTO;
import com.yeshi.fanli.entity.taobao.RelateGoods;
import com.yeshi.fanli.entity.taobao.SearchFilter;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -19,13 +23,13 @@
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
+import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.log.TaoKeLogHelper;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.TimeUtil;
-
-import org.yeshi.utils.taobao.TbImgUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -158,6 +162,7 @@
map.put("method", "taobao.tbk.item.info.get");
map.put("num_iids", id + "");
String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
+ // System.out.println(resultStr);
JSONObject data = JSONObject.fromObject(resultStr);
// 鍟嗗搧涓嬫灦
if (data.optJSONObject("error_response") != null && data.optJSONObject("error_response").optInt("code") == 15
@@ -220,9 +225,22 @@
if (item.optBoolean("free_shipment"))
goods.setFreeShipment(1);
+ if (!StringUtil.isNullOrEmpty(item.optString("material_lib_type")))
+ goods.setMaterialLibType(item.optInt("material_lib_type"));
+ else
+ goods.setMaterialLibType(0);
+
return goods;
}
return null;
+ }
+
+ public String convertSpecialGoodsLink(Long auctionId, TaoKeAppInfo app) {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.coupon.convert");
+ map.put("item_id", auctionId + "");
+ String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
+ return resultStr;
}
public static List<TaoBaoGoodsBrief> getBatchGoodsInfo(List<Long> listId)
@@ -323,6 +341,11 @@
if (item.optBoolean("free_shipment"))
goods.setFreeShipment(1);
+ if ("1".equalsIgnoreCase(item.optString("material_lib_type")))
+ goods.setMaterialLibType(1);
+ else
+ goods.setMaterialLibType(0);
+
goodsList.add(goods);
}
}
@@ -349,6 +372,7 @@
goods.getUserType());
if (result != null && result.getTaoBaoGoodsBriefs() != null)
for (TaoBaoGoodsBrief g : result.getTaoBaoGoodsBriefs()) {
+ System.out.println(goods.getAuctionId() + ":" + g.getAuctionId());
if (goods.getAuctionId().longValue() == g.getAuctionId()) {
g.setId(goods.getAuctionId());
// 鍒ゆ柇鏄惁鏈変紭鎯犲埜
@@ -368,6 +392,7 @@
g.setCouponStartFee(new BigDecimal(0));
}
g.setCreatetime(new Date());
+ g.setMaterialLibType(goods.getMaterialLibType());
return g;
}
}
@@ -435,6 +460,7 @@
g.setCouponStartFee(new BigDecimal(0));
}
g.setCreatetime(new Date());
+ g.setMaterialLibType(goods.getMaterialLibType());
return g;
}
}
@@ -886,10 +912,16 @@
private static TaoBaoGoodsBrief parseWuLiaoItem(JSONObject item) {
TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
goods.setPictUrl(item.optString("pict_url"));
+
+ if (!StringUtil.isNullOrEmpty(item.optString("white_image"))) {
+ goods.setPictUrlWhite(item.optString("white_image"));
+ }
+
goods.setAuctionId(item.optLong("num_iid"));
goods.setAuctionUrl("https:" + item.optString("url"));
goods.setBiz30day(item.optInt("volume"));
goods.setCouponInfo(item.optString("coupon_info"));
+
if (goods.getCouponInfo() != null)
goods.setCouponInfo(goods.getCouponInfo().replace(".00", ""));
@@ -1073,6 +1105,8 @@
goods.setZkPrice(new BigDecimal(item.optString("zk_final_price")));
goods.setAuctionUrl(item.optString("item_url"));
goods.setPictUrl(item.optString("pict_url"));
+ goods.setSalesCount(item.optString("volume"));
+ goods.setUserType(item.optInt("user_type"));
list.add(goods);
}
}
@@ -1203,6 +1237,62 @@
}
}
return list;
+ }
+
+ /**
+ * 搴楅摵鎼滅储
+ *
+ * @param key
+ * -搴楅摵鍚嶇О
+ * @param page
+ * -椤电爜
+ * @return
+ */
+ public static TaoBaoShopInfoDTO searchShop(String key, int page, int pageSize) {
+ TaoBaoShopInfoDTO dto = new TaoBaoShopInfoDTO();
+ if (StringUtil.isNullOrEmpty(key))
+ return dto;
+
+ PageEntity pageEntity = new PageEntity();
+ List<TaoBaoShopInfo> list = new ArrayList<>();
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.shop.get");
+ map.put("fields", "user_id,shop_title,shop_type,seller_nick,pict_url,shop_url");
+ map.put("q", key);
+ map.put("page_size", pageSize + "");
+ map.put("page_no", page + "");
+ String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
+ JSONObject resultDate = JSONObject.fromObject(resultStr);
+ if (resultDate.optJSONObject("tbk_shop_get_response") != null
+ && resultDate.optJSONObject("tbk_shop_get_response").optJSONObject("results") != null) {
+ JSONArray array = resultDate.optJSONObject("tbk_shop_get_response").optJSONObject("results")
+ .optJSONArray("n_tbk_shop");
+ if (array != null) {
+ for (int i = 0; i < array.size(); i++) {
+ JSONObject item = array.optJSONObject(i);
+ TaoBaoShopInfo info = new TaoBaoShopInfo();
+ info.setPictureUrl(item.optString("pict_url"));
+ info.setSellerNick(item.optString("seller_nick"));
+ info.setShopTitle(item.optString("shop_title"));
+ info.setShopType(item.optString("shop_type"));
+ info.setShopUrl(item.optString("shop_url"));
+ info.setUserId(item.optLong("user_id"));
+ list.add(info);
+ }
+ }
+
+ JSONObject optJSONObject = resultDate.optJSONObject("tbk_shop_get_response");
+ int totalResults = optJSONObject.getInt("total_results");
+ int totalPage = totalResults % pageSize == 0 ? totalResults / pageSize : totalResults / pageSize + 1;
+ pageEntity.setTotalCount(totalResults);
+ pageEntity.setTotalPage(totalPage);
+ }
+ pageEntity.setPageIndex(page);
+ pageEntity.setPageSize(pageSize);
+
+ dto.setListInfo(list);
+ dto.setPage(pageEntity);
+ return dto;
}
/**
@@ -1437,6 +1527,7 @@
/**
* 浠庢窐瀹濋摼鎺ヤ腑瑙f瀽鍟嗗搧ID锛堥珮绾ф帴鍙o級
+ *
* @param link
* @return
*/
@@ -1452,11 +1543,262 @@
}
if (resultJSON == null)
return null;
-
-
+
return null;
}
+
+ public static String getAccessToken(String code, String appKey, String appSecret) {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.top.auth.token.create");
+ map.put("code", code);
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAppKey(appKey);
+ app.setAppSecret(appSecret);
+ try {
+ JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
+ if (json != null)
+ return json.toString();
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ /**
+ * 娓犻亾閭�璇风爜
+ *
+ * @param relationId
+ * @return
+ */
+ public static String getInviteCode(Long relationId, String accessToken, String appKey, String appSecret) {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.sc.invitecode.get");
+ map.put("session", accessToken);
+ map.put("code_type", "1");
+ map.put("relation_app", "common");
+ JSONObject resultJSON = null;
+ try {
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAppKey(appKey);
+ app.setAppSecret(appSecret);
+ resultJSON = TaoKeBaseUtil.baseRequest(map, app);
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ }
+ if (resultJSON == null)
+ return null;
+
+ return null;
+ }
+
+ /**
+ * 鑾峰彇娓犻亾閭�璇风爜
+ *
+ * @param accessToken
+ * @param appKey
+ * @param appSecret
+ * @return
+ */
+ public static String getRootRelationInviteCode(String accessToken, String appKey, String appSecret) {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.sc.invitecode.get");
+ map.put("session", accessToken);
+ map.put("code_type", "1");
+ map.put("relation_app", "common");
+ JSONObject resultJSON = null;
+ try {
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAppKey(appKey);
+ app.setAppSecret(appSecret);
+ resultJSON = TaoKeBaseUtil.baseRequest(map, app);
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ }
+ if (resultJSON == null)
+ return null;
+
+ return null;
+ }
+
+ public static String getRootSpecialInviteCode(String accessToken, String appKey, String appSecret) {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.sc.invitecode.get");
+ map.put("session", accessToken);
+ map.put("code_type", "3");
+ map.put("relation_app", "common");
+ JSONObject resultJSON = null;
+ try {
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAppKey(appKey);
+ app.setAppSecret(appSecret);
+ resultJSON = TaoKeBaseUtil.baseRequest(map, app);
+ return resultJSON.optJSONObject("tbk_sc_invitecode_get_response").optJSONObject("data")
+ .optString("inviter_code");
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ }
+ if (resultJSON == null)
+ return null;
+
+ return null;
+ }
+
+ public static String getRelationId(String accessToken, String appKey, String appSecret) {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.sc.publisher.info.save");
+ map.put("session", accessToken);
+ map.put("inviter_code", "A2QnGL");
+ map.put("info_type", "1");
+ map.put("online_scene", "1");
+ JSONObject resultJSON = null;
+ try {
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAppKey(appKey);
+ app.setAppSecret(appSecret);
+ resultJSON = TaoKeBaseUtil.baseRequest(map, app);
+ return resultJSON.optJSONObject("tbk_sc_publisher_info_save_response").optJSONObject("data")
+ .optString("relation_id");
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ LogHelper.error("娓犻亾ID鐢宠鍑洪敊:" + resultJSON);
+ }
+
+ return null;
+ }
+
+ public static String getSpecialId(String accessToken, String appKey, String appSecret) {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.sc.publisher.info.save");
+ map.put("session", accessToken);
+ map.put("inviter_code", "AA5ISJ");
+ map.put("info_type", "1");
+ map.put("online_scene", "1");
+ JSONObject resultJSON = null;
+ try {
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAppKey(appKey);
+ app.setAppSecret(appSecret);
+ resultJSON = TaoKeBaseUtil.baseRequest(map, app);
+ return resultJSON.optJSONObject("tbk_sc_publisher_info_save_response").optJSONObject("data")
+ .optString("special_id");
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ LogHelper.error("浼氬憳杩愯惀ID鐢宠鍑洪敊:" + resultJSON);
+ }
+
+ return null;
+ }
+
+ public static void specialConvertItem(Long auctionId, TaoKeAppInfo app) {
+ String pid = app.getPid();
+ String[] sts = pid.split("_");
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.item.convert");
+ map.put("num_iids", auctionId + "");
+ map.put("fields", "num_iid,click_url");
+ map.put("adzone_id", sts[3]);
+ map.put("platform", "2");
+ try {
+ JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
+ System.out.println(json.toString());
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static TaoBaoGoodsBrief specialConvertCoupon(Long auctionId, TaoKeAppInfo app) {
+ String pid = app.getPid();
+ String[] sts = pid.split("_");
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.coupon.convert");
+ map.put("item_id", auctionId + "");
+ map.put("adzone_id", sts[3]);
+ try {
+ JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
+ JSONObject resultJSON = json.optJSONObject("tbk_coupon_convert_response").optJSONObject("result")
+ .optJSONObject("results");
+ String couponLink = resultJSON.optString("coupon_click_url");
+ String itemLink = resultJSON.optString("item_url");
+ TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
+ goods.setAuctionUrl(itemLink);
+ if (!StringUtil.isNullOrEmpty(resultJSON.optString("coupon_info"))) {
+ goods.setCouponLink(couponLink);
+ goods.setCouponInfo(resultJSON.optString("coupon_info"));
+ }
+ String tkRate = resultJSON.optString("max_commission_rate");
+ if (!StringUtil.isNullOrEmpty(tkRate)) {
+ goods.setTkRate(new BigDecimal(tkRate));
+ }
+ return goods;
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ public static void juHuaSuan() {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.ju.items.search");
+ map.put("current_page", 1 + "");
+ map.put("page_size", 100 + "");
+ map.put("pid", "mm_124933865_43788020_381938426");
+
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAppKey("24838852");
+ app.setAppSecret("bc8265e2bf8d8115329d652f9d3d4cd8");
+
+ try {
+ JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
+ System.out.println(json);
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ public static void taoKeContent() {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.content.get");
+ map.put("adzone_id", TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT.split("_")[3]);
+ map.put("type", "1");
+ map.put("count", "100");
+
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
+ app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+ try {
+ JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
+ System.out.println(json);
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void taoKeContentSource(String contentId, String source) {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.dg.optimus.material");
+ map.put("adzone_id", TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT.split("_")[3]);
+ map.put("page_size", "10");
+ map.put("page_no", "1");
+ map.put("content_id", contentId);
+ map.put("content_source", source);
+ map.put("material_id", "1");
+
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
+ app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+ try {
+ JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
+ System.out.println(json);
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ }
+ }
+
+ // AA5ISJ
private static TaoBaoGoodsBrief parseWuLiaoItemFromMaterialId(JSONObject item) {
TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
@@ -1546,9 +1888,120 @@
}
goods.setReservePrice(new BigDecimal(0));
goods.setTotalFee(new BigDecimal("0"));
+ goods.setPictUrlWhite(item.optString("white_image"));
return goods;
}
+ public static void getShopGoodsList(Long shopId) {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "tmall.omni.pc.iteminfo.getbyshopid");
+ map.put("shop_id", shopId + "");
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAppKey("24838852");
+ app.setAppSecret("bc8265e2bf8d8115329d652f9d3d4cd8");
+ try {
+ JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
+ System.out.println(json);
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void getTaoKeContentEffective() {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.dg.optimus.material");
+ map.put("adzone_id", TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID.split("_")[3]);
+ map.put("page_no", "1");
+ map.put("page_size", "20");
+ map.put("content_id", "8872035");
+
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
+ app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+ try {
+ JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
+ System.out.println(json);
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ public static void getTaoKeContent() {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.content.get");
+ map.put("adzone_id", TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID.split("_")[3]);
+ map.put("type", "1");
+
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
+ app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+ try {
+ JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
+ System.out.println(json);
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ // 娣樼ぜ閲戝垱寤�
+
+ public static TaoLiJinDTO createTaoLiJin(Long auctionId, String name, BigDecimal perface, int totalNum,
+ int useDayLimit, Date sendStartTime, Date sendEndTime, Date useStartTime) {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.dg.vegas.tlj.create");
+ map.put("adzone_id", TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT.split("_")[3]);
+ map.put("item_id", auctionId + "");
+ map.put("total_num", totalNum + "");
+ map.put("name", name);
+ map.put("user_total_win_num_limit", "1");
+ map.put("security_switch", "false");
+ map.put("per_face", perface.toString());
+ map.put("send_start_time", TimeUtil.getGernalTime(sendStartTime.getTime(), "yyyy-MM-dd HH:mm:ss"));
+ map.put("send_end_time", TimeUtil.getGernalTime(sendEndTime.getTime(), "yyyy-MM-dd HH:mm:ss"));
+ map.put("use_end_time", useDayLimit + "");
+ map.put("use_end_time_mode", "1");
+ map.put("use_start_time", TimeUtil.getGernalTime(useStartTime.getTime(), "yyyy-MM-dd HH:mm:ss"));
+
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
+ app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+ try {
+ JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
+ System.out.println(json);
+ JSONObject root = json.optJSONObject("tbk_dg_vegas_tlj_create_response");
+ if (root != null && root.optJSONObject("result") != null) {
+ if (root.optJSONObject("result").optBoolean("success")) {
+ JSONObject modelJson = root.optJSONObject("result").optJSONObject("model");
+ TaoLiJinDTO dto = new TaoLiJinDTO();
+ dto.setRightsId(modelJson.optString("rights_id"));
+ dto.setSendUrl(modelJson.optString("send_url"));
+ return dto;
+ }
+ }
+ } catch (TaoKeApiException e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ // lCj1Alo8b9L4Ed6yJLq6iqJ7%2BkHL3AEW
+
+ public static void getTaoLiJinEffective() {
+ Map<String, String> map = new HashMap<>();
+ map.put("method", "taobao.tbk.dg.vegas.tlj.instance.report");
+ map.put("rights_id", "ZrIIvF/nd7SlL5Bg59eTK6J7+kHL3AEW");
+
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
+ app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+
+ String json = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
+ System.out.println(json);
+ }
+
}
class QuanInfo {
--
Gitblit v1.8.0