From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 18 一月 2020 12:06:27 +0800
Subject: [PATCH] 用户注册信息

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinRecordServiceImpl.java |  133 +++++++++++++++++++++----------------------
 1 files changed, 65 insertions(+), 68 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 673415e..4d5ac54 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
@@ -27,15 +27,18 @@
 import com.yeshi.fanli.entity.bus.user.TokenRecord.TokenTypeEnum;
 import com.yeshi.fanli.entity.bus.user.UserMoneyExtra;
 import com.yeshi.fanli.entity.goods.CommonGoods;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
 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.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.hongbao.HongBaoManageService;
+import com.yeshi.fanli.service.inter.money.UserMoneyExtraService;
 import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
 import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoBuyRelationMapService;
 import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
@@ -45,9 +48,8 @@
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinReportService;
 import com.yeshi.fanli.service.inter.user.TokenRecordService;
-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.service.inter.user.tb.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.RedisManager;
@@ -55,6 +57,7 @@
 import com.yeshi.fanli.util.TaoBaoConstant;
 import com.yeshi.fanli.util.TokenUtil;
 import com.yeshi.fanli.util.factory.CommonGoodsFactory;
+import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 import com.yeshi.fanli.util.taobao.TaoLiJinUtil;
 import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
@@ -68,7 +71,7 @@
 
 	@Resource
 	private RedisManager redisManager;
-	
+
 	@Resource
 	private ConfigService configService;
 
@@ -110,23 +113,21 @@
 
 	@Resource
 	private ShareHotGoodsService shareHotGoodsService;
-	
+
 	@Resource
 	private TokenRecordService tokenRecordService;
-	
+
 	@Resource
 	private UserTaoLiJinGiveRecordService userTaoLiJinGiveRecordService;
-	
-	
+
 	@Override
 	public UserTaoLiJinRecord selectByPrimaryKey(Long id) {
 		return userTaoLiJinRecordMapper.selectByPrimaryKey(id);
 	}
 
-	
-	@Transactional
+	@Transactional(rollbackFor=Exception.class)
 	@Override
-	public UserTaoLiJinRecord createSelfBuyTaoLiJin(Long uid, int totalNum, TaoBaoGoodsBrief goods)
+	public UserTaoLiJinRecord createSelfBuyTaoLiJin(Long uid, BigDecimal couplePrice, TaoBaoGoodsBrief goods)
 			throws UserTaoLiJinRecordException {
 		Date date = new Date();
 		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
@@ -148,10 +149,8 @@
 		} catch (ParseException e2) {
 			e2.printStackTrace();
 		}
-		// 鏂颁汉绾㈠寘 鑷喘涓�鍏�
-		BigDecimal perface = new BigDecimal(1);
 
