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/service/manger/goods/TaoBaoLinkManager.java |   78 ++++++++++++++++++++++++--------------
 1 files changed, 49 insertions(+), 29 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/manger/goods/TaoBaoLinkManager.java b/fanli/src/main/java/com/yeshi/fanli/service/manger/goods/TaoBaoLinkManager.java
index fcfffab..22a2ec6 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/manger/goods/TaoBaoLinkManager.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/manger/goods/TaoBaoLinkManager.java
@@ -1,6 +1,8 @@
 package com.yeshi.fanli.service.manger.goods;
 
 import com.yeshi.common.entity.taobao.TaoKeAppInfo;
+import com.yeshi.fanli.entity.SystemEnum;
+import com.yeshi.fanli.entity.SystemPIDInfo;
 import com.yeshi.fanli.entity.taobao.PidUser;
 import com.yeshi.fanli.entity.taobao.TBPid;
 import com.yeshi.fanli.entity.taobao.TaoBaoLink;
@@ -13,6 +15,7 @@
 import com.yeshi.fanli.service.inter.redpack.UserTaoLiJinNewbiesService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
 import com.yeshi.fanli.service.inter.user.TBPidService;
+import com.yeshi.fanli.service.manger.PIDManager;
 import com.yeshi.fanli.util.*;
 import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
@@ -58,27 +61,30 @@
     @Resource
     private TaoBaoCouponCacheService taoBaoCouponCacheService;
 
+    @Resource
+    private PIDManager pidManager;
+
+
     /**
-     * 鑾峰彇娣樺疂璐拱閾炬帴
+     * 鍙鍒�
      *
-     * @param uid
      * @param auctionId
+     * @param specialId
      * @param pid
      * @return
      */
