From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 18 一月 2020 12:06:27 +0800 Subject: [PATCH] 用户注册信息 --- fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java | 675 ++++++++++++++++++++++++++++++-------------------------- 1 files changed, 360 insertions(+), 315 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java index 6b87a8b..6440da2 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java @@ -9,12 +9,11 @@ import org.yeshi.utils.taobao.TbImgUtil; -import com.taobao.api.ApiException; import com.yeshi.fanli.dto.taobao.TaoBaoShopInfoDTO; import com.yeshi.fanli.dto.taobao.TaoLiJinDTO; import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinReport; -import com.yeshi.fanli.entity.taobao.RelateGoods; import com.yeshi.fanli.entity.taobao.SearchFilter; +import com.yeshi.fanli.entity.taobao.SearchShopFilter; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.TaoBaoHead; import com.yeshi.fanli.entity.taobao.TaoBaoProvince; @@ -22,9 +21,13 @@ import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; import com.yeshi.fanli.entity.taobao.TaoBaoShopInfo; import com.yeshi.fanli.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.fanli.tag.PageEntity; import com.yeshi.fanli.util.MoneyBigDecimalUtil; @@ -37,46 +40,6 @@ //娣樺疂瀹PI鎺ュ彛 public class TaoKeApiUtil { - - /** - * 鎸夊叧閿瓧鍜屽垎绫绘悳绱㈠埜 - * - * @param key - * @param catList - * @return - */ - public static TaoBaoSearchResult searchCouple(String key, List<Long> catList, int page, int pageSize) { - Map<String, String> map = new HashMap<>(); - map.put("method", "taobao.tbk.dg.item.coupon.get"); - map.put("page_size", pageSize + ""); - map.put("page_no", page + ""); - String cate = ""; - if (catList != null && catList.size() > 10) - catList = catList.subList(0, 10); - if (catList != null && catList.size() > 0) { - for (Long c : catList) - cate += c + ","; - if (cate.endsWith(",")) - cate = cate.substring(0, cate.length() - 1); - map.put("cat", cate); - } - - if (!StringUtil.isNullOrEmpty(key)) { - map.put("q", key); - } - String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, true); - System.out.println(result); - TaoBaoSearchResult finalResult = parseCoupleContent(result); - if (finalResult == null) - return null; - PageEntity pageEntity = finalResult.getPageEntity(); - pageEntity.setPageIndex(page); - pageEntity.setPageSize(pageSize); - pageEntity.setTotalPage(pageEntity.getTotalCount() % pageSize == 0 - ? ((int) (pageEntity.getTotalCount() / pageSize)) : (int) (pageEntity.getTotalCount() / pageSize + 1)); - finalResult.setPageEntity(pageEntity); - return finalResult; - } // 瑙f瀽鍒哥殑鍐呭 private static TaoBaoSearchResult parseCoupleContent(String content) { @@ -163,7 +126,7 @@ map.put("method", "taobao.tbk.item.info.get"); map.put("num_iids", id + ""); String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true); - // System.out.println(resultStr); + System.out.println(resultStr); JSONObject data = JSONObject.fromObject(resultStr); // 鍟嗗搧涓嬫灦 if (data.optJSONObject("error_response") != null && data.optJSONObject("error_response").optInt("code") == 15 @@ -177,71 +140,97 @@ .optJSONArray("n_tbk_item"); if (array != null && array.size() > 0) { JSONObject item = array.optJSONObject(0); - 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")); - - 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"))) - goods.setMaterialLibType(item.optInt("material_lib_type")); - else - goods.setMaterialLibType(0); - - return goods; + return parseSimpleGoodsInfo(item); } return null; } - public String convertSpecialGoodsLink(Long auctionId, TaoKeAppInfo app) { - Map<String, String> map = new HashMap<>(); - map.put("method", "taobao.tbk.coupon.convert"); - map.put("item_id", auctionId + ""); - String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, app); - return resultStr; + 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")); + + 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 = 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) @@ -290,67 +279,10 @@ if (array != null && array.size() > 0) { for (int i = 0; i < array.size(); i++) { - - TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief(); - JSONObject item = array.optJSONObject(i); - - 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")); - - 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 ("1".equalsIgnoreCase(item.optString("material_lib_type"))) - goods.setMaterialLibType(1); - else - goods.setMaterialLibType(0); - - goodsList.add(goods); + goodsList.add(parseSimpleGoodsInfo(item)); } } - return goodsList; } @@ -376,24 +308,9 @@ System.out.println(goods.getAuctionId() + ":" + g.getAuctionId()); 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; } } @@ -462,6 +379,7 @@ } g.setCreatetime(new Date()); g.setMaterialLibType(goods.getMaterialLibType()); + g.setProvcity(goods.getProvcity()); return g; } } @@ -929,10 +847,9 @@ if (!StringUtil.isNullOrEmpty(goods.getCouponInfo())) { List<BigDecimal> quanInfo = TaoBaoCouponUtil.getCouponInfo(goods.getCouponInfo()); goods.setCouponAmount(quanInfo.get(1)); - goods.setCouponEffectiveEndTime( - TimeUtil.getGernalTime(System.currentTimeMillis() + 1000 * 60 * 60 * 24, "yyyy-MM-dd")); - goods.setCouponEffectiveStartTime(TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd")); - goods.setCouponStartFee(quanInfo.get(0)); + 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")); @@ -964,6 +881,7 @@ 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")); @@ -997,6 +915,10 @@ 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; } @@ -1030,23 +952,6 @@ return null; } - public static List<RelateGoods> getRelateGoodsList(long auctionId) throws ApiException { - List<RelateGoods> resultList = new ArrayList<>(); - List<TaoBaoGoodsBrief> list = getRelationGoodsRecommend(auctionId, 9); - for (TaoBaoGoodsBrief goods : list) { - if (goods != null) { - RelateGoods rg = new RelateGoods(); - rg.setId(goods.getAuctionId() + ""); - rg.setPicUrl(goods.getPictUrl()); - rg.setTitle(goods.getTitle()); - rg.setZkPrice(goods.getZkPrice().toString()); - rg.setUrl(goods.getAuctionUrl()); - resultList.add(rg); - } - } - return resultList; - } - /** * 鑾峰彇鍒歌缁嗕俊鎭� * @@ -1073,45 +978,6 @@ } else return null; return info; - } - - /** - * 鑾峰彇鍏宠仈鍟嗗搧鎺ㄨ崘 - * - * @param auctionId - * @return - */ - public static List<TaoBaoGoodsBrief> getRelationGoodsRecommend(long auctionId, int count) { - List<TaoBaoGoodsBrief> list = new ArrayList<>(); - Map<String, String> map = new HashMap<>(); - map.put("method", "taobao.tbk.item.recommend.get"); - map.put("num_iid", auctionId + ""); - map.put("count", count + ""); - map.put("platform", 2 + ""); - map.put("fields", - "num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url"); - String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true); - JSONObject data = JSONObject.fromObject(resultStr); - if (data.optJSONObject("tbk_item_recommend_get_response") != null) { - if (data.optJSONObject("tbk_item_recommend_get_response").optJSONObject("results") == null) - return list; - JSONArray array = data.optJSONObject("tbk_item_recommend_get_response").optJSONObject("results") - .optJSONArray("n_tbk_item"); - if (array != null) - for (int i = 0; i < array.size(); i++) { - JSONObject item = array.optJSONObject(i); - TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief(); - goods.setAuctionId(item.optLong("num_iid")); - goods.setTitle(item.optString("title")); - goods.setZkPrice(new BigDecimal(item.optString("zk_final_price"))); - goods.setAuctionUrl(item.optString("item_url")); - goods.setPictUrl(item.optString("pict_url")); - goods.setSalesCount(item.optString("volume")); - goods.setUserType(item.optInt("user_type")); - list.add(goods); - } - } - return list; } public static void taoQiangGou() { @@ -1297,38 +1163,51 @@ } /** - * TODO 鎸夎澶囩寽浣犲枩娆� + * 搴楅摵鎼滅储 * - * @param userNickName - * @param os - * @param imei - * @param idfa - * @param ip - * @param ua - * @param net - * @param pageNo - * @param pageSize + * @param key + * -搴楅摵鍚嶇О + * @param page + * -椤电爜 + * @return */ - public static void guessLikeByDevice(String userNickName, String os, String imei, String idfa, String ip, String ua, - String net, int pageNo, int pageSize) { + 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.item.guess.like"); - if (!StringUtil.isNullOrEmpty(userNickName)) - map.put("user_nick", userNickName); - map.put("os", os + ""); - if (!StringUtil.isNullOrEmpty(idfa)) - map.put("idfa", idfa); - if (!StringUtil.isNullOrEmpty(imei)) { - map.put("imei", imei + ""); - map.put("imei_md5", StringUtil.Md5(imei)); - } - map.put("ip", ip + ""); - map.put("ua", ua + ""); - map.put("net", net + ""); - map.put("page_no", pageNo + ""); - map.put("page_size", pageSize + ""); + 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); - System.out.println(resultStr); + 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; } /** @@ -1392,7 +1271,7 @@ map.put("page_no", page + ""); map.put("page_size", pageSize + ""); map.put("material_id", materialId + ""); -// map.put("content_id", "561388751621"); + // map.put("content_id", "561388751621"); String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true); System.out.println(resultStr); @@ -1401,14 +1280,12 @@ 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(); } } @@ -1470,23 +1347,27 @@ * @param idfa * @return */ - public static TaoBaoSearchResult guessDeviceLike(int page, int pageSize, String imei, String idfa) { + 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)) + if (StringUtil.isNullOrEmpty(imei) && StringUtil.isNullOrEmpty(idfa) && StringUtil.isNullOrEmpty(utdid)) return null; - map.put("device_encrypt", "MD5"); if (!StringUtil.isNullOrEmpty(imei)) { + map.put("device_encrypt", "MD5"); map.put("device_value", StringUtil.Md5(imei)); map.put("device_type", "IMEI"); - } else { + } 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; @@ -1536,9 +1417,13 @@ 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, true); + resultJSON = TaoKeBaseUtil.baseRequest(map, app); + System.out.println(resultJSON); } catch (TaoKeApiException e) { e.printStackTrace(); } @@ -1646,7 +1531,7 @@ return null; } - public static String getRelationId(String accessToken, String appKey, String appSecret) { + 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); @@ -1659,17 +1544,26 @@ 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) { - e.printStackTrace(); - LogHelper.error("娓犻亾ID鐢宠鍑洪敊:" + e.getMsg()); + 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) { + 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); @@ -1685,8 +1579,17 @@ return resultJSON.optJSONObject("tbk_sc_publisher_info_save_response").optJSONObject("data") .optString("special_id"); } catch (TaoKeApiException e) { - e.printStackTrace(); - LogHelper.error("浼氬憳杩愯惀ID鐢宠鍑洪敊:" + resultJSON); + 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; @@ -1717,7 +1620,8 @@ map.put("item_id", auctionId + ""); map.put("adzone_id", sts[3]); try { - JSONObject json = TaoKeBaseUtil.baseRequest(map, app); + String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app); + JSONObject json = JSONObject.fromObject(result); JSONObject resultJSON = json.optJSONObject("tbk_coupon_convert_response").optJSONObject("result") .optJSONObject("results"); String couponLink = resultJSON.optString("coupon_click_url"); @@ -1732,8 +1636,9 @@ if (!StringUtil.isNullOrEmpty(tkRate)) { goods.setTkRate(new BigDecimal(tkRate)); } + goods = loadYuShouInfo(goods, resultJSON); return goods; - } catch (TaoKeApiException e) { + } catch (Exception e) { e.printStackTrace(); } @@ -1763,7 +1668,7 @@ public static void taoKeContent() { Map<String, String> map = new HashMap<>(); map.put("method", "taobao.tbk.content.get"); - map.put("adzone_id", TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT.split("_")[3]); + map.put("adzone_id", TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT.split("_")[3]); map.put("type", "1"); map.put("count", "100"); @@ -1849,8 +1754,9 @@ goods.setIncludeDxjh(0); goods.setSellerId(item.optLong("seller_id")); - goods.setShopTitle(item.optString("shop_title")); + 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")); @@ -1890,6 +1796,7 @@ goods.setReservePrice(new BigDecimal(0)); goods.setTotalFee(new BigDecimal("0")); goods.setPictUrlWhite(item.optString("white_image")); + goods = loadYuShouInfo(goods, item); return goods; } @@ -1946,9 +1853,48 @@ } + /** + * 娣樺彛浠よ浆鍟嗗搧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 TaoKeApiException{ + 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]); @@ -1959,17 +1905,16 @@ 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) + + if (sendEndTime != null) map.put("send_end_time", TimeUtil.getGernalTime(sendEndTime.getTime(), "yyyy-MM-dd HH:mm:ss")); - - if(useEndTime != null) { + + 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) + + if (useStartTime != null) map.put("use_start_time", TimeUtil.getGernalTime(useStartTime.getTime(), "yyyy-MM-dd")); try { String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app); @@ -1977,40 +1922,38 @@ 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{ + } else { LogHelper.error(json); } - + // 鎺ュ彛杩斿洖寮傚父 String msgCode = root.optJSONObject("result").optString("msg_code"); if (!StringUtil.isNullOrEmpty(msgCode)) { - switch(msgCode){ - case "FAIL_BIZ_ITEM_FORBIDDEN": - throw new TaoKeApiException(TaoKeApiException.CODE_TLJ_FORBIDDEN, "璇ュ晢鍝佷笉鏀寔鍒涘缓娣樼ぜ閲戠孩鍖�"); - case "FAIL_BIZ_ACCOUNT_UN_PAID": - case "PRE_FREEZE_ASSET_ACCOUNT_ERROR": - throw new TaoKeApiException(TaoKeApiException.CODE_TLJ_NO_MONEY, "瀹樻柟鐜╂硶閽卞寘浣欓涓嶈冻"); - default: - return null; - } + 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; - } catch (Exception e) { - LogHelper.errorDetailInfo(e); + throw e; } return null; } - // 娣樼ぜ閲戞姤鍛� public static UserTaoLiJinReport getTaoLiJinEffective(String rightsId) { @@ -2021,19 +1964,18 @@ 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); @@ -2048,7 +1990,7 @@ report.setWinNum(modelJson.optInt("win_num")); report.setPreCommissionAmount(new BigDecimal(modelJson.optString("pre_commission_amount"))); return report; - } + } } } } catch (Exception e) { @@ -2056,6 +1998,109 @@ } 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 String officialActivityConvert(String adZoneId, String promotionSceneId, String relationId) { + Map<String, String> map = new HashMap<>(); + map.put("method", "taobao.tbk.activitylink.get"); + map.put("adzone_id", adZoneId); + map.put("promotion_scene_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); + JSONObject json = JSONObject.fromObject(result); + if (json != null) { + json = json.optJSONObject("tbk_activitylink_get_response"); + if (json.optInt("result_code") == 200) { + return json.optString("data"); + } + } + } 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; + } } class QuanInfo { -- Gitblit v1.8.0