From 744594ef1a2f530fc3e86ea9dc48b62247f79420 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 19 五月 2020 17:13:23 +0800
Subject: [PATCH] 饿了么绘图,添加口碑

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDebtServiceImpl.java |  128 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 113 insertions(+), 15 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..678f1f8 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,29 +2,38 @@
 
 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;
 import com.yeshi.fanli.entity.money.UserMoneyDebtReturnHistory;
 import com.yeshi.fanli.entity.money.UserMoneyDetail;
+import com.yeshi.fanli.entity.order.CommonOrder;
+import com.yeshi.fanli.entity.order.HongBaoOrder;
 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.CommonOrderService;
+import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
+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
@@ -46,6 +55,9 @@
 	private HongBaoV2Service hongBaoV2Service;
 
 	@Resource
+	private HongBaoOrderService hongBaoOrderService;
+
+	@Resource
 	private UserMoneyService userMoneyService;
 
 	@Resource
@@ -53,6 +65,12 @@
 
 	@Resource
 	private UserInfoService userInfoService;
+
+	@Resource
+	private AlipayAccountValidNormalHistoryMapper alipayAccountValidNormalHistoryMapper;
+
+	@Resource
+	private CommonOrderService commonOrderService;
 
 	@Override
 	public void addUserMoneyDebt(UserMoneyDebt debt) throws UserMoneyDebtException {
@@ -74,7 +92,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 +104,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 +161,25 @@
 				}
 
 				// 鏂扮増閫氱煡
-				userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(), money,
-						userInfoService.getMyHB(uid));
+				List<CommonOrder> orderList = commonOrderService.listBySourceTypeAndOrderId(Constant.SOURCE_TYPE_TAOBAO,
+						weiQuanDrawBack.getOrderId());
+				int goodsCount = 0;
+				for (CommonOrder co : orderList) {
+					if (co.getState() != CommonOrder.STATE_SX)
+						goodsCount += co.getCount();
+				}
+
+				BigDecimal fanliMoney = new BigDecimal(0);
+				List<HongBaoOrder> hongBaoOrderList = hongBaoOrderService
+						.listDetailByOrderIdAndSourceType(weiQuanDrawBack.getOrderId(), Constant.SOURCE_TYPE_TAOBAO);
+
+				for (HongBaoOrder hongBaoOrder : hongBaoOrderList) {
+					fanliMoney = fanliMoney.add(hongBaoOrder.getHongBaoV2().getMoney());
+				}
+
+				userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(),
+						Constant.SOURCE_TYPE_TAOBAO, money, fanliMoney, goodsCount,
+						orderList.get(0).getThirdCreateTime());
 
 				break;
 			case HongBaoV2.TYPE_SHARE_GOODS:
@@ -155,8 +190,26 @@
 							weiQuanDrawBack, money);
 					userMoneyService.subUserMoney(uid, money, userMoneyDetail);
 
-					userMoneyMsgNotificationService.shareOrderWeiQuan(debt.getUid(), weiQuanDrawBack.getOrderId(),
-							money, userInfoService.getMyHB(uid));
+					// 鏂扮増閫氱煡
+					List<CommonOrder> orderList1 = commonOrderService
+							.listBySourceTypeAndOrderId(Constant.SOURCE_TYPE_TAOBAO, weiQuanDrawBack.getOrderId());
+					int goodsCount1 = 0;
+					for (CommonOrder co : orderList1) {
+						if (co.getState() != CommonOrder.STATE_SX)
+							goodsCount1 += co.getCount();
+					}
+
+					BigDecimal fanliMoney1 = new BigDecimal(0);
+					List<HongBaoOrder> hongBaoOrderList1 = hongBaoOrderService.listDetailByOrderIdAndSourceType(
+							weiQuanDrawBack.getOrderId(), Constant.SOURCE_TYPE_TAOBAO);
+
+					for (HongBaoOrder hongBaoOrder : hongBaoOrderList1) {
+						fanliMoney1 = fanliMoney1.add(hongBaoOrder.getHongBaoV2().getMoney());
+					}
+
+					userMoneyMsgNotificationService.shareOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(),
+							Constant.SOURCE_TYPE_TAOBAO, money, fanliMoney1, goodsCount1,
+							orderList1.get(0).getThirdCreateTime());
 
 				} catch (UserMoneyDetailException e) {
 					throw new UserMoneyDebtException(12, "鎻掑叆璧勯噾璇︽儏鍑洪敊");
@@ -176,14 +229,59 @@
 					throw new UserMoneyDebtException(12, "鎻掑叆璧勯噾璇︽儏鍑洪敊");
 				}
 
-				// 鏂扮増閫氱煡
-				userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(), money,
-						userInfoService.getMyHB(uid));
 				break;
-
 			}
+		} else if (debt.getType() == UserMoneyDebtTypeEnum.extractVerify) {// 鎻愮幇楠岃瘉
+			// 鏂扮増璧勯噾璁板綍
+			AlipayAccountValidNormalHistory aliPayAccountHistory = alipayAccountValidNormalHistoryMapper
+					.selectByPrimaryKey(debt.getSourceId());
 
+			AlipayAccountValidNormalHistory first = alipayAccountValidNormalHistoryMapper
+					.selectLatestByUid(aliPayAccountHistory.getUid());
+
+			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, "1涓湀",
+					first.getId().longValue() != aliPayAccountHistory.getId());
 		}
 	}
 
+	@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