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