From 353ac53e5e8093e36c69fbaa7b26160bb2d97f9d Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期三, 15 四月 2020 16:09:24 +0800
Subject: [PATCH] 消息订阅

---
 fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java |   36 ++++++++++++++++++++++--------------
 1 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java b/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java
index 37062e4..fc7a5e5 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java
@@ -16,7 +16,6 @@
 import com.yeshi.fanli.entity.bus.user.ThreeSale;
 import com.yeshi.fanli.entity.bus.user.vip.TeamUserLevelStatistic;
 import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
-import com.yeshi.fanli.entity.money.UserMoneyDetail;
 import com.yeshi.fanli.entity.order.CommonOrder;
 import com.yeshi.fanli.entity.order.dividents.TeamDividentsDebt;
 import com.yeshi.fanli.entity.order.dividents.TeamDividentsRecord;
@@ -24,6 +23,7 @@
 import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceUser;
 import com.yeshi.fanli.exception.ParamsException;
 import com.yeshi.fanli.exception.money.TeamDividentsDebtException;
+import com.yeshi.fanli.exception.money.TeamEincomeRecordException;
 import com.yeshi.fanli.exception.money.UserMoneyDetailException;
 import com.yeshi.fanli.exception.order.dividents.TeamDividentsRecordException;
 import com.yeshi.fanli.exception.order.dividents.TeamDividentsSourceOrderException;
@@ -35,10 +35,10 @@
 import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceUserService;
 import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
 import com.yeshi.fanli.service.inter.user.vip.TeamUserLevelStatisticService;
+import com.yeshi.fanli.service.manger.money.TeamEincomeManager;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.TimeUtil;
-import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
 import com.yeshi.fanli.util.factory.order.dividents.TeamDividentsSourceOrderFactory;
 import com.yeshi.fanli.util.user.UserLevelUtil;
 
@@ -74,19 +74,25 @@
 	@Resource
 	private HongBaoManageService hongBaoManageService;
 
+	@Resource
+	private TeamEincomeManager teamEincomeManager;
+
 	@Transactional(rollbackFor = Exception.class)
 	public void addDividentsSourceOrder(List<CommonOrder> commonOrderList) throws TeamDividentsSourceOrderException {
+		if (commonOrderList.get(0).getThirdCreateTime().getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME)
+			return;
+
 		UserLevelEnum level = UserLevelUtil.getByOrderRank(commonOrderList.get(0).getUrank());
 		if (level == null)
 			level = UserLevelEnum.daRen;
 		BigDecimal rate = getSourceOrderDividentsRate(level);
 		TeamDividentsSourceOrder order = TeamDividentsSourceOrderFactory.create(commonOrderList, rate);
+		if (order == null)
+			return;
 		try {
 			teamDividentsSourceOrderService.addTeamDividentsSourceOrder(order);
-		} catch (TeamDividentsSourceOrderException e) {
-			e.printStackTrace();
 		} catch (ParamsException e) {
-			e.printStackTrace();
+			throw new TeamDividentsSourceOrderException(101, "鍙傛暟涓嶅畬鏁�");
 		}
 	}
 
@@ -186,6 +192,11 @@
 			}
 		}
 
+		// 娌℃湁鍙備笌鍒嗙孩鐨勭敤鎴�
+		if (uidLevel == null || uidLevel.size() == 0) {
+			return;
+		}
+
 		BigDecimal perDivident = computePerDivident(uidLevel, totalMoney);
 		for (Iterator<Long> its = uidLevel.keySet().iterator(); its.hasNext();) {
 			Long uid = its.next();
@@ -253,11 +264,12 @@
 	 * @throws
 	 */
 	@Transactional(rollbackFor = Exception.class)
-	public void addDividents(Long uid, String day)
-			throws TeamDividentsRecordException, TeamDividentsDebtException, UserMoneyDetailException, ParamsException {
+	public void addToTeamEincome(Long uid, Date preSendTime) throws TeamDividentsRecordException,
+			TeamDividentsDebtException, UserMoneyDetailException, ParamsException, TeamEincomeRecordException {
+		String day = TimeUtil.getGernalTime(preSendTime.getTime(), "yyyy-MM-dd");
 		BigDecimal money = teamDividentsSourceUserService.sumMoneyByUidAndDay(uid, day);
 		// 鏌ヨ闇�瑕佹墸闄ょ殑璧勯噾
-		List<TeamDividentsDebt> list = teamDividentsDebtService.listNeedRepayDebt(uid, 1, 1000);
+		List<TeamDividentsDebt> list = teamDividentsDebtService.listNeedRepayDebt(uid, preSendTime, 1, 1000);
 		for (TeamDividentsDebt debt : list) {
 			if (money.subtract(debt.getLeftMoney()).compareTo(new BigDecimal(0)) >= 0) {// 杩樻湁閽辫繕
 				money = money.subtract(debt.getLeftMoney());
@@ -279,12 +291,9 @@
 
 		// 鏈夊垎绾㈡墠鏄剧ず璧勯噾鏄庣粏
 		if (money.compareTo(new BigDecimal(0)) > 0) {
-			UserMoneyDetail detail = UserMoneyDetailFactory.createOrderTeamDividents(uid, money, new Date());
-			// 澧炲姞璧勯噾
-			userMoneyService.addUserMoney(uid, money, detail);
-			// TODO 鍔犲叆閫氱煡
-		}
 
+			teamEincomeManager.addTeamDividents(uid, preSendTime, money);
+		}
 	}
 
 	/**
@@ -338,7 +347,6 @@
 		} else if (sourceOrder.getState() == TeamDividentsSourceOrder.STATE_CAN_SEND) {
 			teamDividentsSourceOrderService.invalidOrder(orderNo, sourceType, "璁㈠崟缁存潈");
 		}
-
 	}
 
 	/**

--
Gitblit v1.8.0