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