From 0ec22dcf4fd9c4496e6f681e7fab89f56c6e4e8a Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期四, 02 四月 2020 14:45:20 +0800
Subject: [PATCH] vip 消息

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDebtServiceImpl.java |   78 ++++++++++++++++++++++++++++++++------
 1 files changed, 65 insertions(+), 13 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..86130d4 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,13 +21,15 @@
 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.service.inter.hongbao.HongBaoV2Service;
+import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.money.UserMoneyDebtService;
-import com.yeshi.fanli.service.inter.msg.UserMoneyMsgNotificationService;
-import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
-import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanDrawBackService;
+import com.yeshi.fanli.service.inter.money.UserMoneyService;
+import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService;
+import com.yeshi.fanli.service.inter.money.tb.TaoBaoWeiQuanDrawBackService;
+import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
+import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService;
 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
@@ -54,6 +59,9 @@
 	@Resource
 	private UserInfoService userInfoService;
 
+	@Resource
+	private AlipayAccountValidNormalHistoryMapper alipayAccountValidNormalHistoryMapper;
+
 	@Override
 	public void addUserMoneyDebt(UserMoneyDebt debt) throws UserMoneyDebtException {
 		if (debt == null)
@@ -74,7 +82,7 @@
 			UserMoneyDebt old = userMoneyDebtMapper.selectByUidAndTypeAndSourceId(debt.getUid(), debt.getType(),
 					debt.getSourceId());
 			if (old != null) {
-				throw new UserMoneyDebtException(3, "瀵瑰簲缁存潈宸茬粡瀛樺湪");
+				throw new UserMoneyDebtException(3, "瀵瑰簲鍞悗宸茬粡瀛樺湪");
 			}
 			userMoneyDebtMapper.insertSelective(debt);
 		}
@@ -86,7 +94,7 @@
 		return userMoneyDebtMapper.selectByTypeAndSourceId(type, sourceId);
 	}
 
-	@Transactional
+	@Transactional(rollbackFor=Exception.class)
 	@Override
 	public void repayDebt(UserMoneyDebt debt, BigDecimal money) throws UserMoneyDebtException {
 		if (debt == null || debt.getId() == null)
@@ -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(rollbackFor=Exception.class)
+	@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