-		if (goods.getMaterialLibType() == null || goods.getMaterialLibType() == 0) {// 闈炶繑鍒╁簱鍟嗗搧
+		if (!TaoBaoUtil.isSpecialGoods(goods.getMaterialLibType())) {// 闈炶繑鍒╁簱鍟嗗搧
 			String relationId = null;
 			try {
 				relationId = taoBaoBuyRelationMapService.getRelationId(uid);
@@ -162,22 +161,22 @@
 			if (StringUtil.isNullOrEmpty(relationId)) {
 				throw new UserTaoLiJinRecordException(101, "娓犻亾鏈妗�");
 			}
-			UserTaoLiJinRecord record = createUserTaoLiJin(1, uid, goods.getAuctionId(), perface, 1, name,
+			UserTaoLiJinRecord record = createUserTaoLiJin(1, uid, goods.getAuctionId(), couplePrice, 1, name,
 					sendStartTime, sendEndTime, null, useEndTime, TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID);
 			record.setSendUrl(record.getSendUrl() + "&relationId=" + relationId);
-			UserTaoLiJinRecord updateRecoed=new UserTaoLiJinRecord();
+			UserTaoLiJinRecord updateRecoed = new UserTaoLiJinRecord();
 			updateRecoed.setId(record.getId());
 			updateRecoed.setSendUrl(record.getSendUrl());
 			userTaoLiJinRecordMapper.updateByPrimaryKeySelective(record);
 			return record;
 		} else {// 杩斿埄搴撳晢鍝�
-			return createUserTaoLiJin(1, uid, goods.getAuctionId(), perface, 1, name, sendStartTime, sendEndTime, null,
+			return createUserTaoLiJin(1, uid, goods.getAuctionId(), couplePrice, 1, name, sendStartTime, sendEndTime, null,
 					useEndTime, TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
 		}
 
 	}
 
-	@Transactional
+	@Transactional(rollbackFor=Exception.class)
 	@Override
 	public UserTaoLiJinRecord createShareTaoLiJin(Long uid, int totalNum, TaoBaoGoodsBrief goods)
 			throws UserTaoLiJinRecordException {
@@ -220,7 +219,7 @@
 			perface = new BigDecimal(1);
 		} else {
 			// 璁$畻鎺ㄥ箍绾㈠寘
-			String warningRate = configTaoLiJinService.getValueByKey("warning_value",new Date());
+			String warningRate = configTaoLiJinService.getValueByKey("warning_value", new Date());
 			perface = TaoLiJinUtil.getSpreadMoney(warningRate, goods);
 		}
 
@@ -228,7 +227,7 @@
 				sendStartTime, sendEndTime, null, useEndTime, TaoBaoConstant.TAOBAO_TLJ_RELATION_PID_DEFAULT);
 		String sendUrl = record.getSendUrl() + "&relationId=" + relationId;
 		record.setSendUrl(sendUrl);
-		UserTaoLiJinRecord updateRecoed=new UserTaoLiJinRecord();
+		UserTaoLiJinRecord updateRecoed = new UserTaoLiJinRecord();
 		updateRecoed.setId(record.getId());
 		updateRecoed.setSendUrl(sendUrl);
 		userTaoLiJinRecordMapper.updateByPrimaryKeySelective(record);
@@ -236,7 +235,7 @@
 	}
 
 	@Override
-	@Transactional
+	@Transactional(rollbackFor=Exception.class)
 	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 {
@@ -249,45 +248,46 @@
 
 		// 杩囨湡 -鍙栨秷鏀跺洖
 		// userTaoLiJinOriginService.overdueHongBao(uid);
-		
+
 		// 鎬绘帹骞跨孩鍖�
 		BigDecimal totalMoney = MoneyBigDecimalUtil.mul(perface, new BigDecimal(totalNum));
-		
+
 		// 鑷喘鏃剁殑绾㈠寘浣欓
 		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 = 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) {
+			taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime, sendEndTime,
+					useStartTime, useEndTime,
+					new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET, pid));
+		} catch (TaoLiJinCreateException e) {
 			LogHelper.errorDetailInfo(e);
 			executor.execute(new Runnable() {
 				@Override
 				public void run() {
-					if (e.getCode() == TaoKeApiException.CODE_TLJ_FORBIDDEN) {
+					if (e.getCode() == TaoLiJinCreateException.CODE_TLJ_FORBIDDEN) {
 						// 璇ュ晢鍝佷笉鏀寔鍒涘缓娣樼ぜ閲戠孩鍖�
 						shareHotGoodsService.deleteByGoodsId(auctionId);
-					} else if (e.getCode() == TaoKeApiException.CODE_TLJ_NO_MONEY) {
-						// 瀹樻柟鐜╂硶閽卞寘浣欓涓嶈冻  TODO
+					} else if (e.getCode() == TaoLiJinCreateException.CODE_TLJ_NO_MONEY) {
+						// 瀹樻柟鐜╂硶閽卞寘浣欓涓嶈冻 TODO
 					}
 				}
 			});
+		} catch (TaoKeApiException e1) {
 		}
-		
+
 		if (taoLiJinDTO == null) {
 			throw new UserTaoLiJinRecordException(101, "娣樺疂API鎺ㄥ箍绾㈠寘鍒涘缓澶辫触");
 		}
@@ -306,21 +306,21 @@
 		record.setRightsId(taoLiJinDTO.getRightsId());
 		record.setSendUrl(taoLiJinDTO.getSendUrl());
 		record.setCreateTime(new Date());
-		if (origin == 1) { //  鑷喘
+		if (origin == 1) { // 鑷喘
 			record.setUseType(1);
-		} else { //  鍒嗕韩
+		} 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);
@@ -384,17 +384,15 @@
 				} catch (Exception e) {
 					LogHelper.errorDetailInfo(e);
 				}
