From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java | 181 +++++++++++++++++++++----------------------- 1 files changed, 86 insertions(+), 95 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java index d1e692e..27a49bf 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java @@ -1,67 +1,12 @@ package com.yeshi.fanli.controller.client.v2; -import java.io.IOException; -import java.io.InputStream; -import java.io.PrintWriter; -import java.lang.reflect.Type; -import java.math.BigDecimal; -import java.net.MalformedURLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.annotation.Resource; - -import com.ks.lib.common.exception.ParamsException; +import com.google.gson.*; +import com.yeshi.common.vo.ClientTextStyleVO; +import com.yeshi.fanli.dto.jd.JDCouponInfo; import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; import com.yeshi.fanli.entity.SystemEnum; import com.yeshi.fanli.entity.SystemFunction; import com.yeshi.fanli.entity.SystemPIDInfo; -import com.yeshi.fanli.exception.pdd.PDDAuthException; -import com.yeshi.fanli.exception.pdd.PDDGoodsException; -import com.yeshi.fanli.exception.taobao.TaoBaoConvertLinkException; -import com.yeshi.fanli.exception.taobao.TaoBaoTokenParseException; -import com.yeshi.fanli.service.inter.pdd.PDDAuthService; -import com.yeshi.fanli.service.manger.ClipboardContentType; -import com.yeshi.fanli.service.manger.PIDManager; -import com.yeshi.fanli.service.manger.goods.TaoBaoLinkManager; -import com.yeshi.fanli.service.manger.goods.jd.JDConvertLinkManager; -import com.yeshi.fanli.service.manger.goods.pdd.PDDConvertLinkManager; -import com.yeshi.fanli.service.manger.goods.suning.SuningConvertLinkManager; -import com.yeshi.fanli.service.manger.goods.tb.TBConvertLinkManager; -import com.yeshi.fanli.service.manger.goods.vipshop.VipShopConvertLinkManager; -import com.yeshi.fanli.util.*; -import com.yeshi.fanli.util.StringUtil; -import com.yeshi.fanli.util.exception.ExceptionConstant; -import com.yeshi.fanli.util.goods.GoodsJumpUtil; -import com.yeshi.fanli.util.goods.GoodsTextUtil; -import com.yeshi.fanli.util.suning.SuningUtil; -import com.yeshi.fanli.util.taobao.TaoKeApiUtil; -import com.yeshi.fanli.util.vipshop.VipShopUtil; -import com.yeshi.fanli.vo.goods.ConvertLinkJumpVO; -import com.yeshi.fanli.vo.pdd.PDDConvertLinkResultVO; -import org.apache.commons.beanutils.PropertyUtils; -import org.springframework.core.task.TaskExecutor; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.yeshi.utils.*; -import org.yeshi.utils.entity.FileUploadResult; -import org.yeshi.utils.tencentcloud.COSManager; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonElement; -import com.google.gson.JsonPrimitive; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; -import com.yeshi.fanli.dto.jd.JDCouponInfo; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.clazz.GoodsClass; import com.yeshi.fanli.entity.bus.homemodule.CommonShareInfo; @@ -81,7 +26,10 @@ import com.yeshi.fanli.entity.jd.JDGoods; import com.yeshi.fanli.entity.system.ConfigKeyEnum; import com.yeshi.fanli.entity.taobao.TaoBaoLink; -import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException; +import com.yeshi.fanli.exception.goods.ConvertLinkException; +import com.yeshi.fanli.exception.pdd.PDDAuthException; +import com.yeshi.fanli.exception.pdd.PDDGoodsException; +import com.yeshi.fanli.exception.taobao.TaoBaoConvertLinkException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.common.JumpDetailV2Service; import com.yeshi.fanli.service.inter.config.ConfigService; @@ -89,31 +37,61 @@ import com.yeshi.fanli.service.inter.dynamic.ArticleOfficialService; import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService; import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService; -import com.yeshi.fanli.service.inter.goods.ShareGoodsService; import com.yeshi.fanli.service.inter.homemodule.CommonShareInfoService; import com.yeshi.fanli.service.inter.homemodule.SpecialService; import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService; +import com.yeshi.fanli.service.inter.pdd.PDDAuthService; import com.yeshi.fanli.service.inter.user.QrCodeService; +import com.yeshi.fanli.service.inter.user.UserFunctionsLimitService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoService; -import com.yeshi.fanli.service.inter.user.cloud.UserCloudService; import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; +import com.yeshi.fanli.service.manger.PIDManager; import com.yeshi.fanli.service.manger.goods.ConvertLinkManager; +import com.yeshi.fanli.service.manger.goods.TaoBaoLinkManager; +import com.yeshi.fanli.service.manger.goods.jd.JDConvertLinkManager; +import com.yeshi.fanli.service.manger.goods.pdd.PDDConvertLinkManager; +import com.yeshi.fanli.service.manger.goods.tb.TBConvertLinkManager; +import com.yeshi.fanli.util.*; +import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.cache.JDGoodsCacheUtil; +import com.yeshi.fanli.util.exception.ExceptionConstant; +import com.yeshi.fanli.util.goods.GoodsJumpUtil; +import com.yeshi.fanli.util.goods.GoodsTextUtil; 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.DaTaoKeUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; +import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import com.yeshi.fanli.vo.dynamic.ArticleVO; +import com.yeshi.fanli.vo.goods.ConvertLinkJumpVO; import com.yeshi.fanli.vo.goods.GoodsDetailVO; import com.yeshi.fanli.vo.homemodule.BannerVO; import com.yeshi.fanli.vo.homemodule.SpecialVO; -import com.yeshi.common.vo.ClientTextStyleVO; - +import com.yeshi.fanli.vo.pdd.PDDConvertLinkResultVO; import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.apache.commons.beanutils.PropertyUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.task.TaskExecutor; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.yeshi.utils.*; +import org.yeshi.utils.entity.FileUploadResult; +import org.yeshi.utils.tencentcloud.COSManager; + +import javax.annotation.Resource; +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintWriter; +import java.lang.reflect.Type; +import java.math.BigDecimal; +import java.net.MalformedURLException; +import java.util.*; /** * 鍔ㄦ�� @@ -123,6 +101,8 @@ @Controller @RequestMapping("api/v2/dynamic") public class DynamicControllerV2 { + + private Logger logger= LoggerFactory.getLogger(DynamicControllerV2.class); @Resource private TaoBaoLinkManager taoBaoLinkManager; @@ -175,12 +155,6 @@ private PDDConvertLinkManager pddConvertLinkManager; @Resource - private SuningConvertLinkManager suningConvertLinkManager; - - @Resource - private VipShopConvertLinkManager vipShopConvertLinkManager; - - @Resource private DailyCountMomentsService dailyCountMomentsService; @Resource @@ -188,6 +162,9 @@ @Resource private PDDAuthService pddAuthService; + + @Resource + private UserFunctionsLimitService userFunctionsLimitService; @Resource @@ -310,7 +287,8 @@ list.add(map.get(TYPE_FAQUAN)); list.add(map.get(TYPE_HUODONG)); // list.add(map.get(TYPE_XUEYUAN)); - list.add(map.get(TYPE_SUCAI)); + // 涓嶈繑鍥炵礌鏉愪簡 + // list.add(map.get(TYPE_SUCAI)); } else { list.add(map.get(TYPE_FAQUAN)); } @@ -720,7 +698,7 @@ for (ImgInfo imgInfo : goodsEvaluate.getImgList()) { - if (acceptData.getSystem() == SystemEnum.yhqjx) { + if (acceptData.getSystem() == SystemEnum.yhqjx || acceptData.getSystem() == SystemEnum.hsb) { imgInfo.setGoods(null); imgInfo.setGoodsVO(null); } @@ -889,8 +867,8 @@ if (JDUtil.isJDLink(url)) { try { url = jdConvertLinkManager.convertShortUrl(url, uid, acceptData.getSystem(), uid == null ? SystemPIDInfo.PidType.coupon : SystemPIDInfo.PidType.fanli); - } catch (ParamsException e) { - e.printStackTrace(); + } catch (Exception e) { + logger.warn(String.format("浜笢杞摼鍑洪敊锛歮aterialId-%s",url), e); } convertLinkJumpVO = new ConvertLinkJumpVO(GoodsJumpUtil.getJDJumpInfo(url), Constant.SOURCE_TYPE_JD); outPrintConvertResult(convertLinkJumpVO, out); @@ -902,7 +880,7 @@ String customParams = pddAuthService.getFanliCustomParams(uid); PDDConvertLinkResultVO convertLinkResult = null; try { - convertLinkResult = pddConvertLinkManager.convertGoods(Long.parseLong(pddGoodsId), acceptData.getSystem(), customParams, uid == null ? SystemPIDInfo.PidType.coupon : SystemPIDInfo.PidType.fanli); + convertLinkResult = pddConvertLinkManager.convertGoods(pddGoodsId, acceptData.getSystem(), customParams, uid == null ? SystemPIDInfo.PidType.coupon : SystemPIDInfo.PidType.fanli); convertLinkJumpVO = new ConvertLinkJumpVO(GoodsJumpUtil.getPDDJumpInfo(convertLinkResult), Constant.SOURCE_TYPE_PDD); outPrintConvertResult(convertLinkJumpVO, out); return; @@ -930,7 +908,7 @@ TaoKeApiUtil.TokenConvertResult convertResult = TaoKeApiUtil.tokenConvert(tokenList.get(0)); if (convertResult != null) { String originUrl = convertResult.getOrigin_url(); - long goodsId = convertResult.getNum_iid(); + String goodsId = convertResult.getNum_iid(); TaoBaoLink taoBaoLink = tbConvertLinkManager.convertGoods(goodsId, uid, acceptData.getSystem(), uid == null ? SystemPIDInfo.PidType.coupon : SystemPIDInfo.PidType.fanli); convertLinkJumpVO = new ConvertLinkJumpVO(GoodsJumpUtil.getTBJumpInfo(taoBaoLink), Constant.SOURCE_TYPE_TAOBAO); outPrintConvertResult(convertLinkJumpVO, out); @@ -964,9 +942,6 @@ * @param acceptData * @param uid * @param id - * @param type - * @param goodsId - * @param goodsType * @param out */ @RequestMapping(value = "evaluateCopyRecommend", method = RequestMethod.POST) @@ -1026,6 +1001,13 @@ out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; } + + + if (userFunctionsLimitService.isLimit(uid, SystemFunction.share, new Date())) { + out.print(JsonUtil.loadFalseResult(1, "璇ュ姛鑳介檺鍒朵娇鐢�")); + return; + } + UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); String relationId = null; @@ -1166,7 +1148,7 @@ if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { TaoBaoLink taoBaoLink = null; try { - taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, user.getId(), Long.parseLong(goodsVO.getGoodsId()), + taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, user.getId(),goodsVO.getGoodsId(), relationId, null); } catch (TaoBaoConvertLinkException e) { e.printStackTrace(); @@ -1175,7 +1157,7 @@ configService.getValue(ConfigKeyEnum.taobaoShareQrcodeText.getKey(), system), taoBaoLink.getGoods(), TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); } else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_JD) { - JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsVO.getGoodsId())); + JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsVO.getGoodsId()); if (jdGoods == null) { return null; } @@ -1186,10 +1168,14 @@ couponUrl = couponInfo.getLink(); } String materialId = "https://item.jd.com/" + goodsVO.getGoodsId() + ".html"; - jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, pidManager.getPidCache(system, Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.share), - user.getId() + ""); + try { + jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, pidManager.getPidCache(system, Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.share), + user.getId() + ""); + } catch (Exception e) { + logger.warn(String.format("浜笢杞摼鍑洪敊锛歮aterialId-%s couponUrl-%s",materialId,couponUrl), e); + } } else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_PDD) { - PDDGoodsDetail pddGoodsDetail = PinDuoDuoApiUtil.getGoodsDetail(Long.parseLong(goodsVO.getGoodsId())); + PDDGoodsDetail pddGoodsDetail = PinDuoDuoApiUtil.getGoodsDetail(goodsVO.getGoodsId()); if (pddGoodsDetail == null) { return null; } @@ -1237,6 +1223,11 @@ return; } + if (userFunctionsLimitService.isLimit(uid, SystemFunction.share, new Date())) { + out.print(JsonUtil.loadFalseResult(1, "璇ュ姛鑳介檺鍒朵娇鐢�")); + return; + } + UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); String relationId = null; if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null @@ -1264,7 +1255,7 @@ String newText = text; // 闈為�氱敤鍒搁渶瑕侀獙璇� //鐗逛环鍙渶瑕佸鍒舵枃瀛楋紝涓嶉渶瑕佽浆閾� - if (acceptData.getSystem() == SystemEnum.yhqjx) { + if (acceptData.getSystem() == SystemEnum.yhqjx || acceptData.getSystem() == SystemEnum.hsb) { newText = GoodsTextUtil.decodeAppHtmlText(newText); //鍙鍒舵枃瀛� JSONObject data = new JSONObject(); @@ -1277,8 +1268,8 @@ if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) { try { newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true); - } catch (ConvertLinkExceptionException e) { - if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { + } catch (ConvertLinkException e) { + if (e.getCode() != ConvertLinkException.CODE_NONE) { out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); return; } @@ -1361,8 +1352,8 @@ if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) { try { newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true); - } catch (ConvertLinkExceptionException e) { - if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { + } catch (ConvertLinkException e) { + if (e.getCode() != ConvertLinkException.CODE_NONE) { out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); return; } @@ -1430,7 +1421,7 @@ int platformCode = Constant.getPlatformCode(acceptData.getPlatform()); jumpDetail = jumpDetailV2Service.getByTypeCache("web", platformCode, - Integer.parseInt(acceptData.getVersion()),acceptData.getSystem()); + Integer.parseInt(acceptData.getVersion()), acceptData.getSystem()); JSONObject inner = new JSONObject(); inner.put("url", jumpLink); params = inner.toString(); @@ -1556,8 +1547,8 @@ if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) { try { newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true); - } catch (ConvertLinkExceptionException e) { - if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { + } catch (ConvertLinkException e) { + if (e.getCode() != ConvertLinkException.CODE_NONE) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); return; } @@ -1708,8 +1699,8 @@ } imgUrl = createActivityShareImg(type, id, erCodeContent); - } catch (ConvertLinkExceptionException e) { - if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { + } catch (ConvertLinkException e) { + if (e.getCode() != ConvertLinkException.CODE_NONE) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); return; } @@ -1785,8 +1776,8 @@ if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) { try { newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true); - } catch (ConvertLinkExceptionException e) { - if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { + } catch (ConvertLinkException e) { + if (e.getCode() != ConvertLinkException.CODE_NONE) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触")); return; } -- Gitblit v1.8.0