From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 30 七月 2019 09:07:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinRecordServiceImpl.java |  102 +++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 78 insertions(+), 24 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 07b8e9f..71152cc 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
@@ -24,11 +24,14 @@
 import com.yeshi.fanli.entity.bus.user.UserMoneyExtra;
 import com.yeshi.fanli.entity.goods.CommonGoods;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
+import com.yeshi.fanli.exception.taobao.TaoKeApiException;
 import com.yeshi.fanli.exception.tlj.UserTaoLiJinRecordException;
 import com.yeshi.fanli.log.LogHelper;
 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.ShareHotGoodsService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoBuyRelationMapService;
 import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService;
@@ -93,6 +96,9 @@
 	@Resource
 	private TaoBaoBuyRelationMapService taoBaoBuyRelationMapService;
 
+	@Resource
+	private ShareHotGoodsService shareHotGoodsService;
+	
 	@Override
 	public UserTaoLiJinRecord selectByPrimaryKey(Long id) {
 		return userTaoLiJinRecordMapper.selectByPrimaryKey(id);
@@ -222,20 +228,49 @@
 			throw new UserTaoLiJinRecordException(101, "绾㈠寘浣欓涓嶈冻");
 		}
 
-		// 杩囨湡
-		userTaoLiJinOriginService.overdueHongBao(uid);
-
-		BigDecimal tlj = userMoneyExtra.getTlj();
+		// 杩囨湡 -鍙栨秷鏀跺洖
+		// userTaoLiJinOriginService.overdueHongBao(uid);
+		
+		// 鎬绘帹骞跨孩鍖�
 		BigDecimal totalMoney = MoneyBigDecimalUtil.mul(perface, new BigDecimal(totalNum));
-		if (totalMoney.compareTo(tlj) > 0) {
-			throw new UserTaoLiJinRecordException(101, "绾㈠寘浣欓涓嶈冻");
+		
+		// 鑷喘鏃剁殑绾㈠寘浣欓
+		if (origin == 1) {
+			BigDecimal tljSelf = userMoneyExtra.getTljSelf();
+			if (tljSelf == null || tljSelf.compareTo(totalMoney) < 0) {
+				throw new UserTaoLiJinRecordException(101, "鑷喘绾㈠寘浣欓涓嶈冻");
+			}
+		} 
+		
+		// 鍒嗕韩鏃剁殑绾㈠寘浣欓
+		BigDecimal tlj = userMoneyExtra.getTlj();
+		if (tlj == null || tlj.compareTo(totalMoney) < 0) {
+			throw new UserTaoLiJinRecordException(101, "鍒嗕韩绾㈠寘浣欓涓嶈冻");
 		}
+		
 
 		// 鍒涘缓娣樼ぜ閲戠孩鍖�
-		TaoLiJinDTO taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime,
-				sendEndTime, useStartTime, useEndTime, pid);
+		TaoLiJinDTO taoLiJinDTO = null;
+		try {
+			taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime,
+					sendEndTime, useStartTime, useEndTime,	new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET, pid));
+		} catch (TaoKeApiException e) {
+			LogHelper.errorDetailInfo(e);
+			executor.execute(new Runnable() {
+				@Override
+				public void run() {
+					if (e.getCode() == TaoKeApiException.CODE_TLJ_FORBIDDEN) {
+						// 璇ュ晢鍝佷笉鏀寔鍒涘缓娣樼ぜ閲戠孩鍖�
+						shareHotGoodsService.deleteByGoodsId(auctionId);
+					} else if (e.getCode() == TaoKeApiException.CODE_TLJ_NO_MONEY) {
+						// 瀹樻柟鐜╂硶閽卞寘浣欓涓嶈冻  TODO
+					}
+				}
+			});
+		}
+		
 		if (taoLiJinDTO == null) {
-			throw new UserTaoLiJinRecordException(101, "绾㈠寘鍒涘缓澶辫触");
+			throw new UserTaoLiJinRecordException(101, "娣樺疂API鎺ㄥ箍绾㈠寘鍒涘缓澶辫触");
 		}
 
 		// 淇濆瓨璁板綍
