From d28bed1a1275131a5ca37f7da37961e2b518ac07 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 26 八月 2019 13:44:00 +0800
Subject: [PATCH] 淘礼金创建异常处理

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java |  128 +++++++++++++++++++++++++++++++-----------
 1 files changed, 94 insertions(+), 34 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java
index 184b22f..55b62f9 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java
@@ -148,7 +148,7 @@
 		if (uid == null) {
 			throw new UserTaoLiJinOriginException(1, "鍙傛暟涓嶈兘涓虹┖");
 		}
-		String value = configTaoLiJinService.getValueByKey("hongbao_newbies");
+		String value = configTaoLiJinService.getValueByKey("hongbao_newbies",null);
 		if (StringUtil.isNullOrEmpty(value)) {
 			throw new UserTaoLiJinOriginException(1, "绯荤粺绾㈠寘涓嶅瓨鍦�");
 		}
@@ -207,7 +207,7 @@
 			throw new UserTaoLiJinOriginException(2, "鐢ㄦ埛绛夌骇涓嶈冻");
 		}
 		
-		String value = configTaoLiJinService.getValueByKey(key);
+		String value = configTaoLiJinService.getValueByKey(key,null);
 		if (StringUtil.isNullOrEmpty(value)) {
 			throw new UserTaoLiJinOriginException(1, "绯荤粺绾㈠寘涓嶅瓨鍦�");
 		}
@@ -246,7 +246,7 @@
 			throw new UserTaoLiJinOriginException(1, "鍙傛暟涓嶈兘涓虹┖");
 		}
 		
-		String value = configTaoLiJinService.getValueByKey("hongbao_invite");
+		String value = configTaoLiJinService.getValueByKey("hongbao_invite",null);
 		if (StringUtil.isNullOrEmpty(value)) {
 			throw new UserTaoLiJinOriginException(1, "绯荤粺绾㈠寘涓嶅瓨鍦�");
 		}
@@ -285,7 +285,7 @@
 			throw new UserTaoLiJinOriginException(1, "鐢ㄦ埛鏈櫥褰�");
 		}
 		
-		String value = configTaoLiJinService.getValueByKey("hongbao_share");
+		String value = configTaoLiJinService.getValueByKey("hongbao_share",null);
 		if (StringUtil.isNullOrEmpty(value)) {
 			throw new UserTaoLiJinOriginException(1, "绯荤粺绾㈠寘涓嶅瓨鍦�");
 		}
