From 51a4ff5d777028d52a19c314a99f796334cb7b51 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 23 十一月 2019 18:30:01 +0800
Subject: [PATCH] 配置文件修改

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java |  466 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 433 insertions(+), 33 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 dd3d4f5..06ef3ea 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
@@ -23,21 +23,34 @@
 import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
 import com.yeshi.fanli.dao.mybatis.UserShareGoodsHistoryMapper;
 import com.yeshi.fanli.dao.mybatis.share.PidUserMapper;
+import com.yeshi.fanli.dto.taobao.TaoLiJinDTO;
 import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
+import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinRecord;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.bus.user.UserMoneyExtra;
 import com.yeshi.fanli.entity.taobao.PidUser;
 import com.yeshi.fanli.entity.taobao.TBPid;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.entity.taobao.TaoBaoLink;
 import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
 import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
-import com.yeshi.fanli.exception.ShareGoodsException;
+import com.yeshi.fanli.entity.taobao.UserTLJBuyHistory;
+import com.yeshi.fanli.exception.share.ShareGoodsException;
+import com.yeshi.fanli.exception.taobao.TaoKeApiException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
+import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException;
+import com.yeshi.fanli.exception.tlj.UserTaoLiJinRecordException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
 import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
+import com.yeshi.fanli.service.inter.money.UserMoneyExtraService;
+import com.yeshi.fanli.service.inter.monitor.BusinessEmergent110Service;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+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.tlj.UserTaoLiJinRecordService;
 import com.yeshi.fanli.service.inter.user.TBPidService;
 import com.yeshi.fanli.service.inter.user.UserAccountService;
 import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
@@ -47,6 +60,8 @@
 import com.yeshi.fanli.util.ImageUtil;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TaoBaoConstant;
+import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 
@@ -86,6 +101,24 @@
 	@Resource
 	private UserShareGoodsRecordService userShareGoodsRecordService;
 
+	@Resource
+	private CommonGoodsService commonGoodsService;
+
+	@Resource
+	private UserMoneyExtraService userMoneyExtraService;
+
+	@Resource
+	private UserTaoLiJinRecordService userTaoLiJinRecordService;
+
+	@Resource
+	private UserTLJBuyHistoryService userTLJBuyHistoryService;
+
+	@Resource
+	private TLJBuyGoodsService tljBuyGoodsService;
+
+	@Resource
+	private BusinessEmergent110Service businessEmergent110Service;
+
 	@Override
 	public void addShareGoodsHistory(UserShareGoodsHistory history) {
 		UserShareGoodsHistory userShareGoodsHistory = userShareGoodsHistoryMapper
@@ -94,11 +127,10 @@
 			UserShareGoodsHistory update = new UserShareGoodsHistory();
 			update.setId(userShareGoodsHistory.getId());
 			userShareGoodsHistory.setTkCode(history.getTkCode());
+			userShareGoodsHistory.setCreateTime(new Date());
 			userShareGoodsHistoryMapper.updateByPrimaryKeySelective(userShareGoodsHistory);
 		} else
 			userShareGoodsHistoryMapper.insertSelective(history);
-
-		
 	}
 
 	@Override
@@ -131,12 +163,14 @@
 
 		// 娌℃湁鑾峰彇鍒拌浆杩囬摼鐨勫晢鍝佽鎯�
 		if (StringUtil.isNullOrEmpty(goods.getCouponLink()) && !goods.getAuctionUrl().contains("s.click.taobao.com")) {
-			TaoBaoLink taoBaoLink = TaoBaoUtil.getTbLinkForShare(auctionId, tbPid.getPid(), taoBaoUnionConfig);
+			TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCoupon(auctionId, info); // TaoBaoUtil.getTbLinkForShare(auctionId,
+																								// tbPid.getPid(),
+																								// taoBaoUnionConfig);
 			if (taoBaoLink == null) {
 				throw new ShareGoodsException(201, "杞摼澶辫触");
 			}
 			goods.setCouponLink(taoBaoLink.getCouponLink());
-			goods.setAuctionUrl(taoBaoLink.getClickUrl());
+			goods.setAuctionUrl(taoBaoLink.getAuctionUrl());
 		}
 		return addShareGoodsHistory(uid, goods);
 	}
