admin
2024-04-26 5e7b0ed4a154ad067cbcf4aa1a1c7cce32f9864c
fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java
@@ -11,9 +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;
@@ -162,21 +168,21 @@
        Set<ClipboardContentType> typeSet = parseContentType(text, platform, version);
        //新版口令
        Long goodsId = null;
        String goodsId = null;
        if (text.contains("https://m.tb.cn/")) {
            try {
                TaoKeApiUtil.TokenConvertResult result = TaoKeApiUtil.tokenConvert(text);
                if (result != null) {
                    goodsId = result.getNum_iid();
                }
            } catch (TaoBaoTokenParseException e) {
                e.printStackTrace();
            }
            if (goodsId == null) {
                Long auctionId = DaTaoKeApiUtil.parseTaoBaoToken(text);
                if (auctionId != null) {
                    typeSet.add(ClipboardContentType.taoBaoToken);
                    goodsId = auctionId;
            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();
                }
            }
        }
@@ -197,12 +203,26 @@
        }
        //优先解析淘口令
        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;
        }
@@ -231,6 +251,10 @@
                    } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }
                    //TODO 解析链接中的title
//                    Jsoup.connect(text).get();
                    resultListener.none();
                } else {
@@ -411,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) {
@@ -421,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解析标题与图片
                    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解析标题与图片
                    }
                }
            }
@@ -475,6 +509,11 @@
            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);
            }
        }
        return commonGoods;
@@ -510,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);
        }
        // 解析淘宝
        String auctionId = parseTBAuctionIdFromLink(link);
@@ -536,7 +579,7 @@
        }
        // 领券短连接
        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);
        }
@@ -597,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 {
@@ -605,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);
@@ -681,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");
    }
}
/**
@@ -688,3 +739,5 @@
 *
 * @author Administrator
 */