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, 132 insertions(+), 27 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 bdcc3a9..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,12 +579,13 @@ } // 棰嗗埜鐭繛鎺� - 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) { TaoBaoGoodsBrief tb = null; @@ -545,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 { @@ -553,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); @@ -629,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"); + + } } /** @@ -636,3 +739,5 @@ * * @author Administrator */ + + -- Gitblit v1.8.0