@@ -170,10 +204,10 @@
 		}
 
 		UserShareGoodsHistory history = new UserShareGoodsHistory();
-		history.setTkCode(tbLink.getTaoToken());
+		history.setTkCode(TaoBaoUtil.filterTaoToken(tbLink.getTaoToken()));
 		history.setLink(tbLink.getClickUrl());
 		history.setQuanLink(tbLink.getCouponLink());
-		history.setTkCode(tbLink.getTaoToken());
+		history.setTkCode(TaoBaoUtil.filterTaoToken(tbLink.getTaoToken()));
 
 		history.setCreateTime(new Date());
 		history.setGoodsId(goods.getAuctionId());
@@ -212,7 +246,7 @@
 			// throw new ShareGoodsException(4, "鐢熸垚浜岀淮鐮佸け璐�");
 			// }
 			// 鑾峰彇鍒扮敤鎴风殑澶村儚
-			UserInfo user = userinfoMapper.selectByPrimaryKey(uid);
+			UserInfo user = userinfoMapper.selectAvailableByPrimaryKey(uid);
 			InputStream portrait = null;
 			if (!StringUtil.isNullOrEmpty(user.getPortrait())) {
 				try {
@@ -332,23 +366,23 @@
 
 			UserShareGoodsHistory history = new UserShareGoodsHistory();
 			history.setId(userShareGoodsHistory.getId());
-			history.setTkCode(tbLink.getTaoToken());
+			history.setTkCode(TaoBaoUtil.filterTaoToken(tbLink.getTaoToken()));
 			history.setLink(tbLink.getClickUrl());
 			history.setQuanLink(tbLink.getCouponLink());
-			history.setTkCode(tbLink.getTaoToken());
+			history.setTkCode(TaoBaoUtil.filterTaoToken(tbLink.getTaoToken()));
 			userShareGoodsHistoryMapper.updateByPrimaryKeySelective(history);
 
-			userShareGoodsHistory.setTkCode(tbLink.getTaoToken());
+			userShareGoodsHistory.setTkCode(TaoBaoUtil.filterTaoToken(tbLink.getTaoToken()));
 			userShareGoodsHistory.setLink(tbLink.getClickUrl());
 			userShareGoodsHistory.setQuanLink(tbLink.getCouponLink());
-			userShareGoodsHistory.setTkCode(tbLink.getTaoToken());
+			userShareGoodsHistory.setTkCode(TaoBaoUtil.filterTaoToken(tbLink.getTaoToken()));
 		}
 
 		return userShareGoodsHistory;
 	}
 
 	@Override
