From 9b4cdc2ab8f46336dffea4c4145b4fd35d4c2dad Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 29 四月 2020 17:55:04 +0800
Subject: [PATCH] 兼容大淘客店铺券

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java |  121 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 109 insertions(+), 12 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java
index 504a215..cbb0aaa 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java
@@ -21,6 +21,7 @@
 
 import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
 import com.yeshi.fanli.dao.mybatis.UserShareGoodsHistoryMapper;
+import com.yeshi.fanli.dto.taobao.DaTaoKeFilterResult;
 import com.yeshi.fanli.dto.taobao.TaoLiJinDTO;
 import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
@@ -31,6 +32,7 @@
 import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
 import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
 import com.yeshi.fanli.entity.taobao.UserTLJBuyHistory;
+import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
 import com.yeshi.fanli.exception.share.ShareGoodsException;
 import com.yeshi.fanli.exception.taobao.TaoKeApiException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
@@ -47,6 +49,7 @@
 import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
 import com.yeshi.fanli.service.inter.taobao.UserTLJBuyHistoryService;
+import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
 import com.yeshi.fanli.service.inter.user.TBPidService;
 import com.yeshi.fanli.service.inter.user.UserAccountService;
 import com.yeshi.fanli.service.manger.goods.ConvertLinkManager;
@@ -59,20 +62,20 @@
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TaoBaoConstant;
 import com.yeshi.fanli.util.TimeUtil;
+import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
+import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
+import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 
 @Service
 public class ShareGoodsServiceImpl implements ShareGoodsService {
 
-
-
 	@Resource
 	private TBPidService tbPidService;
 
 	@Resource
 	private UserShareGoodsHistoryMapper userShareGoodsHistoryMapper;
-
 
 	@Resource
 	private UserInfoMapper userinfoMapper;
@@ -92,7 +95,6 @@
 	@Resource
 	private HongBaoManageService hongBaoManageService;
 
-
 	@Resource
 	private UserTLJBuyHistoryService userTLJBuyHistoryService;
 
@@ -104,9 +106,15 @@
 
 	@Resource
 	private UserTaoLiJinNewbiesService userTaoLiJinNewbiesService;
-	
+
 	@Resource
 	private ConvertLinkManager convertLinkManager;
+
+	@Resource
+	private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil;
+
+	@Resource
+	private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
 
 	@Override
 	public void addShareGoodsHistory(UserShareGoodsHistory history) {
@@ -418,12 +426,36 @@
 		}
 
 		if (StringUtil.isNullOrEmpty(goods.getCouponLink()) && !goods.getAuctionUrl().contains("s.click.taobao.com")) {
+
 			TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCoupon(auctionId, info);
 			if (taoBaoLink == null) {
 				throw new ShareGoodsException(201, "鍟嗗搧杞摼澶辫触");
 			}
 			goods.setCouponLink(taoBaoLink.getCouponLink());
 			goods.setAuctionUrl(taoBaoLink.getAuctionUrl());
+		}
+
+		String link = taoBaoGoodsCacheUtil.getBaseConvertLink(auctionId, info.getPid());
+		if (link != null) {
+			goods.setCouponLink(link);
+		} else {// 缂撳瓨
+			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());
+				if (!StringUtil.isNullOrEmpty(link)) {
+					goods.setCouponLink(link);
+					taoBaoGoodsCacheUtil.cacheBaseConvertLink(auctionId, info.getPid(), link);
+				}
+			}
+			if (StringUtil.isNullOrEmpty(link)) {
+				TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCoupon(auctionId, info);
+				if (taoBaoLink == null) {
+					throw new ShareGoodsException(201, "鍟嗗搧杞摼澶辫触");
+				}
+				goods.setCouponLink(taoBaoLink.getCouponLink());
+				goods.setAuctionUrl(taoBaoLink.getAuctionUrl());
+			}
 		}
 
 		if (!StringUtil.isNullOrEmpty(relationId)) {
@@ -442,12 +474,14 @@
 		tbLink.setCouponLink(goods.getCouponLink());
 
 		if (!StringUtil.isNullOrEmpty(tbLink.getCouponLink())) {// 閫氳繃绔嬪嵆鎺ㄥ箍鏂瑰紡鑾峰彇娣樺彛浠ゆ垚鍔�
-			String quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(), tbLink.getCouponLink());
+			String quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(),
+					tbLink.getCouponLink());
 			if (!StringUtil.isNullOrEmpty(quanToken)) {
 				tbLink.setTaoToken(quanToken);
 			}
 		} else if (!StringUtil.isNullOrEmpty(tbLink.getClickUrl())) {
-			String quanToken = convertLinkManager.createTaoBaoToken(uid,goods.getPictUrl(), goods.getTitle(), tbLink.getClickUrl());
+			String quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(),
+					tbLink.getClickUrl());
 			if (!StringUtil.isNullOrEmpty(quanToken)) {
 				tbLink.setTaoToken(quanToken);
 			}
