From 28cf328a098334b51a3e9d2d56f983fb8c862211 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 23 五月 2020 09:54:38 +0800 Subject: [PATCH] 足迹、收藏订单兼容新需求 --- fanli/src/main/java/com/yeshi/fanli/service/manger/goods/ConvertLinkManager.java | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 50 insertions(+), 1 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/manger/goods/ConvertLinkManager.java b/fanli/src/main/java/com/yeshi/fanli/service/manger/goods/ConvertLinkManager.java index 0642586..8e0274c 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/manger/goods/ConvertLinkManager.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/manger/goods/ConvertLinkManager.java @@ -1,10 +1,13 @@ package com.yeshi.fanli.service.manger.goods; +import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.annotation.Resource; @@ -12,6 +15,7 @@ import org.yeshi.utils.StringUtil; import com.yeshi.fanli.dto.pdd.PDDPromotionUrl; +import com.yeshi.fanli.dto.taobao.api.TaoKeOfficialActivityConvertResultDTO; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.TaoKeAppInfo; import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException; @@ -122,6 +126,22 @@ return newText; } + // 鑾峰彇娣樺疂瀹樻柟娲诲姩ID鍐呭 + public List<String> getTaoBaoOfficialActivityId(String text) { + + // {娣樺疂娲诲姩:13123123} + String regex = "(\\{\u6dd8\u5b9d\u6d3b\u52a8\\:){1}+[0-9]{5,20}\\}{1}"; + Pattern pattern = Pattern.compile(regex); + Matcher m = pattern.matcher(text); + List<String> urlList = new ArrayList<>(); + while (m.find()) { + urlList.add(m.group()); + } + + return urlList; + + } + /** * * @Title: convertTBLinkFromText @Description: 杞摼鏂囨湰涓殑娣樺彛浠� @param text @param @@ -131,6 +151,8 @@ StringBuilder builder = new StringBuilder(text); String newText = builder.toString(); + + // 瑙f瀽娣樺彛浠� List<String> tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(newText); if (tokenList != null && tokenList.size() > 0) { @@ -215,6 +237,33 @@ newText = newText.replace(token, tokenMap.get(token)); } } + + // 瑙f瀽娣樺疂瀹樻柟娲诲姩ID + List<String> list = getTaoBaoOfficialActivityId(newText); + if (list.size() > 0) { + String relationId = null; + if (share) { + relationId = userExtraTaoBaoInfoService.getRelationIdByUid(uid); + if (StringUtil.isNullOrEmpty(relationId)) + throw new Exception("娣樺疂鏈巿鏉�"); + } + for (String st : list) { + String activityid = st.replace("{娣樺疂娲诲姩:", "").replace("}", ""); + if (!StringUtil.isNullOrEmpty(activityid)) { + String adzoneId = TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT.split("_")[3]; + TaoKeOfficialActivityConvertResultDTO dto = TaoKeApiUtil.officialActivityConvert(adzoneId, + activityid, relationId); + String link = dto.getShort_click_url(); + if (StringUtil.isNullOrEmpty(link)) { + link = dto.getClick_url(); + } + + String token = TaoKeApiUtil.getTKToken("http://", "娣樺疂瀹樻柟娲诲姩", link); + newText = newText.replace(st, TaoBaoUtil.filterTaoToken(token)); + } + } + } + return newText; } @@ -226,7 +275,7 @@ public String convertLinkFromText(String text, Long uid, boolean share) throws ConvertLinkExceptionException, Exception { String newText = convertJDLinkFromText(text, uid, share); - newText = convertPDDLinkFromText(text, uid, share); + newText = convertPDDLinkFromText(newText, uid, share); newText = convertTBLinkFromText(newText, uid, share); if (text.equalsIgnoreCase(newText)) throw new ConvertLinkExceptionException(ConvertLinkExceptionException.CODE_NONE, "涓嶅寘鍚彲杞摼鐨勫彛浠や笌閾炬帴"); -- Gitblit v1.8.0