yj
2020-03-06 207dc8655711cddac2653e18b51e58a88dba2084
fanli/src/main/java/com/yeshi/fanli/service/manger/goods/ConvertLinkManager.java
@@ -11,8 +11,10 @@
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;
import com.yeshi.fanli.service.inter.taobao.TaoBaoBuyRelationMapService;
import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.service.manger.goods.tb.TaoBaoTokenAuctionIdMapManager;
@@ -21,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;
@@ -79,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));
      }
@@ -186,9 +223,13 @@
    * @Title: convertLinkFromText @Description: 从文本转链 @param text @return
    *         String 返回类型 @throws
    */
   public String convertLinkFromText(String text, Long uid, boolean share) throws Exception {
   public String convertLinkFromText(String text, Long uid, boolean share)
         throws ConvertLinkExceptionException, Exception {
      String newText = convertJDLinkFromText(text, uid, share);
      newText = convertPDDLinkFromText(text, uid, share);
      newText = convertTBLinkFromText(newText, uid, share);
      if (text.equalsIgnoreCase(newText))
         throw new ConvertLinkExceptionException(ConvertLinkExceptionException.CODE_NONE, "不包含可转链的口令与链接");
      return newText;
   }