@@ -470,13 +504,15 @@
 	public String createTaoBaoToken(Long uid, TaoBaoGoodsBrief goods) {
 		String quanToken = "";
 		if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {// 閫氳繃绔嬪嵆鎺ㄥ箍鏂瑰紡鑾峰彇娣樺彛浠ゆ垚鍔�
-			quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(), goods.getCouponLink());
+			quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(),
+					goods.getCouponLink());
 		} else if (!StringUtil.isNullOrEmpty(goods.getAuctionUrl())) {
-			quanToken = convertLinkManager.createTaoBaoToken(uid,goods.getPictUrl(), goods.getTitle(), goods.getAuctionUrl());
+			quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(),
+					goods.getAuctionUrl());
 		}
 		return quanToken;
 	}
-	
+
 	@Override
 	public TaoBaoLink getTaoBaoLinkForBuy(Long uid, Long auctionId, int pidType) throws ShareGoodsException {
 
@@ -563,15 +599,51 @@
 		app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
 		app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
 		app.setPid(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
+
+		TaoBaoLink taoBaoLink = new TaoBaoLink();
+		taoBaoLink.setAuctionId(auctionId);
+
+		String baseUrl = taoBaoGoodsCacheUtil.getBaseConvertLink(auctionId, app.getPid());
+		if (!StringUtil.isNullOrEmpty(baseUrl)) {
+			taoBaoLink.setClickUrl(baseUrl);
+			taoBaoLink.setCouponLink(baseUrl);
+			return taoBaoLink;
+		}
+
+		// 鏌ヨ鏄惁涓哄ぇ娣樺鍟嗗搧
+
+		String link = null;
+		DaTaoKeDetailV2 v2 = daTaoKeGoodsDetailV2Service.selectByAuctionId(auctionId);
+		if (v2 != null) {
+			try {
+				TaoBaoGoodsBrief goods = redisManager.getTaoBaoGoodsBrief(auctionId);
+				if (goods != null) {
+					if (DaTaoKeUtil.canFilterCouponInfo(goods, v2)) {
+						link = DaTaoKeApiUtil.convertLink(auctionId, app.getPid());
+						if (!StringUtil.isNullOrEmpty(link)) {
+							taoBaoGoodsCacheUtil.cacheBaseConvertLink(auctionId, app.getPid(), link);
+
+						}
+					}
+				}
+			} catch (TaobaoGoodsDownException e) {
+				throw new ShareGoodsException(4, "鍟嗗搧ID涓嶈兘涓虹┖");
+			}
+		}
+
+		if (!StringUtil.isNullOrEmpty(link)) {
+			taoBaoLink.setCouponLink(link);
+			return taoBaoLink;
+		}
+
 		TaoBaoGoodsBrief goods = TaoKeApiUtil.specialConvertCoupon(auctionId, app);
 		if (goods == null) {
 			throw new ShareGoodsException(1, "");
 		}
 
-		TaoBaoLink taoBaoLink = new TaoBaoLink();
-		taoBaoLink.setAuctionId(auctionId);
 		taoBaoLink.setClickUrl(goods.getAuctionUrl());
 		taoBaoLink.setCouponLink(goods.getCouponLink());
+
 		if (!StringUtil.isNullOrEmpty(goods.getYsylClickUrl()))
 			taoBaoLink.setCouponLink(goods.getYsylClickUrl());
 		taoBaoLink.setGoods(goods);
@@ -636,6 +708,31 @@
 			goods.setCouponLink(taoBaoLink.getCouponLink());
 			goods.setAuctionUrl(taoBaoLink.getAuctionUrl());
 		}
+		
+		String link = taoBaoGoodsCacheUtil.getBaseConvertLink(auctionId, info.getPid());
+		if (link != null) {
+			goods.setCouponLink(link);
+		} else {// 缂撳瓨
+			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());
+				if (!StringUtil.isNullOrEmpty(link)) {
+					goods.setCouponLink(link);
+					taoBaoGoodsCacheUtil.cacheBaseConvertLink(auctionId, info.getPid(), link);
+				}
+			}
+			if (StringUtil.isNullOrEmpty(link)) {
+				TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCoupon(auctionId, info);
+				if (taoBaoLink == null) {
+					throw new ShareGoodsException(201, "鍟嗗搧杞摼澶辫触");
+				}
+				goods.setCouponLink(taoBaoLink.getCouponLink());
+				goods.setAuctionUrl(taoBaoLink.getAuctionUrl());
+			}
+		}
+		
+		
 
 		if (!StringUtil.isNullOrEmpty(relationId)) {
 			if (!StringUtil.isNullOrEmpty(goods.getAuctionUrl()))

--
Gitblit v1.8.0