-	public TaoBaoLink getTaoBaoLinkForShare(Long uid, Long auctionId) throws ShareGoodsException {
+	public TaoBaoLink getTaoBaoLinkForShare(Long uid, Long auctionId, String relationId) throws ShareGoodsException {
 
 		if (uid == null || uid <= 0) {
 			throw new ShareGoodsException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
@@ -358,21 +392,34 @@
 			throw new ShareGoodsException(2, "鍟嗗搧ID涓嶈兘涓虹┖");
 		}
 
-		TBPid tbPid = tbPidService.getTBPid(uid, PidUser.TYPE_SHARE_GOODS);
-		if (tbPid == null) {
-			throw new ShareGoodsException(3, "鑾峰彇鎺ㄥ箍浣嶅け璐�");
-		}
-		String appId = tbPid.getPid().split("_")[2];
-		String adzoneId = tbPid.getPid().split("_")[3];
-		TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService.getConfigByAppIdCache(appId);
-
 		TaoKeAppInfo info = new TaoKeAppInfo();
-		info.setAdzoneId(adzoneId);
-		info.setAppKey(taoBaoUnionConfig.getAppKey());
-		info.setAppSecret(taoBaoUnionConfig.getAppSecret());
-		info.setPid(tbPid.getPid());
+
+		if (!StringUtil.isNullOrEmpty(relationId)) {
+			String pid = TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT;
+			String appId = pid.split("_")[2];
+			String adzoneId = pid.split("_")[3];
+			TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService.getConfigByAppIdCache(appId);
+			info.setAdzoneId(adzoneId);
+			info.setAppKey(taoBaoUnionConfig.getAppKey());
+			info.setAppSecret(taoBaoUnionConfig.getAppSecret());
+			info.setPid(pid);
+		} else {
+			TBPid tbPid = tbPidService.getTBPid(uid, PidUser.TYPE_SHARE_GOODS);
+			if (tbPid == null) {
+				throw new ShareGoodsException(3, "鑾峰彇鎺ㄥ箍浣嶅け璐�");
+			}
+			String appId = tbPid.getPid().split("_")[2];
+			TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService.getConfigByAppIdCache(appId);
+			String adzoneId = tbPid.getPid().split("_")[3];
+			info.setAdzoneId(adzoneId);
+			info.setAppKey(taoBaoUnionConfig.getAppKey());
+			info.setAppSecret(taoBaoUnionConfig.getAppSecret());
+			info.setPid(tbPid.getPid());
+		}
 		TaoBaoGoodsBrief goods = null;
 		try {
+			// 娴嬭瘯
+			// info.setAdzoneId("123");
 			goods = TaoKeApiUtil.searchGoodsDetail(auctionId, info);
 		} catch (TaobaoGoodsDownException e) {
 			throw new ShareGoodsException(4, "鍟嗗搧宸蹭笅鏋�");
@@ -383,13 +430,24 @@
 		}
 
 		if (StringUtil.isNullOrEmpty(goods.getCouponLink()) && !goods.getAuctionUrl().contains("s.click.taobao.com")) {
-			TaoBaoLink taoBaoLink = TaoBaoUtil.getTbLinkForShare(auctionId, tbPid.getPid(), taoBaoUnionConfig);
+			TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService
+					.getConfigByAppIdCache(info.getPid().split("_")[2]);
+			TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCoupon(auctionId, info);
 			if (taoBaoLink == null) {
 				throw new ShareGoodsException(201, "鍟嗗搧杞摼澶辫触");
 			}
 			goods.setCouponLink(taoBaoLink.getCouponLink());
-			goods.setAuctionUrl(taoBaoLink.getClickUrl());
+			goods.setAuctionUrl(taoBaoLink.getAuctionUrl());
 		}
+
+		if (!StringUtil.isNullOrEmpty(relationId)) {
+			if (!StringUtil.isNullOrEmpty(goods.getAuctionUrl()))
+				goods.setAuctionUrl(goods.getAuctionUrl() + "&relationId=" + relationId);
+			if (!StringUtil.isNullOrEmpty(goods.getCouponLink()))
+				goods.setCouponLink(goods.getCouponLink() + "&relationId=" + relationId);
+		}
+
+		// 淇濆瓨鍟嗗搧璇︽儏
 
 		// 鍒涘缓娣樺彛浠�
 		TaoBaoLink tbLink = new TaoBaoLink();
@@ -411,6 +469,10 @@
 
 		tbLink.setGoods(goods);
 
+		// 瀛樺偍鍒嗕韩鍟嗗搧鐨勪俊鎭紝鐢ㄤ簬鍔犲揩鍒嗕韩缃戦〉鎺ュ彛璇锋眰閫熷害
+		if (Constant.IS_OUTNET)
+			redisManager.saveTaoBaoGoodsBriefTemp(goods);
+
 		return tbLink;
 	}
 
@@ -429,33 +491,52 @@
 		if (tbPid == null) {
 			throw new ShareGoodsException(3, "鑾峰彇鎺ㄥ箍浣嶅け璐�");
 		}
-		String appId = tbPid.getPid().split("_")[2];
-		String adzoneId = tbPid.getPid().split("_")[3];
+		return getTaoBaoLink(uid, auctionId, tbPid.getPid());
+	}
+
+	@Override
+	public TaoBaoLink getTaoBaoLink(Long uid, Long auctionId, String pid) throws ShareGoodsException {
+
+		if (uid == null || uid <= 0) {
+			throw new ShareGoodsException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
+		}
+
+		if (auctionId == null || auctionId <= 0) {
+			throw new ShareGoodsException(2, "鍟嗗搧ID涓嶈兘涓虹┖");
+		}
+
+		if (StringUtil.isNullOrEmpty(pid)) {
+			throw new ShareGoodsException(3, "鏃犳帹骞夸綅");
+		}
+
+		String appId = pid.split("_")[2];
+		String adzoneId = pid.split("_")[3];
 		TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService.getConfigByAppIdCache(appId);
 
 		TaoKeAppInfo info = new TaoKeAppInfo();
 		info.setAdzoneId(adzoneId);
 		info.setAppKey(taoBaoUnionConfig.getAppKey());
 		info.setAppSecret(taoBaoUnionConfig.getAppSecret());
-		info.setPid(tbPid.getPid());
+		info.setPid(pid);
 		TaoBaoGoodsBrief goods = null;
 		try {
 			goods = TaoKeApiUtil.searchGoodsDetailForConvert(auctionId, info);
 		} catch (TaobaoGoodsDownException e) {
 			throw new ShareGoodsException(4, "鍟嗗搧宸蹭笅鏋�");
 		} finally {
+
 		}
 		if (goods == null) {
 			throw new ShareGoodsException(5, "鑾峰彇鍟嗗搧璇︽儏澶辫触");
 		}
 
 		if (StringUtil.isNullOrEmpty(goods.getCouponLink()) && !goods.getAuctionUrl().contains("s.click.taobao.com")) {
-			TaoBaoLink taoBaoLink = TaoBaoUtil.getTbLinkForShare(auctionId, tbPid.getPid(), taoBaoUnionConfig);
+			TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCoupon(auctionId, info);
 			if (taoBaoLink == null) {
 				throw new ShareGoodsException(201, "鍟嗗搧杞摼澶辫触");
 			}
 			goods.setCouponLink(taoBaoLink.getCouponLink());
-			goods.setAuctionUrl(taoBaoLink.getClickUrl());
+			goods.setAuctionUrl(taoBaoLink.getAuctionUrl());
 		}
 
 		// 鍒涘缓娣樺彛浠�
@@ -466,4 +547,323 @@
 		return tbLink;
 	}
 
