From 207dc8655711cddac2653e18b51e58a88dba2084 Mon Sep 17 00:00:00 2001 From: yj <Administrator@192> Date: 星期五, 06 三月 2020 18:14:36 +0800 Subject: [PATCH] 发圈处理 --- fanli/src/main/java/com/yeshi/fanli/service/manger/goods/ConvertLinkManager.java | 104 ++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 76 insertions(+), 28 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 ad07eea..0642586 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 @@ -11,13 +11,20 @@ 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; +import com.yeshi.fanli.util.RedisKeyEnum; +import com.yeshi.fanli.util.RedisManager; 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; @@ -36,17 +43,16 @@ @Resource private TaoBaoBuyRelationMapService taoBaoBuyRelationMapService; + @Resource + private RedisManager redisManager; + + @Resource + private TaoBaoTokenAuctionIdMapManager taoBaoTokenAuctionIdMapManager; + /** * - * @Title: convertJDLinkFromText - * @Description:杞摼鏂囨湰涓殑浜笢鐭摼 - * @param text - * @param uid - * @param share - * @return - * @throws Exception - * String 杩斿洖绫诲瀷 - * @throws + * @Title: convertJDLinkFromText @Description:杞摼鏂囨湰涓殑浜笢鐭摼 @param text @param + * uid @param share @return @throws Exception String 杩斿洖绫诲瀷 @throws */ public String convertJDLinkFromText(String text, Long uid, boolean share) throws Exception { @@ -83,23 +89,49 @@ 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)); + } + + return newText; + } + /** * - * @Title: convertTBLinkFromText - * @Description: 杞摼鏂囨湰涓殑娣樺彛浠� - * @param text - * @param uid - * @param share - * @return - * @throws Exception - * String 杩斿洖绫诲瀷 - * @throws + * @Title: convertTBLinkFromText @Description: 杞摼鏂囨湰涓殑娣樺彛浠� @param text @param + * uid @param share @return @throws Exception String 杩斿洖绫诲瀷 @throws */ private String convertTBLinkFromText(String text, Long uid, boolean share) throws Exception { StringBuilder builder = new StringBuilder(text); String newText = builder.toString(); - List<String> tokenList = TaoBaoUtil.getTokenListFromText(newText); + List<String> tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(newText); if (tokenList != null && tokenList.size() > 0) { String relationId = null; @@ -112,7 +144,7 @@ tokenSet.addAll(tokenList); Map<String, String> tokenMap = new HashMap<>(); for (String token : tokenSet) { - Long auctionId = TaoKeApiUtil.tokenConvertAuctionId(token); + Long auctionId = taoBaoTokenAuctionIdMapManager.getAuctionIdByToken(token); if (auctionId == null) throw new Exception("浠庢窐鍙d护鑾峰彇鍟嗗搧澶辫触"); TaoBaoGoodsBrief simpleGoods = TaoKeApiUtil.getSimpleGoodsInfo(auctionId); @@ -174,7 +206,7 @@ if (StringUtil.isNullOrEmpty(newToken)) { throw new Exception("鍙d护杞摼澶辫触"); } - tokenMap.put(token, newToken); + tokenMap.put(token, TaoBaoUtil.filterTaoToken(newToken)); } for (String token : tokenSet) { @@ -188,17 +220,33 @@ /** * - * @Title: convertLinkFromText - * @Description: 浠庢枃鏈浆閾� - * @param text - * @return - * String 杩斿洖绫诲瀷 - * @throws + * @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; } + /** + * 鍒涘缓鍙d护 @Title: createTaoBaoToken @Description: @param uid 鐢ㄦ埛ID @param + * picturl @param title @param link @return String 杩斿洖绫诲瀷 @throws + */ + public String createTaoBaoToken(Long uid, String picturl, String title, String link) { + + String token = TaoKeApiUtil.getTKToken(picturl, title, link); + if (!StringUtil.isNullOrEmpty(token)) { + // 缂撳瓨30鍒嗛挓 + redisManager.cacheCommonString( + RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoUserTKToken, uid + "-" + StringUtil.Md5(token)), "1", + 60 * 30); + } + return token; + } + } -- Gitblit v1.8.0