-    public TaoBaoLink getTaoBaoLinkForBuy(Long uid, Long auctionId, String specialId, String pid) throws TaoBaoConvertLinkException {
-        if (uid == null || uid <= 0) {
-            throw new TaoBaoConvertLinkException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
-        }
-
-        if (auctionId == null || auctionId <= 0) {
+    public TaoBaoLink getTaoBaoLinkForRecieveCoupon(SystemEnum system, String auctionId, String specialId, String pid) throws TaoBaoConvertLinkException {
+        if (StringUtil.isNullOrEmpty(auctionId)) {
             throw new TaoBaoConvertLinkException(2, "鍟嗗搧ID涓嶈兘涓虹┖");
         }
 
         TaoKeAppInfo app = new TaoKeAppInfo();
         app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
         app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
-        app.setPid(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
+        if (pid == null)
+            app.setPid(pidManager.getPidCache(system, Constant.SOURCE_TYPE_TAOBAO, SystemPIDInfo.PidType.fanli));
+        else
+            app.setPid(pid);
 
         TaoBaoLink taoBaoLink = new TaoBaoLink();
         taoBaoLink.setAuctionId(auctionId);
@@ -94,7 +100,7 @@
 
         String link = null;
         try {
-            link = DaTaoKeApiUtil.convertLink(auctionId, app.getPid());
+            link = DaTaoKeApiUtil.convertLink(auctionId, app.getPid(),false);
         } catch (Exception e) {
         }
 
@@ -111,7 +117,7 @@
             return taoBaoLink;
         }
 
-        TaoBaoGoodsBrief goods = TaoKeApiUtil.specialConvertCoupon(auctionId, app, specialId, null);
+        TaoBaoGoodsBrief goods = TaoKeApiUtil.specialConvertCouponV2(auctionId, app, specialId, null);
         if (goods == null) {
             throw new TaoBaoConvertLinkException(1, "");
         }
@@ -126,6 +132,21 @@
         goods.setCouponLink(taoBaoLink.getCouponLink());
         cacheCouponInfo(auctionId, taoBaoLink.getCouponLink(), app.getPid());
         return taoBaoLink;
+    }
+
+    /**
+     * 鑾峰彇娣樺疂璐拱閾炬帴
+     *
+     * @param uid
+     * @param auctionId
+     * @param pid
+     * @return
+     */
+    public TaoBaoLink getTaoBaoLinkForBuy(SystemEnum system, Long uid, String auctionId, String specialId, String pid) throws TaoBaoConvertLinkException {
+        if (uid == null || uid <= 0) {
+            throw new TaoBaoConvertLinkException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
+        }
+        return getTaoBaoLinkForRecieveCoupon(system, auctionId, specialId, pid);
     }
 
 
@@ -163,7 +184,7 @@
     }
 
 
-    private void cacheCouponInfo(Long auctionId, String link, String pid) {
+    private void cacheCouponInfo(String auctionId, String link, String pid) {
         String activityId = TaoBaoUtil.getActivityIdFromCouponLink(link);
         if (StringUtil.isNullOrEmpty(activityId))
             return;
@@ -195,7 +216,7 @@
                     return;
 
                 try {
-                    TaoBaoCouponCache cache = TaoBaoCouponCacheFactory.create(goods.getAuctionId(), goods.getCouponActivityId(), goods.getCouponAmount(), goods.getCouponStartFee(), new Date(TimeUtil.convertToTimeTemp(goods.getCouponEffectiveStartTime(), "yyyy-MM-dd")), new Date(TimeUtil.convertToTimeTemp(goods.getCouponEffectiveEndTime(), "yyyy-MM-dd")+1000*60*60*24L), pid, goods.getCouponLink());
+                    TaoBaoCouponCache cache = TaoBaoCouponCacheFactory.create(goods.getAuctionId(), goods.getCouponActivityId(), goods.getCouponAmount(), goods.getCouponStartFee(), new Date(TimeUtil.convertToTimeTemp(goods.getCouponEffectiveStartTime(), "yyyy-MM-dd")), new Date(TimeUtil.convertToTimeTemp(goods.getCouponEffectiveEndTime(), "yyyy-MM-dd") + 1000 * 60 * 60 * 24L), pid, goods.getCouponLink());
                     if (cache != null) {
                         taoBaoCouponCacheService.save(cache);
                     }
@@ -217,13 +238,13 @@
      * @param pid
      * @return
      */
-    public TaoBaoLink getTaoBaoLinkForShare(Long uid, Long auctionId, String relationId, String pid) throws
+    public TaoBaoLink getTaoBaoLinkForShare(SystemEnum system, Long uid, String auctionId, String relationId, String pid) throws
             TaoBaoConvertLinkException {
         if (uid == null || uid <= 0) {
             throw new TaoBaoConvertLinkException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
         }
 
-        if (auctionId == null || auctionId <= 0) {
+        if (StringUtil.isNullOrEmpty(auctionId)) {
             throw new TaoBaoConvertLinkException(2, "鍟嗗搧ID涓嶈兘涓虹┖");
         }
 
@@ -231,7 +252,7 @@
 
         if (!StringUtil.isNullOrEmpty(relationId)) {
             if (StringUtil.isNullOrEmpty(pid))
-                pid = TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT;
+                pid = pidManager.getPidCache(system, Constant.SOURCE_TYPE_TAOBAO, SystemPIDInfo.PidType.share);
             String appId = pid.split("_")[2];
             String adzoneId = pid.split("_")[3];
             TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService.getConfigByAppIdCache(appId);
@@ -265,7 +286,7 @@
 
         if (StringUtil.isNullOrEmpty(goods.getCouponLink()) && !goods.getAuctionUrl().contains("s.click.taobao.com")) {
 
-            TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCoupon(auctionId, info, null, relationId);
+            TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCouponV2(auctionId, info, null, relationId);
             if (taoBaoLink == null) {
                 throw new TaoBaoConvertLinkException(201, "鍟嗗搧杞摼澶辫触");
             }
@@ -280,10 +301,9 @@
             DaTaoKeFilterResult result = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods);
             if (result.getFilterType() == DaTaoKeFilterResult.FILTER_TYPE_COUPON
                     || result.getFilterType() == DaTaoKeFilterResult.FILTER_TYPE_PRICE_AND_COUPON) {
-                link = DaTaoKeApiUtil.convertLink(auctionId, info.getPid());
+                link = DaTaoKeApiUtil.convertLink(auctionId, info.getPid(),true);
             } else if (goods.getCouponAmount() != null && goods.getCouponAmount().compareTo(new BigDecimal(0)) > 0) {// 鏈夊埜
-                link = DaTaoKeApiUtil.convertLink(auctionId, info.getPid());
-
+                link = DaTaoKeApiUtil.convertLink(auctionId, info.getPid(),true);
             }
 
             if (!StringUtil.isNullOrEmpty(link)) {
@@ -292,7 +312,7 @@
                 //淇濆瓨鍒搁摼鎺�
                 cacheCouponInfo(goods, info.getPid());
             } else {
-                TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCoupon(auctionId, info, null, relationId);
+                TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCouponV2(auctionId, info, null, relationId);
                 if (taoBaoLink == null) {
                     throw new TaoBaoConvertLinkException(201, "鍟嗗搧杞摼澶辫触");
                 }
@@ -320,13 +340,13 @@
 
         if (!StringUtil.isNullOrEmpty(tbLink.getCouponLink())) {// 閫氳繃绔嬪嵆鎺ㄥ箍鏂瑰紡鑾峰彇娣樺彛浠ゆ垚鍔�
             String quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(),
-                    tbLink.getCouponLink());
+                    tbLink.getCouponLink(), false);
             if (!StringUtil.isNullOrEmpty(quanToken)) {
                 tbLink.setTaoToken(quanToken);
             }
         } else if (!StringUtil.isNullOrEmpty(tbLink.getClickUrl())) {
             String quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(),
-                    tbLink.getClickUrl());
+                    tbLink.getClickUrl(), false);
             if (!StringUtil.isNullOrEmpty(quanToken)) {
                 tbLink.setTaoToken(quanToken);
             }
@@ -353,11 +373,11 @@
      * @param pid
      * @return
      */
-    public TaoBaoLink getTaoLiJinLinkForBuy(Long uid, Long auctionId, String pid) throws TaoBaoConvertLinkException {
+    public TaoBaoLink getTaoLiJinLinkForBuy(Long uid, String auctionId, String pid) throws TaoBaoConvertLinkException {
         if (uid == null || uid <= 0)
             throw new TaoBaoConvertLinkException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
 
-        if (auctionId == null || auctionId <= 0)
+        if (StringUtil.isNullOrEmpty(auctionId))
             throw new TaoBaoConvertLinkException(1, "鍟嗗搧ID涓嶈兘涓虹┖");
 
         TaoBaoGoodsBrief goods = null;
@@ -395,13 +415,13 @@
      * @param pid
      * @return
      */
-    public TaoBaoLink getTaoLiJinLinkForShare(Long uid, Long auctionId, String relationId, String pid) throws
+    public TaoBaoLink getTaoLiJinLinkForShare(SystemEnum system, Long uid, String auctionId, String relationId, String pid) throws
             TaoBaoConvertLinkException {
         if (uid == null || uid <= 0) {
             throw new TaoBaoConvertLinkException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
         }
 
-        if (auctionId == null || auctionId <= 0) {
+        if (StringUtil.isNullOrEmpty(auctionId)) {
             throw new TaoBaoConvertLinkException(2, "鍟嗗搧ID涓嶈兘涓虹┖");
         }
 
@@ -409,7 +429,7 @@
 
         if (!StringUtil.isNullOrEmpty(relationId)) {
             if (StringUtil.isNullOrEmpty(pid))
-                pid = TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT;
+                pid = pidManager.getPidCache(system, Constant.SOURCE_TYPE_TAOBAO, SystemPIDInfo.PidType.share);
             String appId = pid.split("_")[2];
             String adzoneId = pid.split("_")[3];
             TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService.getConfigByAppIdCache(appId);
@@ -444,7 +464,7 @@
         if (StringUtil.isNullOrEmpty(goods.getCouponLink()) && !goods.getAuctionUrl().contains("s.click.taobao.com")) {
             TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService
                     .getConfigByAppIdCache(info.getPid().split("_")[2]);
-            TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCoupon(auctionId, info, null, relationId);
+            TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCouponV2(auctionId, info, null, relationId);
             if (taoBaoLink == null) {
                 throw new TaoBaoConvertLinkException(201, "鍟嗗搧杞摼澶辫触");
             }

--
Gitblit v1.8.0