+	@Override
+	public TaoBaoLink getTaoBaoLinkForBuyWithSpecial(Long uid, String specialId, Long auctionId)
+			throws ShareGoodsException {
+		if (uid == null || uid <= 0) {
+			throw new ShareGoodsException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
+		}
+
+		if (auctionId == null || auctionId <= 0) {
+			throw new ShareGoodsException(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);
+		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);
+		return taoBaoLink;
+	}
+
+	@Override
+	public UserShareGoodsHistory getShareGoodsHistory(Long uid, Long auctionId) {
+		return userShareGoodsHistoryMapper.selectByUidAndAuctionId(uid, auctionId);
+	}
+
+	@Override
+	public TaoBaoLink getTaoBaoLinkForShare(Long uid, Long auctionId, String relationId, String pid)
+			throws ShareGoodsException {
+		if (uid == null || uid <= 0) {
+			throw new ShareGoodsException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
+		}
+
+		if (auctionId == null || auctionId <= 0) {
+			throw new ShareGoodsException(2, "鍟嗗搧ID涓嶈兘涓虹┖");
+		}
+
+		TaoKeAppInfo info = new TaoKeAppInfo();
+
+		if (!StringUtil.isNullOrEmpty(relationId)) {
+			String appId = pid.split("_")[2];
+			String adzoneId = pid.split("_")[3];
+			TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService.getConfigByAppIdCache(appId);
+			info.setAdzoneId(adzoneId);
+			info.setAppKey(taoBaoUnionConfig.getAppKey());
+			info.setAppSecret(taoBaoUnionConfig.getAppSecret());
+			info.setPid(pid);
+		} else {
+			TBPid tbPid = tbPidService.getTBPid(uid, PidUser.TYPE_SHARE_GOODS);
+			if (tbPid == null) {
+				throw new ShareGoodsException(3, "鑾峰彇鎺ㄥ箍浣嶅け璐�");
+			}
+			String appId = tbPid.getPid().split("_")[2];
+			TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService.getConfigByAppIdCache(appId);
+			String adzoneId = tbPid.getPid().split("_")[3];
+			info.setAdzoneId(adzoneId);
+			info.setAppKey(taoBaoUnionConfig.getAppKey());
+			info.setAppSecret(taoBaoUnionConfig.getAppSecret());
+			info.setPid(tbPid.getPid());
+		}
+		TaoBaoGoodsBrief goods = null;
+		try {
+			goods = TaoKeApiUtil.searchGoodsDetail(auctionId, info);
+		} catch (TaobaoGoodsDownException e) {
+			throw new ShareGoodsException(4, "鍟嗗搧宸蹭笅鏋�");
+		} finally {
+		}
+		if (goods == null) {
+			throw new ShareGoodsException(5, "鑾峰彇鍟嗗搧璇︽儏澶辫触");
+		}
+
+		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());
+		}
+
+		if (!StringUtil.isNullOrEmpty(relationId)) {
+			if (!StringUtil.isNullOrEmpty(goods.getAuctionUrl()))
+				goods.setAuctionUrl(goods.getAuctionUrl() + "&relationId=" + relationId);
+			if (!StringUtil.isNullOrEmpty(goods.getCouponLink()))
+				goods.setCouponLink(goods.getCouponLink() + "&relationId=" + relationId);
+		}
+
+		// 淇濆瓨鍟嗗搧璇︽儏
+
+		// 鍒涘缓娣樺彛浠�
+		TaoBaoLink tbLink = new TaoBaoLink();
+		tbLink.setAuctionId(goods.getAuctionId());
+		tbLink.setClickUrl(goods.getAuctionUrl());
+		tbLink.setCouponLink(goods.getCouponLink());
+		if (!StringUtil.isNullOrEmpty(goods.getYsylClickUrl()))
+			tbLink.setCouponLink(goods.getYsylClickUrl());
+
+		if (!StringUtil.isNullOrEmpty(tbLink.getCouponLink())) {// 閫氳繃绔嬪嵆鎺ㄥ箍鏂瑰紡鑾峰彇娣樺彛浠ゆ垚鍔�
+			String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), tbLink.getCouponLink());
+			if (!StringUtil.isNullOrEmpty(quanToken)) {
+				tbLink.setTaoToken(quanToken);
+			}
+		} else if (!StringUtil.isNullOrEmpty(tbLink.getClickUrl())) {
+			String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), tbLink.getClickUrl());
+			if (!StringUtil.isNullOrEmpty(quanToken)) {
+				tbLink.setTaoToken(quanToken);
+			}
+		}
+
+		tbLink.setGoods(goods);
+
+		// 瀛樺偍鍒嗕韩鍟嗗搧鐨勪俊鎭紝鐢ㄤ簬鍔犲揩鍒嗕韩缃戦〉鎺ュ彛璇锋眰閫熷害
+		if (Constant.IS_OUTNET)
+			redisManager.saveTaoBaoGoodsBriefTemp(goods);
+
+		return tbLink;
+	}
+
+	@Override
+	public TaoBaoLink getTaoLiJinLinkForBuy(Long uid, String specialId, Long auctionId, String pid)
+			throws ShareGoodsException {
+		if (uid == null || uid <= 0) {
+			throw new ShareGoodsException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
+		}
+
+		if (auctionId == null || auctionId <= 0) {
+			throw new ShareGoodsException(2, "鍟嗗搧ID涓嶈兘涓虹┖");
+		}
+
+		// 鐢ㄦ埛鍓╀綑鍙互娣樼ぜ閲戦獙璇�
+		UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid);
+		if (userMoneyExtra == null || userMoneyExtra.getTlj() == null) {
+			throw new ShareGoodsException(101, "绾㈠寘浣欓涓嶈冻");
+		}
+
+		TaoKeAppInfo app = new TaoKeAppInfo();
+		app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
+		app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+		if (pid == null)
+			app.setPid(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
+		else
+			app.setPid(pid);
+		TaoBaoGoodsBrief goods = TaoKeApiUtil.specialConvertCoupon(auctionId, app);
+		if (goods == null) {
+			throw new ShareGoodsException(1, "");
+		}
+
+		String taoLiJinLink = null;
+		try {
+			goods.setAuctionId(auctionId);
+			UserTaoLiJinRecord createUserTaoLiJin = userTaoLiJinRecordService.createSelfBuyTaoLiJin(uid, 1, goods);
+			taoLiJinLink = createUserTaoLiJin.getSendUrl();
+		} catch (UserTaoLiJinRecordException e) {
+			throw new ShareGoodsException(e.getCode(), e.getMsg());
+		}
+
+		TaoBaoLink taoBaoLink = new TaoBaoLink();
+		taoBaoLink.setAuctionId(auctionId);
+		taoBaoLink.setClickUrl(goods.getAuctionUrl());
+		taoBaoLink.setCouponLink(taoLiJinLink);
+		taoBaoLink.setGoods(goods);
+
+		return taoBaoLink;
+	}
+
+	@Override
+	public TaoBaoLink getTaoLiJinLinkForShare(Long uid, Long auctionId, String relationId) throws ShareGoodsException {
+
+		if (uid == null || uid <= 0) {
+			throw new ShareGoodsException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
+		}
+
+		if (auctionId == null || auctionId <= 0) {
+			throw new ShareGoodsException(2, "鍟嗗搧ID涓嶈兘涓虹┖");
+		}
+
+		TaoKeAppInfo info = new TaoKeAppInfo();
+
+		if (!StringUtil.isNullOrEmpty(relationId)) {
+			String pid = TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT;
+			String appId = pid.split("_")[2];
+			String adzoneId = pid.split("_")[3];
+			TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService.getConfigByAppIdCache(appId);
+			info.setAdzoneId(adzoneId);
+			info.setAppKey(taoBaoUnionConfig.getAppKey());
+			info.setAppSecret(taoBaoUnionConfig.getAppSecret());
+			info.setPid(pid);
+		} else {
+			TBPid tbPid = tbPidService.getTBPid(uid, PidUser.TYPE_SHARE_GOODS);
+			if (tbPid == null) {
+				throw new ShareGoodsException(3, "鑾峰彇鎺ㄥ箍浣嶅け璐�");
+			}
+			String appId = tbPid.getPid().split("_")[2];
+			TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService.getConfigByAppIdCache(appId);
+			String adzoneId = tbPid.getPid().split("_")[3];
+			info.setAdzoneId(adzoneId);
+			info.setAppKey(taoBaoUnionConfig.getAppKey());
+			info.setAppSecret(taoBaoUnionConfig.getAppSecret());
+			info.setPid(tbPid.getPid());
+		}
+		TaoBaoGoodsBrief goods = null;
+		try {
+			goods = TaoKeApiUtil.searchGoodsDetail(auctionId, info);
+		} catch (TaobaoGoodsDownException e) {
+			throw new ShareGoodsException(4, "鍟嗗搧宸蹭笅鏋�");
+		} finally {
+		}
+		if (goods == null) {
+			throw new ShareGoodsException(5, "鑾峰彇鍟嗗搧璇︽儏澶辫触");
+		}
+
+		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);
+			if (taoBaoLink == null) {
+				throw new ShareGoodsException(201, "鍟嗗搧杞摼澶辫触");
+			}
+			goods.setCouponLink(taoBaoLink.getCouponLink());
+			goods.setAuctionUrl(taoBaoLink.getAuctionUrl());
+		}
+
+		if (!StringUtil.isNullOrEmpty(relationId)) {
+			if (!StringUtil.isNullOrEmpty(goods.getAuctionUrl()))
+				goods.setAuctionUrl(goods.getAuctionUrl() + "&relationId=" + relationId);
+			if (!StringUtil.isNullOrEmpty(goods.getCouponLink()))
+				goods.setCouponLink(goods.getCouponLink() + "&relationId=" + relationId);
+		}
+
+		// 鍒涘缓娣樺彛浠�
+		TaoBaoLink tbLink = new TaoBaoLink();
+		tbLink.setAuctionId(goods.getAuctionId());
+		tbLink.setClickUrl(goods.getAuctionUrl());
+		tbLink.setCouponLink(goods.getCouponLink());
+		tbLink.setGoods(goods);
+
+		// 瀛樺偍鍒嗕韩鍟嗗搧鐨勪俊鎭紝鐢ㄤ簬鍔犲揩鍒嗕韩缃戦〉鎺ュ彛璇锋眰閫熷害
+		if (Constant.IS_OUTNET)
+			redisManager.saveTaoBaoGoodsBriefTemp(goods);
+
+		return tbLink;
+	}
+
+	@Override
+	public TaoBaoLink getTaoLiJinLinkForBuyWithOutFanLi(Long uid, Long auctionId, TaoKeAppInfo app)
+			throws ShareGoodsException, TaoLiJinCreateException {
+		if (uid == null || uid <= 0) {
+			throw new ShareGoodsException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
+		}
+
+		if (auctionId == null || auctionId <= 0) {
+			throw new ShareGoodsException(2, "鍟嗗搧ID涓嶈兘涓虹┖");
+		}
+
+		boolean canBuy = userTLJBuyHistoryService.canBuy(uid, auctionId);
+		if (!canBuy) {
+			throw new ShareGoodsException(3, "绔嬪噺绾㈠寘宸叉姠鍏夛紝璇风◢鍚庡啀璇�");
+		}
+
+		long currentTime = System.currentTimeMillis();
+		Date sendEndTime = new Date(TimeUtil.convertToTimeTemp(
+				TimeUtil.getGernalTime(currentTime + 1000 * 60 * 60 * 24L, "yyyy-MM-dd"), "yyyy-MM-dd"));
+		TaoBaoGoodsBrief goods = null;
+		try {
+			goods = TaoKeApiUtil.searchGoodsDetail(auctionId);
+		} catch (TaobaoGoodsDownException e) {
+			throw new ShareGoodsException(4, "鍟嗗搧宸蹭笅鏋�");
+		}
+
+		BigDecimal perface = TaoBaoUtil.getGoodsHongBaoMoney(goods, new BigDecimal(70));
+		TaoLiJinDTO taoLiJinDTO = null;
+		try {
+			taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, "鑷喘绔嬪噺", perface, 1,
+					new Date(currentTime - 1000 * 60 * 10L), sendEndTime, new Date(currentTime - 1000 * 60 * 10L),
+					sendEndTime, app);
+		} catch (TaoLiJinCreateException e1) {
+			if (e1.getCode() == TaoLiJinCreateException.CODE_TLJ_NO_MONEY) {// 璧勯噾涓嶈冻
+				TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppKeyCache(app.getAppKey());
+				businessEmergent110Service.tljNoMoney(config.getAccount());
+			} else if (e1.getCode() == TaoLiJinCreateException.CODE_TLJ_FORBIDDEN) {// 鍟嗗搧涓嶅厑璁稿垱寤烘窐绀奸噾
+				tljBuyGoodsService.removeGoods(auctionId);
+			}
+			LogHelper.errorDetailInfo(e1, e1.getMessage(), null);
+		} catch (TaoKeApiException e) {
+			LogHelper.errorDetailInfo(e, e.getMessage(), null);
+			throw new ShareGoodsException(5, "鐢熸垚鎺ㄥ箍閾炬帴澶辫触");
+		}
+
+		if (taoLiJinDTO == null)
+			throw new ShareGoodsException(5, "鐢熸垚鎺ㄥ箍閾炬帴澶辫触");
+
+		// 鍑忓幓鍓╀綑涓暟(闅忔満鍑忓幓8鍒�10涓�)
+		tljBuyGoodsService.subHongBaoLeftCount(auctionId, TimeUtil.getGernalTime(currentTime, "yyyy-MM-dd"),
+				8 + (int) (3 * Math.random()));
+
+		// 鎻掑叆璁板綍
+		try {
+			userTLJBuyHistoryService.addHistory(new UserTLJBuyHistory(null, uid, auctionId,
+					TimeUtil.getGernalTime(currentTime, "yyyy-MM-dd"), taoLiJinDTO.getRightsId(), new Date()));
+		} catch (Exception e) {
+			LogHelper.errorDetailInfo(e);
+		}
+
+		TaoBaoLink taoBaoLink = new TaoBaoLink();
+		taoBaoLink.setAuctionId(auctionId);
+		taoBaoLink.setClickUrl(goods.getAuctionUrl());
+		taoBaoLink.setCouponLink(taoLiJinDTO.getSendUrl());
+		taoBaoLink.setGoods(goods);
+		return taoBaoLink;
+	}
 }

--
Gitblit v1.8.0