From fec21610e3a2574a4d474a738bc76081a59ef27e Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 26 六月 2019 12:06:24 +0800
Subject: [PATCH] 淘礼金分享路径修改

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinRecordServiceImpl.java |  101 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 66 insertions(+), 35 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinRecordServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinRecordServiceImpl.java
index 37fb8a0..e1c1ed7 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinRecordServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinRecordServiceImpl.java
@@ -29,15 +29,18 @@
 import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
 import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoBuyRelationMapService;
 import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinReportService;
+import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.service.inter.user.UserMoneyExtraService;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.RedisManager;
+import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TaoBaoConstant;
 import com.yeshi.fanli.util.factory.CommonGoodsFactory;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@@ -84,6 +87,12 @@
 	@Resource
 	private UserInfoExtraService userInfoExtraService;
 
+	@Resource
+	private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
+
+	@Resource
+	private TaoBaoBuyRelationMapService taoBaoBuyRelationMapService;
+
 	@Override
 	public UserTaoLiJinRecord selectByPrimaryKey(Long id) {
 		return userTaoLiJinRecordMapper.selectByPrimaryKey(id);
@@ -115,16 +124,35 @@
 		// 鏂颁汉绾㈠寘 鑷喘涓�鍏�
 		BigDecimal perface = new BigDecimal(1);
 
-		String pid = TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT;
-		if (goods.getMaterialLibType() == null || goods.getMaterialLibType() == 0)
-			pid = TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID;
-		return createUserTaoLiJin(1, uid, goods.getAuctionId(), perface, 1, name, sendStartTime, sendEndTime, null,
-				useEndTime, pid);
+		if (goods.getMaterialLibType() == null || goods.getMaterialLibType() == 0) {// 闈炶繑鍒╁簱鍟嗗搧
+			String relationId = null;
+			try {
+				relationId = taoBaoBuyRelationMapService.getRelationId(uid);
+			} catch (Exception e) {
+				LogHelper.errorDetailInfo(e, "uid:" + uid, null);
+			}
+
+			if (StringUtil.isNullOrEmpty(relationId)) {
+				throw new UserTaoLiJinRecordException(101, "娓犻亾鏈妗�");
+			}
+			UserTaoLiJinRecord record = createUserTaoLiJin(1, uid, goods.getAuctionId(), perface, 1, name,
+					sendStartTime, sendEndTime, null, useEndTime, TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID);
+			record.setSendUrl(record.getSendUrl() + "&relationId=" + relationId);
+			return record;
+		} else {// 杩斿埄搴撳晢鍝�
+			return createUserTaoLiJin(1, uid, goods.getAuctionId(), perface, 1, name, sendStartTime, sendEndTime, null,
+					useEndTime, TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
+		}
+
 	}
 
 	@Override
 	public UserTaoLiJinRecord createShareTaoLiJin(Long uid, int totalNum, TaoBaoGoodsBrief goods)
 			throws UserTaoLiJinRecordException {
+		String relationId = userExtraTaoBaoInfoService.getRelationIdByUid(uid);
+		if (StringUtil.isNullOrEmpty(relationId))
+			throw new UserTaoLiJinRecordException(101, "娓犻亾鏈巿鏉�");
+
 		Date date = new Date();
 		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 		SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -164,37 +192,42 @@
 			perface = TaoLiJinUtil.getSpreadMoney(warningRate, goods);
 		}
 
-		return createUserTaoLiJin(2, uid, goods.getAuctionId(), perface, totalNum, name, sendStartTime, sendEndTime,
-				null, useEndTime, TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT);
+		UserTaoLiJinRecord record = createUserTaoLiJin(2, uid, goods.getAuctionId(), perface, totalNum, name,
+				sendStartTime, sendEndTime, null, useEndTime, TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT);
+		String sendUrl = record.getSendUrl() + "&relationId=" + relationId;
+		record.setSendUrl(sendUrl);
+		return record;
 	}
 
 	@Override
 	@Transactional
-	public UserTaoLiJinRecord createUserTaoLiJin(int origin, Long uid, Long auctionId, BigDecimal perface, int totalNum, String name,
-			Date sendStartTime, Date sendEndTime, Date useStartTime, Date useEndTime,String pid) throws UserTaoLiJinRecordException{
-		
+	public UserTaoLiJinRecord createUserTaoLiJin(int origin, Long uid, Long auctionId, BigDecimal perface, int totalNum,
+			String name, Date sendStartTime, Date sendEndTime, Date useStartTime, Date useEndTime, String pid)
+			throws UserTaoLiJinRecordException {
+
 		// 鐢ㄦ埛鍓╀綑鍙互娣樼ぜ閲戦獙璇�
 		UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid);
 		if (userMoneyExtra == null || userMoneyExtra.getTlj() == null) {
 			throw new UserTaoLiJinRecordException(101, "绾㈠寘浣欓涓嶈冻");
 		}
-		
+
 		// 杩囨湡
 		userTaoLiJinOriginService.overdueHongBao(uid);
-				
+
 		BigDecimal tlj = userMoneyExtra.getTlj();
 		BigDecimal totalMoney = MoneyBigDecimalUtil.mul(perface, new BigDecimal(totalNum));
 		if (totalMoney.compareTo(tlj) > 0) {
 			throw new UserTaoLiJinRecordException(101, "绾㈠寘浣欓涓嶈冻");
 		}
-		
+
 		// 鍒涘缓娣樼ぜ閲戠孩鍖�
-		TaoLiJinDTO taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime, sendEndTime, useStartTime, useEndTime, pid);
+		TaoLiJinDTO taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime,
+				sendEndTime, useStartTime, useEndTime, pid);
 		if (taoLiJinDTO == null) {
 			throw new UserTaoLiJinRecordException(101, "绾㈠寘鍒涘缓澶辫触");
 		}
