yj
2020-03-04 b416c2ffd263ca9d191fc1109bd72d10f8c5176d
Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div
2个文件已修改
50 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/service/manger/goods/ConvertLinkManager.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/manger/goods/ConvertLinkManager.java
@@ -11,6 +11,7 @@
import org.springframework.stereotype.Component;
import org.yeshi.utils.StringUtil;
import com.yeshi.fanli.dto.pdd.PDDPromotionUrl;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException;
@@ -22,6 +23,8 @@
import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.jd.JDUtil;
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@@ -80,6 +83,39 @@
        for (String link : linkSet) {
            if (linkMap.get(link) == null)
                throw new Exception("京东转链失败");
            newText = newText.replace(link, linkMap.get(link));
        }
        return newText;
    }
    public String convertPDDLinkFromText(String text, Long uid, boolean share) throws Exception {
        StringBuilder builder = new StringBuilder(text);
        String newText = builder.toString();
        // 京东转链
        // 提取京东所有的链接
        List<String> pddShortLink = PinDuoDuoUtil.getPDDShortLinksFromText(text);
        Set<String> linkSet = new HashSet<>();
        Map<String, String> linkMap = new HashMap<>();
        if (pddShortLink != null && pddShortLink.size() > 0) {
            linkSet.addAll(pddShortLink);
            for (String shortLink : linkSet) {
                String goodsId = PinDuoDuoUtil.getPDDGoodsId(shortLink);
                if (!StringUtil.isNullOrEmpty(goodsId)) {
                    PDDPromotionUrl pddUrl = PinDuoDuoApiUtil.convert(Long.parseLong(goodsId),
                            share ? PinDuoDuoApiUtil.PID_SHARE : PinDuoDuoApiUtil.PID_FANLI, uid + "");
                    if (pddUrl != null) {
                        linkMap.put(shortLink, pddUrl.getShortUrl());
                    }
                }
            }
        }
        for (String link : linkSet) {
            if (linkMap.get(link) == null)
                throw new Exception("拼多多转链失败");
            newText = newText.replace(link, linkMap.get(link));
        }
@@ -190,6 +226,7 @@
    public String convertLinkFromText(String text, Long uid, boolean share)
            throws ConvertLinkExceptionException, Exception {
        String newText = convertJDLinkFromText(text, uid, share);
        newText = convertLinkFromText(text, uid, share);
        newText = convertTBLinkFromText(newText, uid, share);
        if (text.equalsIgnoreCase(newText))
            throw new ConvertLinkExceptionException(ConvertLinkExceptionException.CODE_NONE, "不包含可转链的口令与链接");
fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java
@@ -9,6 +9,8 @@
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.script.Invocable;
import javax.script.ScriptEngine;
@@ -600,4 +602,15 @@
        return null;
    }
    public static List<String> getPDDShortLinksFromText(String text) {
        String regex = "(https://p\\.pinduoduo\\.com/)[0-9A-Za-z]{1,20}";
        Pattern pattern = Pattern.compile(regex);
        Matcher m = pattern.matcher(text);
        List<String> urlList = new ArrayList<>();
        while (m.find()) {
            urlList.add(m.group());
        }
        return urlList;
    }
}