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/service/manger/ClipboardAnalysisManager.java |  159 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 131 insertions(+), 28 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java b/fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java
index 51d7a3c..f9a85ca 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java
@@ -11,7 +11,15 @@
 
 import javax.annotation.Resource;
 
+import com.yeshi.fanli.entity.taobao.SearchFilter;
+import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
+import com.yeshi.fanli.util.*;
+import com.yeshi.fanli.util.goods.douyin.CSJCPSApiUtil;
+import com.yeshi.fanli.util.goods.douyin.DYUtil;
+import com.yeshi.fanli.util.goods.douyin.vo.DYGoodsDetail;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 import com.yeshi.goods.facade.utils.taobao.DaTaoKeApiUtil;
+import org.jsoup.Jsoup;
 import org.springframework.stereotype.Component;
 import org.yeshi.utils.HttpUtil;
 import org.yeshi.utils.NumberUtil;
@@ -29,13 +37,6 @@
 import com.yeshi.fanli.service.inter.user.TokenRecordService;
 import com.yeshi.fanli.service.manger.goods.jd.JDGoodsLinkParseManager;
 import com.yeshi.fanli.service.manger.goods.tb.TaoBaoTokenAuctionIdMapManager;
-import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.DouYinUtil;
-import com.yeshi.fanli.util.RedisManager;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.TokenUtil;
-import com.yeshi.fanli.util.Utils;
-import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.util.factory.CommonGoodsFactory;
 import com.yeshi.fanli.util.jd.JDApiUtil;
 import com.yeshi.fanli.util.jd.JDUtil;
@@ -115,7 +116,45 @@
             typeSet.add(ClipboardContentType.text);
         }
 
+
         return typeSet;