@@ -252,12 +287,21 @@
 		record.setRightsId(taoLiJinDTO.getRightsId());
 		record.setSendUrl(taoLiJinDTO.getSendUrl());
 		record.setCreateTime(new Date());
+		if (origin == 1) { //  鑷喘
+			record.setUseType(1);
+		} else { //  鍒嗕韩
+			record.setUseType(2);
+		}
+		
 		userTaoLiJinRecordMapper.insertSelective(record);
 
-		// 鍓╀綑娣樼ぜ閲�
-		BigDecimal surplusTlj = MoneyBigDecimalUtil.sub(tlj, totalMoney);
+		BigDecimal surplusTlj = MoneyBigDecimalUtil.sub(tlj, totalMoney); 
+		
 		UserMoneyExtra updateExtra = new UserMoneyExtra();
 		updateExtra.setUid(uid);
+		if (origin == 1) { // 鍓╀綑娣樼ぜ閲�-- 鑷喘
+			updateExtra.setTljSelf(MoneyBigDecimalUtil.sub(userMoneyExtra.getTljSelf(), totalMoney));
+		} 
 		updateExtra.setTlj(surplusTlj);
 		updateExtra.setUpdateTime(new Date());
 		userMoneyExtraService.updateByPrimaryKeySelective(updateExtra);
@@ -315,11 +359,23 @@
 					LogHelper.errorDetailInfo(e);
 				}
 
+				// 鍒涘缓鎶ュ憡
+				try {
+					userTaoLiJinReportService.insertDefault(rightsId);
+				} catch (Exception e) {
+					LogHelper.errorDetailInfo(e);
+				}
+				
+				
+				if (origin == 1) { 
+					return; //  鑷喘涓嶆帹閫佹秷鎭�
+				}
+				
+				
 				// 浣跨敤鎴愬姛娑堟伅
 				try {
-					String beizhu = "鏈棰嗗彇/浣跨敤鐨勯儴鍒嗗皢浼氶��鍥�";
-
-					SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd hh.mm");
+					String beizhu = "鏈棰嗗彇鎴栭鍙栧悗鏈娇鐢ㄩ儴鍒嗛��鍥�";
+					SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH.mm");
 					String time = sd.format(new Date());
 					MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
 					content.setState("绾㈠寘鎵i櫎");
@@ -327,13 +383,6 @@
 					content.setMoney(totalMoney);
 
 					userOtherMsgNotificationService.taoLiJinMsg(uid, beizhu, content);
-				} catch (Exception e) {
-					LogHelper.errorDetailInfo(e);
-				}
-
-				// 鍒涘缓鎶ュ憡
-				try {
-					userTaoLiJinReportService.insertDefault(rightsId);
 				} catch (Exception e) {
 					LogHelper.errorDetailInfo(e);
 				}
@@ -406,10 +455,9 @@
 			// 璁$畻鍒嗕韩濂栭噾
 			BigDecimal shareMoney = new BigDecimal(0);
 			BigDecimal commission = userTaoLiJinRecordVO.getCommission();
-			if (commission != null && commission.compareTo(shareMoney) > 1) {
+			if (commission != null && commission.compareTo(shareMoney) > 0) {
 				BigDecimal shareRate = hongBaoManageService.getShareRate();
-				shareMoney = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(commission, new BigDecimal("0.01")),
-						MoneyBigDecimalUtil.div(shareRate, new BigDecimal(100)));
+				shareMoney = MoneyBigDecimalUtil.mul(commission, MoneyBigDecimalUtil.div(shareRate, new BigDecimal(100)));
 				shareMoney = BigDecimalUtil.getWithNoZera(shareMoney);
 			}
 
@@ -428,6 +476,12 @@
 	}
 
 	@Override
+	public long countShareRecordByUid(Long uid) {
+		return userTaoLiJinRecordMapper.countShareRecordByUid(uid);
+	}
+	
+	
+	@Override
 	public long countTodayNum(Long uid) {
 		return userTaoLiJinRecordMapper.countTodayNum(uid);
 	}

--
Gitblit v1.8.0