-				
-				
-				if (origin == 1) { 
-					return; //  鑷喘涓嶆帹閫佹秷鎭�
+
+				if (origin == 1) {
+					return; // 鑷喘涓嶆帹閫佹秷鎭�
 				}
-				
-				
+
 				// 浣跨敤鎴愬姛娑堟伅
 				try {
 					String beizhu = "鏈棰嗗彇鎴栭鍙栧悗鏈娇鐢ㄩ儴鍒嗛��鍥�";
-					SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH.mm");
+					SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH:mm");
 					String time = sd.format(new Date());
 					MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
 					content.setState("绾㈠寘鎵i櫎");
@@ -476,7 +474,8 @@
 			BigDecimal commission = userTaoLiJinRecordVO.getCommission();
 			if (commission != null && commission.compareTo(shareMoney) > 0) {
 				BigDecimal shareRate = hongBaoManageService.getShareRate();
-				shareMoney = MoneyBigDecimalUtil.mul(commission, MoneyBigDecimalUtil.div(shareRate, new BigDecimal(100)));
+				shareMoney = MoneyBigDecimalUtil.mul(commission,
+						MoneyBigDecimalUtil.div(shareRate, new BigDecimal(100)));
 				shareMoney = BigDecimalUtil.getWithNoZera(shareMoney);
 			}
 
@@ -498,8 +497,7 @@
 	public long countShareRecordByUid(Long uid) {
 		return userTaoLiJinRecordMapper.countShareRecordByUid(uid);
 	}
-	
-	
+
 	@Override
 	public long countTodayNum(Long uid) {
 		return userTaoLiJinRecordMapper.countTodayNum(uid);
@@ -514,25 +512,25 @@
 	public UserTaoLiJinRecord getByRightsId(String rightsId) {
 		return userTaoLiJinRecordMapper.getByRightsId(rightsId);
 	}
-	
+
 	@Override
-	public String giveTaolijin(Long uid, BigDecimal amount) throws UserTaoLiJinRecordException{
-		if (uid == null || amount == null) 
-			throw new UserTaoLiJinRecordException(1,"鍙傛暟涓嶆纭�");
-		
+	public String giveTaolijin(Long uid, BigDecimal amount) throws UserTaoLiJinRecordException {
+		if (uid == null || amount == null)
+			throw new UserTaoLiJinRecordException(1, "鍙傛暟涓嶆纭�");
+
 		String giveMin = configTaoLiJinService.getValueByKey("give_min_amount");
 		if (amount.compareTo(new BigDecimal(giveMin)) < 0)
-			throw new UserTaoLiJinRecordException(1,"璧犻�佹帹骞跨孩鍖呴噾棰濊嚦灏�" + giveMin + "鍏�");
-		
+			throw new UserTaoLiJinRecordException(1, "璧犻�佹帹骞跨孩鍖呴噾棰濊嚦灏�" + giveMin + "鍏�");
+
 		// 鐢ㄦ埛鍓╀綑鍙互娣樼ぜ閲戦獙璇�
 		UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid);
 		if (userMoneyExtra == null || userMoneyExtra.getTlj() == null)
 			throw new UserTaoLiJinRecordException(1, "绾㈠寘浣欓涓嶈冻");
-		
+
 		BigDecimal tlj = userMoneyExtra.getTlj();
 		if (amount.compareTo(tlj) > 0)
 			throw new UserTaoLiJinRecordException(1, "绾㈠寘浣欓涓嶈冻");
-		
+
 		Date nowDate = new Date();
 		// 璧犻�佽褰�
 		UserTaoLiJinGiveRecord giveRecord = new UserTaoLiJinGiveRecord();
@@ -542,7 +540,7 @@
 		giveRecord.setGiveTime(nowDate);
 		giveRecord.setEndTime(DateUtil.plusDayDate(Constant.GIVE_DAYS, new Date()));
 		userTaoLiJinGiveRecordService.insertSelective(giveRecord);
-		
+
 		// 鍙d护璁板綍
 		TokenRecord tokenRecord = new TokenRecord();
 		tokenRecord.setUid(uid);
@@ -552,27 +550,27 @@
 		tokenRecord.setEndTime(DateUtil.plusDayDate(Constant.TOKEN_DAYS, new Date()));
 		tokenRecord.setState(0);
 		tokenRecordService.insertSelective(tokenRecord);
-		
+
 		// 鍒涘缓鍙d护
 		String token = TokenUtil.createToken(tokenRecord.getId());
 		tokenRecord.setToken(token);
 		tokenRecordService.updateByPrimaryKeySelective(tokenRecord);
-		
+
 		// 鏇存柊浣欓
 		UserMoneyExtra updateExtra = new UserMoneyExtra();
 		updateExtra.setUid(uid);
 		updateExtra.setTlj(MoneyBigDecimalUtil.sub(tlj, amount));
 		updateExtra.setUpdateTime(new Date());
 		userMoneyExtraService.updateByPrimaryKeySelective(updateExtra);
-		
+
 		String tips = configTaoLiJinService.getValueByKey("give_taolijin_tips");
 		String projectChineseName = Constant.systemCommonConfig.getProjectChineseName();
-		while(tips.contains("{APP鍚嶇О}")) {
+		while (tips.contains("{APP鍚嶇О}")) {
 			tips = tips.replace("{APP鍚嶇О}", projectChineseName);
 		}
-		tips = tips.replace("{鍙d护}", token).replace("{涓嬭浇閾炬帴}", configService.get("app_down_link"))
-				.replace("{闈㈤}", amount.setScale(0).toString());
-		
+		tips = tips.replace("{鍙d护}", token).replace("{涓嬭浇閾炬帴}", configService.get(ConfigKeyEnum.appDownLink.getKey())).replace("{闈㈤}",
+				amount.setScale(0).toString());
+
 		executor.execute(new Runnable() {
 			@Override
 			public void run() {
@@ -622,9 +620,8 @@
 				}
 			}
 		});
-		
+
 		return tips;
 	}
-	
 
 }

--
Gitblit v1.8.0