@@ -404,35 +404,58 @@
 
 	@Override
 	public void overdueHongBao(Long uid) {
-		// 15澶╁墠杩囨湡
-		Date date = null;
+		if (uid == null) {
+			return;
+		}
+		
+		// 15澶╁墠杩囨湡- 闈炵瓑绾х孩鍖�
 		try {
-			date = DateUtil.reduceDay(15, new Date());
+			Date date = DateUtil.reduceDay(14, new Date());
+			List<UserTaoLiJinOrigin> list = userTaoLiJinOriginMapper.getOverdueTaoLiJin(uid, date);
+			executeOverdueHongBao(uid, date, list);
 		} catch (ParseException e) {
 			e.printStackTrace();
 		}
 		
-		if (date == null) {
-			return;
+		// 30澶╁墠杩囨湡 - 绛夌骇绾㈠寘
+		try {
+			Date date = DateUtil.reduceDay(29, new Date());
+			List<UserTaoLiJinOrigin> list = userTaoLiJinOriginMapper.getOverdueTaoLiJinByRank(uid, date);
+			executeOverdueHongBao(uid, date, list);
+		} catch (ParseException e) {
+			e.printStackTrace();
 		}
-		
-		List<UserTaoLiJinOrigin> list = userTaoLiJinOriginMapper.getOverdueTaoLiJin(uid, date);
+	}
+
+	
+	public void executeOverdueHongBao(Long uid, Date date, List<UserTaoLiJinOrigin> list) {
 		if (list == null || list.size() == 0) {
 			return;
 		}
-		
+
 		BigDecimal total = new BigDecimal(0);
-		for (UserTaoLiJinOrigin userTaoLiJinOrigin: list) {
+		for (UserTaoLiJinOrigin userTaoLiJinOrigin : list) {
+			SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH.mm");
+			String time = sd.format(userTaoLiJinOrigin.getCreateTime());
+
+			BigDecimal moneySurplus = userTaoLiJinOrigin.getMoneySurplus();
+			total = MoneyBigDecimalUtil.add(total, moneySurplus);
+
+			String rightsId = null;
+			boolean refund = false;
+			TaoLiJinOriginEnum originEnum = userTaoLiJinOrigin.getOrigin();
+			if (TaoLiJinOriginEnum.refund.equals(originEnum)) {
+				refund = true;
+				rightsId = userTaoLiJinOrigin.getRightsId();
+			}
+
 			UserTaoLiJinOrigin origin = new UserTaoLiJinOrigin();
 			origin.setId(userTaoLiJinOrigin.getId());
 			origin.setMoneySurplus(new BigDecimal(0));
 			origin.setUpdateTime(new Date());
 			userTaoLiJinOriginMapper.updateByPrimaryKeySelective(origin);
-			
-			SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd hh.mm");
-			String time = sd.format(userTaoLiJinOrigin.getCreateTime());
-			if (origin.getOrigin().equals(TaoLiJinOriginEnum.refund)) {
-				String rightsId = userTaoLiJinOrigin.getRightsId();
+
+			if (refund) {
 				UserTaoLiJinReport report = userTaoLiJinReportService.selectByPrimaryKey(rightsId);
 				Date shareTime = null;
 				if (report == null) {
@@ -440,42 +463,39 @@
 				} else {
 					shareTime = report.getCreateTime();
 				}
-				
+
 				// 娑堟伅
 				MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
 				content.setState("绾㈠寘鏀跺洖");
-				content.setSource("浜嶽"+ sd.format(shareTime) + "]鍒涘缓鐨勫垎浜湭琚鍙栭儴鍒�");
+				content.setSource("浜嶽" + sd.format(shareTime) + "]鍒涘缓鐨勫垎浜湭琚鍙栭儴鍒�");
 				content.setTimeDesc("閫�鍥炰簬" + time);
-				content.setMoney(userTaoLiJinOrigin.getMoneySurplus());
+				content.setMoney(moneySurplus);
 				content.setReason("鏈瑪閫�鍥炴帹骞跨孩鍖呬粠閫�鍥炴棩璧疯嚦浠婂苟鏈骇鐢熷垎浜褰�");
 				content.setResult("闀挎湡鏈娇鐢ㄦ敹鍥�");
 				userOtherMsgNotificationService.taoLiJinMsg(uid, "濡傛湁鐤戦棶璇疯仈绯讳汉宸ュ鏈�", content);
-				
+
 			} else {
 				// 娑堟伅
 				MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
 				content.setState("绾㈠寘鏀跺洖");
-				content.setSource(origin.getOrigin().getDesc());
+				content.setSource(originEnum.getDesc());
 				content.setTimeDesc("鑾峰緱浜�" + time);
-				content.setMoney(userTaoLiJinOrigin.getMoneySurplus());
+				content.setMoney(moneySurplus);
 				content.setReason("鏈瑪鎺ㄥ箍绾㈠寘浠庤幏寰楁棩璧疯嚦浠婂苟鏈骇鐢熷垎浜褰�");
 				content.setResult("闀挎湡鏈娇鐢ㄦ敹鍥�");
 				userOtherMsgNotificationService.taoLiJinMsg(uid, "濡傛湁鐤戦棶璇疯仈绯讳汉宸ュ鏈�", content);
 			}
-			
-			
-			total = MoneyBigDecimalUtil.add(total, userTaoLiJinOrigin.getMoneySurplus());
 		}
-		
+
 		// 鐢ㄦ埛鍓╀綑娣樼ぜ閲�
 		UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid);
 		if (userMoneyExtra == null || userMoneyExtra.getTlj() == null) {
 			return;
 		}
-		
+
 		UserMoneyExtra updateExtra = new UserMoneyExtra();
 		updateExtra.setUid(uid);
-		
+
 		BigDecimal tljSelf = userMoneyExtra.getTljSelf();
 		if (tljSelf != null && tljSelf.compareTo(new BigDecimal(0)) > 0) { // 鍓╀綑娣樼ぜ閲�-- 鑷喘
 			BigDecimal sub = MoneyBigDecimalUtil.sub(tljSelf, total);
@@ -484,12 +504,11 @@
 			} else {
 				updateExtra.setTljSelf(new BigDecimal(0));
 			}
-		} 
+		}
 		updateExtra.setTlj(MoneyBigDecimalUtil.sub(userMoneyExtra.getTlj(), total));
 		updateExtra.setUpdateTime(new Date());
 		userMoneyExtraService.updateByPrimaryKeySelective(updateExtra);
-		
-		
+
 		// 鎻掑叆鏄庣粏
 		UserTaoLiJinDetail detail = new UserTaoLiJinDetail();
 		detail.setUid(uid);
@@ -499,10 +518,51 @@
 		detail.setCreateTime(new Date());
 		userTaoLiJinDetailService.insertSelective(detail);
 	}
