| | |
| | |
|
| | | 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.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;
|
| | |
| | | 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;
|
| | | }
|
| | |
| | | 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;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取券详细信息
|
| | | *
|
| | |
| | | } 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() {
|
| | |
| | | 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();
|
| | | }
|
| | | }
|
| | |
| | | * @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;
|
| | |
| | | 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) {
|
| | |
| | | * @param token
|
| | | * @return
|
| | | */
|
| | | public static Long tokenConvertAuctionId(String token) {
|
| | | 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);
|
| | |
| | | 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) {
|
| | | e.printStackTrace();
|
| | | 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;
|
| | | }
|
| | |
| | | return null;
|
| | | }
|
| | |
|
| | | public static void guessLikeByAuctionId(Long auctionId) {
|
| | | 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", 20 + "");
|
| | | 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);
|
| | | System.out.println(resultJSON);
|
| | |
|
| | | 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;
|
| | | }
|
| | | }
|
| | |
|