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