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/TaoBaoUtil.java | 232 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 201 insertions(+), 31 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java index 3a0e61f..34f2680 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java @@ -23,6 +23,7 @@ import javax.xml.parsers.DocumentBuilderFactory; import com.yeshi.fanli.entity.SystemEnum; +import com.yeshi.fanli.util.*; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; import org.apache.commons.httpclient.methods.GetMethod; @@ -33,6 +34,7 @@ import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.stereotype.Component; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.NodeList; @@ -67,12 +69,7 @@ import com.yeshi.fanli.service.inter.goods.TaoBaoLinkService; import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; import com.yeshi.common.entity.PageEntity; -import com.yeshi.fanli.util.AESUtil; -import com.yeshi.fanli.util.Constant; import org.yeshi.utils.MoneyBigDecimalUtil; -import com.yeshi.fanli.util.StringUtil; -import com.yeshi.fanli.util.TaoBaoConstant; -import com.yeshi.fanli.util.TaoBaoHttpUtil; import org.yeshi.utils.TimeUtil; import com.yeshi.common.vo.ClientTextStyleVO; @@ -187,7 +184,7 @@ String id = st.replace("id=", "").trim(); TaoBaoGoodsBrief tb = null; try { - tb = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id)); + tb = TaoKeApiUtil.searchGoodsDetail(id); } catch (TaobaoGoodsDownException e) { e.printStackTrace(); } @@ -211,7 +208,7 @@ for (String c : filter.getCateIds().split(",")) cateList.add(Long.parseLong(c)); } - return TaoKeApiUtil.searchWuLiao(filter, specialId, relationId); + return TaoKeApiUtil.searchWuLiaoNew(filter, specialId, relationId); } /** @@ -472,7 +469,7 @@ String id = st.replace("id=", "").trim(); TaoBaoGoodsBrief tb = null; try { - tb = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id)); + tb = TaoKeApiUtil.searchGoodsDetail(id); } catch (TaobaoGoodsDownException e) { e.printStackTrace(); } @@ -499,7 +496,7 @@ } if (1 > 0) - return TaoKeApiUtil.searchWuLiao(filter, null, null); + return TaoKeApiUtil.searchWuLiaoNew(filter, null, null); Map<String, String> params = new HashMap<String, String>(); String key = filter.getKey(); @@ -827,7 +824,7 @@ * @param pid * @return */ - public static TaoBaoLink getTbLink(long auctionId, String pid, TaoBaoUnionConfig config) { + public static TaoBaoLink getTbLink(String auctionId, String pid, TaoBaoUnionConfig config) { TaoBaoLink tbk = null; String cookie = TaoBaoOrderUtil.getTaoBaoCookie(config.getAccount()); String adzoneid = pid.split("_")[3]; @@ -883,7 +880,7 @@ * @param pid * @return */ - public static TaoBaoLink getTbLinkForShare(long auctionId, String pid, TaoBaoUnionConfig config) { + public static TaoBaoLink getTbLinkForShare(String auctionId, String pid, TaoBaoUnionConfig config) { TaoBaoLink tbk = null; String cookie = TaoBaoOrderUtil.getTaoBaoCookie(config.getAccount()); selfAdzoneCreate(pid, cookie); @@ -941,7 +938,7 @@ * @param pid * @return */ - public static TaoBaoLink getTbLinkWithCoupon(String picture, String title, String activityId, long auctionId, + public static TaoBaoLink getTbLinkWithCoupon(String picture, String title, String activityId, String auctionId, String pid) { activityId = StringUtil.isNullOrEmpty(activityId) ? "da75a5880d4c41ab88a82256b069a38c" : activityId; String url = String.format("https://uland.taobao.com/coupon/edetail?activityId=%s&pid=%s&itemId=%s", activityId, @@ -1078,7 +1075,7 @@ * 鑾峰彇鏈弬涓庢帹骞跨殑娣樺疂鍟嗗搧璇︽儏 @Title: getTaoBaoGoodsBrief @Description: @param * id @return TaoBaoGoodsBrief 鍖呭惈锛堟爣棰樹笌鍥剧墖锛� @throws */ - public static TaoBaoGoodsBrief getTaoBaoGoodsBriefNotInPub(Long id) { + public static TaoBaoGoodsBrief getTaoBaoGoodsBriefNotInPub(String id) { TaoBaoGoodsBrief tb = TaoBaoUtil.getTmallGoodsInfo(id + ""); return tb; } @@ -1112,7 +1109,7 @@ return new ArrayList<>(); TaoBaoGoodsBrief taoBaoGoodsBrief = null; try { - taoBaoGoodsBrief = TaoKeApiUtil.getSimpleGoodsInfo(Long.parseLong(auctionId)); + taoBaoGoodsBrief = TaoKeApiUtil.getSimpleGoodsInfo(auctionId); } catch (TaobaoGoodsDownException e) { e.printStackTrace(); } @@ -1133,7 +1130,7 @@ return null; TaoBaoGoodsBrief tb = null; try { - tb = TaoKeApiUtil.getSimpleGoodsInfo(Long.parseLong(auctionId)); + tb = TaoKeApiUtil.getSimpleGoodsInfo(auctionId); } catch (TaobaoGoodsDownException e) { e.printStackTrace(); } @@ -1159,7 +1156,7 @@ taoBaoGoodsBriefExtra.setTaoBaoHongBaoInfo(taobaoHongbaoInfo); taoBaoGoodsBriefExtra.setTaoBaoQuanInfo(taobaoQuanInfo); - taoBaoGoodsBriefExtra.setAuctionId(Long.parseLong(taoBaoCoupon.getAuctionId())); + taoBaoGoodsBriefExtra.setAuctionId(taoBaoCoupon.getAuctionId()); taoBaoGoodsBriefExtra.setAuctionUrl(taoBaoCoupon.getAuctionUrl()); taoBaoGoodsBriefExtra.setBaoyou(true); taoBaoGoodsBriefExtra.setBiz30day(taoBaoCoupon.getBiz30day()); @@ -1218,7 +1215,7 @@ imgStrs.add(attr); } taobao = new TaoBaoGoodsBrief(); - taobao.setAuctionId(Long.parseLong(auctionId)); + taobao.setAuctionId(auctionId); taobao.setTitle(title); taobao.setZkPrice(new BigDecimal(price)); taobao.setImgList(imgStrs); @@ -1315,7 +1312,7 @@ taoBaoGoodsBrief.setTitle(title); taoBaoGoodsBrief.setImgList(imgs); taoBaoGoodsBrief.setPictUrl(imgs.get(0)); - taoBaoGoodsBrief.setAuctionId(Long.parseLong(auctionId)); + taoBaoGoodsBrief.setAuctionId(auctionId); taoBaoGoodsBrief.setUserType(1); } else { Connection connect2 = Jsoup.connect(String.format(TB_URL, auctionId)); @@ -1352,7 +1349,7 @@ taoBaoGoodsBrief.setPictUrl(imgs.get(0)); taoBaoGoodsBrief.setImgList(imgs); taoBaoGoodsBrief.setZkPrice(new BigDecimal(price)); - taoBaoGoodsBrief.setAuctionId(Long.parseLong(auctionId)); + taoBaoGoodsBrief.setAuctionId(auctionId); taoBaoGoodsBrief.setUserType(0); } } catch (Exception e) { @@ -1499,7 +1496,7 @@ * @param goodsBrief * @return */ - public static BigDecimal getAfterUseCouplePrice(TaoBaoGoodsBrief goodsBrief) { + public static BigDecimal getCouponPrice(TaoBaoGoodsBrief goodsBrief) { if (StringUtil.isNullOrEmpty(goodsBrief.getCouponInfo()) || "鏃�".equals(goodsBrief.getCouponInfo())) { return goodsBrief.getZkPrice(); @@ -1520,7 +1517,7 @@ /** * 鑾峰彇鍥炬枃璇︽儏 * - * @param auctionId + * @param id */ public static List<String> getGoodsTextAndImageDetails(Long id) { if (id == null) { @@ -1595,7 +1592,7 @@ return taoBaoProvinceList; } - public static List<ImageInfo> getTBDetailImageWithSize(Long auctionId) { + public static List<ImageInfo> getTBDetailImageWithSize(String auctionId) { List<ImageInfo> imgList = new ArrayList<>(); @@ -1639,7 +1636,7 @@ * @return */ - public static List<ImageInfo> getTBDetailImageWithSizev2(Long auctionId, ProxyIP ip) { + public static List<ImageInfo> getTBDetailImageWithSizev2(String auctionId, ProxyIP ip) { List<ImageInfo> imgList = new ArrayList<>(); try { Map<String, String> headers = new HashMap<>(); @@ -1699,7 +1696,7 @@ * @param adzoneId * @return */ - public static String getBaiChuanConvertLink(Long auctionId, String appKey, String adzoneId) { + public static String getBaiChuanConvertLink(String auctionId, String appKey, String adzoneId) { String url = "http://acs4baichuan.m.taobao.com/gw-open/mtop.taobao.tbk.sdk.item.convert/1.0/"; JSONObject params = new JSONObject(); params.put("mcid", "tunion4android@862977040115210"); @@ -1734,7 +1731,11 @@ */ public static TaoBaoGoodsBrief convert(CommonGoods commonGoods) { TaoBaoGoodsBrief taoBaoGoods = new TaoBaoGoodsBrief(); - taoBaoGoods.setAuctionId(commonGoods.getGoodsId()); + if(!StringUtil.isNullOrEmpty(commonGoods.getGoodsSign())) { + taoBaoGoods.setAuctionId(commonGoods.getGoodsSign()); + }else{ + taoBaoGoods.setAuctionId(commonGoods.getGoodsId()); + } taoBaoGoods.setBiz30day(commonGoods.getSales()); taoBaoGoods.setCouponAmount(commonGoods.getCouponAmount()); taoBaoGoods.setCouponInfo(commonGoods.getCouponInfo()); @@ -1751,6 +1752,7 @@ taoBaoGoods.setTkRate(commonGoods.getRate()); taoBaoGoods.setTkCommFee(new BigDecimal("0")); taoBaoGoods.setState(commonGoods.getState()); + taoBaoGoods.setCreatetime(commonGoods.getCreateTime()); return taoBaoGoods; } @@ -1846,7 +1848,7 @@ * @param actionId * @return */ - public static TaoBaoGoodsBrief getSimpleGoodsBrief(Long actionId) { + public static TaoBaoGoodsBrief getSimpleGoodsBrief(String actionId) { JSONObject data = new JSONObject(); data.put("itemNumId", actionId + ""); @@ -1884,7 +1886,7 @@ JSONObject seller = data.optJSONObject("seller"); TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief(); goods.setTitle(item.optString("title")); - goods.setAuctionId(item.optLong("itemId")); + goods.setAuctionId(item.optString("itemId")); goods.setTitle(item.optString("title")); if (item.optJSONArray("images") != null && item.optJSONArray("images").size() > 0) { String picture = item.optJSONArray("images").optString(0); @@ -1912,7 +1914,7 @@ * @param auctionId * @return */ - public static TaoBaoShop getTaoBaoShopDetailByAuctionId(Long auctionId) { + public static TaoBaoShop getTaoBaoShopDetailByAuctionId(String auctionId) { JSONObject data = new JSONObject(); data.put("itemNumId", auctionId + ""); @@ -2003,7 +2005,7 @@ /** * 鏄惁鍙互鍔犲叆娣樼ぜ閲戠殑棰勯�夊晢鍝佸簱 * - * @param v2 + * @param goods * @return */ public static boolean canAddToTLJBuyGoods(TaoBaoGoodsBrief goods) { @@ -2013,7 +2015,7 @@ return false; // 鍒稿悗浠蜂笉鑳藉ぇ浜�150 - if (getAfterUseCouplePrice(goods).compareTo(new BigDecimal(150)) > 0) + if (getCouponPrice(goods).compareTo(new BigDecimal(150)) > 0) return false; return true; @@ -2233,9 +2235,19 @@ * @return */ public static String concatRelationId(String url, String relationId) { + if (StringUtil.isNullOrEmpty(url)) { + return url; + } if (StringUtil.isNullOrEmpty(relationId)) return url; - return url + "&relationId=" + relationId; + if (!url.contains("&relationId=")) + if(url.contains("?")) { + return url + "&relationId=" + relationId; + }else{ + return url + "?relationId=" + relationId; + } + else + return url; } @@ -2257,6 +2269,7 @@ /** * 鑾峰彇娣樺疂鎺堟潈閾炬帴 + * * @param uid * @param source * @return @@ -2266,4 +2279,161 @@ "http://api.flqapp.com/fanli/client/v1/auth/callback/tb", uid, source); } + + /** + * 鏄惁涓烘窐瀹濈郴鐨勯摼鎺� + * + * @param link + * @return + */ + public static boolean isTaoBaoLink(String link) { + TaoBaoGoodsBrief tb = null; + String auctionId = null; + if (link.startsWith("https://a.m.taobao.com/i"))// 娣樺疂璐﹀彿鏈櫥褰曠姸鎬� + { + return true; + } else if (link.contains("ju.taobao.com") || link.contains(".juhuasuan.com")) {// 鑱氬垝绠� + return true; + } else if (link.contains("http://zmnxbc.com")) { // 鎵嬫満绔ぉ鐚獳PP鍒嗕韩 + return true; + } else if (link.contains("m.tb.cn") || link.contains("h5.m.taobao") || link.contains("detail.m.tmall") || link.contains("item.taobao") + || link.contains("detail.tmall")) { // 鎵嬫満椤甸潰鍜岀數鑴戦〉闈� + return true; + } else if (link.contains("//s.click.taobao.com")) { + return true; + } + + return false; + + } + + + /** + * 鏄惁鏈夋柊鐗堟窐鍙d护 + * + * @param text + * @return + */ + public static boolean isHaveNewVersionTaoBaoToken(String text) { + if (text == null) + return false; + + int count = 0; + for (int i = 0; i < text.length(); i++) { + //澶у皬鍐欏瓧姣�+鏁板瓧 + if ((text.charAt(i) >= 65 && text.charAt(i) <= 90) || (text.charAt(i) >= 97 && text.charAt(i) <= 122) || (text.charAt(i) >= 48 && text.charAt(i) <= 57)) { + count++; + if (count >= 10) + return true; + } else { + count = 0; + } + } + return false; + } + + /** + * @return boolean + * @author hxh + * @description 鍒ゆ柇娣樺疂鍟嗗搧ID鏄惁鐩哥瓑 + * @date 14:55 2022/8/24 + * @param: auctionId1 + * @param: auctionId2 + **/ + public static boolean isEqual(String auctionId1, String auctionId2) { + if (auctionId1 == null || auctionId2 == null) { + return false; + } + + if (auctionId1.indexOf("-") > 0 && auctionId2.indexOf("-") > 0) { + return auctionId1.split("-")[1].equals(auctionId2.split("-")[1]); + } + return auctionId1.equals(auctionId2); + } + + /** + * @return java.lang.String + * @author hxh + * @description 鑾峰彇鍟嗗搧ID鐨勫悗鍗婃 + * @date 15:20 2022/8/24 + * @param: auctionId + **/ + public static String getAuctionId(String auctionId) { + if (auctionId == null) + return auctionId; + if (auctionId.indexOf("-") > 0) { + return auctionId.split("-")[1]; + } else { + return auctionId; + } + + } + + /** + * @return org.springframework.data.mongodb.core.query.Criteria + * @author hxh + * @description 鑾峰彇mongodb鍟嗗搧ID鐩稿悓鐨勬潯浠� + * @date 16:05 2022/8/24 + * @param: key + * @param: auctionId + **/ + public static Criteria getAuctionIdEqualCriteria(String key, String auctionId) { + if (!isNewAuctionId(auctionId)) { + return Criteria.where(key).is(auctionId); + } else { + return Criteria.where(key).regex("-" + getAuctionId(auctionId)); + } + } + + /** + * @return boolean + * @author hxh + * @description 鏄惁涓烘柊鐨勫晢鍝両D + * @date 15:39 2022/8/24 + * @param: auctionId + **/ + public static boolean isNewAuctionId(String auctionId) { + if (auctionId != null && auctionId.indexOf("-") > 0) + return true; + return false; + } + + /** + * @return java.lang.String + * @author hxh + * @description 鑾峰彇娣樺疂鐨勫晢鍝佹爣棰� + * @date 11:36 2022/9/9 + **/ + public static String getGoodsTitleFromTokenText(String text) { + String reg = "銆�.*銆�"; + Pattern p = Pattern.compile(reg); + Matcher matcher = p.matcher(text); + if (matcher.find()) { + String title = matcher.group(); + if(title!=null&&title.length()>0) { + return title.replace("銆�","").replace("銆�",""); + } + } + return null; + } + + + public static void main(String[] args) { +// String reg = "銆�.*銆�"; +// Pattern p = Pattern.compile(reg); +// Matcher matcher = p.matcher("銆愭窐瀹濄�慼ttps://m.tb.cn/h.Ub3d7Kb?tk=g2Az2EmdcIX CZ3457 銆岄�犳ⅵ銆愯敺钖囧皯濂炽�戝鍙ょ鑺辩墰濂剁粧缇婄緮缁掓瘺姣鍐繚鏆栦紤闂叉娌欏彂姣�峔n" + +// "鐐瑰嚮閾炬帴鐩存帴鎵撳紑"); +// if (matcher.find()) { +// String title = matcher.group(); +// System.out.println(title); +// } + String relationId = "1222"; + String url="http://123id=123"; + if(url.contains("?")) { + System.out.println(url + "&relationId=" + relationId); + }else{ + System.out.println(url + "?relationId=" + relationId); + } + } + } -- Gitblit v1.8.0