From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeScApiUtil.java | 4351 ++++++++++++++++++++++++++++------------------------------
 1 files changed, 2,114 insertions(+), 2,237 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeScApiUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeScApiUtil.java
index 60033d8..3aae756 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeScApiUtil.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeScApiUtil.java
@@ -1,2237 +1,2114 @@
-package com.yeshi.fanli.util.taobao;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.yeshi.utils.JsonUtil;
-import org.yeshi.utils.taobao.TbImgUtil;
-
-import com.yeshi.goods.facade.dto.taobao.TaoBaoShopInfoDTO;
-import com.yeshi.fanli.dto.taobao.TaoLiJinDTO;
-import com.yeshi.fanli.dto.taobao.api.TaoKeOfficialActivityConvertResultDTO;
-import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinReport;
-import com.yeshi.fanli.entity.taobao.SearchFilter;
-import com.yeshi.fanli.entity.taobao.SearchShopFilter;
-import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
-import com.yeshi.goods.facade.entity.taobao.TaoBaoHead;
-import com.yeshi.fanli.entity.taobao.TaoBaoProvince;
-import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav;
-import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
-import com.yeshi.common.entity.taobao.TaoBaoShopInfo;
-import com.yeshi.common.entity.taobao.TaoKeAppInfo;
-import com.yeshi.fanli.exception.taobao.TaoBaoAuthException;
-import com.yeshi.fanli.exception.taobao.TaoBaoTokenParseException;
-import com.yeshi.fanli.exception.taobao.TaoKeApiException;
-import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
-import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException;
-import com.yeshi.fanli.log.LogHelper;
-import com.yeshi.fanli.log.TLJLogHelper;
-import com.yeshi.fanli.log.TaoKeLogHelper;
-import com.yeshi.common.entity.PageEntity;
-import org.yeshi.utils.MoneyBigDecimalUtil;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.TaoBaoConstant;
-import org.yeshi.utils.TimeUtil;
-
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
-//娣樺疂瀹PI鎺ュ彛
-public class TaoKeScApiUtil {
-
-	// 瑙f瀽鍒哥殑鍐呭
-	private static TaoBaoSearchResult parseCoupleContent(String content) {
-		TaoBaoSearchResult result = new TaoBaoSearchResult();
-		JSONObject root = JSONObject.fromObject(content);
-
-		root = root.optJSONObject("tbk_dg_item_coupon_get_response");
-		if (root.optJSONObject("results") == null)
-			return null;
-
-		JSONArray array = root.optJSONObject("results").optJSONArray("tbk_coupon");
-		if (array != null) {
-			List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
-			for (int i = 0; i < array.size(); i++) {
-				JSONObject item = array.optJSONObject(i);
-				TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
-				goods.setPictUrl(item.optString("pict_url"));
-				goods.setAuctionId(item.optLong("num_iid"));
-				goods.setAuctionUrl(item.optString("item_url"));
-				goods.setBiz30day(item.optInt("volume"));
-				goods.setCouponInfo(item.optString("coupon_info"));
-				List<BigDecimal> quanInfo = TaoBaoCouponUtil.getCouponInfo(goods.getCouponInfo());
-				goods.setCouponAmount(quanInfo.get(1));
-				goods.setCouponEffectiveEndTime(item.optString("coupon_end_time"));
-				goods.setCouponEffectiveStartTime(item.optString("coupon_start_time"));
-				goods.setCouponStartFee(quanInfo.get(0));
-				goods.setCouponLeftCount(item.optInt("coupon_remain_count"));
-				goods.setCouponLink(item.optString("coupon_click_url"));
-				goods.setCouponTotalCount(item.optInt("coupon_total_count"));
-				goods.setDayLeft(-1);
-				if (item.optJSONObject("small_images") != null) {
-					JSONArray imgArray = item.optJSONObject("small_images").optJSONArray("string");
-					if (imgArray != null) {
-						List<String> imgList = new ArrayList<>();
-						for (int n = 0; n < imgArray.size(); n++) {
-							imgList.add(imgArray.optString(n));
-						}
-						goods.setImgList(imgList);
-					}
-				}
-
-				goods.setSellerId(item.optLong("seller_id"));
-				goods.setShopTitle(item.optString("shop_title"));
-				goods.setTitle(item.optString("title"));
-
-				goods.setTkRate(new BigDecimal(item.optString("commission_rate")));
-				goods.setTotalNum(1000);
-				goods.setUserType(item.optInt("user_type"));
-				goods.setUserTypeName("");
-				goods.setZkPrice(new BigDecimal(item.optString("zk_final_price")));
-
-				if (goods.getZkPrice().compareTo(goods.getCouponStartFee()) >= 0
-						&& goods.getZkPrice().compareTo(goods.getCouponAmount()) > 0) {
-					BigDecimal finalPrice = goods.getZkPrice().subtract(goods.getCouponAmount());
-					goods.setTkCommFee(finalPrice.multiply(goods.getTkRate()).divide(new BigDecimal(100)));
-				} else
-					goods.setTkCommFee(new BigDecimal(0));
-
-				goodsList.add(goods);
-			}
-
-			result.setTaoBaoGoodsBriefs(goodsList);
-
-			int totalCount = 1000;// root.optInt("total_results");
-			PageEntity pe = new PageEntity(0, 0, totalCount);
-			result.setPageEntity(pe);
-		}
-		result.setNavList(new ArrayList<>());
-		TaoBaoHead taoBaoHead = new TaoBaoHead();
-		taoBaoHead.setDocsfound((int) result.getPageEntity().getTotalCount());
-		result.setTaoBaoHead(taoBaoHead);
-		return result;
-	}
-
-	/**
-	 * 鑾峰彇鍟嗗搧璇︽儏锛岀畝鐗�
-	 * 
-	 * @param id
-	 *            -鍟嗗搧AuctionId
-	 * @return
-	 */
-	public static TaoBaoGoodsBrief getSimpleGoodsInfo(Long id) throws TaobaoGoodsDownException {
-		Map<String, String> map = new HashMap<>();
-		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
-				&& data.optJSONObject("error_response").optInt("sub_code") == 50001) {
-			throw new TaobaoGoodsDownException(data.optJSONObject("error_response").optInt("code"), "鍟嗗搧涓嬫灦");
-		}
-
-		if (data.optJSONObject("tbk_item_info_get_response") == null)
-			return null;
-		JSONArray array = data.optJSONObject("tbk_item_info_get_response").optJSONObject("results")
-				.optJSONArray("n_tbk_item");
-		if (array != null && array.size() > 0) {
-			JSONObject item = array.optJSONObject(0);
-			return parseSimpleGoodsInfo(item);
-		}
-		return null;
-	}
-
-	private static TaoBaoGoodsBrief parseSimpleGoodsInfo(JSONObject item) {
-		TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
-		goods.setAuctionId(item.optLong("num_iid"));
-		goods.setAuctionUrl(item.optString("item_url"));
-		goods.setBiz30day(item.optInt("volume"));
-		if (item.optJSONObject("small_images") != null) {
-			JSONArray imgArray = item.optJSONObject("small_images").optJSONArray("string");
-			if (imgArray != null) {
-				List<String> imgList = new ArrayList<>();
-				for (int n = 0; n < imgArray.size(); n++) {
-					imgList.add(imgArray.optString(n));
-				}
-				goods.setImgList(imgList);
-			}
-		}
-		goods.setTitle(item.optString("title"));
-		goods.setUserType(item.optInt("user_type"));
-		goods.setZkPrice(new BigDecimal(item.optString("zk_final_price")));
-		goods.setReservePrice(new BigDecimal(item.optString("zk_final_price")));
-		goods.setAuctionUrl(item.optString("item_url"));
-		goods.setProvcity(item.optString("provcity"));
-		goods.setPictUrl(item.optString("pict_url"));
-		goods.setShopTitle(item.optString("nick"));
-		goods.setSellerId(item.optLong("seller_id"));
-		goods.setRootCategoryName(item.optString("cat_name"));
-		goods.setLeafName(item.optString("cat_leaf_name"));
-
-		String optString = item.optString("shop_dsr");
-		if (!StringUtil.isNullOrEmpty(optString)) {
-			goods.setShopDsr(new Integer(optString));
-		}
-
-		String ratesum = item.optString("ratesum");
-		if (!StringUtil.isNullOrEmpty(ratesum)) {
-			goods.setRatesum(new Integer(ratesum));
-		}
-
-		if (item.optBoolean("is_prepay"))
-			goods.setIsPrepay(1);
-
-		if (item.optBoolean("i_rfd_rate"))
-			goods.setRfdRate(1);
-
-		if (item.optBoolean("h_good_rate"))
-			goods.setGoodRate(1);
-
-		if (item.optBoolean("h_pay_rate30"))
-			goods.setPayRate30(1);
-
-		if (item.optBoolean("free_shipment"))
-			goods.setFreeShipment(1);
-
-		if (!StringUtil.isNullOrEmpty(item.optString("material_lib_type"))) {
-			try {
-				String materialLibType = item.optString("material_lib_type");
-				goods.setMaterialLibType(Integer.parseInt(materialLibType.split(",")[0]));
-			} catch (Exception e) {
-				goods.setMaterialLibType(0);
-			}
-
-		} else
-			goods.setMaterialLibType(0);
-
-		goods.setRootCategoryName(item.optString("cat_name"));
-		goods.setLeafName(item.optString("cat_leaf_name"));
-
-		goods = loadYuShouInfo(goods, item);
-		return goods;
-	}
-
-	private static TaoBaoGoodsBrief loadYuShouInfo(TaoBaoGoodsBrief goods, JSONObject item) {
-		if (goods != null && item != null) {
-			// 棰勫敭鐩稿叧瑙f瀽
-			goods.setYsylClickUrl(item.optString("ysyl_click_url"));
-			if (!StringUtil.isNullOrEmpty(item.optString("ysyl_commission_rate")))
-				goods.setYsylCommissionRate(new BigDecimal(item.optString("ysyl_commission_rate")));
-			goods.setYsylTljFace(item.optString("ysyl_tlj_face"));
-			goods.setYsylTljSendTime(item.optString("ysyl_tlj_send_time"));
-			goods.setYsylTljUseEndTime(item.optString("ysyl_tlj_use_end_time"));
-			goods.setYsylTljUseStartTime(item.optString("ysyl_tlj_use_start_time"));
-
-			goods.setPresaleDeposit(item.optString("presale_deposit"));
-			goods.setPresaleDiscountFeeText(item.optString("presale_discount_fee_text"));
-			goods.setPresaleEndTime(item.optString("presale_end_time"));
-			goods.setPresaleStartTime(item.optString("presale_start_time"));
-			goods.setPresaleTailEndTime(item.optString("presale_tail_end_time"));
-			goods.setPresaleTailStartTime(item.optString("presale_tail_start_time"));
-
-			return goods;
-		}
-		return goods;
-	}
-
-	public static List<TaoBaoGoodsBrief> getBatchGoodsInfo(List<Long> listId)
-			throws TaoKeApiException, TaobaoGoodsDownException {
-		if (listId == null || listId.size() == 0) {
-			throw new TaobaoGoodsDownException(1, "娣樺疂鍟嗗搧ID涓嶈兘涓虹┖");
-		}
-
-		if (listId.size() > 40) {
-			throw new TaobaoGoodsDownException(1, "娣樺疂鍟嗗搧ID涓嶈兘瓒呰繃40涓�");
-		}
-
-		StringBuffer ids = new StringBuffer();
-		for (Long id : listId) {
-			ids.append(id + ",");
-		}
-
-		return getBatchGoodsInfos(ids.substring(0, ids.length() - 1));
-	}
-
-	/**
-	 * 鑾峰彇鍟嗗搧璇︽儏锛岀畝鐗�
-	 * 
-	 * @param id
-	 * @return
-	 */
-	public static List<TaoBaoGoodsBrief> getBatchGoodsInfos(String ids) throws TaobaoGoodsDownException {
-		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
-
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.item.info.get");
-		map.put("num_iids", ids + "");
-		String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
-		JSONObject data = JSONObject.fromObject(resultStr);
-		// 鍟嗗搧涓嬫灦
-		if (data.optJSONObject("error_response") != null && data.optJSONObject("error_response").optInt("code") == 15
-				&& data.optJSONObject("error_response").optInt("sub_code") == 50001) {
-			throw new TaobaoGoodsDownException(data.optJSONObject("error_response").optInt("code"), "鍟嗗搧涓嬫灦");
-		}
-
-		if (data.optJSONObject("tbk_item_info_get_response") == null)
-			return null;
-
-		JSONArray array = data.optJSONObject("tbk_item_info_get_response").optJSONObject("results")
-				.optJSONArray("n_tbk_item");
-		if (array != null && array.size() > 0) {
-
-			for (int i = 0; i < array.size(); i++) {
-				JSONObject item = array.optJSONObject(i);
-				goodsList.add(parseSimpleGoodsInfo(item));
-			}
-		}
-		return goodsList;
-	}
-
-	/**
-	 * 鎼滅储鍟嗗搧璇︽儏-璇︾粏
-	 * 
-	 * @param id
-	 * @return
-	 * @throws TaobaoGoodsDownException
-	 */
-	public static TaoBaoGoodsBrief searchGoodsDetail(Long id) throws TaobaoGoodsDownException {
-		TaoBaoGoodsBrief goods = getSimpleGoodsInfo(id);
-		if (goods == null)
-			return null;
-		SearchFilter filter = new SearchFilter();
-		filter.setKey(goods.getTitle());
-		filter.setPage(1);
-		filter.setPageSize(50);
-		TaoBaoSearchResult result = searchWuLiaoForDetail(goods.getTitle(), goods.getZkPrice(), goods.getProvcity(),
-				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());
-					g.setCreatetime(new Date());
-					g.setMaterialLibType(goods.getMaterialLibType());
-					g.setProvcity(goods.getProvcity());
-					return g;
-				}
-			}
-
-		// 浠庤浆閾炬悳绱�
-		TaoBaoGoodsBrief newGoods = specialConvertCoupon(goods.getAuctionId(),
-				new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET,
-						TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT));
-
-		if (newGoods != null) {
-			goods.setTkRate(newGoods.getTkRate());
-			if (!StringUtil.isNullOrEmpty(newGoods.getCouponInfo())) {
-				List<BigDecimal> couponInfo = TaoBaoCouponUtil.getCouponInfo(newGoods.getCouponInfo());
-				if (couponInfo != null && couponInfo.size() > 1) {
-					goods.setCouponStartFee(couponInfo.get(0));
-					goods.setCouponAmount(couponInfo.get(1));
-					goods.setCouponEffectiveStartTime(newGoods.getCouponEffectiveStartTime());
-					goods.setCouponEffectiveEndTime(newGoods.getCouponEffectiveEndTime());
-					goods.setCouponLeftCount(newGoods.getCouponLeftCount());
-					goods.setCouponTotalCount(newGoods.getCouponTotalCount());
-					goods.setCouponInfo(newGoods.getCouponInfo());
-				}
-			}
-
-			return goods;
-
-		} else {
-			goods.setCouponAmount(new BigDecimal("0"));
-			goods.setTkMktStatus("1");
-			goods.setTkRate(new BigDecimal("0"));
-			goods.setReservePrice(new BigDecimal(0));
-			goods.setTkCommFee(new BigDecimal(0));
-			return goods;
-		}
-
-	}
-
-	/**
-	 * 鎼滅储鍟嗗搧璇︽儏-璇︾粏
-	 * 
-	 * @param id
-	 * @return
-	 * @throws TaobaoGoodsDownException
-	 */
-	public static TaoBaoGoodsBrief searchGoodsDetail(Long id, TaoKeAppInfo app) throws TaobaoGoodsDownException {
-		TaoBaoGoodsBrief goods = getSimpleGoodsInfo(id);
-		if (goods == null)
-			return null;
-		SearchFilter filter = new SearchFilter();
-		filter.setKey(goods.getTitle());
-		filter.setPage(1);
-		filter.setPageSize(50);
-		TaoBaoSearchResult result = searchWuLiaoForDetail(goods.getTitle(), goods.getZkPrice(), goods.getProvcity(),
-				goods.getUserType(), app);
-		if (result != null && result.getTaoBaoGoodsBriefs() != null)
-			for (TaoBaoGoodsBrief g : result.getTaoBaoGoodsBriefs()) {
-				if (goods.getAuctionId().longValue() == g.getAuctionId()) {
-					g.setId(goods.getAuctionId());
-					// 鍒ゆ柇鏄惁鏈変紭鎯犲埜
-					if (!StringUtil.isNullOrEmpty(g.getCouponActivityId())) {
-						// 鑾峰彇浼樻儬鍒歌鎯�
-						QuanInfo quanInfo = getQuanInfo(g.getAuctionId(), g.getCouponActivityId());
-						if (quanInfo != null) {
-							g.setCouponAmount(quanInfo.coupon_amount);
-							g.setCouponEffectiveEndTime(quanInfo.coupon_end_time);
-							g.setCouponEffectiveStartTime(quanInfo.coupon_start_time);
-							g.setCouponLeftCount(quanInfo.coupon_remain_count);
-							g.setCouponStartFee(quanInfo.coupon_start_fee);
-							g.setCouponTotalCount(quanInfo.coupon_total_count);
-						}
-					} else {
-						g.setCouponAmount(new BigDecimal(0));
-						g.setCouponStartFee(new BigDecimal(0));
-					}
-					g.setCreatetime(new Date());
-					g.setMaterialLibType(goods.getMaterialLibType());
-					g.setProvcity(goods.getProvcity());
-					return g;
-				}
-			}
-
-		// 浠庤浆閾炬悳绱�
-		TaoBaoGoodsBrief newGoods = specialConvertCoupon(goods.getAuctionId(),
-				new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET,
-						TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT));
-
-		if (newGoods != null) {
-			goods.setTkRate(newGoods.getTkRate());
-			if (!StringUtil.isNullOrEmpty(newGoods.getCouponInfo())) {
-				List<BigDecimal> couponInfo = TaoBaoCouponUtil.getCouponInfo(newGoods.getCouponInfo());
-				if (couponInfo != null && couponInfo.size() > 1) {
-					goods.setCouponStartFee(couponInfo.get(0));
-					goods.setCouponAmount(couponInfo.get(1));
-					goods.setCouponEffectiveStartTime(newGoods.getCouponEffectiveStartTime());
-					goods.setCouponEffectiveEndTime(newGoods.getCouponEffectiveEndTime());
-					goods.setCouponLeftCount(newGoods.getCouponLeftCount());
-					goods.setCouponTotalCount(newGoods.getCouponTotalCount());
-					goods.setCouponInfo(newGoods.getCouponInfo());
-				}
-			}
-
-			return goods;
-
-		} else {
-			goods.setCouponAmount(new BigDecimal("0"));
-			goods.setTkMktStatus("1");
-			goods.setTkRate(new BigDecimal("0"));
-			goods.setReservePrice(new BigDecimal(0));
-			goods.setTkCommFee(new BigDecimal(0));
-			return goods;
-		}
-	}
-
-	/**
-	 * 鐗╂枡杞摼
-	 * 
-	 * @param id
-	 * @param app
-	 * @return
-	 * @throws TaobaoGoodsDownException
-	 */
-	public static TaoBaoGoodsBrief searchGoodsDetailForConvert(Long id, TaoKeAppInfo app)
-			throws TaobaoGoodsDownException {
-		TaoBaoGoodsBrief goods = getSimpleGoodsInfo(id);
-		if (goods == null)
-			return null;
-		SearchFilter filter = new SearchFilter();
-		filter.setKey(goods.getTitle());
-		filter.setPage(1);
-		filter.setPageSize(50);
-		TaoBaoSearchResult result = searchWuLiaoForDetail(goods.getTitle(), goods.getZkPrice(), goods.getProvcity(),
-				goods.getUserType(), app);
-		if (result != null && result.getTaoBaoGoodsBriefs() != null)
-			for (TaoBaoGoodsBrief g : result.getTaoBaoGoodsBriefs()) {
-				if (goods.getAuctionId().longValue() == g.getAuctionId()) {
-					g.setId(goods.getAuctionId());
-					g.setCreatetime(new Date());
-					return g;
-				}
-			}
-
-		TaoKeLogHelper.error(null, "娌℃湁鎼滅储鍒拌鎯�:" + id);
-		goods.setCouponAmount(new BigDecimal("0"));
-		goods.setTkMktStatus("1");
-		goods.setTkRate(new BigDecimal("0"));
-		goods.setReservePrice(new BigDecimal(0));
-		goods.setTkCommFee(new BigDecimal(0));
-		return goods;
-	}
-
-	public static List<TaoBaoGoodsBrief> searchBatchGoodsDetail(String ids) throws TaobaoGoodsDownException {
-
-		List<TaoBaoGoodsBrief> goodsBriefList = getBatchGoodsInfos(ids);
-
-		if (goodsBriefList == null || goodsBriefList.size() == 0) {
-			return null;
-		}
-
-		// System.out.println("---------goodsBriefList--------------:"+
-		// goodsBriefList.size());
-
-		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
-
-		for (TaoBaoGoodsBrief goods : goodsBriefList) {
-
-			boolean pross = false;
-
-			SearchFilter filter = new SearchFilter();
-			filter.setKey(goods.getTitle());
-			filter.setPage(1);
-			filter.setPageSize(50);
-			TaoBaoSearchResult result = searchWuLiaoForDetail(goods.getTitle(), goods.getZkPrice(), goods.getProvcity(),
-					goods.getUserType());
-			if (result != null && result.getTaoBaoGoodsBriefs() != null)
-				for (TaoBaoGoodsBrief g : result.getTaoBaoGoodsBriefs()) {
-					if (goods.getAuctionId().longValue() == g.getAuctionId()) {
-						g.setId(goods.getAuctionId());
-						g.setAuctionUrl(goods.getAuctionUrl());
-						g.setShopTitle(goods.getShopTitle());
-
-						// 鍒ゆ柇鏄惁鏈変紭鎯犲埜
-						if (!StringUtil.isNullOrEmpty(g.getCouponActivityId())) {
-							// 鑾峰彇浼樻儬鍒歌鎯�
-							QuanInfo quanInfo = getQuanInfo(g.getAuctionId(), g.getCouponActivityId());
-							if (quanInfo != null) {
-								g.setCouponAmount(quanInfo.coupon_amount);
-								g.setCouponEffectiveEndTime(quanInfo.coupon_end_time);
-								g.setCouponEffectiveStartTime(quanInfo.coupon_start_time);
-								g.setCouponLeftCount(quanInfo.coupon_remain_count);
-								g.setCouponStartFee(quanInfo.coupon_start_fee);
-								g.setCouponTotalCount(quanInfo.coupon_total_count);
-							}
-						} else {
-							g.setCouponAmount(new BigDecimal(0));
-							g.setCouponStartFee(new BigDecimal(0));
-						}
-						g.setCreatetime(new Date());
-						goodsList.add(g);
-						pross = true;
-						break;
-					}
-				}
-
-			if (pross)
-				continue;
-
-			// 鍐嶄粠娣樺疂鑱旂洘缃戦〉鎼滅储
-			filter.setKey(goods.getAuctionUrl());
-			TaoBaoSearchResult searchResult = TaoBaoUtil.searchFromAlimamaWeb(filter, null);
-			if (searchResult != null && searchResult.getTaoBaoGoodsBriefs() != null
-					&& searchResult.getTaoBaoGoodsBriefs().size() > 0) {
-				for (TaoBaoGoodsBrief g : searchResult.getTaoBaoGoodsBriefs()) {
-					if (g.getAuctionId().longValue() == goods.getAuctionId()) {
-						g.setImgList(goods.getImgList());
-						g.setId(goods.getAuctionId());
-						g.setAuctionUrl(goods.getAuctionUrl());
-						g.setShopTitle(goods.getShopTitle());
-
-						goods = g;
-						if ("鏃�".equalsIgnoreCase(goods.getCouponInfo()))
-							goods.setCouponInfo(null);
-
-						goodsList.add(goods);
-						pross = true;
-						break;
-					}
-				}
-			}
-
-			if (pross)
-				continue;
-
-			goods.setCouponAmount(new BigDecimal("0"));
-			goods.setTkMktStatus("1");
-			goods.setTkRate(new BigDecimal("0"));
-			goods.setReservePrice(new BigDecimal(0));
-			goods.setTkCommFee(new BigDecimal(0));
-
-			goodsList.add(goods);
-		}
-
-		return goodsList;
-	}
-
-	/**
-	 * 鍟嗗搧鐗╂枡鎼滅储
-	 * 
-	 * @param filter
-	 * @return
-	 */
-	public static TaoBaoSearchResult searchWuLiao(SearchFilter filter, String session, TaoKeAppInfo app,
-			String targetAppKey) {
-
-		if (filter.getKey() != null && filter.getKey().trim().equalsIgnoreCase(""))
-			return null;
-
-		if (filter.getKey() != null && filter.getKey().length() > 100)
-			return null;
-
-		PageEntity pageEntity = new PageEntity();
-		TaoBaoSearchResult taoBaoSearchResult = new TaoBaoSearchResult();
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.sc.material.optional");
-		map.put("page_size", filter.getPageSize() == 0 ? "20" : filter.getPageSize() + "");
-		map.put("page_no", (filter.getPage() <= 0 ? 1 : filter.getPage()) + "");
-		// map.put("material_id", "3756");
-		map.put("site_id", app.getPid().split("_")[2]);
-
-		pageEntity.setPageIndex(filter.getPage());
-		pageEntity.setPageSize(filter.getPageSize() == 0 ? 20 : filter.getPageSize());
-
-		// 鍖呭惈浜嗗湴鍖虹瓫閫�
-		if (filter.getProvinceId() > 0) {
-			List<TaoBaoProvince> provinceList = TaoBaoUtil.getTaoBaoProvinceList();
-
-			for (TaoBaoProvince province : provinceList) {
-				if (Integer.parseInt(province.getId()) == filter.getProvinceId()) {
-					map.put("itemloc", province.getName());
-					break;
-				}
-			}
-		}
-
-		if (filter.getMaterialId() != null)
-			map.put("material_id", filter.getMaterialId());
-
-		if (filter.getStartPrice() != null)
-			map.put("start_price", filter.getStartPrice() + "");
-
-		if (filter.getEndPrice() != null)
-			map.put("end_price", filter.getEndPrice() + "");
-
-		if (filter.getStartTkRate() > 0)
-			map.put("start_tk_rate", filter.getStartTkRate() + "");
-
-		if (filter.getEndTkRate() > 0)
-			map.put("end_tk_rate", filter.getEndTkRate() + "");
-
-		if (filter.getStartKaTkRate() > 0)
-			map.put("start_ka_tk_rate", filter.getStartKaTkRate() + "");
-
-		if (filter.getEndKaTkRate() > 0)
-			map.put("end_ka_tk_rate", filter.getEndKaTkRate() + "");
-
-		if (filter.isTmall())
-			map.put("is_tmall", filter.isTmall() + "");
-
-		if (filter.isOverseas())
-			map.put("is_overseas", filter.isOverseas() + "");
-
-		if (filter.isBaoYou())
-			map.put("need_free_shipment", filter.isBaoYou() + "");
-
-		if (filter.isNeedPrepay())
-			map.put("need_prepay", filter.isNeedPrepay() + "");
-
-		if (filter.isIncludePayRate30())
-			map.put("include_pay_rate_30", filter.isIncludePayRate30() + "");
-
-		if (filter.isIncludeGoodRate())
-			map.put("include_good_rate", filter.isIncludeGoodRate() + "");
-
-		if (filter.isIncludeRfdRate())
-			map.put("include_rfd_rate", filter.isIncludeRfdRate() + "");
-
-		if (filter.getStartDsr() > 0)
-			map.put("start_dsr", filter.getStartDsr() + "");
-
-		if (filter.getNpxLevel() > 0)
-			map.put("npx_level", filter.getNpxLevel() + "");
-
-		if (!StringUtil.isNullOrEmpty(filter.getCateIds()))
-			map.put("cat", filter.getCateIds());
-
-		if (!StringUtil.isNullOrEmpty(filter.getKey()))
-			map.put("q", filter.getKey());
-
-		if (filter.getQuan() > 0)
-			map.put("has_coupon", true + "");
-
-		if (!StringUtil.isNullOrEmpty(filter.getIp()))
-			map.put("ip", filter.getIp());
-
-		if (filter.getSort() > 0) {
-			if (filter.getSort() == TaoBaoUtil.SORT_SALE_HIGH_TO_LOW) {
-				map.put("sort", "total_sales_des"); // 閿�閲忎粠楂樺埌浣�
-			} else if (filter.getSort() == TaoBaoUtil.SORT_SALE_LOW_TO_HIGH) {
-				map.put("sort", "total_sales_asc"); // 閿�閲忎粠浣庡埌楂�
-			} else if (filter.getSort() == TaoBaoUtil.SORT_PRICE_HIGH_TO_LOW) {
-				map.put("sort", "price_des"); // 浠锋牸浠庨珮鍒颁綆
-			} else if (filter.getSort() == TaoBaoUtil.SORT_PRICE_LOW_TO_HIGH) {
-				map.put("sort", "price_asc"); // 浠锋牸浠庝綆鍒伴珮
-			} else if (filter.getSort() == TaoBaoUtil.SORT_TKRATE_HIGH_TO_LOW) {
-				map.put("sort", "tk_rate_des"); // 娣樺浣i噾姣旂巼楂樺埌浣�
-			} else if (filter.getSort() == TaoBaoUtil.SORT_TKRATE_LOW_TO_HIGH) {
-				map.put("sort", "tk_rate_asc"); // 娣樺浣i噾姣旂巼浣庡埌楂�
-			} else if (filter.getSort() == TaoBaoUtil.SORT_TOTAL_COMMI_HIGH_TO_LOW) {
-				map.put("sort", "tk_total_commi_des"); // 鎬绘敮鍑轰剑閲戦珮鍒颁綆
-			} else if (filter.getSort() == TaoBaoUtil.SORT_TOTAL_COMMI_LOW_TO_HIGH) {
-				map.put("sort", "tk_total_commi_asc"); // 鎬绘敮鍑轰剑閲戜綆鍒伴珮
-			} else if (filter.getSort() == TaoBaoUtil.SORT_TOTAL_SALES_HIGH_TO_LOW) {
-				map.put("sort", "tk_total_sales_des"); // 绱鎺ㄥ箍閲忛珮鍒颁綆
-			} else if (filter.getSort() == TaoBaoUtil.SORT_TOTAL_SALES_LOW_TO_HIGH) {
-				map.put("sort", "tk_total_sales_asc"); // 绱鎺ㄥ箍閲忎綆鍒伴珮
-			}
-
-		}
-
-		map.put("adzone_id", app.getPid().split("_")[3]);
-
-		JSONObject data = null;
-		try {
-			data = TaoKeBaseUtil.baseScRequest(map, app, session, targetAppKey);
-		} catch (TaoKeApiException e) {
-			e.printStackTrace();
-		}
-
-		System.out.println(data);
-
-		if (data.optJSONObject("tbk_dg_material_optional_response") != null
-				&& data.optJSONObject("tbk_dg_material_optional_response").optJSONObject("result_list") != null) {
-			JSONArray array = data.optJSONObject("tbk_dg_material_optional_response").optJSONObject("result_list")
-					.optJSONArray("map_data");
-			List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
-			if (array != null) {
-				for (int i = 0; i < array.size(); i++) {
-					TaoBaoGoodsBrief goods = parseWuLiaoItem(array.optJSONObject(i));
-					if (goods != null)
-						goodsList.add(goods);
-				}
-			}
-			taoBaoSearchResult.setTaoBaoGoodsBriefs(goodsList);
-
-			JSONObject optJSONObject = data.optJSONObject("tbk_dg_material_optional_response");
-			int totalResults = optJSONObject.getInt("total_results");
-			int totalPage = totalResults % pageEntity.getPageSize() == 0 ? totalResults / pageEntity.getPageSize()
-					: totalResults / pageEntity.getPageSize() + 1;
-			pageEntity.setTotalCount(totalResults);
-			pageEntity.setTotalPage(totalPage);
-
-		}
-
-		List<TaoBaoSearchNav> navList = new ArrayList<>();
-
-		TaoBaoHead taoBaoHead = new TaoBaoHead();
-		taoBaoHead.setDocsfound((int) pageEntity.getTotalCount());
-		taoBaoSearchResult.setTaoBaoHead(taoBaoHead);
-
-		taoBaoSearchResult.setPageEntity(pageEntity);
-
-		// filter.get
-
-		// 璁剧疆鍙戣揣鍦板潃
-		TaoBaoSearchNav nav = new TaoBaoSearchNav();
-		nav.setName("鍙戣揣鍦伴�夋嫨");
-		nav.setFlag("address");
-		nav.setId(11110);
-		nav.setType("fahuodi");
-
-		List<TaoBaoSearchNav> childNavList = new ArrayList<>();
-		List<TaoBaoProvince> provinceList = TaoBaoUtil.getTaoBaoProvinceList();
-		for (TaoBaoProvince province : provinceList) {
-			TaoBaoSearchNav childNav = new TaoBaoSearchNav();
-			childNav.setName(province.getName());
-			childNav.setId(Integer.parseInt(province.getId()));
-			childNav.setType("fahuodi-child");
-			if (Integer.parseInt(province.getId()) == filter.getProvinceId())
-				childNav.setSelector(1);
-			childNavList.add(childNav);
-		}
-
-		nav.setSubIds(childNavList);
-		navList.add(nav);
-
-		// 娴嬭瘯
-		taoBaoSearchResult.setNavList(navList);
-
-		return taoBaoSearchResult;
-	}
-
-	public static String tpwdConvert(Long item_id, String session, TaoKeAppInfo app) {
-
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.privilege.get");
-		map.put("item_id", item_id+"");
-		map.put("site_id", app.getPid().split("_")[2]);
-		map.put("adzone_id", app.getPid().split("_")[3]);
-
-		JSONObject data = null;
-		try {
-			data = TaoKeBaseUtil.baseScRequest(map, app, session, "");
-		} catch (TaoKeApiException e) {
-			e.printStackTrace();
-		}
-
-		System.out.println(data);
-
-		return data + "";
-	}
-
-	/**
-	 * 鍟嗗搧鐗╂枡鎼滅储
-	 * 
-	 * @param filter
-	 * @return
-	 */
-	public static TaoBaoSearchResult searchWuLiaoForDetail(String title, BigDecimal zkPrice, String provcity,
-			int userType) {
-		if (provcity.trim().contains(" "))
-			provcity = provcity.split(" ")[provcity.split(" ").length - 1];
-		TaoBaoSearchResult taoBaoSearchResult = new TaoBaoSearchResult();
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.dg.material.optional");
-		map.put("page_size", 50 + "");
-		map.put("page_no", 1 + "");
-		map.put("start_price", (int) zkPrice.subtract(new BigDecimal(1)).doubleValue() + "");
-		map.put("end_price", (int) zkPrice.add(new BigDecimal(1)).doubleValue() + "");
-		map.put("is_tmall", (userType == 1) + "");
-		map.put("q", title);
-		map.put("itemloc", provcity);
-
-		String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
-		System.out.println(resultStr);
-		JSONObject data = JSONObject.fromObject(resultStr);
-		if (data.optJSONObject("tbk_dg_material_optional_response") != null
-				&& data.optJSONObject("tbk_dg_material_optional_response").optJSONObject("result_list") != null) {
-			JSONArray array = data.optJSONObject("tbk_dg_material_optional_response").optJSONObject("result_list")
-					.optJSONArray("map_data");
-			List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
-			if (array != null) {
-				for (int i = 0; i < array.size(); i++) {
-					TaoBaoGoodsBrief goods = parseWuLiaoItem(array.optJSONObject(i));
-					if (goods != null)
-						goodsList.add(goods);
-				}
-			}
-			taoBaoSearchResult.setTaoBaoGoodsBriefs(goodsList);
-		}
-
-		List<TaoBaoSearchNav> navList = new ArrayList<>();
-
-		TaoBaoHead taoBaoHead = new TaoBaoHead();
-		taoBaoHead.setDocsfound(1000);
-		taoBaoSearchResult.setTaoBaoHead(taoBaoHead);
-		taoBaoSearchResult.setPageEntity(new PageEntity());
-
-		taoBaoSearchResult.setNavList(navList);
-
-		return taoBaoSearchResult;
-	}
-
-	/**
-	 * 鍟嗗搧鐗╂枡鎼滅储
-	 * 
-	 * @param filter
-	 * @return
-	 */
-	public static TaoBaoSearchResult searchWuLiaoForDetail(String title, BigDecimal zkPrice, String provcity,
-			int userType, TaoKeAppInfo app) {
-		if (provcity.trim().contains(" "))
-			provcity = provcity.split(" ")[provcity.split(" ").length - 1];
-		TaoBaoSearchResult taoBaoSearchResult = new TaoBaoSearchResult();
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.dg.material.optional");
-		map.put("page_size", 50 + "");
-		map.put("page_no", 1 + "");
-		map.put("start_price", (int) zkPrice.subtract(new BigDecimal(1)).doubleValue() + "");
-		map.put("end_price", (int) zkPrice.add(new BigDecimal(1)).doubleValue() + "");
-		map.put("is_tmall", (userType == 1) + "");
-		map.put("q", title);
-		map.put("itemloc", provcity);
-
-		String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
-		JSONObject data = JSONObject.fromObject(resultStr);
-		if (data.optJSONObject("tbk_dg_material_optional_response") != null
-				&& data.optJSONObject("tbk_dg_material_optional_response").optJSONObject("result_list") != null) {
-			JSONArray array = data.optJSONObject("tbk_dg_material_optional_response").optJSONObject("result_list")
-					.optJSONArray("map_data");
-			List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
-			if (array != null) {
-				for (int i = 0; i < array.size(); i++) {
-					TaoBaoGoodsBrief goods = parseWuLiaoItem(array.optJSONObject(i));
-					if (goods != null)
-						goodsList.add(goods);
-				}
-			}
-			taoBaoSearchResult.setTaoBaoGoodsBriefs(goodsList);
-		}
-
-		List<TaoBaoSearchNav> navList = new ArrayList<>();
-
-		TaoBaoHead taoBaoHead = new TaoBaoHead();
-		taoBaoHead.setDocsfound(1000);
-		taoBaoSearchResult.setTaoBaoHead(taoBaoHead);
-		taoBaoSearchResult.setPageEntity(new PageEntity());
-
-		taoBaoSearchResult.setNavList(navList);
-
-		return taoBaoSearchResult;
-	}
-
-	// 瑙f瀽鐗╂枡
-	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", ""));
-
-		if (!StringUtil.isNullOrEmpty(goods.getCouponInfo())) {
-			List<BigDecimal> quanInfo = TaoBaoCouponUtil.getCouponInfo(goods.getCouponInfo());
-			goods.setCouponAmount(quanInfo.get(1));
-			goods.setCouponEffectiveEndTime(item.optString("coupon_end_time"));
-			goods.setCouponEffectiveStartTime(item.optString("coupon_start_time"));
-			goods.setCouponStartFee(new BigDecimal(item.optString("coupon_start_fee")));
-			goods.setCouponLeftCount(item.optInt("coupon_remain_count"));
-			goods.setCouponLink("https:" + item.optString("coupon_share_url"));
-			goods.setCouponTotalCount(item.optInt("coupon_total_count"));
-			goods.setCouponActivityId(item.optString("coupon_id"));
-		} else {
-			goods.setCouponAmount(new BigDecimal(0));
-		}
-
-		goods.setDayLeft(-1);
-		if (item.optJSONObject("small_images") != null) {
-			JSONArray imgArray = item.optJSONObject("small_images").optJSONArray("string");
-			if (imgArray != null) {
-				List<String> imgList = new ArrayList<>();
-				for (int n = 0; n < imgArray.size(); n++) {
-					imgList.add(imgArray.optString(n));
-				}
-				goods.setImgList(imgList);
-			}
-		}
-
-		if (item.optBoolean("include_mkt"))
-			goods.setTkMktStatus("1");
-		else
-			goods.setTkMktStatus("0");
-
-		if (item.optBoolean("include_dxjh"))
-			goods.setIncludeDxjh(1);
-
-		goods.setSellerId(item.optLong("seller_id"));
-		goods.setShopTitle(item.optString("shop_title"));
-		goods.setTitle(item.optString("title"));
-		goods.setProvcity(item.optString("provcity"));
-
-		if (!StringUtil.isNullOrEmpty(item.optString("level_one_category_id"))) {
-			goods.setRootCatId(item.optInt("level_one_category_id"));
-		}
-		goods.setRootCategoryName(item.optString("level_one_category_name"));
-
-		if (!StringUtil.isNullOrEmpty(item.optString("category_id"))) {
-			goods.setLeafCatId(item.optInt("category_id"));
-		}
-		goods.setLeafName(item.optString("category_name"));
-
-		goods.setTkRate(new BigDecimal(item.optString("commission_rate")).divide(new BigDecimal(100)));
-		goods.setTotalNum(1000);
-		goods.setUserType(item.optInt("user_type"));
-		goods.setUserTypeName("");
-		goods.setZkPrice(new BigDecimal(item.optString("zk_final_price")));
-
-		if (item.optBoolean("include_dxjh")) {
-			goods.setDxjhInfo(item.optString("info_dxjh"));
-		}
-
-		if (StringUtil.isNullOrEmpty(goods.getCouponInfo())) {// 鏃犲埜
-			goods.setTkCommFee(goods.getZkPrice().multiply(goods.getTkRate()).divide(new BigDecimal(100)));
-		} else if (goods.getZkPrice().compareTo(goods.getCouponStartFee()) >= 0// 鏈夊埜
-				&& goods.getZkPrice().compareTo(goods.getCouponAmount()) >= 0) {
-			BigDecimal finalPrice = goods.getZkPrice().subtract(goods.getCouponAmount());
-			goods.setTkCommFee(finalPrice.multiply(goods.getTkRate()).divide(new BigDecimal(100)));
-		} else {
-			goods.setTkCommFee(new BigDecimal(0));
-		}
-		if (!StringUtil.isNullOrEmpty(item.optString("reserve_price")))
-			goods.setReservePrice(new BigDecimal(item.optString("reserve_price")));
-		goods.setTotalFee(new BigDecimal("0"));
-		// 鎺ㄨ崘璇�
-		goods.setDescription(item.optString("item_description"));
-
-		goods = loadYuShouInfo(goods, item);
-		return goods;
-	}
-
-	/**
-	 * 鑾峰彇娣樺彛浠�
-	 * 
-	 * @param logo
-	 *            -鍥炬爣
-	 * @param text
-	 *            -鏂囧瓧
-	 * @param url
-	 *            -绠�浠�
-	 * @return
-	 */
-	public static String getTKToken(String logo, String text, String url) {
-		if (text == null)
-			return null;
-		if (text.length() < 5)
-			text = "濂借揣锛�" + text;
-
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.tpwd.create");
-		map.put("url", url);
-		map.put("text", text);
-		map.put("logo", logo);
-		String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
-
-		JSONObject data = JSONObject.fromObject(resultStr);
-		if (data.optJSONObject("tbk_tpwd_create_response").optJSONObject("data") != null)
-			return data.optJSONObject("tbk_tpwd_create_response").optJSONObject("data").optString("model");
-		return null;
-	}
-
-	/**
-	 * 鑾峰彇鍒歌缁嗕俊鎭�
-	 * 
-	 * @param auctionId
-	 * @param activityId
-	 * @return
-	 */
-	public static QuanInfo getQuanInfo(Long auctionId, String activityId) {
-		QuanInfo info = new QuanInfo();
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.coupon.get");
-		map.put("item_id", auctionId + "");
-		map.put("activity_id", activityId);
-		String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
-		JSONObject data = JSONObject.fromObject(resultStr);
-		if (data.optJSONObject("tbk_coupon_get_response") != null) {
-			data = data.optJSONObject("tbk_coupon_get_response").optJSONObject("data");
-			info.coupon_start_time = data.optString("coupon_start_time");
-			info.coupon_end_time = data.optString("coupon_end_time");
-			info.coupon_amount = new BigDecimal(data.optString("coupon_amount"));
-			info.coupon_total_count = data.optInt("coupon_total_count");
-			info.coupon_remain_count = data.optInt("coupon_remain_count");
-			info.coupon_start_fee = new BigDecimal(data.optString("coupon_start_fee"));
-		} else
-			return null;
-		return info;
-	}
-
-	public static void taoQiangGou() {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.ju.tqg.get");
-		map.put("fields",
-				"click_url,pic_url,reserve_price,zk_final_price,total_amount,sold_num,title,category_name,start_time,end_time");
-		map.put("start_time", "2018-06-11 08:00:00");
-		map.put("end_time", "2018-06-12 12:00:00");
-		map.put("page_no", "1");
-		map.put("page_size", "96");
-		String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
-		System.out.println(resultStr);
-	}
-
-	public static TaoBaoSearchResult taoQiangGou(int page, int pageSize, String startTime, String endTime) {
-
-		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
-
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.ju.tqg.get");
-		map.put("fields",
-				"click_url,pic_url,reserve_price,zk_final_price,total_amount,sold_num,title,category_name,start_time,end_time");
-		map.put("start_time", startTime);
-		map.put("end_time", endTime);
-		map.put("page_no", page + "");
-		map.put("page_size", pageSize + "");
-
-		String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
-
-		JSONObject resultJSON = JSONObject.fromObject(resultStr);
-		JSONObject response = resultJSON.optJSONObject("tbk_ju_tqg_get_response");
-		if (response != null && response.optJSONObject("results") != null) {
-			JSONArray array = response.optJSONObject("results").optJSONArray("results");
-			if (array != null) {
-
-				for (int i = 0; i < array.size(); i++) {
-					JSONObject item = array.optJSONObject(i);
-					String url = item.optString("click_url");
-
-					// 鎺掗櫎 闈炴窐瀹㈠晢鍝�
-					if (url.contains("s.click.taobao.com/t?e=m")) {
-						TaoBaoGoodsBrief goods;
-						try {
-							goods = searchGoodsDetail(item.optLong("num_iid"));
-							if (goods != null)
-								goodsList.add(goods);
-						} catch (TaobaoGoodsDownException e) {
-							e.printStackTrace();
-						}
-
-					}
-				}
-
-				pageSize = array.size();
-			}
-		}
-
-		TaoBaoSearchResult result = new TaoBaoSearchResult();
-		result.setTaoBaoGoodsBriefs(goodsList);
-
-		int totalResults = response.getInt("total_results");
-
-		PageEntity pe = new PageEntity(page, pageSize, totalResults);
-		result.setPageEntity(pe);
-		result.setNavList(new ArrayList<>());
-
-		TaoBaoHead taoBaoHead = new TaoBaoHead();
-		taoBaoHead.setDocsfound((int) result.getPageEntity().getTotalCount());
-
-		result.setTaoBaoHead(taoBaoHead);
-
-		return result;
-	}
-
-	/*
-	 * TODO 鑾峰彇鍒嗙被鍒楄〃
-	 */
-	public static void getTaoBaoCategoryList() {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.itemcats.get");
-		map.put("parent_cid", "0");
-
-		String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
-		System.out.println(resultStr);
-	}
-
-	/**
-	 * 搴楅摵鎼滅储
-	 * 
-	 * @param key
-	 *            -搴楅摵鍚嶇О
-	 * @param page
-	 *            -椤电爜
-	 * @return
-	 */
-	public static List<TaoBaoShopInfo> searchShop(String key, int page) {
-		if (StringUtil.isNullOrEmpty(key))
-			return new ArrayList<>();
-		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", "95");
-		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);
-				}
-		}
-		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;
-	}
-
-	/**
-	 * 搴楅摵鎼滅储
-	 * 
-	 * @param key
-	 *            -搴楅摵鍚嶇О
-	 * @param page
-	 *            -椤电爜
-	 * @return
-	 */
-	public static List<TaoBaoShopInfo> searchShop(SearchShopFilter filter) {
-		if (StringUtil.isNullOrEmpty(filter.getKey()))
-			return new ArrayList<>();
-		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", filter.getKey());
-		map.put("page_size", filter.getPageSize() + "");
-		map.put("page_no", filter.getPage() + "");
-
-		if (!StringUtil.isNullOrEmpty(filter.getSort()))
-			map.put("sort", filter.getSort());
-
-		if (filter.getTmall() != null)
-			map.put("is_tmall", filter.getTmall() + "");
-
-		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);
-				}
-		}
-		return list;
-	}
-
-	/**
-	 * 鍝佺墝鍒歌幏鍙�
-	 * 
-	 * @param pageNo
-	 * @param pageSize
-	 */
-	public static void pingPaiCoupon(int pageNo, int pageSize) {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.sc.coupon.brand.recommend");
-		map.put("page_no", pageNo + "");
-		map.put("page_size", pageSize + "");
-		String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
-		System.out.println(resultStr);
-	}
-
-	public static void getOrder(String order) {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "alibaba.mos.order.get");
-		map.put("order_number", order);
-		String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
-		System.out.println(resultStr);
-	}
-
-	public static void getTAEGoodsDetail(Long auctionId) {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tae.items.list");
-		map.put("fields", "title,nick,pic_url,location,cid,price,post_fee,promoted_service,ju,shop_name");
-		map.put("num_iids", auctionId + "");
-		String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
-		System.out.println(resultStr);
-	}
-
-	// taobao.ju.items.search
-	public static void searchJuHuaSuan() {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.ju.items.search");
-		map.put("current_page", "1");
-		map.put("page_size", 20 + "");
-		map.put("pid", "mm_124933865_43788020_381938426");
-		String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, false);
-		System.out.println(resultStr);
-	}
-
-	/**
-	 * 閫氳繃鐗╂枡ID鑾峰彇鍟嗗搧淇℃伅
-	 * 
-	 * @param materialId
-	 *            -鐗╂枡ID
-	 * @param page
-	 *            -椤电爜
-	 * @param pageSize
-	 *            -姣忛〉鏁伴噺
-	 * @return
-	 */
-	public static TaoBaoSearchResult getMaterialByMaterialId(int materialId, int page, int pageSize) {
-		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.dg.optimus.material");
-		map.put("page_no", page + "");
-		map.put("page_size", pageSize + "");
-		map.put("material_id", materialId + "");
-		// map.put("content_id", "561388751621");
-
-		String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
-		System.out.println(resultStr);
-		JSONObject resultJSON = JSONObject.fromObject(resultStr);
-		JSONObject response = resultJSON.optJSONObject("tbk_dg_optimus_material_response");
-		if (response != null && response.optJSONObject("result_list") != null) {
-			JSONArray array = response.optJSONObject("result_list").optJSONArray("map_data");
-			if (array != null) {
-				for (int i = 0; i < array.size(); i++) {
-					JSONObject item = array.optJSONObject(i);
-					TaoBaoGoodsBrief goods = parseWuLiaoItemFromMaterialId(item);
-					if (goods != null)
-						goodsList.add(goods);
-				}
-				pageSize = array.size();
-			}
-		}
-		TaoBaoSearchResult result = new TaoBaoSearchResult();
-		result.setTaoBaoGoodsBriefs(goodsList);
-		int totalCount = 1000;// root.optInt("total_results");
-		PageEntity pe = new PageEntity(page, pageSize, totalCount);
-		result.setPageEntity(pe);
-		result.setNavList(new ArrayList<>());
-		TaoBaoHead taoBaoHead = new TaoBaoHead();
-		taoBaoHead.setDocsfound((int) result.getPageEntity().getTotalCount());
-		result.setTaoBaoHead(taoBaoHead);
-		return result;
-	}
-
-	public static TaoBaoSearchResult getQTZMaterialByMaterialId(int materialId, int page, int pageSize) {
-		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.sc.optimus.material");
-		map.put("page_no", page + "");
-		map.put("page_size", pageSize + "");
-		map.put("material_id", materialId + "");
-
-		String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
-		JSONObject resultJSON = JSONObject.fromObject(resultStr);
-		JSONObject response = resultJSON.optJSONObject("tbk_dg_optimus_material_response");
-		if (response != null && response.optJSONObject("result_list") != null) {
-			JSONArray array = response.optJSONObject("result_list").optJSONArray("map_data");
-			if (array != null) {
-
-				for (int i = 0; i < array.size(); i++) {
-					JSONObject item = array.optJSONObject(i);
-					TaoBaoGoodsBrief goods = parseWuLiaoItemFromMaterialId(item);
-					if (goods != null)
-						goodsList.add(goods);
-				}
-
-				pageSize = array.size();
-			}
-		}
-		TaoBaoSearchResult result = new TaoBaoSearchResult();
-		result.setTaoBaoGoodsBriefs(goodsList);
-		int totalCount = 1000;// root.optInt("total_results");
-		PageEntity pe = new PageEntity(page, pageSize, totalCount);
-		result.setPageEntity(pe);
-		result.setNavList(new ArrayList<>());
-		TaoBaoHead taoBaoHead = new TaoBaoHead();
-		taoBaoHead.setDocsfound((int) result.getPageEntity().getTotalCount());
-		result.setTaoBaoHead(taoBaoHead);
-		return result;
-	}
-
-	/**
-	 * 鏍规嵁璁惧鐚滀綘鍠滄
-	 * 
-	 * @param page
-	 * @param pageSize
-	 * @param imei
-	 * @param idfa
-	 * @return
-	 */
-	public static TaoBaoSearchResult guessDeviceLike(int page, int pageSize, String imei, String idfa, String utdid) {
-		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.dg.optimus.material");
-		map.put("page_no", page + "");
-		map.put("page_size", pageSize + "");
-		map.put("material_id", "6708");
-		if (StringUtil.isNullOrEmpty(imei) && StringUtil.isNullOrEmpty(idfa) && StringUtil.isNullOrEmpty(utdid))
-			return null;
-
-		if (!StringUtil.isNullOrEmpty(imei)) {
-			map.put("device_encrypt", "MD5");
-			map.put("device_value", StringUtil.Md5(imei));
-			map.put("device_type", "IMEI");
-		} else if (!StringUtil.isNullOrEmpty(idfa)) {
-			map.put("device_encrypt", "MD5");
-			map.put("device_value", StringUtil.Md5(idfa));
-			map.put("device_type", "IDFA");
-		} else if (!StringUtil.isNullOrEmpty(utdid)) {
-			map.put("device_value", utdid);
-			map.put("device_type", "UTDID");
-		}
-
-		JSONObject resultJSON = null;
-		try {
-			resultJSON = TaoKeBaseUtil.baseRequest(map, true);
-		} catch (TaoKeApiException e) {
-			e.printStackTrace();
-		}
-		if (resultJSON == null)
-			return null;
-
-		// JSONObject resultJSON = JSONObject.fromObject(resultStr);
-		JSONObject response = resultJSON.optJSONObject("tbk_dg_optimus_material_response");
-		if (response != null && response.optJSONObject("result_list") != null) {
-			JSONArray array = response.optJSONObject("result_list").optJSONArray("map_data");
-			if (array != null) {
-
-				for (int i = 0; i < array.size(); i++) {
-					JSONObject item = array.optJSONObject(i);
-					TaoBaoGoodsBrief goods = parseWuLiaoItemFromMaterialId(item);
-					if (goods != null)
-						goodsList.add(goods);
-				}
-
-				pageSize = array.size();
-			}
-		}
-		TaoBaoSearchResult result = new TaoBaoSearchResult();
-		result.setTaoBaoGoodsBriefs(goodsList);
-		int totalCount = 1000;// root.optInt("total_results");
-		PageEntity pe = new PageEntity(page, pageSize, totalCount);
-		result.setPageEntity(pe);
-		result.setNavList(new ArrayList<>());
-		TaoBaoHead taoBaoHead = new TaoBaoHead();
-		taoBaoHead.setDocsfound((int) result.getPageEntity().getTotalCount());
-		result.setTaoBaoHead(taoBaoHead);
-		return result;
-	}
-
-	/**
-	 * 浠庢窐瀹濋摼鎺ヤ腑瑙f瀽鍟嗗搧ID锛堥珮绾ф帴鍙o級
-	 * 
-	 * @param link
-	 * @return
-	 */
-	public static String parseAuctionIdFromLink(String link) {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.item.click.extract");
-		map.put("click_url", link + "");
-
-		TaoKeAppInfo app = new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET,
-				TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID);
-		JSONObject resultJSON = null;
-		try {
-			resultJSON = TaoKeBaseUtil.baseRequest(map, app);
-			System.out.println(resultJSON);
-		} catch (TaoKeApiException e) {
-			e.printStackTrace();
-		}
-		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) throws TaoBaoAuthException {
-		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);
-			System.out.println(resultJSON.toString());
-			return resultJSON.optJSONObject("tbk_sc_publisher_info_save_response").optJSONObject("data")
-					.optString("relation_id");
-		} catch (TaoKeApiException e) {
-			JSONObject errorJSON = JSONObject.fromObject(e.getMsg()).optJSONObject("error_response");
-			if (errorJSON.optInt("code") == 15 && errorJSON.optInt("sub_code") == 1)// 鏈疄鍚�
-			{
-				throw new TaoBaoAuthException(TaoBaoAuthException.CODE_NOT_REAL_NAME, errorJSON.optString("sub_msg"));
-			} else {
-				e.printStackTrace();
-				LogHelper.error("娓犻亾ID鐢宠鍑洪敊:" + e.getMsg());
-				throw new TaoBaoAuthException(TaoBaoAuthException.CODE_OTHER, errorJSON.optString("sub_msg"));
-			}
-		} catch (Exception e) {
-			LogHelper.error("娓犻亾ID鐢宠鍑洪敊:" + (resultJSON != null ? resultJSON.toString() : "鏈煡閿欒"));
-		}
-		return null;
-	}
-
-	public static String getSpecialId(String accessToken, String appKey, String appSecret) throws TaoBaoAuthException {
-		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) {
-			JSONObject errorJSON = JSONObject.fromObject(e.getMsg()).optJSONObject("error_response");
-			if (errorJSON.optInt("code") == 15 && errorJSON.optInt("sub_code") == 1)// 鏈疄鍚�
-			{
-				throw new TaoBaoAuthException(TaoBaoAuthException.CODE_NOT_REAL_NAME, errorJSON.optString("sub_msg"));
-			} else {
-				e.printStackTrace();
-				LogHelper.error("浼氬憳杩愯惀ID鐢宠鍑洪敊:" + e.getMsg());
-				throw new TaoBaoAuthException(TaoBaoAuthException.CODE_OTHER, errorJSON.optString("sub_msg"));
-			}
-		} catch (Exception e) {
-			LogHelper.error("浼氬憳杩愯惀ID鐢宠鍑洪敊:" + (resultJSON != null ? resultJSON.toString() : "鏈煡閿欒"));
-		}
-
-		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 {
-			String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
-			System.out.println(result);
-			JSONObject json = JSONObject.fromObject(result);
-			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"));
-				if (!StringUtil.isNullOrEmpty(resultJSON.optString("coupon_total_count"))) {
-					goods.setCouponTotalCount(Integer.parseInt(resultJSON.optString("coupon_total_count")));
-				}
-
-				if (!StringUtil.isNullOrEmpty(resultJSON.optString("coupon_remain_count"))) {
-					goods.setCouponLeftCount(Integer.parseInt(resultJSON.optString("coupon_remain_count")));
-				}
-
-				goods.setCouponEffectiveStartTime(resultJSON.optString("coupon_start_time"));
-				goods.setCouponEffectiveEndTime(resultJSON.optString("coupon_end_time"));
-
-			}
-			String tkRate = resultJSON.optString("max_commission_rate");
-			if (!StringUtil.isNullOrEmpty(tkRate)) {
-				goods.setTkRate(new BigDecimal(tkRate));
-			}
-			goods = loadYuShouInfo(goods, resultJSON);
-			return goods;
-		} catch (Exception 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_RELATION_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();
-		// 璁剧疆鎴�320*320鐨勫浘鐗囧昂瀵�
-		goods.setPictUrl(TbImgUtil.getTBSize320Img("https:" + item.optString("pict_url")));
-		goods.setAuctionId(item.optLong("item_id"));
-		goods.setAuctionUrl("https://item.taobao.com/item.htm?id=" + goods.getAuctionId());
-		goods.setBiz30day(item.optInt("volume"));
-		if (!StringUtil.isNullOrEmpty(item.optString("coupon_amount"))) {
-			goods.setCouponEffectiveEndTime(TimeUtil.getGernalTime(item.optLong("coupon_end_time"), "yyyy-MM-dd"));
-			goods.setCouponEffectiveStartTime(TimeUtil.getGernalTime(item.optLong("coupon_start_time"), "yyyy-MM-dd"));
-			goods.setCouponStartFee(new BigDecimal(item.optString("coupon_start_fee")));
-			goods.setCouponLeftCount(item.optInt("coupon_remain_count"));
-			goods.setCouponLink(null);
-			goods.setCouponAmount(new BigDecimal(item.optString("coupon_amount")));
-			goods.setCouponTotalCount(item.optInt("coupon_total_count"));
-			goods.setCouponActivityId(item.optString("coupon_id"));
-			if (goods.getCouponStartFee().compareTo(new BigDecimal(0)) > 0)
-				goods.setCouponInfo(String.format("婊�%s鍏冨噺%s鍏�",
-						MoneyBigDecimalUtil.getWithNoZera(goods.getCouponStartFee()).toString(),
-						MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()).toString()));
-			else
-				goods.setCouponInfo(String.format("%s鍏冩棤鏉′欢鍒�",
-						MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()).toString()));
-
-			if (goods.getCouponStartFee().compareTo(new BigDecimal(0)) <= 0) {
-				goods.setCouponStartFee(goods.getCouponAmount());
-			}
-
-		} else {
-			goods.setCouponAmount(new BigDecimal(0));
-		}
-
-		goods.setDayLeft(-1);
-		if (item.optJSONObject("small_images") != null) {
-			JSONArray imgArray = item.optJSONObject("small_images").optJSONArray("string");
-			if (imgArray != null) {
-				List<String> imgList = new ArrayList<>();
-				for (int n = 0; n < imgArray.size(); n++) {
-					imgList.add(imgArray.optString(n));
-				}
-				goods.setImgList(imgList);
-			}
-		}
-
-		goods.setTkMktStatus("0");
-		goods.setIncludeDxjh(0);
-
-		goods.setSellerId(item.optLong("seller_id"));
-		goods.setShopTitle(item.optString("nick"));
-		goods.setTitle(item.optString("title"));
-		goods.setProvcity(item.optString("provcity"));
-
-		if (!StringUtil.isNullOrEmpty(item.optString("level_one_category_id"))) {
-			goods.setRootCatId(item.optInt("level_one_category_id"));
-		}
-		goods.setRootCategoryName(item.optString("level_one_category_name"));
-
-		if (!StringUtil.isNullOrEmpty(item.optString("category_id"))) {
-			goods.setLeafCatId(item.optInt("category_id"));
-		}
-		goods.setLeafName(item.optString("category_name"));
-
-		goods.setTotalNum(1000);
-		goods.setUserType(item.optInt("user_type"));
-		goods.setUserTypeName("");
-
-		if (!StringUtil.isNullOrEmpty(item.optString("commission_rate"))) {
-			goods.setTkRate(new BigDecimal(item.optString("commission_rate")));
-		} else {
-			goods.setTkRate(new BigDecimal(0));
-		}
-
-		if (!StringUtil.isNullOrEmpty(item.optString("zk_final_price"))) {
-			goods.setZkPrice(new BigDecimal(item.optString("zk_final_price")));
-		} else {
-			goods.setZkPrice(new BigDecimal(0));
-		}
-
-		if (StringUtil.isNullOrEmpty(goods.getCouponInfo())) {// 鏃犲埜
-			goods.setTkCommFee(goods.getZkPrice().multiply(goods.getTkRate()).divide(new BigDecimal(100)));
-		} else if (goods.getZkPrice().compareTo(goods.getCouponStartFee()) >= 0// 鏈夊埜
-				&& goods.getZkPrice().compareTo(goods.getCouponAmount()) >= 0) {
-			BigDecimal finalPrice = goods.getZkPrice().subtract(goods.getCouponAmount());
-			goods.setTkCommFee(finalPrice.multiply(goods.getTkRate()).divide(new BigDecimal(100)));
-		} else {
-			goods.setTkCommFee(new BigDecimal(0));
-		}
-		goods.setReservePrice(new BigDecimal(0));
-		goods.setTotalFee(new BigDecimal("0"));
-		goods.setPictUrlWhite(item.optString("white_image"));
-		goods = loadYuShouInfo(goods, item);
-		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();
-		}
-
-	}
-
-	/**
-	 * 娣樺彛浠よ浆鍟嗗搧ID
-	 * 
-	 * @param token
-	 * @return
-	 */
-	public static Long tokenConvertAuctionId(String token) throws TaoBaoTokenParseException {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.tpwd.convert");
-		map.put("password_content", token);
-		map.put("adzone_id", TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT.split("_")[3]);
-		TaoKeAppInfo app = new TaoKeAppInfo();
-		app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
-		app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
-		try {
-			JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
-
-			try {
-				return json.optJSONObject("tbk_tpwd_convert_response").optJSONObject("data").optLong("num_iid");
-			} catch (Exception e) {
-
-				return null;
-			}
-
-		} catch (TaoKeApiException e) {
-			JSONObject msg = null;
-			try {
-				msg = JSONObject.fromObject(e.getMsg());
-			} catch (Exception e2) {
-			}
-			if (msg != null && msg.optJSONObject("error_response") != null) {
-				throw new TaoBaoTokenParseException(msg.optJSONObject("error_response").optInt("sub_code"),
-						msg.optJSONObject("error_response").optString("sub_msg"));
-			}
-		}
-		return null;
-	}
-
-	// 娣樼ぜ閲戝垱寤�
-	public static TaoLiJinDTO createTaoLiJin(Long auctionId, String name, BigDecimal perface, int totalNum,
-			Date sendStartTime, Date sendEndTime, Date useStartTime, Date useEndTime, TaoKeAppInfo app)
-			throws TaoLiJinCreateException, TaoKeApiException {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.dg.vegas.tlj.create");
-		map.put("adzone_id", app.getPid().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"));
-
-		if (sendEndTime != null)
-			map.put("send_end_time", TimeUtil.getGernalTime(sendEndTime.getTime(), "yyyy-MM-dd HH:mm:ss"));
-
-		if (useEndTime != null) {
-			map.put("use_end_time", TimeUtil.getGernalTime(useEndTime.getTime(), "yyyy-MM-dd"));
-			map.put("use_end_time_mode", "2");
-		}
-
-		if (useStartTime != null)
-			map.put("use_start_time", TimeUtil.getGernalTime(useStartTime.getTime(), "yyyy-MM-dd"));
-		try {
-			String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
-			JSONObject json = JSONObject.fromObject(result);
-			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;
-				} else {
-					LogHelper.error(json);
-				}
-
-				// 鎺ュ彛杩斿洖寮傚父
-				String msgCode = root.optJSONObject("result").optString("msg_code");
-				if (!StringUtil.isNullOrEmpty(msgCode)) {
-					TLJLogHelper.info(auctionId, root.toString());// 娣樼ぜ閲戝紓甯镐俊鎭褰�
-					switch (msgCode) {
-					case "FAIL_BIZ_ITEM_FORBIDDEN":
-						throw new TaoLiJinCreateException(TaoLiJinCreateException.CODE_TLJ_FORBIDDEN, "璇ュ晢鍝佷笉鏀寔鍒涘缓娣樼ぜ閲戠孩鍖�");
-					case "FAIL_BIZ_ACCOUNT_UN_PAID":
-					case "PRE_FREEZE_ASSET_ACCOUNT_ERROR":
-						throw new TaoLiJinCreateException(TaoLiJinCreateException.CODE_TLJ_NO_MONEY, "瀹樻柟鐜╂硶閽卞寘浣欓涓嶈冻");
-					default:
-						throw new TaoKeApiException(Integer.parseInt(msgCode), root.toString());
-					}
-				}
-			}
-		} catch (TaoKeApiException e) {
-			throw e;
-		}
-
-		return null;
-	}
-
-	// 娣樼ぜ閲戞姤鍛�
-	public static UserTaoLiJinReport getTaoLiJinEffective(String rightsId) {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.dg.vegas.tlj.instance.report");
-		map.put("rights_id", rightsId);
-
-		TaoKeAppInfo app = new TaoKeAppInfo();
-		app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
-		app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
-
-		try {
-			String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
-			JSONObject json = JSONObject.fromObject(result);
-			System.out.println(json);
-
-			JSONObject root = json.optJSONObject("tbk_dg_vegas_tlj_instance_report_response");
-
-			if (root != null && root.optJSONObject("result") != null) {
-				if (root.optJSONObject("result").optBoolean("success")) {
-					JSONObject modelJson = root.optJSONObject("result").optJSONObject("model");
-
-					if (modelJson != null && modelJson.size() > 0) {
-						UserTaoLiJinReport report = new UserTaoLiJinReport();
-						report.setId(rightsId);
-						report.setUnfreezeAmount(new BigDecimal(modelJson.optString("unfreeze_amount")));
-						report.setUnfreezeNum(modelJson.optInt("unfreeze_num"));
-						report.setRefundAmount(new BigDecimal(modelJson.optString("refund_amount")));
-						report.setRefundNum(modelJson.optInt("refund_num"));
-						report.setAlipayAmount(new BigDecimal(modelJson.optString("alipay_amount")));
-						report.setUseAmount(new BigDecimal(modelJson.optString("use_amount")));
-						report.setUseNum(modelJson.optInt("use_num"));
-						report.setWinAmount(new BigDecimal(modelJson.optString("win_amount")));
-						report.setWinNum(modelJson.optInt("win_num"));
-						report.setPreCommissionAmount(new BigDecimal(modelJson.optString("pre_commission_amount")));
-						return report;
-					}
-				}
-			}
-		} catch (Exception e) {
-			LogHelper.errorDetailInfo(e);
-		}
-		return null;
-	}
-
-	public static void getCouponByAuctionId(Long auctionId) {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.itemid.coupon.get");
-		map.put("platform", 2 + "");
-		map.put("pid", TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID);
-		map.put("num_iids", auctionId + "");
-		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.print(json);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * 鑾峰彇娣樺疂绯荤粺鏃堕棿
-	 * 
-	 * @return
-	 */
-	public static Date getTaoBaoSystemTime() {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.time.get");
-		try {
-			JSONObject json = TaoKeBaseUtil.baseRequest(map, false);
-			String time = json.optJSONObject("time_get_response").optString("time");
-			return new Date(TimeUtil.convertToTimeTemp(time, "yyyy-MM-dd HH:mm:ss"));
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	/**
-	 * 瀹樻柟娲诲姩鎺ㄥ箍
-	 * 
-	 * @param adZoneId
-	 *            -骞垮憡浣�
-	 * @param promotionSceneId-娲诲姩ID
-	 * @param relationId
-	 *            -娓犻亾ID
-	 * @return
-	 */
-	public static TaoKeOfficialActivityConvertResultDTO officialActivityConvert(String adZoneId,
-			String promotionSceneId, String relationId) {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.activity.info.get");
-		map.put("adzone_id", adZoneId);
-		map.put("activity_material_id", promotionSceneId);
-		if (relationId != null)
-			map.put("relation_id", relationId);
-		TaoKeAppInfo app = new TaoKeAppInfo();
-		app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
-		app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
-		try {
-			String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
-			System.out.println(result);
-			JSONObject json = JSONObject.fromObject(result);
-			if (json != null) {
-				json = json.optJSONObject("tbk_activity_info_get_response");
-				if (json.optJSONObject("data") != null) {
-					return JsonUtil.getSimpleGson().fromJson(json.optJSONObject("data").toString(),
-							TaoKeOfficialActivityConvertResultDTO.class);
-				}
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	public static List<TaoBaoGoodsBrief> guessLikeByAuctionId(Long auctionId, int count) {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.dg.optimus.material");
-		map.put("item_id", auctionId + "");
-		map.put("page_size", count + "");
-		map.put("page_no", 1 + "");
-		map.put("material_id", 13256 + "");
-
-		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
-		JSONObject resultJSON = null;
-		try {
-			resultJSON = TaoKeBaseUtil.baseRequest(map, true);
-
-			JSONObject response = resultJSON.optJSONObject("tbk_dg_optimus_material_response");
-			if (response != null && response.optJSONObject("result_list") != null) {
-				JSONArray array = response.optJSONObject("result_list").optJSONArray("map_data");
-				if (array != null) {
-
-					for (int i = 0; i < array.size(); i++) {
-						JSONObject item = array.optJSONObject(i);
-						TaoBaoGoodsBrief goods = parseWuLiaoItemFromMaterialId(item);
-						if (goods != null)
-							goodsList.add(goods);
-					}
-				}
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-
-		return goodsList;
-	}
-
-	public static List<TaoBaoGoodsBrief> getCouponListByItemId(Long auctionId) {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.itemid.coupon.get");
-		map.put("platform", auctionId + "");
-		map.put("num_iids", auctionId + "");
-		map.put("pid", TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
-
-		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
-		JSONObject resultJSON = null;
-		try {
-			resultJSON = TaoKeBaseUtil.baseRequest(map, new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY,
-					TaoBaoConstant.TAOBAO_AUTH_APPSECRET, TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT));
-
-			JSONObject response = resultJSON.optJSONObject("tbk_dg_optimus_material_response");
-			if (response != null && response.optJSONObject("result_list") != null) {
-				JSONArray array = response.optJSONObject("result_list").optJSONArray("map_data");
-				if (array != null) {
-
-					for (int i = 0; i < array.size(); i++) {
-						JSONObject item = array.optJSONObject(i);
-						TaoBaoGoodsBrief goods = parseWuLiaoItemFromMaterialId(item);
-						if (goods != null)
-							goodsList.add(goods);
-					}
-				}
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-
-		return goodsList;
-	}
-
-	/**
-	 * 娣樺疂瀹�-鎺ㄥ箍鑰�-瀹樻柟娲诲姩淇℃伅鑾峰彇
-	 * @Title: getActivityInfo
-	 * @Description: 
-	 * @param activityMaterialId
-	 * @param pid
-	 * @param relationId
-	 * @return 
-	 * String 杩斿洖绫诲瀷
-	 * @throws
-	 */
-	public static String getActivityInfo(String activityMaterialId, String pid, String relationId) {
-		Map<String, String> map = new HashMap<>();
-		map.put("method", "taobao.tbk.activity.info.get");
-		map.put("activity_material_id", activityMaterialId);
-		map.put("adzone_id", pid.split("_")[3] + "");
-		map.put("relation_id", relationId);
-
-		JSONObject resultJSON = null;
-		try {
-			resultJSON = TaoKeBaseUtil.baseRequest(map,
-					new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET, pid));
-			JSONObject response = resultJSON.optJSONObject("tbk_activity_info_get_response");
-			if (response != null && response.optJSONObject("data") != null) {
-				return response.optJSONObject("data").optString("click_url");
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-
-		return null;
-	}
-}
+package com.yeshi.fanli.util.taobao;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.yeshi.utils.JsonUtil;
+import org.yeshi.utils.taobao.TbImgUtil;
+
+import com.yeshi.goods.facade.dto.taobao.TaoBaoShopInfoDTO;
+import com.yeshi.fanli.dto.taobao.TaoLiJinDTO;
+import com.yeshi.fanli.dto.taobao.api.TaoKeOfficialActivityConvertResultDTO;
+import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinReport;
+import com.yeshi.fanli.entity.taobao.SearchFilter;
+import com.yeshi.fanli.entity.taobao.SearchShopFilter;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoHead;
+import com.yeshi.fanli.entity.taobao.TaoBaoProvince;
+import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav;
+import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
+import com.yeshi.common.entity.taobao.TaoBaoShopInfo;
+import com.yeshi.common.entity.taobao.TaoKeAppInfo;
+import com.yeshi.fanli.exception.taobao.TaoBaoAuthException;
+import com.yeshi.fanli.exception.taobao.TaoBaoTokenParseException;
+import com.yeshi.fanli.exception.taobao.TaoKeApiException;
+import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
+import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.log.TLJLogHelper;
+import com.yeshi.fanli.log.TaoKeLogHelper;
+import com.yeshi.common.entity.PageEntity;
+import org.yeshi.utils.MoneyBigDecimalUtil;
+import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TaoBaoConstant;
+import org.yeshi.utils.TimeUtil;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+//娣樺疂瀹PI鎺ュ彛
+public class TaoKeScApiUtil {
+
+    // 瑙f瀽鍒哥殑鍐呭
+    private static TaoBaoSearchResult parseCoupleContent(String content) {
+        TaoBaoSearchResult result = new TaoBaoSearchResult();
+        JSONObject root = JSONObject.fromObject(content);
+
+        root = root.optJSONObject("tbk_dg_item_coupon_get_response");
+        if (root.optJSONObject("results") == null)
+            return null;
+
+        JSONArray array = root.optJSONObject("results").optJSONArray("tbk_coupon");
+        if (array != null) {
+            List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+            for (int i = 0; i < array.size(); i++) {
+                JSONObject item = array.optJSONObject(i);
+                TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
+                goods.setPictUrl(item.optString("pict_url"));
+                goods.setAuctionId(item.optString("num_iid"));
+                goods.setAuctionUrl(item.optString("item_url"));
+                goods.setBiz30day(item.optInt("volume"));
+                goods.setCouponInfo(item.optString("coupon_info"));
+                List<BigDecimal> quanInfo = TaoBaoCouponUtil.getCouponInfo(goods.getCouponInfo());
+                goods.setCouponAmount(quanInfo.get(1));
+                goods.setCouponEffectiveEndTime(item.optString("coupon_end_time"));
+                goods.setCouponEffectiveStartTime(item.optString("coupon_start_time"));
+                goods.setCouponStartFee(quanInfo.get(0));
+                goods.setCouponLeftCount(item.optInt("coupon_remain_count"));
+                goods.setCouponLink(item.optString("coupon_click_url"));
+                goods.setCouponTotalCount(item.optInt("coupon_total_count"));
+                goods.setDayLeft(-1);
+                if (item.optJSONObject("small_images") != null) {
+                    JSONArray imgArray = item.optJSONObject("small_images").optJSONArray("string");
+                    if (imgArray != null) {
+                        List<String> imgList = new ArrayList<>();
+                        for (int n = 0; n < imgArray.size(); n++) {
+                            imgList.add(imgArray.optString(n));
+                        }
+                        goods.setImgList(imgList);
+                    }
+                }
+
+                goods.setSellerId(item.optLong("seller_id"));
+                goods.setShopTitle(item.optString("shop_title"));
+                goods.setTitle(item.optString("title"));
+
+                goods.setTkRate(new BigDecimal(item.optString("commission_rate")));
+                goods.setTotalNum(1000);
+                goods.setUserType(item.optInt("user_type"));
+                goods.setUserTypeName("");
+                goods.setZkPrice(new BigDecimal(item.optString("zk_final_price")));
+
+                if (goods.getZkPrice().compareTo(goods.getCouponStartFee()) >= 0
+                        && goods.getZkPrice().compareTo(goods.getCouponAmount()) > 0) {
+                    BigDecimal finalPrice = goods.getZkPrice().subtract(goods.getCouponAmount());
+                    goods.setTkCommFee(finalPrice.multiply(goods.getTkRate()).divide(new BigDecimal(100)));
+                } else
+                    goods.setTkCommFee(new BigDecimal(0));
+
+                goodsList.add(goods);
+            }
+
+            result.setTaoBaoGoodsBriefs(goodsList);
+
+            int totalCount = 1000;// root.optInt("total_results");
+            PageEntity pe = new PageEntity(0, 0, totalCount);
+            result.setPageEntity(pe);
+        }
+        result.setNavList(new ArrayList<>());
+        TaoBaoHead taoBaoHead = new TaoBaoHead();
+        taoBaoHead.setDocsfound((int) result.getPageEntity().getTotalCount());
+        result.setTaoBaoHead(taoBaoHead);
+        return result;
+    }
+
+    /**
+     * 鑾峰彇鍟嗗搧璇︽儏锛岀畝鐗�
+     *
+     * @param id -鍟嗗搧AuctionId
+     * @return
+     */
+    public static TaoBaoGoodsBrief getSimpleGoodsInfo(Long id) throws TaobaoGoodsDownException {
+        Map<String, String> map = new HashMap<>();
+        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
+                && data.optJSONObject("error_response").optInt("sub_code") == 50001) {
+            throw new TaobaoGoodsDownException(data.optJSONObject("error_response").optInt("code"), "鍟嗗搧涓嬫灦");
+        }
+
+        if (data.optJSONObject("tbk_item_info_get_response") == null)
+            return null;
+        JSONArray array = data.optJSONObject("tbk_item_info_get_response").optJSONObject("results")
+                .optJSONArray("n_tbk_item");
+        if (array != null && array.size() > 0) {
+            JSONObject item = array.optJSONObject(0);
+            return parseSimpleGoodsInfo(item);
+        }
+        return null;
+    }
+
+    private static TaoBaoGoodsBrief parseSimpleGoodsInfo(JSONObject item) {
+        TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
+        goods.setAuctionId(item.optString("num_iid"));
+        goods.setAuctionUrl(item.optString("item_url"));
+        goods.setBiz30day(item.optInt("volume"));
+        if (item.optJSONObject("small_images") != null) {
+            JSONArray imgArray = item.optJSONObject("small_images").optJSONArray("string");
+            if (imgArray != null) {
+                List<String> imgList = new ArrayList<>();
+                for (int n = 0; n < imgArray.size(); n++) {
+                    imgList.add(imgArray.optString(n));
+                }
+                goods.setImgList(imgList);
+            }
+        }
+        goods.setTitle(item.optString("title"));
+        goods.setUserType(item.optInt("user_type"));
+        goods.setZkPrice(new BigDecimal(item.optString("zk_final_price")));
+        goods.setReservePrice(new BigDecimal(item.optString("zk_final_price")));
+        goods.setAuctionUrl(item.optString("item_url"));
+        goods.setProvcity(item.optString("provcity"));
+        goods.setPictUrl(item.optString("pict_url"));
+        goods.setShopTitle(item.optString("nick"));
+        goods.setSellerId(item.optLong("seller_id"));
+        goods.setRootCategoryName(item.optString("cat_name"));
+        goods.setLeafName(item.optString("cat_leaf_name"));
+
+        String optString = item.optString("shop_dsr");
+        if (!StringUtil.isNullOrEmpty(optString)) {
+            goods.setShopDsr(new Integer(optString));
+        }
+
+        String ratesum = item.optString("ratesum");
+        if (!StringUtil.isNullOrEmpty(ratesum)) {
+            goods.setRatesum(new Integer(ratesum));
+        }
+
+        if (item.optBoolean("is_prepay"))
+            goods.setIsPrepay(1);
+
+        if (item.optBoolean("i_rfd_rate"))
+            goods.setRfdRate(1);
+
+        if (item.optBoolean("h_good_rate"))
+            goods.setGoodRate(1);
+
+        if (item.optBoolean("h_pay_rate30"))
+            goods.setPayRate30(1);
+
+        if (item.optBoolean("free_shipment"))
+            goods.setFreeShipment(1);
+
+        if (!StringUtil.isNullOrEmpty(item.optString("material_lib_type"))) {
+            try {
+                String materialLibType = item.optString("material_lib_type");
+                goods.setMaterialLibType(Integer.parseInt(materialLibType.split(",")[0]));
+            } catch (Exception e) {
+                goods.setMaterialLibType(0);
+            }
+
+        } else
+            goods.setMaterialLibType(0);
+
+        goods.setRootCategoryName(item.optString("cat_name"));
+        goods.setLeafName(item.optString("cat_leaf_name"));
+
+        goods = loadYuShouInfo(goods, item);
+        return goods;
+    }
+
+    private static TaoBaoGoodsBrief loadYuShouInfo(TaoBaoGoodsBrief goods, JSONObject item) {
+        if (goods != null && item != null) {
+            // 棰勫敭鐩稿叧瑙f瀽
+            goods.setYsylClickUrl(item.optString("ysyl_click_url"));
+            if (!StringUtil.isNullOrEmpty(item.optString("ysyl_commission_rate")))
+                goods.setYsylCommissionRate(new BigDecimal(item.optString("ysyl_commission_rate")));
+            goods.setYsylTljFace(item.optString("ysyl_tlj_face"));
+            goods.setYsylTljSendTime(item.optString("ysyl_tlj_send_time"));
+            goods.setYsylTljUseEndTime(item.optString("ysyl_tlj_use_end_time"));
+            goods.setYsylTljUseStartTime(item.optString("ysyl_tlj_use_start_time"));
+
+            goods.setPresaleDeposit(item.optString("presale_deposit"));
+            goods.setPresaleDiscountFeeText(item.optString("presale_discount_fee_text"));
+            goods.setPresaleEndTime(item.optString("presale_end_time"));
+            goods.setPresaleStartTime(item.optString("presale_start_time"));
+            goods.setPresaleTailEndTime(item.optString("presale_tail_end_time"));
+            goods.setPresaleTailStartTime(item.optString("presale_tail_start_time"));
+
+            return goods;
+        }
+        return goods;
+    }
+
+    public static List<TaoBaoGoodsBrief> getBatchGoodsInfo(List<Long> listId)
+            throws TaoKeApiException, TaobaoGoodsDownException {
+        if (listId == null || listId.size() == 0) {
+            throw new TaobaoGoodsDownException(1, "娣樺疂鍟嗗搧ID涓嶈兘涓虹┖");
+        }
+
+        if (listId.size() > 40) {
+            throw new TaobaoGoodsDownException(1, "娣樺疂鍟嗗搧ID涓嶈兘瓒呰繃40涓�");
+        }
+
+        StringBuffer ids = new StringBuffer();
+        for (Long id : listId) {
+            ids.append(id + ",");
+        }
+
+        return getBatchGoodsInfos(ids.substring(0, ids.length() - 1));
+    }
+
+    /**
+     * 鑾峰彇鍟嗗搧璇︽儏锛岀畝鐗�
+     *
+     * @param ids
+     * @return
+     */
+    public static List<TaoBaoGoodsBrief> getBatchGoodsInfos(String ids) throws TaobaoGoodsDownException {
+        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.item.info.get");
+        map.put("num_iids", ids + "");
+        String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
+        JSONObject data = JSONObject.fromObject(resultStr);
+        // 鍟嗗搧涓嬫灦
+        if (data.optJSONObject("error_response") != null && data.optJSONObject("error_response").optInt("code") == 15
+                && data.optJSONObject("error_response").optInt("sub_code") == 50001) {
+            throw new TaobaoGoodsDownException(data.optJSONObject("error_response").optInt("code"), "鍟嗗搧涓嬫灦");
+        }
+
+        if (data.optJSONObject("tbk_item_info_get_response") == null)
+            return null;
+
+        JSONArray array = data.optJSONObject("tbk_item_info_get_response").optJSONObject("results")
+                .optJSONArray("n_tbk_item");
+        if (array != null && array.size() > 0) {
+
+            for (int i = 0; i < array.size(); i++) {
+                JSONObject item = array.optJSONObject(i);
+                goodsList.add(parseSimpleGoodsInfo(item));
+            }
+        }
+        return goodsList;
+    }
+
+    /**
+     * 鎼滅储鍟嗗搧璇︽儏-璇︾粏
+     *
+     * @param id
+     * @return
+     * @throws TaobaoGoodsDownException
+     */
+    public static TaoBaoGoodsBrief searchGoodsDetail(Long id) throws TaobaoGoodsDownException {
+        TaoBaoGoodsBrief goods = getSimpleGoodsInfo(id);
+        if (goods == null)
+            return null;
+        SearchFilter filter = new SearchFilter();
+        filter.setKey(goods.getTitle());
+        filter.setPage(1);
+        filter.setPageSize(50);
+        TaoBaoSearchResult result = searchWuLiaoForDetail(goods.getTitle(), goods.getZkPrice(), goods.getProvcity(),
+                goods.getUserType());
+        if (result != null && result.getTaoBaoGoodsBriefs() != null)
+            for (TaoBaoGoodsBrief g : result.getTaoBaoGoodsBriefs()) {
+                System.out.println(goods.getAuctionId() + ":" + g.getAuctionId());
+                if (TaoBaoUtil.isEqual( goods.getAuctionId(), g.getAuctionId())) {
+                    g.setAuctionId(goods.getAuctionId());
+                    g.setCreatetime(new Date());
+                    g.setMaterialLibType(goods.getMaterialLibType());
+                    g.setProvcity(goods.getProvcity());
+                    return g;
+                }
+            }
+
+        // 浠庤浆閾炬悳绱�
+        TaoBaoGoodsBrief newGoods = specialConvertCoupon(goods.getAuctionId(),
+                new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET,
+                        TaoBaoConstant.TAOBAO_PID_DEFAULT));
+
+        if (newGoods != null) {
+            goods.setTkRate(newGoods.getTkRate());
+            if (!StringUtil.isNullOrEmpty(newGoods.getCouponInfo())) {
+                List<BigDecimal> couponInfo = TaoBaoCouponUtil.getCouponInfo(newGoods.getCouponInfo());
+                if (couponInfo != null && couponInfo.size() > 1) {
+                    goods.setCouponStartFee(couponInfo.get(0));
+                    goods.setCouponAmount(couponInfo.get(1));
+                    goods.setCouponEffectiveStartTime(newGoods.getCouponEffectiveStartTime());
+                    goods.setCouponEffectiveEndTime(newGoods.getCouponEffectiveEndTime());
+                    goods.setCouponLeftCount(newGoods.getCouponLeftCount());
+                    goods.setCouponTotalCount(newGoods.getCouponTotalCount());
+                    goods.setCouponInfo(newGoods.getCouponInfo());
+                }
+            }
+
+            return goods;
+
+        } else {
+            goods.setCouponAmount(new BigDecimal("0"));
+            goods.setTkMktStatus("1");
+            goods.setTkRate(new BigDecimal("0"));
+            goods.setReservePrice(new BigDecimal(0));
+            goods.setTkCommFee(new BigDecimal(0));
+            return goods;
+        }
+
+    }
+
+    /**
+     * 鎼滅储鍟嗗搧璇︽儏-璇︾粏
+     *
+     * @param id
+     * @return
+     * @throws TaobaoGoodsDownException
+     */
+    public static TaoBaoGoodsBrief searchGoodsDetail(Long id, TaoKeAppInfo app) throws TaobaoGoodsDownException {
+        TaoBaoGoodsBrief goods = getSimpleGoodsInfo(id);
+        if (goods == null)
+            return null;
+        SearchFilter filter = new SearchFilter();
+        filter.setKey(goods.getTitle());
+        filter.setPage(1);
+        filter.setPageSize(50);
+        TaoBaoSearchResult result = searchWuLiaoForDetail(goods.getTitle(), goods.getZkPrice(), goods.getProvcity(),
+                goods.getUserType(), app);
+        if (result != null && result.getTaoBaoGoodsBriefs() != null)
+            for (TaoBaoGoodsBrief g : result.getTaoBaoGoodsBriefs()) {
+                if (TaoBaoUtil.isEqual(goods.getAuctionId(), g.getAuctionId())) {
+                    g.setAuctionId(goods.getAuctionId());
+                    // 鍒ゆ柇鏄惁鏈変紭鎯犲埜
+                    if (!StringUtil.isNullOrEmpty(g.getCouponActivityId())) {
+                        // 鑾峰彇浼樻儬鍒歌鎯�
+                        TaoKeApiUtil.QuanInfo quanInfo = getQuanInfo(g.getAuctionId(), g.getCouponActivityId());
+                        if (quanInfo != null) {
+                            g.setCouponAmount(quanInfo.coupon_amount);
+                            g.setCouponEffectiveEndTime(quanInfo.coupon_end_time);
+                            g.setCouponEffectiveStartTime(quanInfo.coupon_start_time);
+                            g.setCouponLeftCount(quanInfo.coupon_remain_count);
+                            g.setCouponStartFee(quanInfo.coupon_start_fee);
+                            g.setCouponTotalCount(quanInfo.coupon_total_count);
+                        }
+                    } else {
+                        g.setCouponAmount(new BigDecimal(0));
+                        g.setCouponStartFee(new BigDecimal(0));
+                    }
+                    g.setCreatetime(new Date());
+                    g.setMaterialLibType(goods.getMaterialLibType());
+                    g.setProvcity(goods.getProvcity());
+                    return g;
+                }
+            }
+
+        // 浠庤浆閾炬悳绱�
+        TaoBaoGoodsBrief newGoods = specialConvertCoupon(goods.getAuctionId(),
+                new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET,
+                        TaoBaoConstant.TAOBAO_PID_DEFAULT));
+
+        if (newGoods != null) {
+            goods.setTkRate(newGoods.getTkRate());
+            if (!StringUtil.isNullOrEmpty(newGoods.getCouponInfo())) {
+                List<BigDecimal> couponInfo = TaoBaoCouponUtil.getCouponInfo(newGoods.getCouponInfo());
+                if (couponInfo != null && couponInfo.size() > 1) {
+                    goods.setCouponStartFee(couponInfo.get(0));
+                    goods.setCouponAmount(couponInfo.get(1));
+                    goods.setCouponEffectiveStartTime(newGoods.getCouponEffectiveStartTime());
+                    goods.setCouponEffectiveEndTime(newGoods.getCouponEffectiveEndTime());
+                    goods.setCouponLeftCount(newGoods.getCouponLeftCount());
+                    goods.setCouponTotalCount(newGoods.getCouponTotalCount());
+                    goods.setCouponInfo(newGoods.getCouponInfo());
+                }
+            }
+
+            return goods;
+
+        } else {
+            goods.setCouponAmount(new BigDecimal("0"));
+            goods.setTkMktStatus("1");
+            goods.setTkRate(new BigDecimal("0"));
+            goods.setReservePrice(new BigDecimal(0));
+            goods.setTkCommFee(new BigDecimal(0));
+            return goods;
+        }
+    }
+
+    /**
+     * 鐗╂枡杞摼
+     *
+     * @param id
+     * @param app
+     * @return
+     * @throws TaobaoGoodsDownException
+     */
+    public static TaoBaoGoodsBrief searchGoodsDetailForConvert(Long id, TaoKeAppInfo app)
+            throws TaobaoGoodsDownException {
+        TaoBaoGoodsBrief goods = getSimpleGoodsInfo(id);
+        if (goods == null)
+            return null;
+        SearchFilter filter = new SearchFilter();
+        filter.setKey(goods.getTitle());
+        filter.setPage(1);
+        filter.setPageSize(50);
+        TaoBaoSearchResult result = searchWuLiaoForDetail(goods.getTitle(), goods.getZkPrice(), goods.getProvcity(),
+                goods.getUserType(), app);
+        if (result != null && result.getTaoBaoGoodsBriefs() != null)
+            for (TaoBaoGoodsBrief g : result.getTaoBaoGoodsBriefs()) {
+                if (TaoBaoUtil.isEqual( goods.getAuctionId(), g.getAuctionId())) {
+                    g.setAuctionId(goods.getAuctionId());
+                    g.setCreatetime(new Date());
+                    return g;
+                }
+            }
+
+        TaoKeLogHelper.error(null, "娌℃湁鎼滅储鍒拌鎯�:" + id);
+        goods.setCouponAmount(new BigDecimal("0"));
+        goods.setTkMktStatus("1");
+        goods.setTkRate(new BigDecimal("0"));
+        goods.setReservePrice(new BigDecimal(0));
+        goods.setTkCommFee(new BigDecimal(0));
+        return goods;
+    }
+
+    public static List<TaoBaoGoodsBrief> searchBatchGoodsDetail(String ids) throws TaobaoGoodsDownException {
+
+        List<TaoBaoGoodsBrief> goodsBriefList = getBatchGoodsInfos(ids);
+
+        if (goodsBriefList == null || goodsBriefList.size() == 0) {
+            return null;
+        }
+
+        // System.out.println("---------goodsBriefList--------------:"+
+        // goodsBriefList.size());
+
+        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+
+        for (TaoBaoGoodsBrief goods : goodsBriefList) {
+
+            boolean pross = false;
+
+            SearchFilter filter = new SearchFilter();
+            filter.setKey(goods.getTitle());
+            filter.setPage(1);
+            filter.setPageSize(50);
+            TaoBaoSearchResult result = searchWuLiaoForDetail(goods.getTitle(), goods.getZkPrice(), goods.getProvcity(),
+                    goods.getUserType());
+            if (result != null && result.getTaoBaoGoodsBriefs() != null)
+                for (TaoBaoGoodsBrief g : result.getTaoBaoGoodsBriefs()) {
+                    if ( TaoBaoUtil.isEqual(goods.getAuctionId(), g.getAuctionId())) {
+                        g.setAuctionId(goods.getAuctionId());
+                        g.setAuctionUrl(goods.getAuctionUrl());
+                        g.setShopTitle(goods.getShopTitle());
+
+                        // 鍒ゆ柇鏄惁鏈変紭鎯犲埜
+                        if (!StringUtil.isNullOrEmpty(g.getCouponActivityId())) {
+                            // 鑾峰彇浼樻儬鍒歌鎯�
+                            TaoKeApiUtil.QuanInfo quanInfo = getQuanInfo(g.getAuctionId(), g.getCouponActivityId());
+                            if (quanInfo != null) {
+                                g.setCouponAmount(quanInfo.coupon_amount);
+                                g.setCouponEffectiveEndTime(quanInfo.coupon_end_time);
+                                g.setCouponEffectiveStartTime(quanInfo.coupon_start_time);
+                                g.setCouponLeftCount(quanInfo.coupon_remain_count);
+                                g.setCouponStartFee(quanInfo.coupon_start_fee);
+                                g.setCouponTotalCount(quanInfo.coupon_total_count);
+                            }
+                        } else {
+                            g.setCouponAmount(new BigDecimal(0));
+                            g.setCouponStartFee(new BigDecimal(0));
+                        }
+                        g.setCreatetime(new Date());
+                        goodsList.add(g);
+                        pross = true;
+                        break;
+                    }
+                }
+
+            if (pross)
+                continue;
+
+            // 鍐嶄粠娣樺疂鑱旂洘缃戦〉鎼滅储
+            filter.setKey(goods.getAuctionUrl());
+            TaoBaoSearchResult searchResult = TaoBaoUtil.searchFromAlimamaWeb(filter, null);
+            if (searchResult != null && searchResult.getTaoBaoGoodsBriefs() != null
+                    && searchResult.getTaoBaoGoodsBriefs().size() > 0) {
+                for (TaoBaoGoodsBrief g : searchResult.getTaoBaoGoodsBriefs()) {
+                    if (TaoBaoUtil.isEqual(g.getAuctionId() , goods.getAuctionId())) {
+                        g.setImgList(goods.getImgList());
+                        g.setAuctionId(goods.getAuctionId());
+                        g.setAuctionUrl(goods.getAuctionUrl());
+                        g.setShopTitle(goods.getShopTitle());
+
+                        goods = g;
+                        if ("鏃�".equalsIgnoreCase(goods.getCouponInfo()))
+                            goods.setCouponInfo(null);
+
+                        goodsList.add(goods);
+                        pross = true;
+                        break;
+                    }
+                }
+            }
+
+            if (pross)
+                continue;
+
+            goods.setCouponAmount(new BigDecimal("0"));
+            goods.setTkMktStatus("1");
+            goods.setTkRate(new BigDecimal("0"));
+            goods.setReservePrice(new BigDecimal(0));
+            goods.setTkCommFee(new BigDecimal(0));
+
+            goodsList.add(goods);
+        }
+
+        return goodsList;
+    }
+
+    /**
+     * 鍟嗗搧鐗╂枡鎼滅储
+     *
+     * @param filter
+     * @return
+     */
+    public static TaoBaoSearchResult searchWuLiao(SearchFilter filter, String session, TaoKeAppInfo app,
+                                                  String targetAppKey) {
+
+        if (filter.getKey() != null && filter.getKey().trim().equalsIgnoreCase(""))
+            return null;
+
+        if (filter.getKey() != null && filter.getKey().length() > 100)
+            return null;
+
+        PageEntity pageEntity = new PageEntity();
+        TaoBaoSearchResult taoBaoSearchResult = new TaoBaoSearchResult();
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.sc.material.optional");
+        map.put("page_size", filter.getPageSize() == 0 ? "20" : filter.getPageSize() + "");
+        map.put("page_no", (filter.getPage() <= 0 ? 1 : filter.getPage()) + "");
+        // map.put("material_id", "3756");
+        map.put("site_id", app.getPid().split("_")[2]);
+
+        pageEntity.setPageIndex(filter.getPage());
+        pageEntity.setPageSize(filter.getPageSize() == 0 ? 20 : filter.getPageSize());
+
+        // 鍖呭惈浜嗗湴鍖虹瓫閫�
+        if (filter.getProvinceId() > 0) {
+            List<TaoBaoProvince> provinceList = TaoBaoUtil.getTaoBaoProvinceList();
+
+            for (TaoBaoProvince province : provinceList) {
+                if (Integer.parseInt(province.getId()) == filter.getProvinceId()) {
+                    map.put("itemloc", province.getName());
+                    break;
+                }
+            }
+        }
+
+        if (filter.getMaterialId() != null)
+            map.put("material_id", filter.getMaterialId());
+
+        if (filter.getStartPrice() != null)
+            map.put("start_price", filter.getStartPrice() + "");
+
+        if (filter.getEndPrice() != null)
+            map.put("end_price", filter.getEndPrice() + "");
+
+        if (filter.getStartTkRate() > 0)
+            map.put("start_tk_rate", filter.getStartTkRate() + "");
+
+        if (filter.getEndTkRate() > 0)
+            map.put("end_tk_rate", filter.getEndTkRate() + "");
+
+        if (filter.getStartKaTkRate() > 0)
+            map.put("start_ka_tk_rate", filter.getStartKaTkRate() + "");
+
+        if (filter.getEndKaTkRate() > 0)
+            map.put("end_ka_tk_rate", filter.getEndKaTkRate() + "");
+
+        if (filter.isTmall())
+            map.put("is_tmall", filter.isTmall() + "");
+
+        if (filter.isOverseas())
+            map.put("is_overseas", filter.isOverseas() + "");
+
+        if (filter.isBaoYou())
+            map.put("need_free_shipment", filter.isBaoYou() + "");
+
+        if (filter.isNeedPrepay())
+            map.put("need_prepay", filter.isNeedPrepay() + "");
+
+        if (filter.isIncludePayRate30())
+            map.put("include_pay_rate_30", filter.isIncludePayRate30() + "");
+
+        if (filter.isIncludeGoodRate())
+            map.put("include_good_rate", filter.isIncludeGoodRate() + "");
+
+        if (filter.isIncludeRfdRate())
+            map.put("include_rfd_rate", filter.isIncludeRfdRate() + "");
+
+        if (filter.getStartDsr() > 0)
+            map.put("start_dsr", filter.getStartDsr() + "");
+
+        if (filter.getNpxLevel() > 0)
+            map.put("npx_level", filter.getNpxLevel() + "");
+
+        if (!StringUtil.isNullOrEmpty(filter.getCateIds()))
+            map.put("cat", filter.getCateIds());
+
+        if (!StringUtil.isNullOrEmpty(filter.getKey()))
+            map.put("q", filter.getKey());
+
+        if (filter.getQuan() > 0)
+            map.put("has_coupon", true + "");
+
+        if (!StringUtil.isNullOrEmpty(filter.getIp()))
+            map.put("ip", filter.getIp());
+
+        if (filter.getSort() > 0) {
+            if (filter.getSort() == TaoBaoUtil.SORT_SALE_HIGH_TO_LOW) {
+                map.put("sort", "total_sales_des"); // 閿�閲忎粠楂樺埌浣�
+            } else if (filter.getSort() == TaoBaoUtil.SORT_SALE_LOW_TO_HIGH) {
+                map.put("sort", "total_sales_asc"); // 閿�閲忎粠浣庡埌楂�
+            } else if (filter.getSort() == TaoBaoUtil.SORT_PRICE_HIGH_TO_LOW) {
+                map.put("sort", "price_des"); // 浠锋牸浠庨珮鍒颁綆
+            } else if (filter.getSort() == TaoBaoUtil.SORT_PRICE_LOW_TO_HIGH) {
+                map.put("sort", "price_asc"); // 浠锋牸浠庝綆鍒伴珮
+            } else if (filter.getSort() == TaoBaoUtil.SORT_TKRATE_HIGH_TO_LOW) {
+                map.put("sort", "tk_rate_des"); // 娣樺浣i噾姣旂巼楂樺埌浣�
+            } else if (filter.getSort() == TaoBaoUtil.SORT_TKRATE_LOW_TO_HIGH) {
+                map.put("sort", "tk_rate_asc"); // 娣樺浣i噾姣旂巼浣庡埌楂�
+            } else if (filter.getSort() == TaoBaoUtil.SORT_TOTAL_COMMI_HIGH_TO_LOW) {
+                map.put("sort", "tk_total_commi_des"); // 鎬绘敮鍑轰剑閲戦珮鍒颁綆
+            } else if (filter.getSort() == TaoBaoUtil.SORT_TOTAL_COMMI_LOW_TO_HIGH) {
+                map.put("sort", "tk_total_commi_asc"); // 鎬绘敮鍑轰剑閲戜綆鍒伴珮
+            } else if (filter.getSort() == TaoBaoUtil.SORT_TOTAL_SALES_HIGH_TO_LOW) {
+                map.put("sort", "tk_total_sales_des"); // 绱鎺ㄥ箍閲忛珮鍒颁綆
+            } else if (filter.getSort() == TaoBaoUtil.SORT_TOTAL_SALES_LOW_TO_HIGH) {
+                map.put("sort", "tk_total_sales_asc"); // 绱鎺ㄥ箍閲忎綆鍒伴珮
+            }
+
+        }
+
+        map.put("adzone_id", app.getPid().split("_")[3]);
+
+        JSONObject data = null;
+        try {
+            data = TaoKeBaseUtil.baseScRequest(map, app, session, targetAppKey);
+        } catch (TaoKeApiException e) {
+            e.printStackTrace();
+        }
+
+        System.out.println(data.toString());
+
+        if (data.optJSONObject("tbk_dg_material_optional_response") != null
+                && data.optJSONObject("tbk_dg_material_optional_response").optJSONObject("result_list") != null) {
+            JSONArray array = data.optJSONObject("tbk_dg_material_optional_response").optJSONObject("result_list")
+                    .optJSONArray("map_data");
+            List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+            if (array != null) {
+                for (int i = 0; i < array.size(); i++) {
+                    TaoBaoGoodsBrief goods = parseWuLiaoItem(array.optJSONObject(i));
+                    if (goods != null)
+                        goodsList.add(goods);
+                }
+            }
+            taoBaoSearchResult.setTaoBaoGoodsBriefs(goodsList);
+
+            JSONObject optJSONObject = data.optJSONObject("tbk_dg_material_optional_response");
+            int totalResults = optJSONObject.getInt("total_results");
+            int totalPage = totalResults % pageEntity.getPageSize() == 0 ? totalResults / pageEntity.getPageSize()
+                    : totalResults / pageEntity.getPageSize() + 1;
+            pageEntity.setTotalCount(totalResults);
+            pageEntity.setTotalPage(totalPage);
+
+        }
+
+        List<TaoBaoSearchNav> navList = new ArrayList<>();
+
+        TaoBaoHead taoBaoHead = new TaoBaoHead();
+        taoBaoHead.setDocsfound((int) pageEntity.getTotalCount());
+        taoBaoSearchResult.setTaoBaoHead(taoBaoHead);
+
+        taoBaoSearchResult.setPageEntity(pageEntity);
+
+        // filter.get
+
+        // 璁剧疆鍙戣揣鍦板潃
+        TaoBaoSearchNav nav = new TaoBaoSearchNav();
+        nav.setName("鍙戣揣鍦伴�夋嫨");
+        nav.setFlag("address");
+        nav.setId(11110);
+        nav.setType("fahuodi");
+
+        List<TaoBaoSearchNav> childNavList = new ArrayList<>();
+        List<TaoBaoProvince> provinceList = TaoBaoUtil.getTaoBaoProvinceList();
+        for (TaoBaoProvince province : provinceList) {
+            TaoBaoSearchNav childNav = new TaoBaoSearchNav();
+            childNav.setName(province.getName());
+            childNav.setId(Integer.parseInt(province.getId()));
+            childNav.setType("fahuodi-child");
+            if (Integer.parseInt(province.getId()) == filter.getProvinceId())
+                childNav.setSelector(1);
+            childNavList.add(childNav);
+        }
+
+        nav.setSubIds(childNavList);
+        navList.add(nav);
+
+        // 娴嬭瘯
+        taoBaoSearchResult.setNavList(navList);
+
+        return taoBaoSearchResult;
+    }
+
+    public static String tpwdConvert(Long item_id, String session, TaoKeAppInfo app) {
+
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.privilege.get");
+        map.put("item_id", item_id + "");
+        map.put("site_id", app.getPid().split("_")[2]);
+        map.put("adzone_id", app.getPid().split("_")[3]);
+
+        JSONObject data = null;
+        try {
+            data = TaoKeBaseUtil.baseScRequest(map, app, session, "");
+        } catch (TaoKeApiException e) {
+            e.printStackTrace();
+        }
+
+        System.out.println(data);
+
+        return data + "";
+    }
+
+    /**
+     * 鍟嗗搧鐗╂枡鎼滅储
+     *
+     * @return
+     */
+    public static TaoBaoSearchResult searchWuLiaoForDetail(String title, BigDecimal zkPrice, String provcity,
+                                                           int userType) {
+        if (provcity.trim().contains(" "))
+            provcity = provcity.split(" ")[provcity.split(" ").length - 1];
+        TaoBaoSearchResult taoBaoSearchResult = new TaoBaoSearchResult();
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.dg.material.optional");
+        map.put("page_size", 50 + "");
+        map.put("page_no", 1 + "");
+        map.put("start_price", (int) zkPrice.subtract(new BigDecimal(1)).doubleValue() + "");
+        map.put("end_price", (int) zkPrice.add(new BigDecimal(1)).doubleValue() + "");
+        map.put("is_tmall", (userType == 1) + "");
+        map.put("q", title);
+        map.put("itemloc", provcity);
+
+        String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
+        System.out.println(resultStr);
+        JSONObject data = JSONObject.fromObject(resultStr);
+        if (data.optJSONObject("tbk_dg_material_optional_response") != null
+                && data.optJSONObject("tbk_dg_material_optional_response").optJSONObject("result_list") != null) {
+            JSONArray array = data.optJSONObject("tbk_dg_material_optional_response").optJSONObject("result_list")
+                    .optJSONArray("map_data");
+            List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+            if (array != null) {
+                for (int i = 0; i < array.size(); i++) {
+                    TaoBaoGoodsBrief goods = parseWuLiaoItem(array.optJSONObject(i));
+                    if (goods != null)
+                        goodsList.add(goods);
+                }
+            }
+            taoBaoSearchResult.setTaoBaoGoodsBriefs(goodsList);
+        }
+
+        List<TaoBaoSearchNav> navList = new ArrayList<>();
+
+        TaoBaoHead taoBaoHead = new TaoBaoHead();
+        taoBaoHead.setDocsfound(1000);
+        taoBaoSearchResult.setTaoBaoHead(taoBaoHead);
+        taoBaoSearchResult.setPageEntity(new PageEntity());
+
+        taoBaoSearchResult.setNavList(navList);
+
+        return taoBaoSearchResult;
+    }
+
+    /**
+     * 鍟嗗搧鐗╂枡鎼滅储
+     *
+     * @return
+     */
+    public static TaoBaoSearchResult searchWuLiaoForDetail(String title, BigDecimal zkPrice, String provcity,
+                                                           int userType, TaoKeAppInfo app) {
+        if (provcity.trim().contains(" "))
+            provcity = provcity.split(" ")[provcity.split(" ").length - 1];
+        TaoBaoSearchResult taoBaoSearchResult = new TaoBaoSearchResult();
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.dg.material.optional");
+        map.put("page_size", 50 + "");
+        map.put("page_no", 1 + "");
+        map.put("start_price", (int) zkPrice.subtract(new BigDecimal(1)).doubleValue() + "");
+        map.put("end_price", (int) zkPrice.add(new BigDecimal(1)).doubleValue() + "");
+        map.put("is_tmall", (userType == 1) + "");
+        map.put("q", title);
+        map.put("itemloc", provcity);
+
+        String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
+        JSONObject data = JSONObject.fromObject(resultStr);
+        if (data.optJSONObject("tbk_dg_material_optional_response") != null
+                && data.optJSONObject("tbk_dg_material_optional_response").optJSONObject("result_list") != null) {
+            JSONArray array = data.optJSONObject("tbk_dg_material_optional_response").optJSONObject("result_list")
+                    .optJSONArray("map_data");
+            List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+            if (array != null) {
+                for (int i = 0; i < array.size(); i++) {
+                    TaoBaoGoodsBrief goods = parseWuLiaoItem(array.optJSONObject(i));
+                    if (goods != null)
+                        goodsList.add(goods);
+                }
+            }
+            taoBaoSearchResult.setTaoBaoGoodsBriefs(goodsList);
+        }
+
+        List<TaoBaoSearchNav> navList = new ArrayList<>();
+
+        TaoBaoHead taoBaoHead = new TaoBaoHead();
+        taoBaoHead.setDocsfound(1000);
+        taoBaoSearchResult.setTaoBaoHead(taoBaoHead);
+        taoBaoSearchResult.setPageEntity(new PageEntity());
+
+        taoBaoSearchResult.setNavList(navList);
+
+        return taoBaoSearchResult;
+    }
+
+    // 瑙f瀽鐗╂枡
+    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.optString("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", ""));
+
+        if (!StringUtil.isNullOrEmpty(goods.getCouponInfo())) {
+            List<BigDecimal> quanInfo = TaoBaoCouponUtil.getCouponInfo(goods.getCouponInfo());
+            goods.setCouponAmount(quanInfo.get(1));
+            goods.setCouponEffectiveEndTime(item.optString("coupon_end_time"));
+            goods.setCouponEffectiveStartTime(item.optString("coupon_start_time"));
+            goods.setCouponStartFee(new BigDecimal(item.optString("coupon_start_fee")));
+            goods.setCouponLeftCount(item.optInt("coupon_remain_count"));
+            goods.setCouponLink("https:" + item.optString("coupon_share_url"));
+            goods.setCouponTotalCount(item.optInt("coupon_total_count"));
+            goods.setCouponActivityId(item.optString("coupon_id"));
+        } else {
+            goods.setCouponAmount(new BigDecimal(0));
+        }
+
+        goods.setDayLeft(-1);
+        if (item.optJSONObject("small_images") != null) {
+            JSONArray imgArray = item.optJSONObject("small_images").optJSONArray("string");
+            if (imgArray != null) {
+                List<String> imgList = new ArrayList<>();
+                for (int n = 0; n < imgArray.size(); n++) {
+                    imgList.add(imgArray.optString(n));
+                }
+                goods.setImgList(imgList);
+            }
+        }
+
+        if (item.optBoolean("include_mkt"))
+            goods.setTkMktStatus("1");
+        else
+            goods.setTkMktStatus("0");
+
+        if (item.optBoolean("include_dxjh"))
+            goods.setIncludeDxjh(1);
+
+        goods.setSellerId(item.optLong("seller_id"));
+        goods.setShopTitle(item.optString("shop_title"));
+        goods.setTitle(item.optString("title"));
+        goods.setProvcity(item.optString("provcity"));
+
+        if (!StringUtil.isNullOrEmpty(item.optString("level_one_category_id"))) {
+            goods.setRootCatId(item.optInt("level_one_category_id"));
+        }
+        goods.setRootCategoryName(item.optString("level_one_category_name"));
+
+        if (!StringUtil.isNullOrEmpty(item.optString("category_id"))) {
+            goods.setLeafCatId(item.optInt("category_id"));
+        }
+        goods.setLeafName(item.optString("category_name"));
+
+        goods.setTkRate(new BigDecimal(item.optString("commission_rate")).divide(new BigDecimal(100)));
+        goods.setTotalNum(1000);
+        goods.setUserType(item.optInt("user_type"));
+        goods.setUserTypeName("");
+        goods.setZkPrice(new BigDecimal(item.optString("zk_final_price")));
+
+        if (item.optBoolean("include_dxjh")) {
+            goods.setDxjhInfo(item.optString("info_dxjh"));
+        }
+
+        if (StringUtil.isNullOrEmpty(goods.getCouponInfo())) {// 鏃犲埜
+            goods.setTkCommFee(goods.getZkPrice().multiply(goods.getTkRate()).divide(new BigDecimal(100)));
+        } else if (goods.getZkPrice().compareTo(goods.getCouponStartFee()) >= 0// 鏈夊埜
+                && goods.getZkPrice().compareTo(goods.getCouponAmount()) >= 0) {
+            BigDecimal finalPrice = goods.getZkPrice().subtract(goods.getCouponAmount());
+            goods.setTkCommFee(finalPrice.multiply(goods.getTkRate()).divide(new BigDecimal(100)));
+        } else {
+            goods.setTkCommFee(new BigDecimal(0));
+        }
+        if (!StringUtil.isNullOrEmpty(item.optString("reserve_price")))
+            goods.setReservePrice(new BigDecimal(item.optString("reserve_price")));
+        goods.setTotalFee(new BigDecimal("0"));
+        // 鎺ㄨ崘璇�
+        goods.setDescription(item.optString("item_description"));
+
+        goods = loadYuShouInfo(goods, item);
+        return goods;
+    }
+
+    /**
+     * 鑾峰彇娣樺彛浠�
+     *
+     * @param logo -鍥炬爣
+     * @param text -鏂囧瓧
+     * @param url  -绠�浠�
+     * @return
+     */
+    public static String getTKToken(String logo, String text, String url) {
+        if (text == null)
+            return null;
+        if (text.length() < 5)
+            text = "濂借揣锛�" + text;
+
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.tpwd.create");
+        map.put("url", url);
+        map.put("text", text);
+        map.put("logo", logo);
+        String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
+
+        JSONObject data = JSONObject.fromObject(resultStr);
+        if (data.optJSONObject("tbk_tpwd_create_response").optJSONObject("data") != null)
+            return data.optJSONObject("tbk_tpwd_create_response").optJSONObject("data").optString("model");
+        return null;
+    }
+
+    /**
+     * 鑾峰彇鍒歌缁嗕俊鎭�
+     *
+     * @param auctionId
+     * @param activityId
+     * @return
+     */
+    public static TaoKeApiUtil.QuanInfo getQuanInfo(String auctionId, String activityId) {
+        TaoKeApiUtil.QuanInfo info = new TaoKeApiUtil.QuanInfo();
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.coupon.get");
+        map.put("item_id", auctionId + "");
+        map.put("activity_id", activityId);
+        String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
+        JSONObject data = JSONObject.fromObject(resultStr);
+        if (data.optJSONObject("tbk_coupon_get_response") != null) {
+            data = data.optJSONObject("tbk_coupon_get_response").optJSONObject("data");
+            info.coupon_start_time = data.optString("coupon_start_time");
+            info.coupon_end_time = data.optString("coupon_end_time");
+            info.coupon_amount = new BigDecimal(data.optString("coupon_amount"));
+            info.coupon_total_count = data.optInt("coupon_total_count");
+            info.coupon_remain_count = data.optInt("coupon_remain_count");
+            info.coupon_start_fee = new BigDecimal(data.optString("coupon_start_fee"));
+        } else
+            return null;
+        return info;
+    }
+
+    public static void taoQiangGou() {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.ju.tqg.get");
+        map.put("fields",
+                "click_url,pic_url,reserve_price,zk_final_price,total_amount,sold_num,title,category_name,start_time,end_time");
+        map.put("start_time", "2018-06-11 08:00:00");
+        map.put("end_time", "2018-06-12 12:00:00");
+        map.put("page_no", "1");
+        map.put("page_size", "96");
+        String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
+        System.out.println(resultStr);
+    }
+
+    public static TaoBaoSearchResult taoQiangGou(int page, int pageSize, String startTime, String endTime) {
+
+        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.ju.tqg.get");
+        map.put("fields",
+                "click_url,pic_url,reserve_price,zk_final_price,total_amount,sold_num,title,category_name,start_time,end_time");
+        map.put("start_time", startTime);
+        map.put("end_time", endTime);
+        map.put("page_no", page + "");
+        map.put("page_size", pageSize + "");
+
+        String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
+
+        JSONObject resultJSON = JSONObject.fromObject(resultStr);
+        JSONObject response = resultJSON.optJSONObject("tbk_ju_tqg_get_response");
+        if (response != null && response.optJSONObject("results") != null) {
+            JSONArray array = response.optJSONObject("results").optJSONArray("results");
+            if (array != null) {
+
+                for (int i = 0; i < array.size(); i++) {
+                    JSONObject item = array.optJSONObject(i);
+                    String url = item.optString("click_url");
+
+                    // 鎺掗櫎 闈炴窐瀹㈠晢鍝�
+                    if (url.contains("s.click.taobao.com/t?e=m")) {
+                        TaoBaoGoodsBrief goods;
+                        try {
+                            goods = searchGoodsDetail(item.optLong("num_iid"));
+                            if (goods != null)
+                                goodsList.add(goods);
+                        } catch (TaobaoGoodsDownException e) {
+                            e.printStackTrace();
+                        }
+
+                    }
+                }
+
+                pageSize = array.size();
+            }
+        }
+
+        TaoBaoSearchResult result = new TaoBaoSearchResult();
+        result.setTaoBaoGoodsBriefs(goodsList);
+
+        int totalResults = response.getInt("total_results");
+
+        PageEntity pe = new PageEntity(page, pageSize, totalResults);
+        result.setPageEntity(pe);
+        result.setNavList(new ArrayList<>());
+
+        TaoBaoHead taoBaoHead = new TaoBaoHead();
+        taoBaoHead.setDocsfound((int) result.getPageEntity().getTotalCount());
+
+        result.setTaoBaoHead(taoBaoHead);
+
+        return result;
+    }
+
+    /*
+     * TODO 鑾峰彇鍒嗙被鍒楄〃
+     */
+    public static void getTaoBaoCategoryList() {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.itemcats.get");
+        map.put("parent_cid", "0");
+
+        String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
+        System.out.println(resultStr);
+    }
+
+    /**
+     * 搴楅摵鎼滅储
+     *
+     * @param key  -搴楅摵鍚嶇О
+     * @param page -椤电爜
+     * @return
+     */
+    public static List<TaoBaoShopInfo> searchShop(String key, int page) {
+        if (StringUtil.isNullOrEmpty(key))
+            return new ArrayList<>();
+        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", "95");
+        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);
+                }
+        }
+        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;
+    }
+
+    /**
+     * 搴楅摵鎼滅储
+     *
+     * @return
+     */
+    public static List<TaoBaoShopInfo> searchShop(SearchShopFilter filter) {
+        if (StringUtil.isNullOrEmpty(filter.getKey()))
+            return new ArrayList<>();
+        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", filter.getKey());
+        map.put("page_size", filter.getPageSize() + "");
+        map.put("page_no", filter.getPage() + "");
+
+        if (!StringUtil.isNullOrEmpty(filter.getSort()))
+            map.put("sort", filter.getSort());
+
+        if (filter.getTmall() != null)
+            map.put("is_tmall", filter.getTmall() + "");
+
+        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);
+                }
+        }
+        return list;
+    }
+
+    /**
+     * 鍝佺墝鍒歌幏鍙�
+     *
+     * @param pageNo
+     * @param pageSize
+     */
+    public static void pingPaiCoupon(int pageNo, int pageSize) {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.sc.coupon.brand.recommend");
+        map.put("page_no", pageNo + "");
+        map.put("page_size", pageSize + "");
+        String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
+        System.out.println(resultStr);
+    }
+
+    public static void getOrder(String order) {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "alibaba.mos.order.get");
+        map.put("order_number", order);
+        String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
+        System.out.println(resultStr);
+    }
+
+    public static void getTAEGoodsDetail(String auctionId) {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tae.items.list");
+        map.put("fields", "title,nick,pic_url,location,cid,price,post_fee,promoted_service,ju,shop_name");
+        map.put("num_iids", auctionId + "");
+        String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
+        System.out.println(resultStr);
+    }
+
+    // taobao.ju.items.search
+    public static void searchJuHuaSuan() {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.ju.items.search");
+        map.put("current_page", "1");
+        map.put("page_size", 20 + "");
+        map.put("pid", "mm_124933865_43788020_381938426");
+        String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, false);
+        System.out.println(resultStr);
+    }
+
+    /**
+     * 閫氳繃鐗╂枡ID鑾峰彇鍟嗗搧淇℃伅
+     *
+     * @param materialId -鐗╂枡ID
+     * @param page       -椤电爜
+     * @param pageSize   -姣忛〉鏁伴噺
+     * @return
+     */
+    public static TaoBaoSearchResult getMaterialByMaterialId(int materialId, int page, int pageSize) {
+        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.dg.optimus.material");
+        map.put("page_no", page + "");
+        map.put("page_size", pageSize + "");
+        map.put("material_id", materialId + "");
+        // map.put("content_id", "561388751621");
+
+        String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
+        System.out.println(resultStr);
+        JSONObject resultJSON = JSONObject.fromObject(resultStr);
+        JSONObject response = resultJSON.optJSONObject("tbk_dg_optimus_material_response");
+        if (response != null && response.optJSONObject("result_list") != null) {
+            JSONArray array = response.optJSONObject("result_list").optJSONArray("map_data");
+            if (array != null) {
+                for (int i = 0; i < array.size(); i++) {
+                    JSONObject item = array.optJSONObject(i);
+                    TaoBaoGoodsBrief goods = parseWuLiaoItemFromMaterialId(item);
+                    if (goods != null)
+                        goodsList.add(goods);
+                }
+                pageSize = array.size();
+            }
+        }
+        TaoBaoSearchResult result = new TaoBaoSearchResult();
+        result.setTaoBaoGoodsBriefs(goodsList);
+        int totalCount = 1000;// root.optInt("total_results");
+        PageEntity pe = new PageEntity(page, pageSize, totalCount);
+        result.setPageEntity(pe);
+        result.setNavList(new ArrayList<>());
+        TaoBaoHead taoBaoHead = new TaoBaoHead();
+        taoBaoHead.setDocsfound((int) result.getPageEntity().getTotalCount());
+        result.setTaoBaoHead(taoBaoHead);
+        return result;
+    }
+
+    public static TaoBaoSearchResult getQTZMaterialByMaterialId(int materialId, int page, int pageSize) {
+        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.sc.optimus.material");
+        map.put("page_no", page + "");
+        map.put("page_size", pageSize + "");
+        map.put("material_id", materialId + "");
+
+        String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
+        JSONObject resultJSON = JSONObject.fromObject(resultStr);
+        JSONObject response = resultJSON.optJSONObject("tbk_dg_optimus_material_response");
+        if (response != null && response.optJSONObject("result_list") != null) {
+            JSONArray array = response.optJSONObject("result_list").optJSONArray("map_data");
+            if (array != null) {
+
+                for (int i = 0; i < array.size(); i++) {
+                    JSONObject item = array.optJSONObject(i);
+                    TaoBaoGoodsBrief goods = parseWuLiaoItemFromMaterialId(item);
+                    if (goods != null)
+                        goodsList.add(goods);
+                }
+
+                pageSize = array.size();
+            }
+        }
+        TaoBaoSearchResult result = new TaoBaoSearchResult();
+        result.setTaoBaoGoodsBriefs(goodsList);
+        int totalCount = 1000;// root.optInt("total_results");
+        PageEntity pe = new PageEntity(page, pageSize, totalCount);
+        result.setPageEntity(pe);
+        result.setNavList(new ArrayList<>());
+        TaoBaoHead taoBaoHead = new TaoBaoHead();
+        taoBaoHead.setDocsfound((int) result.getPageEntity().getTotalCount());
+        result.setTaoBaoHead(taoBaoHead);
+        return result;
+    }
+
+    /**
+     * 鏍规嵁璁惧鐚滀綘鍠滄
+     *
+     * @param page
+     * @param pageSize
+     * @param imei
+     * @param idfa
+     * @return
+     */
+    public static TaoBaoSearchResult guessDeviceLike(int page, int pageSize, String imei, String idfa, String utdid) {
+        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.dg.optimus.material");
+        map.put("page_no", page + "");
+        map.put("page_size", pageSize + "");
+        map.put("material_id", "6708");
+        if (StringUtil.isNullOrEmpty(imei) && StringUtil.isNullOrEmpty(idfa) && StringUtil.isNullOrEmpty(utdid))
+            return null;
+
+        if (!StringUtil.isNullOrEmpty(imei)) {
+            map.put("device_encrypt", "MD5");
+            map.put("device_value", StringUtil.Md5(imei));
+            map.put("device_type", "IMEI");
+        } else if (!StringUtil.isNullOrEmpty(idfa)) {
+            map.put("device_encrypt", "MD5");
+            map.put("device_value", StringUtil.Md5(idfa));
+            map.put("device_type", "IDFA");
+        } else if (!StringUtil.isNullOrEmpty(utdid)) {
+            map.put("device_value", utdid);
+            map.put("device_type", "UTDID");
+        }
+
+        JSONObject resultJSON = null;
+        try {
+            resultJSON = TaoKeBaseUtil.baseRequest(map, true);
+        } catch (TaoKeApiException e) {
+            e.printStackTrace();
+        }
+        if (resultJSON == null)
+            return null;
+
+        // JSONObject resultJSON = JSONObject.fromObject(resultStr);
+        JSONObject response = resultJSON.optJSONObject("tbk_dg_optimus_material_response");
+        if (response != null && response.optJSONObject("result_list") != null) {
+            JSONArray array = response.optJSONObject("result_list").optJSONArray("map_data");
+            if (array != null) {
+
+                for (int i = 0; i < array.size(); i++) {
+                    JSONObject item = array.optJSONObject(i);
+                    TaoBaoGoodsBrief goods = parseWuLiaoItemFromMaterialId(item);
+                    if (goods != null)
+                        goodsList.add(goods);
+                }
+
+                pageSize = array.size();
+            }
+        }
+        TaoBaoSearchResult result = new TaoBaoSearchResult();
+        result.setTaoBaoGoodsBriefs(goodsList);
+        int totalCount = 1000;// root.optInt("total_results");
+        PageEntity pe = new PageEntity(page, pageSize, totalCount);
+        result.setPageEntity(pe);
+        result.setNavList(new ArrayList<>());
+        TaoBaoHead taoBaoHead = new TaoBaoHead();
+        taoBaoHead.setDocsfound((int) result.getPageEntity().getTotalCount());
+        result.setTaoBaoHead(taoBaoHead);
+        return result;
+    }
+
+
+    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) throws TaoBaoAuthException {
+        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);
+            System.out.println(resultJSON.toString());
+            return resultJSON.optJSONObject("tbk_sc_publisher_info_save_response").optJSONObject("data")
+                    .optString("relation_id");
+        } catch (TaoKeApiException e) {
+            JSONObject errorJSON = JSONObject.fromObject(e.getMsg()).optJSONObject("error_response");
+            if (errorJSON.optInt("code") == 15 && errorJSON.optInt("sub_code") == 1)// 鏈疄鍚�
+            {
+                throw new TaoBaoAuthException(TaoBaoAuthException.CODE_NOT_REAL_NAME, errorJSON.optString("sub_msg"));
+            } else {
+                e.printStackTrace();
+                LogHelper.error("娓犻亾ID鐢宠鍑洪敊:" + e.getMsg());
+                throw new TaoBaoAuthException(TaoBaoAuthException.CODE_OTHER, errorJSON.optString("sub_msg"));
+            }
+        } catch (Exception e) {
+            LogHelper.error("娓犻亾ID鐢宠鍑洪敊:" + (resultJSON != null ? resultJSON.toString() : "鏈煡閿欒"));
+        }
+        return null;
+    }
+
+    public static String getSpecialId(String accessToken, String appKey, String appSecret) throws TaoBaoAuthException {
+        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) {
+            JSONObject errorJSON = JSONObject.fromObject(e.getMsg()).optJSONObject("error_response");
+            if (errorJSON.optInt("code") == 15 && errorJSON.optInt("sub_code") == 1)// 鏈疄鍚�
+            {
+                throw new TaoBaoAuthException(TaoBaoAuthException.CODE_NOT_REAL_NAME, errorJSON.optString("sub_msg"));
+            } else {
+                e.printStackTrace();
+                LogHelper.error("浼氬憳杩愯惀ID鐢宠鍑洪敊:" + e.getMsg());
+                throw new TaoBaoAuthException(TaoBaoAuthException.CODE_OTHER, errorJSON.optString("sub_msg"));
+            }
+        } catch (Exception e) {
+            LogHelper.error("浼氬憳杩愯惀ID鐢宠鍑洪敊:" + (resultJSON != null ? resultJSON.toString() : "鏈煡閿欒"));
+        }
+
+        return null;
+    }
+
+    public static void specialConvertItem(String 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(String 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 {
+            String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
+            System.out.println(result);
+            JSONObject json = JSONObject.fromObject(result);
+            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"));
+                if (!StringUtil.isNullOrEmpty(resultJSON.optString("coupon_total_count"))) {
+                    goods.setCouponTotalCount(Integer.parseInt(resultJSON.optString("coupon_total_count")));
+                }
+
+                if (!StringUtil.isNullOrEmpty(resultJSON.optString("coupon_remain_count"))) {
+                    goods.setCouponLeftCount(Integer.parseInt(resultJSON.optString("coupon_remain_count")));
+                }
+
+                goods.setCouponEffectiveStartTime(resultJSON.optString("coupon_start_time"));
+                goods.setCouponEffectiveEndTime(resultJSON.optString("coupon_end_time"));
+
+            }
+            String tkRate = resultJSON.optString("max_commission_rate");
+            if (!StringUtil.isNullOrEmpty(tkRate)) {
+                goods.setTkRate(new BigDecimal(tkRate));
+            }
+            goods = loadYuShouInfo(goods, resultJSON);
+            return goods;
+        } catch (Exception 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();
+        }
+
+    }
+
+
+    // AA5ISJ
+
+    private static TaoBaoGoodsBrief parseWuLiaoItemFromMaterialId(JSONObject item) {
+        TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
+        // 璁剧疆鎴�320*320鐨勫浘鐗囧昂瀵�
+        goods.setPictUrl(TbImgUtil.getTBSize320Img("https:" + item.optString("pict_url")));
+        goods.setAuctionId(item.optString("item_id"));
+        goods.setAuctionUrl("https://item.taobao.com/item.htm?id=" + goods.getAuctionId());
+        goods.setBiz30day(item.optInt("volume"));
+        if (!StringUtil.isNullOrEmpty(item.optString("coupon_amount"))) {
+            goods.setCouponEffectiveEndTime(TimeUtil.getGernalTime(item.optLong("coupon_end_time"), "yyyy-MM-dd"));
+            goods.setCouponEffectiveStartTime(TimeUtil.getGernalTime(item.optLong("coupon_start_time"), "yyyy-MM-dd"));
+            goods.setCouponStartFee(new BigDecimal(item.optString("coupon_start_fee")));
+            goods.setCouponLeftCount(item.optInt("coupon_remain_count"));
+            goods.setCouponLink(null);
+            goods.setCouponAmount(new BigDecimal(item.optString("coupon_amount")));
+            goods.setCouponTotalCount(item.optInt("coupon_total_count"));
+            goods.setCouponActivityId(item.optString("coupon_id"));
+            if (goods.getCouponStartFee().compareTo(new BigDecimal(0)) > 0)
+                goods.setCouponInfo(String.format("婊�%s鍏冨噺%s鍏�",
+                        MoneyBigDecimalUtil.getWithNoZera(goods.getCouponStartFee()).toString(),
+                        MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()).toString()));
+            else
+                goods.setCouponInfo(String.format("%s鍏冩棤鏉′欢鍒�",
+                        MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()).toString()));
+
+            if (goods.getCouponStartFee().compareTo(new BigDecimal(0)) <= 0) {
+                goods.setCouponStartFee(goods.getCouponAmount());
+            }
+
+        } else {
+            goods.setCouponAmount(new BigDecimal(0));
+        }
+
+        goods.setDayLeft(-1);
+        if (item.optJSONObject("small_images") != null) {
+            JSONArray imgArray = item.optJSONObject("small_images").optJSONArray("string");
+            if (imgArray != null) {
+                List<String> imgList = new ArrayList<>();
+                for (int n = 0; n < imgArray.size(); n++) {
+                    imgList.add(imgArray.optString(n));
+                }
+                goods.setImgList(imgList);
+            }
+        }
+
+        goods.setTkMktStatus("0");
+        goods.setIncludeDxjh(0);
+
+        goods.setSellerId(item.optLong("seller_id"));
+        goods.setShopTitle(item.optString("nick"));
+        goods.setTitle(item.optString("title"));
+        goods.setProvcity(item.optString("provcity"));
+
+        if (!StringUtil.isNullOrEmpty(item.optString("level_one_category_id"))) {
+            goods.setRootCatId(item.optInt("level_one_category_id"));
+        }
+        goods.setRootCategoryName(item.optString("level_one_category_name"));
+
+        if (!StringUtil.isNullOrEmpty(item.optString("category_id"))) {
+            goods.setLeafCatId(item.optInt("category_id"));
+        }
+        goods.setLeafName(item.optString("category_name"));
+
+        goods.setTotalNum(1000);
+        goods.setUserType(item.optInt("user_type"));
+        goods.setUserTypeName("");
+
+        if (!StringUtil.isNullOrEmpty(item.optString("commission_rate"))) {
+            goods.setTkRate(new BigDecimal(item.optString("commission_rate")));
+        } else {
+            goods.setTkRate(new BigDecimal(0));
+        }
+
+        if (!StringUtil.isNullOrEmpty(item.optString("zk_final_price"))) {
+            goods.setZkPrice(new BigDecimal(item.optString("zk_final_price")));
+        } else {
+            goods.setZkPrice(new BigDecimal(0));
+        }
+
+        if (StringUtil.isNullOrEmpty(goods.getCouponInfo())) {// 鏃犲埜
+            goods.setTkCommFee(goods.getZkPrice().multiply(goods.getTkRate()).divide(new BigDecimal(100)));
+        } else if (goods.getZkPrice().compareTo(goods.getCouponStartFee()) >= 0// 鏈夊埜
+                && goods.getZkPrice().compareTo(goods.getCouponAmount()) >= 0) {
+            BigDecimal finalPrice = goods.getZkPrice().subtract(goods.getCouponAmount());
+            goods.setTkCommFee(finalPrice.multiply(goods.getTkRate()).divide(new BigDecimal(100)));
+        } else {
+            goods.setTkCommFee(new BigDecimal(0));
+        }
+        goods.setReservePrice(new BigDecimal(0));
+        goods.setTotalFee(new BigDecimal("0"));
+        goods.setPictUrlWhite(item.optString("white_image"));
+        goods = loadYuShouInfo(goods, item);
+        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();
+        }
+    }
+
+    /**
+     * 娣樺彛浠よ浆鍟嗗搧ID
+     *
+     * @param token
+     * @return
+     */
+    public static Long tokenConvertAuctionId(String token) throws TaoBaoTokenParseException {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.tpwd.convert");
+        map.put("password_content", token);
+        map.put("adzone_id", TaoBaoConstant.TAOBAO_PID_DEFAULT.split("_")[3]);
+        TaoKeAppInfo app = new TaoKeAppInfo();
+        app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
+        app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+        try {
+            JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
+
+            try {
+                return json.optJSONObject("tbk_tpwd_convert_response").optJSONObject("data").optLong("num_iid");
+            } catch (Exception e) {
+
+                return null;
+            }
+
+        } catch (TaoKeApiException e) {
+            JSONObject msg = null;
+            try {
+                msg = JSONObject.fromObject(e.getMsg());
+            } catch (Exception e2) {
+            }
+            if (msg != null && msg.optJSONObject("error_response") != null) {
+                throw new TaoBaoTokenParseException(msg.optJSONObject("error_response").optInt("sub_code"),
+                        msg.optJSONObject("error_response").optString("sub_msg"));
+            }
+        }
+        return null;
+    }
+
+    // 娣樼ぜ閲戝垱寤�
+    public static TaoLiJinDTO createTaoLiJin(String auctionId, String name, BigDecimal perface, int totalNum,
+                                             Date sendStartTime, Date sendEndTime, Date useStartTime, Date useEndTime, TaoKeAppInfo app)
+            throws TaoLiJinCreateException, TaoKeApiException {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.dg.vegas.tlj.create");
+        map.put("adzone_id", app.getPid().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"));
+
+        if (sendEndTime != null)
+            map.put("send_end_time", TimeUtil.getGernalTime(sendEndTime.getTime(), "yyyy-MM-dd HH:mm:ss"));
+
+        if (useEndTime != null) {
+            map.put("use_end_time", TimeUtil.getGernalTime(useEndTime.getTime(), "yyyy-MM-dd"));
+            map.put("use_end_time_mode", "2");
+        }
+
+        if (useStartTime != null)
+            map.put("use_start_time", TimeUtil.getGernalTime(useStartTime.getTime(), "yyyy-MM-dd"));
+        try {
+            String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
+            JSONObject json = JSONObject.fromObject(result);
+            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;
+                } else {
+                    LogHelper.error(json);
+                }
+
+                // 鎺ュ彛杩斿洖寮傚父
+                String msgCode = root.optJSONObject("result").optString("msg_code");
+                if (!StringUtil.isNullOrEmpty(msgCode)) {
+                    TLJLogHelper.info(auctionId, root.toString());// 娣樼ぜ閲戝紓甯镐俊鎭褰�
+                    switch (msgCode) {
+                        case "FAIL_BIZ_ITEM_FORBIDDEN":
+                            throw new TaoLiJinCreateException(TaoLiJinCreateException.CODE_TLJ_FORBIDDEN, "璇ュ晢鍝佷笉鏀寔鍒涘缓娣樼ぜ閲戠孩鍖�");
+                        case "FAIL_BIZ_ACCOUNT_UN_PAID":
+                        case "PRE_FREEZE_ASSET_ACCOUNT_ERROR":
+                            throw new TaoLiJinCreateException(TaoLiJinCreateException.CODE_TLJ_NO_MONEY, "瀹樻柟鐜╂硶閽卞寘浣欓涓嶈冻");
+                        default:
+                            throw new TaoKeApiException(Integer.parseInt(msgCode), root.toString());
+                    }
+                }
+            }
+        } catch (TaoKeApiException e) {
+            throw e;
+        }
+
+        return null;
+    }
+
+    // 娣樼ぜ閲戞姤鍛�
+    public static UserTaoLiJinReport getTaoLiJinEffective(String rightsId, String pid) {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.dg.vegas.tlj.report(");
+        map.put("rights_id", rightsId);
+        map.put("adzone_id", pid.split("_")[3]);
+
+        TaoKeAppInfo app = new TaoKeAppInfo();
+        app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
+        app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+
+        try {
+            String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
+            JSONObject json = JSONObject.fromObject(result);
+            System.out.println(json);
+
+            JSONObject root = json.optJSONObject("tbk_dg_vegas_tlj_report_response");
+
+            if (root != null && root.optBoolean("result_success")) {
+                JSONObject modelJson = root.optJSONObject("model").optJSONObject("extra");
+                if (modelJson != null && modelJson.size() > 0) {
+                    UserTaoLiJinReport report = new UserTaoLiJinReport();
+                    report.setId(rightsId);
+                    report.setWinAmount(new BigDecimal(modelJson.optString("win_sum_amt")));
+                    report.setWinNum(modelJson.optInt("win_pv"));
+                    report.setRefundAmount(new BigDecimal(modelJson.optString("refund_sum_amt")));
+                    report.setRefundNum(modelJson.optInt("refund_num"));
+                    report.setAlipayAmount(new BigDecimal(modelJson.optString("alipay_amt")));
+                    report.setUseAmount(new BigDecimal(modelJson.optString("use_sum_amt")));
+                    report.setUseNum(modelJson.optInt("use_num"));
+                    report.setUnfreezeAmount(new BigDecimal(modelJson.optString("remaining_amt")));
+                    report.setUnfreezeNum(modelJson.optInt("remaining_num"));
+                    report.setPreCommissionAmount(new BigDecimal(modelJson.optString("pre_pub_share_fee_for_disp")));
+                    return report;
+                }
+            }
+        } catch (Exception e) {
+            LogHelper.errorDetailInfo(e);
+        }
+        return null;
+    }
+
+    public static void getCouponByAuctionId(String auctionId) {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.itemid.coupon.get");
+        map.put("platform", 2 + "");
+        map.put("pid", TaoBaoConstant.TAOBAO_PID_DEFAULT);
+        map.put("num_iids", auctionId + "");
+        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.print(json);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 鑾峰彇娣樺疂绯荤粺鏃堕棿(鏀惰垂API锛岃皑鎱庤皟鐢�)
+     *
+     * @return
+     */
+    public static Date getTaoBaoSystemTime() {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.time.get");
+        try {
+            JSONObject json = TaoKeBaseUtil.baseRequest(map, false);
+            String time = json.optJSONObject("time_get_response").optString("time");
+            return new Date(TimeUtil.convertToTimeTemp(time, "yyyy-MM-dd HH:mm:ss"));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     * 瀹樻柟娲诲姩鎺ㄥ箍
+     *
+     * @param adZoneId              -骞垮憡浣�
+     * @param promotionSceneId-娲诲姩ID
+     * @param relationId            -娓犻亾ID
+     * @return
+     */
+    public static TaoKeOfficialActivityConvertResultDTO officialActivityConvert(String adZoneId,
+                                                                                String promotionSceneId, String relationId) {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.activity.info.get");
+        map.put("adzone_id", adZoneId);
+        map.put("activity_material_id", promotionSceneId);
+        if (relationId != null)
+            map.put("relation_id", relationId);
+        TaoKeAppInfo app = new TaoKeAppInfo();
+        app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
+        app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+        try {
+            String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
+            System.out.println(result);
+            JSONObject json = JSONObject.fromObject(result);
+            if (json != null) {
+                json = json.optJSONObject("tbk_activity_info_get_response");
+                if (json.optJSONObject("data") != null) {
+                    return JsonUtil.getSimpleGson().fromJson(json.optJSONObject("data").toString(),
+                            TaoKeOfficialActivityConvertResultDTO.class);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public static List<TaoBaoGoodsBrief> guessLikeByAuctionId(String auctionId, int count) {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.dg.optimus.material");
+        map.put("item_id", auctionId + "");
+        map.put("page_size", count + "");
+        map.put("page_no", 1 + "");
+        map.put("material_id", 13256 + "");
+
+        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+        JSONObject resultJSON = null;
+        try {
+            resultJSON = TaoKeBaseUtil.baseRequest(map, true);
+
+            JSONObject response = resultJSON.optJSONObject("tbk_dg_optimus_material_response");
+            if (response != null && response.optJSONObject("result_list") != null) {
+                JSONArray array = response.optJSONObject("result_list").optJSONArray("map_data");
+                if (array != null) {
+
+                    for (int i = 0; i < array.size(); i++) {
+                        JSONObject item = array.optJSONObject(i);
+                        TaoBaoGoodsBrief goods = parseWuLiaoItemFromMaterialId(item);
+                        if (goods != null)
+                            goodsList.add(goods);
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return goodsList;
+    }
+
+    public static List<TaoBaoGoodsBrief> getCouponListByItemId(String auctionId) {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.itemid.coupon.get");
+        map.put("platform", auctionId + "");
+        map.put("num_iids", auctionId + "");
+        map.put("pid", TaoBaoConstant.TAOBAO_PID_DEFAULT);
+
+        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+        JSONObject resultJSON = null;
+        try {
+            resultJSON = TaoKeBaseUtil.baseRequest(map, new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY,
+                    TaoBaoConstant.TAOBAO_AUTH_APPSECRET, TaoBaoConstant.TAOBAO_PID_DEFAULT));
+
+            JSONObject response = resultJSON.optJSONObject("tbk_dg_optimus_material_response");
+            if (response != null && response.optJSONObject("result_list") != null) {
+                JSONArray array = response.optJSONObject("result_list").optJSONArray("map_data");
+                if (array != null) {
+
+                    for (int i = 0; i < array.size(); i++) {
+                        JSONObject item = array.optJSONObject(i);
+                        TaoBaoGoodsBrief goods = parseWuLiaoItemFromMaterialId(item);
+                        if (goods != null)
+                            goodsList.add(goods);
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return goodsList;
+    }
+
+    /**
+     * 娣樺疂瀹�-鎺ㄥ箍鑰�-瀹樻柟娲诲姩淇℃伅鑾峰彇
+     *
+     * @param activityMaterialId
+     * @param pid
+     * @param relationId
+     * @return String 杩斿洖绫诲瀷
+     * @throws
+     * @Title: getActivityInfo
+     * @Description:
+     */
+    public static String getActivityInfo(String activityMaterialId, String pid, String relationId) {
+        Map<String, String> map = new HashMap<>();
+        map.put("method", "taobao.tbk.activity.info.get");
+        map.put("activity_material_id", activityMaterialId);
+        map.put("adzone_id", pid.split("_")[3] + "");
+        map.put("relation_id", relationId);
+
+        JSONObject resultJSON = null;
+        try {
+            resultJSON = TaoKeBaseUtil.baseRequest(map,
+                    new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET, pid));
+            JSONObject response = resultJSON.optJSONObject("tbk_activity_info_get_response");
+            if (response != null && response.optJSONObject("data") != null) {
+                return response.optJSONObject("data").optString("click_url");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return null;
+    }
+}

--
Gitblit v1.8.0