-
+	
+	
 	@Override
 	public List<UserTaoLiJinOrigin> getSurplusLiJin(long uid) {
 		return userTaoLiJinOriginMapper.getSurplusLiJin(uid);
 	}
 	
+	
+	@Override
+	@Transactional
+	public void addInviteWinMoneyByHand(Long uid, String inviteName, Date date) throws UserTaoLiJinOriginException {
+		if (uid == null || StringUtil.isNullOrEmpty(inviteName)) {
+			throw new UserTaoLiJinOriginException(1, "鍙傛暟涓嶈兘涓虹┖");
+		}
+		
+		String value = configTaoLiJinService.getValueByKey("hongbao_invite",null);
+		if (StringUtil.isNullOrEmpty(value)) {
+			throw new UserTaoLiJinOriginException(1, "绯荤粺绾㈠寘涓嶅瓨鍦�");
+		}
+		BigDecimal money = new BigDecimal(value);
+		
+		// 娣诲姞鐢ㄦ埛绾㈠寘
+		userMoneyExtraService.addTaoLiJin(uid, money, false);
+
+		// 娣诲姞鏂板璁板綍
+		UserTaoLiJinOrigin taoLiJinOrigin = new UserTaoLiJinOrigin();
+		taoLiJinOrigin.setUid(uid);
+		taoLiJinOrigin.setType(1);
+		taoLiJinOrigin.setOrigin(TaoLiJinOriginEnum.inviteWin);
+		taoLiJinOrigin.setMoney(money);
+		taoLiJinOrigin.setMoneySurplus(money);
+		taoLiJinOrigin.setCreateTime(date);
+		taoLiJinOrigin.setUpdateTime(date);
+		taoLiJinOrigin.setRemark(TaoLiJinOriginEnum.inviteWin.getDesc());
+		userTaoLiJinOriginMapper.insertSelective(taoLiJinOrigin);
+		
+		// 鏄庣粏
+		UserTaoLiJinDetail detail = new UserTaoLiJinDetail();
+		detail.setUid(uid);
+		detail.setMoney(money);
+		detail.setType(TaoLiJinDetailTypeEnum.add);
+		detail.setTitle(TaoLiJinDetailTypeEnum.add.getDesc());
+		detail.setDescInfo("鏉ユ簮锛�" + TaoLiJinOriginEnum.inviteWin.getDesc());
+		detail.setCreateTime(date);
+		userTaoLiJinDetailService.insertSelective(detail);
+	}
+	
 }

--
Gitblit v1.8.0