-		
-		//  淇濆瓨璁板綍
+
+		// 淇濆瓨璁板綍
 		UserTaoLiJinRecord record = new UserTaoLiJinRecord();
 		record.setUid(uid);
 		record.setGoodsId(auctionId);
@@ -209,7 +242,7 @@
 		record.setSendUrl(taoLiJinDTO.getSendUrl());
 		record.setCreateTime(new Date());
 		userTaoLiJinRecordMapper.insertSelective(record);
-		
+
 		// 鍓╀綑娣樼ぜ閲�
 		BigDecimal surplusTlj = MoneyBigDecimalUtil.sub(tlj, totalMoney);
 		UserMoneyExtra updateExtra = new UserMoneyExtra();
@@ -217,9 +250,9 @@
 		updateExtra.setTlj(surplusTlj);
 		updateExtra.setUpdateTime(new Date());
 		userMoneyExtraService.updateByPrimaryKeySelective(updateExtra);
-		
+
 		record.setSurplusMoney(surplusTlj);
-		
+
 		// 寮傛
 		String rightsId = taoLiJinDTO.getRightsId();
 		executor.execute(new Runnable() {
@@ -237,30 +270,29 @@
 				} catch (Exception e) {
 					LogHelper.errorDetailInfo(e);
 				}
-				
-				
+
 				// 鎴愬姛浣跨敤绾㈠寘
 				try {
 					BigDecimal total = totalMoney;
 					BigDecimal lastMoney = null;
 					BigDecimal zero = new BigDecimal(0);
-					
+
 					// 淇敼浣欓
 					List<UserTaoLiJinOrigin> list = userTaoLiJinOriginService.getSurplusLiJin(uid);
 					if (list != null && list.size() > 0) {
-						for (UserTaoLiJinOrigin taoLiJinOrigin: list) {
-							if (total.compareTo(zero) < 1 ) {
+						for (UserTaoLiJinOrigin taoLiJinOrigin : list) {
+							if (total.compareTo(zero) < 1) {
 								break;
 							}
 							BigDecimal moneySurplus = taoLiJinOrigin.getMoneySurplus();
 							lastMoney = total;
 							total = MoneyBigDecimalUtil.sub(total, moneySurplus);
-							if (total.compareTo(zero) >= 0 ) {
+							if (total.compareTo(zero) >= 0) {
 								moneySurplus = zero;
 							} else {
 								moneySurplus = MoneyBigDecimalUtil.sub(moneySurplus, lastMoney);
 							}
-							
+
 							UserTaoLiJinOrigin usertlj = new UserTaoLiJinOrigin();
 							usertlj.setId(taoLiJinOrigin.getId());
 							usertlj.setMoneySurplus(moneySurplus);
@@ -271,35 +303,34 @@
 				} catch (Exception e) {
 					LogHelper.errorDetailInfo(e);
 				}
-				
-				
-				
+
 				// 浣跨敤鎴愬姛娑堟伅
 				try {
 					String beizhu = "鏈棰嗗彇/浣跨敤鐨勯儴鍒嗗皢浼氶��鍥�";
-					
+
 					SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd hh.mm");
 					String time = sd.format(new Date());
 					MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
 					content.setState("绾㈠寘鎵i櫎");
 					content.setSource(time + " 鍒涘缓鐨勫垎浜褰�");
 					content.setMoney(totalMoney);
-					
+
 					userOtherMsgNotificationService.taoLiJinMsg(uid, beizhu, content);
 				} catch (Exception e) {
 					LogHelper.errorDetailInfo(e);
 				}
-				
+
 				// 鍒涘缓鎶ュ憡
 				try {
 					userTaoLiJinReportService.insertDefault(rightsId);
 				} catch (Exception e) {
 					LogHelper.errorDetailInfo(e);
 				}
-				
+
 				// 妫�娴嬪晢鍝佹槸鍚﹀瓨鍦�
 				try {
-					CommonGoods commonGoods = commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(auctionId, CommonGoods.GOODS_TYPE_TB);
+					CommonGoods commonGoods = commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(auctionId,
+							CommonGoods.GOODS_TYPE_TB);
 					if (commonGoods == null) {
 						TaoBaoGoodsBrief taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
 						if (taoBaoGoodsBrief != null) {
@@ -311,7 +342,7 @@
 				}
 			}
 		});
-		
+
 		return record;
 	}
 

--
Gitblit v1.8.0