+    }
+
+
+    /**
+     * 鐗逛环瑙f瀽绮樿创鏉�
+     * 鏃犲钩鍙帮紝鏍规嵁鏍煎紡鍒ゆ柇骞冲彴
+     *
+     * @param text
+     */
+    public Integer tejiaParseSourceType(String text) {
+        if (text == null)
+            return null;
+        text = text.trim();
+        //鍒ゆ柇鏄惁鏈夐摼鎺�
+        List<String> linkList = HttpUtil.getUrlListFromText(text);
+        if (linkList != null && linkList.size() > 0) {
+            String link = linkList.get(0);
+            if (TaoBaoUtil.isTaoBaoLink(link)) {
+                return Constant.SOURCE_TYPE_TAOBAO;
+            } else if (JDUtil.isJDLink(link)) {
+                return Constant.SOURCE_TYPE_JD;
+            } else if (PinDuoDuoUtil.isPDDLink(link)) {
+                return Constant.SOURCE_TYPE_PDD;
+            } else if (VipShopUtil.isVIPShopLink(link)) {
+                return Constant.SOURCE_TYPE_VIP;
+            } else if (SuningUtil.isSuningLink(link)) {
+                return Constant.SOURCE_TYPE_SUNING;
+            }
+            //閾炬帴闈炵數鍟嗗钩鍙伴摼鎺�
+            return null;
+        }
+
+        //鍒ゆ柇鏄惁鐤戜技鍙d护
+        if (TaoBaoUtil.isHaveNewVersionTaoBaoToken(text)) {
+            return Constant.SOURCE_TYPE_TAOBAO;
+        }
+        return null;
     }
 
     /**
@@ -128,6 +167,25 @@
         text = text.trim();
 
         Set<ClipboardContentType> typeSet = parseContentType(text, platform, version);
+        //鏂扮増鍙d护
+        String goodsId = null;
+        if (text.contains("https://m.tb.cn/")) {
+            String tempGoodsId = DaTaoKeApiUtil.parseGoodsIdFromToken(text);
+            if (tempGoodsId != null) {
+                goodsId = tempGoodsId;
+                typeSet.add(ClipboardContentType.taoBaoToken);
+            } else {
+                try {
+                    TaoKeApiUtil.TokenConvertResult result = TaoKeApiUtil.tokenConvert(text);
+                    if (result != null) {
+                        goodsId = result.getNum_iid();
+                        typeSet.add(ClipboardContentType.taoBaoToken);
+                    }
+                } catch (TaoBaoTokenParseException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
 
         // 绯荤粺鍙d护
         if (typeSet.contains(ClipboardContentType.systemToken)) {
@@ -144,14 +202,27 @@
             return;
         }
         //浼樺厛瑙f瀽娣樺彛浠�
-        Long goodsId = DaTaoKeApiUtil.parseTaoBaoToken(text);
         if (goodsId != null) {
-            CommonGoods commonGoods = getTaoBaoGoods(goodsId);
-            if (commonGoods != null)
-                resultListener.onResult(commonGoods);
-            else
-                resultListener.onResult(text);
-
+            TaoBaoGoodsBrief taobaoGoods =null;
+            try {
+                taobaoGoods =  TaoKeApiUtil.getSimpleGoodsInfoForOwnBuy(goodsId);
+            } catch (TaobaoGoodsDownException e) {
+                e.printStackTrace();
+            }
+            if (taobaoGoods==null) {
+                int startIndex = text.indexOf("銆�");
+                int endIndex = text.indexOf("銆�");
+                if (startIndex > 0 && endIndex > 0) {
+                    resultListener.onResult(text.substring(startIndex+1,endIndex));
+                    return;
+                }
+            } else {
+                CommonGoods commonGoods = CommonGoodsFactory.create(taobaoGoods);
+                if (commonGoods != null)
+                    resultListener.onResult(commonGoods);
+                else
+                    resultListener.onResult(text);
+            }
             return;
         }
 
@@ -180,6 +251,10 @@
                     } catch (UnsupportedEncodingException e) {
                         e.printStackTrace();
                     }
+
+                    //TODO 瑙f瀽閾炬帴涓殑title
+//                    Jsoup.connect(text).get();
+
 
                     resultListener.none();
                 } else {
@@ -360,7 +435,7 @@
         if (simpleGoods.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
             TaoBaoGoodsBrief goods = null;
             try {
-                goods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(simpleGoods.getGoodsId()));
+                goods = redisManager.getTaoBaoGoodsBrief(simpleGoods.getGoodsId());
             } catch (NumberFormatException e) {
                 e.printStackTrace();
             } catch (TaobaoGoodsDownException e) {
@@ -370,13 +445,23 @@
             if (goods != null) {
                 commonGoods = CommonGoodsFactory.create(goods);
             } else {
-                goods = TaoBaoUtil.getTmallGoodsInfo(simpleGoods.getGoodsId());
-                if (goods != null) {
+                SearchFilter sf=new SearchFilter();
+                sf.setKey("https://item.taobao.com/item.htm?id="+simpleGoods.getGoodsId());
+                TaoBaoSearchResult searchResult = TaoKeApiUtil.searchWuLiaoNew(sf,null,null);
+                if(searchResult!=null&&searchResult.getTaoBaoGoodsBriefs()!=null&&searchResult.getTaoBaoGoodsBriefs().size()>0){
+                    TaoBaoGoodsBrief tempGoods =   searchResult.getTaoBaoGoodsBriefs().get(0);
                     commonGoods = new CommonGoods();
-                    commonGoods.setTitle(goods.getTitle());
-                    commonGoods.setPicture(goods.getPictUrl());
-                } else {
-                    // TODO 鏍规嵁娣樺疂鍟嗗搧ID瑙f瀽鏍囬涓庡浘鐗�
+                    commonGoods.setTitle(tempGoods.getTitle());
+                    commonGoods.setPicture(tempGoods.getPictUrl());
+                }else {
+                    goods = TaoBaoUtil.getTmallGoodsInfo(simpleGoods.getGoodsId());
+                    if (goods != null) {
+                        commonGoods = new CommonGoods();
+                        commonGoods.setTitle(goods.getTitle());
+                        commonGoods.setPicture(goods.getPictUrl());
+                    } else {
+                        // TODO 鏍规嵁娣樺疂鍟嗗搧ID瑙f瀽鏍囬涓庡浘鐗�
+                    }
                 }
             }
 
@@ -385,11 +470,11 @@
             JDGoods jdGoods = null;
             try {
                 // 闃叉楂樼骇鎺ュ彛琚敹鍥�
-                jdGoods = JDApiUtil.queryGoodsDetail(Long.parseLong(simpleGoods.getGoodsId()));
+                jdGoods = JDApiUtil.queryGoodsDetail(simpleGoods.getGoodsId());
             } catch (Exception e) {
             }
             if (jdGoods == null) {
-                jdGoods = JDApiUtil.getGoodsDetail(Long.parseLong(simpleGoods.getGoodsId()));
+                jdGoods = JDApiUtil.getGoodsDetail(simpleGoods.getGoodsId());
             }
             if (jdGoods != null) {
                 commonGoods = CommonGoodsFactory.create(jdGoods);
@@ -402,7 +487,7 @@
                 }
             }
         } else if (simpleGoods.getGoodsType() == Constant.SOURCE_TYPE_PDD) {
-            PDDGoodsDetail goods = PinDuoDuoApiUtil.getGoodsDetail(Long.parseLong(simpleGoods.getGoodsId()));
+            PDDGoodsDetail goods = PinDuoDuoApiUtil.getGoodsDetail(simpleGoods.getGoodsId());
             if (goods != null) {
                 commonGoods = CommonGoodsFactory.create(goods);
             } else {
@@ -421,6 +506,11 @@
         } else if (simpleGoods.getGoodsType() == Constant.SOURCE_TYPE_SUNING) {
             SuningGoodsInfo goods = SuningApiUtil.getGoodsDetail(simpleGoods.getGoodsId().split("-")[1],
                     simpleGoods.getGoodsId().split("-")[0]);
+            if (goods != null) {
+                commonGoods = CommonGoodsFactory.create(goods);
+            }
+        } else if (simpleGoods.getGoodsType() == Constant.SOURCE_TYPE_DY) {
+            DYGoodsDetail goods = CSJCPSApiUtil.goodsDetail(Long.parseLong(simpleGoods.getGoodsId()));
             if (goods != null) {
                 commonGoods = CommonGoodsFactory.create(goods);
             }
@@ -459,6 +549,10 @@
         if (!StringUtil.isNullOrEmpty(vipId)) {
             return new SimpleCommonGoods(vipId, Constant.SOURCE_TYPE_VIP);
         }
+        String dyProductId = DYUtil.parseProdectIdFromLink(link);
+        if (!StringUtil.isNullOrEmpty(dyProductId)) {
+            return new SimpleCommonGoods(dyProductId, Constant.SOURCE_TYPE_DY);
+        }
 
         // 瑙f瀽娣樺疂
         String auctionId = parseTBAuctionIdFromLink(link);
@@ -485,13 +579,12 @@
         }
 
         // 棰嗗埜鐭繛鎺�
-        if (StringUtil.isNullOrEmpty(jdId) && link.contains("u.jd.com")) {
+        if (StringUtil.isNullOrEmpty(jdId) && (link.contains("u.jd.com")||link.contains("//3.cn/"))) {
             jdId = jdGoodsLinkParseManager.parseGoodsIdByJDShortUrl(link);
         }
 
         return jdId;
     }
-
 
 
     public String parseTBAuctionIdFromLink(String link) {
@@ -547,7 +640,7 @@
     }
 
     private CommonGoods parseTaoBaoToken(String token) throws TaoBaoTokenParseException {
-        Long auctionId = taoBaoTokenAuctionIdMapManager.getAuctionIdByToken(token);
+        String auctionId = taoBaoTokenAuctionIdMapManager.getAuctionIdByToken(token);
         if (auctionId != null) {//
             return getTaoBaoGoods(auctionId);
         } else {
@@ -555,7 +648,7 @@
         }
     }
 
-    private CommonGoods getTaoBaoGoods(Long auctionId) {
+    private CommonGoods getTaoBaoGoods(String auctionId) {
         TaoBaoGoodsBrief goods = TaoBaoUtil.isAlimama(auctionId + "");
         if (goods == null) {
             goods = TaoBaoUtil.getTaoBaoGoodsBriefNotInPub(auctionId);
@@ -631,6 +724,14 @@
             this.goodsType = goodsType;
         }
     }
+
+
+    public static void main(String[] args) {
+//String originText, String platform, String version
+
+        new ClipboardAnalysisManager(). parseJDSkuIdFromLink("https://3.cn/1-U6tjhC");
+
+    }
 }
 
 /**
@@ -638,3 +739,5 @@
  *
  * @author Administrator
  */
+
+

--
Gitblit v1.8.0