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/money/UserMoneyDebtServiceImpl.java |   64 +++++++++++++++++++++++++++++---
 1 files changed, 58 insertions(+), 6 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDebtServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDebtServiceImpl.java
index bc53c80..0d8b40b 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDebtServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDebtServiceImpl.java
@@ -2,14 +2,17 @@
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 import javax.annotation.Resource;
 
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import com.yeshi.fanli.dao.mybatis.AlipayAccountValidNormalHistoryMapper;
 import com.yeshi.fanli.dao.mybatis.money.UserMoneyDebtMapper;
 import com.yeshi.fanli.dao.mybatis.money.UserMoneyDebtReturnHistoryMapper;
+import com.yeshi.fanli.entity.bus.user.AlipayAccountValidNormalHistory;
 import com.yeshi.fanli.entity.bus.user.HongBaoV2;
 import com.yeshi.fanli.entity.money.UserMoneyDebt;
 import com.yeshi.fanli.entity.money.UserMoneyDebt.UserMoneyDebtTypeEnum;
@@ -18,6 +21,7 @@
 import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack;
 import com.yeshi.fanli.exception.money.UserMoneyDebtException;
 import com.yeshi.fanli.exception.money.UserMoneyDetailException;
+import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
 import com.yeshi.fanli.service.inter.money.UserMoneyDebtService;
 import com.yeshi.fanli.service.inter.msg.UserMoneyMsgNotificationService;
@@ -25,6 +29,7 @@
 import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanDrawBackService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
 import com.yeshi.fanli.service.inter.user.UserMoneyService;
+import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
 
 @Service
@@ -53,6 +58,9 @@
 
 	@Resource
 	private UserInfoService userInfoService;
+
+	@Resource
+	private AlipayAccountValidNormalHistoryMapper alipayAccountValidNormalHistoryMapper;
 
 	@Override
 	public void addUserMoneyDebt(UserMoneyDebt debt) throws UserMoneyDebtException {
@@ -143,8 +151,8 @@
 				}
 
 				// 鏂扮増閫氱煡
-				userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(), money,
-						userInfoService.getMyHB(uid));
+				userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(),
+						Constant.SOURCE_TYPE_TAOBAO, money, userInfoService.getBalance(uid));
 
 				break;
 			case HongBaoV2.TYPE_SHARE_GOODS:
@@ -156,7 +164,7 @@
 					userMoneyService.subUserMoney(uid, money, userMoneyDetail);
 
 					userMoneyMsgNotificationService.shareOrderWeiQuan(debt.getUid(), weiQuanDrawBack.getOrderId(),
-							money, userInfoService.getMyHB(uid));
+							Constant.SOURCE_TYPE_TAOBAO, money, userInfoService.getBalance(uid));
 
 				} catch (UserMoneyDetailException e) {
 					throw new UserMoneyDebtException(12, "鎻掑叆璧勯噾璇︽儏鍑洪敊");
@@ -177,13 +185,57 @@
 				}
 
 				// 鏂扮増閫氱煡
-				userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(), money,
-						userInfoService.getMyHB(uid));
+				userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(),
+						Constant.SOURCE_TYPE_TAOBAO, money, userInfoService.getBalance(uid));
 				break;
-
+			}
+		} else if (debt.getType() == UserMoneyDebtTypeEnum.extractVerify) {// 鎻愮幇楠岃瘉
+			// 鏂扮増璧勯噾璁板綍
+			AlipayAccountValidNormalHistory aliPayAccountHistory = alipayAccountValidNormalHistoryMapper
+					.selectByPrimaryKey(debt.getSourceId());
+			if (aliPayAccountHistory == null)
+				return;
+			try {
+				UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createExtractAccountValid(aliPayAccountHistory,
+						money);
+				userMoneyService.subUserMoney(aliPayAccountHistory.getUid(), money, userMoneyDetail);
+			} catch (UserMoneyDetailException e) {
+				throw new UserMoneyDebtException(12, "鎻掑叆璧勯噾璇︽儏鍑洪敊");
 			}
 
+			userMoneyMsgNotificationService.alipayAccountValid(aliPayAccountHistory);
 		}
 	}
 
+	@Transactional
+	@Override
+	public void repayDebt(Long uid) {
+		// 鏌ヨ鏄惁鏈夋瑺鍊�
+		List<UserMoneyDebt> list = userMoneyDebtMapper.listByUidWithHasLeftMoney(uid, 0, 50);
+		if (list != null && list.size() > 0) {// 鏈夋瑺鍊�
+			for (UserMoneyDebt debt : list) {
+				BigDecimal leftMoney = userInfoService.getBalance(uid);
+				if (leftMoney.compareTo(debt.getLeftMoney()) >= 0) {// 鏈夎冻澶熺殑璧勯噾鍋胯繕鍊哄姟
+					try {
+						repayDebt(debt, debt.getLeftMoney());
+					} catch (UserMoneyDebtException e) {
+						try {
+							LogHelper.errorDetailInfo(e, "uid:" + uid + " debtId:" + debt.getId(), null);
+						} catch (Exception e1) {
+							e1.printStackTrace();
+						}
+					}
+				}
+			}
+		}
+	}
+
+	@Override
+	public boolean isHaveDebtToRepay(Long uid) {
+		List<UserMoneyDebt> debtList = userMoneyDebtMapper.listByUidWithHasLeftMoney(uid, 0, 1);
+		if (debtList != null && debtList.size() > 0)
+			return true;
+		return false;
+	}
+
 }

--
Gitblit v1.8.0