From 24a8d17e007545f7426c48352109aa1a9c6587ee Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 06 五月 2020 12:02:09 +0800
Subject: [PATCH] IOS上线隐藏我的界面的banner与超级会员升级信息

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java |  539 +++++++++++++++++------------------------------------------
 1 files changed, 154 insertions(+), 385 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java
index 3ffecd1..0bb8f33 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java
@@ -1,9 +1,7 @@
 package com.yeshi.fanli.service.impl.order;
 
 import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.util.ArrayList;
-import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -30,39 +28,37 @@
 import com.yeshi.fanli.dto.HongBao;
 import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
 import com.yeshi.fanli.dto.mq.order.body.OrderMoneyRecievedMQMsg;
+import com.yeshi.fanli.dto.mq.order.body.TeamRewardPreRecieveMQMsg;
 import com.yeshi.fanli.entity.bus.user.HongBaoV2;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.money.TeamRewardDebt;
 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.order.HongBaoV2SettleTemp;
-import com.yeshi.fanli.entity.order.InviteOrderSubsidy;
-import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
 import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
-import com.yeshi.fanli.exception.money.InviteOrderSubsidyDebtException;
+import com.yeshi.fanli.exception.ParamsException;
 import com.yeshi.fanli.exception.money.OrderMoneySettleException;
+import com.yeshi.fanli.exception.money.TeamEincomeRecordException;
+import com.yeshi.fanli.exception.money.TeamRewardDebtException;
 import com.yeshi.fanli.exception.money.UserMoneyDetailException;
 import com.yeshi.fanli.exception.order.TaoBaoWeiQuanException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.hongbao.AccountDetailsHongBaoMapService;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoV2SettleTempService;
-import com.yeshi.fanli.service.inter.money.InviteOrderSubsidyDebtService;
+import com.yeshi.fanli.service.inter.money.TeamRewardDebtService;
 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.InviteOrderSubsidyService;
 import com.yeshi.fanli.service.inter.order.OrderMoneySettleService;
-import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService;
 import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
+import com.yeshi.fanli.service.manger.order.TeamRewardManager;
 import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.cmq.HongBaoRecieveCMQManager;
 import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
 import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
 import com.yeshi.fanli.util.rocketmq.MQTopicName;
-import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil;
 
 @Service
 public class OrderMoneySettleServiceImpl implements OrderMoneySettleService {
@@ -97,26 +93,33 @@
 	@Resource
 	private UserSystemCouponService userSystemCouponService;
 
-	@Resource
-	private TaoBaoOrderService taoBaoOrderService;
-
 	@Resource(name = "orderTransactionProducer")
 	private TransactionProducer orderTransactionProducer;
 
 	// 閭�璇疯ˉ璐�
 
 	@Resource
-	private InviteOrderSubsidyService inviteOrderSubsidyService;
-
-	@Resource
-	private InviteOrderSubsidyDebtService inviteOrderSubsidyDebtService;
-
-	@Resource
 	private HongBaoV2SettleTempService hongBaoV2SettleTempService;
+
+	@Resource
+	private TeamRewardDebtService teamRewardDebtService;
+
+	@Resource
+	private TeamRewardManager teamRewardManager;
+
+
+	// 涓嬬骇琚皝绂侊紝绾㈠寘澶辨晥
+	private void invalidHongBaoForbidden(Long id) {
+		HongBaoV2 updateHongBaoV2 = new HongBaoV2(id);
+		updateHongBaoV2.setState(HongBaoV2.STATE_SHIXIAO);
+		updateHongBaoV2.setBeizhu("灏佺澶辨晥");
+		updateHongBaoV2.setUpdateTime(new Date());
+		hongBaoV2Mapper.updateByPrimaryKeySelective(updateHongBaoV2);
+	}
 
 	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public void inviteSettleTB(Long uid) throws OrderMoneySettleException {
+	public void inviteSettleTB(Long uid, Date maxPregetTime) throws OrderMoneySettleException {
 		// 鏌ヨUID鐨勪竴浜岀骇閭�璇疯禋
 		int sourceType = Constant.SOURCE_TYPE_TAOBAO;
 		List<Integer> types = new ArrayList<>();
@@ -124,13 +127,13 @@
 		types.add(HongBaoV2.TYPE_ERJI);
 		types.add(HongBaoV2.TYPE_SHARE_YIJI);
 		types.add(HongBaoV2.TYPE_SHARE_ERJI);
-		long count = hongBaoV2Mapper.countCanBalanceHongBaoByTypeAndUid(types, uid, sourceType);
+		long count = hongBaoV2Mapper.countCanBalanceHongBaoByTypeAndUid(types, uid, sourceType, maxPregetTime);
 		List<HongBaoV2> hongBaoList = new ArrayList<>();
 		// 1000鏉℃暟鎹负1椤�
 		int page = (int) (count % 1000 == 0 ? count / 1000 : count / 1000 + 1);
 		for (int i = 0; i < page; i++) {
 			List<HongBaoV2> tempHongBaoList = hongBaoV2Mapper.listCanBalanceHongBaoByTypeAndUid(types, uid, sourceType,
-					i * 1000, 1000);
+					maxPregetTime, i * 1000, 1000);
 			if (tempHongBaoList != null && tempHongBaoList.size() > 0)
 				hongBaoList.addAll(tempHongBaoList);
 		}
@@ -145,6 +148,76 @@
 						// 涓婄骇鐢ㄦ埛涓嶆槸姝e父鐢ㄦ埛锛岃鍗曞潎涓嶈兘鍒拌处
 						UserInfo userInfo = userInfoMapper.selectAvailableByPrimaryKey(co.getUserInfo().getId());
 						if (userInfo == null || userInfo.getState() != UserInfo.STATE_NORMAL) {
+							invalidHongBaoForbidden(item.getId());
+							hongBaoList.remove(i);
+							i--;
+						}
+					}
+				}
+			}
+		}
+
+		String taskKey = getTaskKey(uid);
+
+		TeamRewardPreRecieveMQMsg mqMsg = new TeamRewardPreRecieveMQMsg(taskKey, uid, sourceType, maxPregetTime,
+				new Date());
+
+		Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.teamRewardPreRecieved, mqMsg);
+
+		msg.setKey(taskKey);
+		// 娣诲姞浜嬪姟娑堟伅
+		try {
+			orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
+				@Override
+				public TransactionStatus execute(Message arg0, Object arg1) {
+					try {
+						fanliInvite(hongBaoList, uid, Constant.SOURCE_TYPE_TAOBAO, taskKey, maxPregetTime);
+					} catch (Exception e) {
+						e.printStackTrace();
+						return TransactionStatus.RollbackTransaction;
+					}
+					return TransactionStatus.CommitTransaction;
+				}
+			}, null);
+		} catch (Exception e) {
+			e.printStackTrace();
+			LogHelper.mqError(e.getMessage(), msg.getTopic(), msg.getTag(), new Gson().toJson(mqMsg));
+		}
+		System.out.println(new Gson().toJson(mqMsg));
+	}
+
+	@Transactional(rollbackFor = Exception.class)
+	@Override
+	public void inviteSettleJD(Long uid, Date maxPregetTime) throws OrderMoneySettleException {
+		// 鏌ヨUID鐨勪竴浜岀骇閭�璇疯禋
+		int sourceType = Constant.SOURCE_TYPE_JD;
+		List<Integer> types = new ArrayList<>();
+		types.add(HongBaoV2.TYPE_YIJI);
+		types.add(HongBaoV2.TYPE_ERJI);
+		types.add(HongBaoV2.TYPE_SHARE_YIJI);
+		types.add(HongBaoV2.TYPE_SHARE_ERJI);
+		long count = hongBaoV2Mapper.countCanBalanceHongBaoByTypeAndUid(types, uid, sourceType, maxPregetTime);
+		List<HongBaoV2> hongBaoList = new ArrayList<>();
+		// 1000鏉℃暟鎹负1椤�
+		int page = (int) (count % 1000 == 0 ? count / 1000 : count / 1000 + 1);
+		for (int i = 0; i < page; i++) {
+			List<HongBaoV2> tempHongBaoList = hongBaoV2Mapper.listCanBalanceHongBaoByTypeAndUid(types, uid, sourceType,
+					maxPregetTime, i * 1000, 1000);
+			if (tempHongBaoList != null && tempHongBaoList.size() > 0)
+				hongBaoList.addAll(tempHongBaoList);
+		}
+
+		for (int i = 0; i < hongBaoList.size(); i++) {
+			HongBaoV2 item = hongBaoList.get(i);
+			if (item != null && item.getParent() != null) {
+				if (item != null) {
+					HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByHongBaoId(item.getParent().getId());
+					if (hongBaoOrder != null && hongBaoOrder.getCommonOrder() != null) {
+						CommonOrder co = hongBaoOrder.getCommonOrder();
+						// 涓婄骇鐢ㄦ埛涓嶆槸姝e父鐢ㄦ埛锛岃鍗曞潎涓嶈兘鍒拌处
+						UserInfo userInfo = userInfoMapper.selectAvailableByPrimaryKey(co.getUserInfo().getId());
+						if (userInfo == null || userInfo.getState() != UserInfo.STATE_NORMAL) {
+							invalidHongBaoForbidden(item.getId());
 							hongBaoList.remove(i);
 							i--;
 						}
@@ -154,11 +227,11 @@
 		}
 
 		// 閭�璇疯禋鍒拌处浜嬪姟娑堟伅
-		OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_INVITE, uid,
-				sourceType, null, null, new Date(), 0);
 
-		Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg);
 		String taskKey = getTaskKey(uid);
+		TeamRewardPreRecieveMQMsg mqMsg = new TeamRewardPreRecieveMQMsg(taskKey, uid, sourceType, maxPregetTime,
+				new Date());
+		Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.teamRewardPreRecieved, mqMsg);
 		msg.setKey(taskKey);
 		// 娣诲姞浜嬪姟娑堟伅
 		try {
@@ -166,8 +239,9 @@
 				@Override
 				public TransactionStatus execute(Message arg0, Object arg1) {
 					try {
-						fanliInviteTB(hongBaoList, uid, taskKey);
-					} catch (TaoBaoWeiQuanException e) {
+						fanliInvite(hongBaoList, uid, sourceType, taskKey, maxPregetTime);
+					} catch (Exception e) {
+						e.printStackTrace();
 						return TransactionStatus.RollbackTransaction;
 					}
 					return TransactionStatus.CommitTransaction;
@@ -176,71 +250,11 @@
 		} catch (Exception e) {
 			LogHelper.mqError(e.getMessage(), msg.getTopic(), msg.getTag(), new Gson().toJson(mqMsg));
 		}
-		System.out.println(new Gson().toJson(mqMsg));
 	}
 
 	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public void inviteSettleJD(Long uid) throws OrderMoneySettleException {
-		// 鏌ヨUID鐨勪竴浜岀骇閭�璇疯禋
-		int sourceType = Constant.SOURCE_TYPE_JD;
-		List<Integer> types = new ArrayList<>();
-		types.add(HongBaoV2.TYPE_YIJI);
-		types.add(HongBaoV2.TYPE_ERJI);
-		types.add(HongBaoV2.TYPE_SHARE_YIJI);
-		types.add(HongBaoV2.TYPE_SHARE_ERJI);
-		long count = hongBaoV2Mapper.countCanBalanceHongBaoByTypeAndUid(types, uid, sourceType);
-		List<HongBaoV2> hongBaoList = new ArrayList<>();
-		// 1000鏉℃暟鎹负1椤�
-		int page = (int) (count % 1000 == 0 ? count / 1000 : count / 1000 + 1);
-		for (int i = 0; i < page; i++) {
-			List<HongBaoV2> tempHongBaoList = hongBaoV2Mapper.listCanBalanceHongBaoByTypeAndUid(types, uid, sourceType,
-					i * 1000, 1000);
-			if (tempHongBaoList != null && tempHongBaoList.size() > 0)
-				hongBaoList.addAll(tempHongBaoList);
-		}
-
-		for (int i = 0; i < hongBaoList.size(); i++) {
-			HongBaoV2 item = hongBaoList.get(i);
-			if (item != null && item.getParent() != null) {
-				if (item != null) {
-					HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByHongBaoId(item.getParent().getId());
-					if (hongBaoOrder != null && hongBaoOrder.getCommonOrder() != null) {
-						CommonOrder co = hongBaoOrder.getCommonOrder();
-						// 涓婄骇鐢ㄦ埛涓嶆槸姝e父鐢ㄦ埛锛岃鍗曞潎涓嶈兘鍒拌处
-						UserInfo userInfo = userInfoMapper.selectAvailableByPrimaryKey(co.getUserInfo().getId());
-						if (userInfo == null || userInfo.getState() != UserInfo.STATE_NORMAL) {
-							hongBaoList.remove(i);
-							i--;
-						}
-					}
-				}
-			}
-		}
-
-		// 閭�璇疯禋鍒拌处浜嬪姟娑堟伅
-		OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_INVITE, uid,
-				sourceType, null, null, new Date(), 0);
-		Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg);
-		String taskKey = getTaskKey(uid);
-		msg.setKey(taskKey);
-		// 娣诲姞浜嬪姟娑堟伅
-		try {
-			orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
-				@Override
-				public TransactionStatus execute(Message arg0, Object arg1) {
-					fanliInviteOther(hongBaoList, uid, sourceType, taskKey);
-					return TransactionStatus.CommitTransaction;
-				}
-			}, null);
-		} catch (Exception e) {
-			LogHelper.mqError(e.getMessage(), msg.getTopic(), msg.getTag(), new Gson().toJson(mqMsg));
-		}
-	}
-
-	@Transactional(rollbackFor = Exception.class)
-	@Override
-	public void inviteSettlePDD(Long uid) throws OrderMoneySettleException {
+	public void inviteSettlePDD(Long uid, Date maxPregetTime) throws OrderMoneySettleException {
 		// 鏌ヨUID鐨勪竴浜岀骇閭�璇疯禋
 		int sourceType = Constant.SOURCE_TYPE_PDD;
 		List<Integer> types = new ArrayList<>();
@@ -248,13 +262,13 @@
 		types.add(HongBaoV2.TYPE_ERJI);
 		types.add(HongBaoV2.TYPE_SHARE_YIJI);
 		types.add(HongBaoV2.TYPE_SHARE_ERJI);
-		long count = hongBaoV2Mapper.countCanBalanceHongBaoByTypeAndUid(types, uid, sourceType);
+		long count = hongBaoV2Mapper.countCanBalanceHongBaoByTypeAndUid(types, uid, sourceType, maxPregetTime);
 		List<HongBaoV2> hongBaoList = new ArrayList<>();
 		// 1000鏉℃暟鎹负1椤�
 		int page = (int) (count % 1000 == 0 ? count / 1000 : count / 1000 + 1);
 		for (int i = 0; i < page; i++) {
 			List<HongBaoV2> tempHongBaoList = hongBaoV2Mapper.listCanBalanceHongBaoByTypeAndUid(types, uid, sourceType,
-					i * 1000, 1000);
+					maxPregetTime, i * 1000, 1000);
 			if (tempHongBaoList != null && tempHongBaoList.size() > 0)
 				hongBaoList.addAll(tempHongBaoList);
 		}
@@ -269,6 +283,7 @@
 						// 涓婄骇鐢ㄦ埛涓嶆槸姝e父鐢ㄦ埛锛岃鍗曞潎涓嶈兘鍒拌处
 						UserInfo userInfo = userInfoMapper.selectAvailableByPrimaryKey(co.getUserInfo().getId());
 						if (userInfo == null || userInfo.getState() != UserInfo.STATE_NORMAL) {
+							invalidHongBaoForbidden(item.getId());
 							hongBaoList.remove(i);
 							i--;
 						}
@@ -278,17 +293,21 @@
 		}
 
 		// 閭�璇疯禋鍒拌处浜嬪姟娑堟伅
-		OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_INVITE, uid,
-				sourceType, null, null, new Date(), 0);
-		Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg);
 		String taskKey = getTaskKey(uid);
+		TeamRewardPreRecieveMQMsg mqMsg = new TeamRewardPreRecieveMQMsg(taskKey, uid, sourceType, maxPregetTime,
+				new Date());
+		Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.teamRewardPreRecieved, mqMsg);
 		msg.setKey(taskKey);
 		// 娣诲姞浜嬪姟娑堟伅
 		try {
 			orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
 				@Override
 				public TransactionStatus execute(Message arg0, Object arg1) {
-					fanliInviteOther(hongBaoList, uid, sourceType, taskKey);
+					try {
+						fanliInvite(hongBaoList, uid, sourceType, taskKey, maxPregetTime);
+					} catch (Exception e) {
+						return TransactionStatus.RollbackTransaction;
+					}
 					return TransactionStatus.CommitTransaction;
 				}
 			}, null);
@@ -299,7 +318,7 @@
 
 	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public void shareSettleTB(Long uid) throws OrderMoneySettleException {
+	public void shareSettleTB(Long uid, Date maxPregetTime) throws OrderMoneySettleException {
 		/**
 		 * 澶勭悊鍒嗕韩璧�
 		 */
@@ -308,13 +327,13 @@
 
 		// 鏌ヨUID鐨勫垎浜禋璁㈠崟
 		types.add(HongBaoV2.TYPE_SHARE_GOODS);
-		long count = hongBaoV2Mapper.countCanBalanceHongBaoByTypeAndUid(types, uid, sourceType);
+		long count = hongBaoV2Mapper.countCanBalanceHongBaoByTypeAndUid(types, uid, sourceType, maxPregetTime);
 		List<HongBaoV2> hongBaoList = new ArrayList<>();
 		// 1000鏉℃暟鎹负1椤�
 		int page = (int) (count % 1000 == 0 ? count / 1000 : count / 1000 + 1);
 		for (int i = 0; i < page; i++) {
 			List<HongBaoV2> tempHongBaoList = hongBaoV2Mapper.listCanBalanceHongBaoByTypeAndUid(types, uid, sourceType,
-					i * 1000, 1000);
+					maxPregetTime, i * 1000, 1000);
 			if (tempHongBaoList != null && tempHongBaoList.size() > 0)
 				hongBaoList.addAll(tempHongBaoList);
 		}
@@ -324,6 +343,7 @@
 		Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg);
 		String taskKey = getTaskKey(uid);
 		msg.setKey(taskKey);
+
 		// 娣诲姞浜嬪姟娑堟伅
 		try {
 			orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
@@ -344,7 +364,7 @@
 
 	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public void shareSettleJD(Long uid) throws OrderMoneySettleException {
+	public void shareSettleJD(Long uid, Date maxPregetTime) throws OrderMoneySettleException {
 		/**
 		 * 澶勭悊鍒嗕韩璧�
 		 */
@@ -353,13 +373,13 @@
 
 		// 鏌ヨUID鐨勫垎浜禋璁㈠崟
 		types.add(HongBaoV2.TYPE_SHARE_GOODS);
-		long count = hongBaoV2Mapper.countCanBalanceHongBaoByTypeAndUid(types, uid, sourceType);
+		long count = hongBaoV2Mapper.countCanBalanceHongBaoByTypeAndUid(types, uid, sourceType, maxPregetTime);
 		List<HongBaoV2> hongBaoList = new ArrayList<>();
 		// 1000鏉℃暟鎹负1椤�
 		int page = (int) (count % 1000 == 0 ? count / 1000 : count / 1000 + 1);
 		for (int i = 0; i < page; i++) {
 			List<HongBaoV2> tempHongBaoList = hongBaoV2Mapper.listCanBalanceHongBaoByTypeAndUid(types, uid, sourceType,
-					i * 1000, 1000);
+					maxPregetTime, i * 1000, 1000);
 			if (tempHongBaoList != null && tempHongBaoList.size() > 0)
 				hongBaoList.addAll(tempHongBaoList);
 		}
@@ -385,7 +405,7 @@
 
 	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public void shareSettlePDD(Long uid) throws OrderMoneySettleException {
+	public void shareSettlePDD(Long uid, Date maxPregetTime) throws OrderMoneySettleException {
 		/**
 		 * 澶勭悊鍒嗕韩璧�
 		 */
@@ -394,13 +414,13 @@
 
 		// 鏌ヨUID鐨勫垎浜禋璁㈠崟
 		types.add(HongBaoV2.TYPE_SHARE_GOODS);
-		long count = hongBaoV2Mapper.countCanBalanceHongBaoByTypeAndUid(types, uid, sourceType);
+		long count = hongBaoV2Mapper.countCanBalanceHongBaoByTypeAndUid(types, uid, sourceType, maxPregetTime);
 		List<HongBaoV2> hongBaoList = new ArrayList<>();
 		// 1000鏉℃暟鎹负1椤�
 		int page = (int) (count % 1000 == 0 ? count / 1000 : count / 1000 + 1);
 		for (int i = 0; i < page; i++) {
 			List<HongBaoV2> tempHongBaoList = hongBaoV2Mapper.listCanBalanceHongBaoByTypeAndUid(types, uid, sourceType,
-					i * 1000, 1000);
+					maxPregetTime, i * 1000, 1000);
 			if (tempHongBaoList != null && tempHongBaoList.size() > 0)
 				hongBaoList.addAll(tempHongBaoList);
 		}
@@ -479,7 +499,7 @@
 						Long uid = its.next();
 						if (userSubMoneyMap.get(uid) != null) {
 							// 鍑忓幓缁存潈璧勯噾
-							userMoney.put(uid, userMoney.get(uid).subtract(userSubMoneyMap.get(uid)));														
+							userMoney.put(uid, userMoney.get(uid).subtract(userSubMoneyMap.get(uid)));
 						}
 					}
 				}
@@ -532,8 +552,9 @@
 			UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
 
 			// 鏂扮増閫氱煡
+
 			userMoneyMsgNotificationService.fanliOrderReceived(uid, orderId, sourceType, userGoodsCount.get(uid), money,
-					user.getMyHongBao());
+					user.getMyHongBao(), orderList.get(0).getThirdCreateTime());
 		}
 		// 閫氱煡鍏嶅崟鍒拌处
 		try {
@@ -570,106 +591,12 @@
 		return hongBao;
 	}
 
-	@Transactional(rollbackFor = Exception.class)
-	private void fanliInviteTB(List<HongBaoV2> hongBaoList, Long uid, String key) throws TaoBaoWeiQuanException {
-		List<Long> hbIdList = new ArrayList<>();
-		BigDecimal invitemoney = new BigDecimal(0);
-		Set<String> inviteOrders = new HashSet<>();
-		int inviteGoodsCount = 0;
-
-		// 闇�瑕佸垽鏂��娆剧殑璁㈠崟鍙�
-		Set<String> drawBackOrders = new HashSet<String>();
-		for (HongBaoV2 hongBao : hongBaoList) {
-			hongBao = filterWeiQuanINGHongBao(hongBao);
-			if (hongBao == null)
-				continue;
-
-			hongBao = hongBaoV2Mapper.selectByPrimaryKeyForUpdate(hongBao.getId());
-			if (hongBao.getState() == HongBaoV2.STATE_BUKELINGQU || hongBao.getState() == HongBaoV2.STATE_KELINGQU) {
-				invitemoney = invitemoney.add(hongBao.getMoney());
-				HongBaoV2 updateHongBao = new HongBaoV2();
-				updateHongBao.setId(hongBao.getId());
-				updateHongBao.setGetTime(new Date());
-				updateHongBao.setState(HongBaoV2.STATE_YILINGQU);
-				updateHongBao.setUpdateTime(new Date());
-				hongBaoV2Mapper.updateByPrimaryKeySelective(updateHongBao);
-				// 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
-				hbIdList.add(hongBao.getId());
-
-				HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByHongBaoId(hongBao.getParent().getId());
-				inviteGoodsCount += hongBaoOrder.getCommonOrder().getCount();
-				inviteOrders.add(hongBaoOrder.getCommonOrder().getOrderNo());
-
-				Date balanceTime = hongBaoOrder.getCommonOrder().getSettleTime();
-				if (balanceTime != null
-						&& balanceTime.getTime() >= TimeUtil.convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) {
-					if (!StringUtil.isNullOrEmpty(hongBaoOrder.getCommonOrder().getOrderNo()))
-						drawBackOrders.add(hongBaoOrder.getCommonOrder().getOrderNo());
-				}
-			}
-		}
-
-		// 閭�璇疯禋鍒拌处
-		if (invitemoney.compareTo(new BigDecimal(0)) > 0) {
-
-			// 娣诲姞鏂扮増璇︽儏璁板綍
-			try {
-				// 鏌ヨ閭�璇疯禋鐨勬湁鏁堣鍗曪紝澶辨晥璁㈠崟锛岀淮鏉冭鍗�
-				Calendar ca = Calendar.getInstance();
-				Date maxDate = new Date(TimeUtil
-						.convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M"));
-				ca.add(Calendar.MONTH, -1);
-
-				Date minDate = new Date(TimeUtil
-						.convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M"));
-				long validCount = hongBaoV2Mapper.countInviteOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_JS,
-						minDate, maxDate, Constant.SOURCE_TYPE_TAOBAO);
-				long weiQuanCount = hongBaoV2Mapper.countInviteOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_WQ,
-						minDate, maxDate, Constant.SOURCE_TYPE_TAOBAO);
-
-				UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, Constant.SOURCE_TYPE_TAOBAO,
-						(int) validCount, (int) weiQuanCount, invitemoney, new Date());
-
-				// 澧炲姞璧勯噾
-				userMoneyService.addUserMoney(uid, invitemoney, userMoneyDetail);
-				// 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
-				accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, userMoneyDetail.getId());
-			} catch (UserMoneyDetailException e) {
-				try {
-					LogHelper.errorDetailInfo(e);
-				} catch (Exception e1) {
-					e1.printStackTrace();
-				}
-			}
-			// 鏂扮増閫氱煡
-			userMoneyMsgNotificationService.inviteOrderReceived(uid, Constant.SOURCE_TYPE_TAOBAO, inviteOrders.size(),
-					inviteGoodsCount, invitemoney, userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
-			for (String orderId : drawBackOrders)
-				taoBaoWeiQuanDrawBackService.doWeiQuanInvite(orderId);
-		}
-
-		try {
-			hongBaoV2SettleTempService.addTemp(hbIdList, key);
-		} catch (Exception e1) {
-			throw new TaoBaoWeiQuanException(200, "鎻掑叆杩斿埄涓存椂琛ㄥ嚭閿�");
-		}
-
-		// 鎵�鏈夌殑杩斿埄鍒拌处绾㈠寘ID
-		for (Long hongBaoId : hbIdList) {
-			try {
-				HongBaoRecieveCMQManager.getInstance().addHongBaoRecieveMsg(hongBaoId);
-			} catch (Exception e) {
-				LogHelper.errorDetailInfo(e);
-			}
-		}
-	}
-
 	@Transactional
-	private void fanliInviteOther(List<HongBaoV2> hongBaoList, Long uid, int sourceType, String key) {
+	private void fanliInvite(List<HongBaoV2> hongBaoList, Long uid, int sourceType, String key, Date maxPreGetTime)
+			throws TeamEincomeRecordException, ParamsException, TeamRewardDebtException {
 		List<Long> hbIdList = new ArrayList<>();
 		BigDecimal invitemoney = new BigDecimal(0);
 		Set<String> inviteOrders = new HashSet<>();
-		int inviteGoodsCount = 0;
 
 		// 闇�瑕佸垽鏂��娆剧殑璁㈠崟鍙�
 		for (HongBaoV2 hongBao : hongBaoList) {
@@ -678,7 +605,16 @@
 				continue;
 			hongBao = hongBaoV2Mapper.selectByPrimaryKeyForUpdate(hongBao.getId());
 			if (hongBao.getState() == HongBaoV2.STATE_BUKELINGQU || hongBao.getState() == HongBaoV2.STATE_KELINGQU) {
-				invitemoney = invitemoney.add(hongBao.getMoney());
+				TeamRewardDebt debt = teamRewardDebtService.selectBySourceId(hongBao.getId());
+				BigDecimal money = hongBao.getMoney();
+				if (debt != null && debt.getLeftMoney().compareTo(new BigDecimal(0)) > 0
+						&& money.compareTo(debt.getLeftMoney()) >= 0) {
+					money = money.subtract(debt.getLeftMoney());
+					// 杩橀挶
+					teamRewardDebtService.repayDebt(debt.getId(), debt.getLeftMoney());
+				}
+
+				invitemoney = invitemoney.add(money);
 				HongBaoV2 updateHongBao = new HongBaoV2();
 				updateHongBao.setId(hongBao.getId());
 				updateHongBao.setGetTime(new Date());
@@ -691,45 +627,14 @@
 				// 2018-08-05 杩囧悗鐨勮鍗曟墠澶勭悊缁存潈
 
 				HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByHongBaoId(hongBao.getParent().getId());
-				inviteGoodsCount += hongBaoOrder.getCommonOrder().getCount();
 				inviteOrders.add(hongBaoOrder.getCommonOrder().getOrderNo());
 			}
 		}
 
 		// 閭�璇疯禋鍒拌处
 		if (invitemoney.compareTo(new BigDecimal(0)) > 0) {
-			// 娣诲姞鏂扮増璇︽儏璁板綍
-			try {
-				// 鏌ヨ閭�璇疯禋鐨勬湁鏁堣鍗曪紝澶辨晥璁㈠崟锛岀淮鏉冭鍗�
-				Calendar ca = Calendar.getInstance();
-				Date maxDate = new Date(TimeUtil
-						.convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M"));
-				ca.add(Calendar.MONTH, -1);
-
-				Date minDate = new Date(TimeUtil
-						.convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M"));
-				long validCount = hongBaoV2Mapper.countInviteOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_JS,
-						minDate, maxDate, sourceType);
-				long weiQuanCount = hongBaoV2Mapper.countInviteOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_WQ,
-						minDate, maxDate, sourceType);
-
-				UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, sourceType, (int) validCount,
-						(int) weiQuanCount, invitemoney, new Date());
-
-				// 澧炲姞璧勯噾
-				userMoneyService.addUserMoney(uid, invitemoney, userMoneyDetail);
-				// 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
-				accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, userMoneyDetail.getId());
-			} catch (UserMoneyDetailException e) {
-				try {
-					LogHelper.errorDetailInfo(e);
-				} catch (Exception e1) {
-					e1.printStackTrace();
-				}
-			}
-			// 鏂扮増閫氱煡
-			userMoneyMsgNotificationService.inviteOrderReceived(uid, sourceType, inviteOrders.size(), inviteGoodsCount,
-					invitemoney, userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
+			// 鑾峰彇褰撳墠鐨勬湀浠�
+			teamRewardManager.addToEincome(uid, maxPreGetTime, invitemoney, sourceType);
 		}
 
 		hongBaoV2SettleTempService.addTemp(hbIdList, key);
@@ -737,7 +642,8 @@
 		// 鎵�鏈夌殑杩斿埄鍒拌处绾㈠寘ID
 		for (Long hongBaoId : hbIdList) {
 			try {
-				HongBaoRecieveCMQManager.getInstance().addHongBaoRecieveMsg(hongBaoId);
+				if (Constant.ENABLE_MQ)
+					HongBaoRecieveCMQManager.getInstance().addHongBaoRecieveMsg(hongBaoId);
 			} catch (Exception e) {
 				LogHelper.errorDetailInfo(e);
 			}
@@ -756,7 +662,6 @@
 		List<Long> hbIdList = new ArrayList<>();
 		Set<String> drawBackOrders = new HashSet<String>();
 		List<Long> recieveHongBaoIds = new ArrayList<>();
-		int shareGoodsCount = 0;
 		Set<String> shareOrders = new HashSet<>();
 
 		for (HongBaoV2 hongBao : hongBaoList) {
@@ -780,7 +685,6 @@
 				HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByHongBaoId(hongBao.getId());
 				if (hongBaoOrder != null) {
 					balanceTime = hongBaoOrder.getCommonOrder().getSettleTime();
-					shareGoodsCount += hongBaoOrder.getCommonOrder().getCount();
 				}
 				shareOrders.add(hongBaoOrder.getCommonOrder().getOrderNo());
 				if (balanceTime != null
@@ -797,22 +701,8 @@
 		if (sharemoney.compareTo(new BigDecimal(0)) > 0) {
 			// 娣诲姞鏂扮増璇︽儏璁板綍
 			try {
-				// 璁$畻鏈湀鐨勬湁鏁堣鍗曪紝澶辨晥璁㈠崟锛岀淮鏉冭鍗�
-				Calendar ca = Calendar.getInstance();
-
-				Date maxDate = new Date(TimeUtil
-						.convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M"));
-				ca.add(Calendar.MONTH, -1);
-
-				Date minDate = new Date(TimeUtil
-						.convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M"));
-				long validCount = hongBaoV2Mapper.countShareOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_JS,
-						minDate, maxDate, Constant.SOURCE_TYPE_TAOBAO);
-				long weiQuanCount = hongBaoV2Mapper.countShareOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_WQ,
-						minDate, maxDate, Constant.SOURCE_TYPE_TAOBAO);
-
 				UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, Constant.SOURCE_TYPE_TAOBAO,
-						(int) validCount, (int) weiQuanCount, sharemoney, new Date());
+						sharemoney, new Date());
 				// 娣诲姞璧勯噾
 				userMoneyService.addUserMoney(uid, sharemoney, userMoneyDetail);
 
@@ -829,8 +719,8 @@
 			}
 
 			// 鏂扮増閫氱煡
-			userMoneyMsgNotificationService.shareOrderReceived(uid, Constant.SOURCE_TYPE_TAOBAO, shareOrders.size(),
-					shareGoodsCount, sharemoney, userInfoMapper.selectAvailableByPrimaryKey(uid).getMyHongBao());
+			userMoneyMsgNotificationService.shareOrderReceived(uid, Constant.SOURCE_TYPE_TAOBAO, sharemoney,
+					userInfoMapper.selectAvailableByPrimaryKey(uid).getMyHongBao(), new Date());
 
 			for (String orderId : drawBackOrders)
 				taoBaoWeiQuanDrawBackService.doWeiQuanShare(orderId);
@@ -841,7 +731,8 @@
 		// 鎵�鏈夌殑杩斿埄鍒拌处绾㈠寘ID
 		for (Long hongBaoId : recieveHongBaoIds) {
 			try {
-				HongBaoRecieveCMQManager.getInstance().addHongBaoRecieveMsg(hongBaoId);
+				if (Constant.ENABLE_MQ)
+					HongBaoRecieveCMQManager.getInstance().addHongBaoRecieveMsg(hongBaoId);
 			} catch (Exception e) {
 				LogHelper.errorDetailInfo(e);
 			}
@@ -860,7 +751,6 @@
 		BigDecimal sharemoney = new BigDecimal(0);
 		List<Long> hbIdList = new ArrayList<>();
 		List<Long> recieveHongBaoIds = new ArrayList<>();
-		int shareGoodsCount = 0;
 		Set<String> shareOrders = new HashSet<>();
 
 		for (HongBaoV2 hongBao : hongBaoList) {
@@ -881,9 +771,6 @@
 				hbIdList.add(hongBao.getId());
 				// 2018-08-05 杩囧悗鐨勮鍗曟墠澶勭悊缁存潈
 				HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByHongBaoId(hongBao.getId());
-				if (hongBaoOrder != null) {
-					shareGoodsCount += hongBaoOrder.getCommonOrder().getCount();
-				}
 				shareOrders.add(hongBaoOrder.getCommonOrder().getOrderNo());
 			}
 		}
@@ -895,22 +782,8 @@
 		if (sharemoney.compareTo(new BigDecimal(0)) > 0) {
 			// 娣诲姞鏂扮増璇︽儏璁板綍
 			try {
-				// 璁$畻鏈湀鐨勬湁鏁堣鍗曪紝澶辨晥璁㈠崟锛岀淮鏉冭鍗�
-				Calendar ca = Calendar.getInstance();
-
-				Date maxDate = new Date(TimeUtil
-						.convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M"));
-				ca.add(Calendar.MONTH, -1);
-
-				Date minDate = new Date(TimeUtil
-						.convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M"));
-				long validCount = hongBaoV2Mapper.countShareOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_JS,
-						minDate, maxDate, sourceType);
-				long weiQuanCount = hongBaoV2Mapper.countShareOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_WQ,
-						minDate, maxDate, sourceType);
-
-				UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, sourceType, (int) validCount,
-						(int) weiQuanCount, sharemoney, new Date());
+				UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, sourceType, sharemoney,
+						new Date());
 				// 娣诲姞璧勯噾
 				userMoneyService.addUserMoney(uid, sharemoney, userMoneyDetail);
 
@@ -926,10 +799,8 @@
 				}
 			}
 
-			// 鏂扮増閫氱煡
-			userMoneyMsgNotificationService.shareOrderReceived(uid, Constant.SOURCE_TYPE_TAOBAO, shareOrders.size(),
-					shareGoodsCount, sharemoney, userInfoMapper.selectAvailableByPrimaryKey(uid).getMyHongBao());
-
+			userMoneyMsgNotificationService.shareOrderReceived(uid, sourceType, sharemoney,
+					userInfoMapper.selectAvailableByPrimaryKey(uid).getMyHongBao(), new Date());
 		}
 
 		hongBaoV2SettleTempService.addTemp(recieveHongBaoIds, key);
@@ -937,119 +808,17 @@
 		// 鎵�鏈夌殑杩斿埄鍒拌处绾㈠寘ID
 		for (Long hongBaoId : recieveHongBaoIds) {
 			try {
-				HongBaoRecieveCMQManager.getInstance().addHongBaoRecieveMsg(hongBaoId);
+				if (Constant.ENABLE_MQ)
+					HongBaoRecieveCMQManager.getInstance().addHongBaoRecieveMsg(hongBaoId);
 			} catch (Exception e) {
 				LogHelper.errorDetailInfo(e);
 			}
 		}
 	}
 
-	/**
-	 * 閭�璇疯ˉ璐寸粨绠�
-	 * 
-	 * @param orderId
-	 * @param sourceType
-	 */
-	@Transactional(rollbackFor = Exception.class)
-	@Override
-	public void inviteSubsidySettle(Long uid, String taskKey) throws OrderMoneySettleException {
-		// 鏌ヨkey
-		List<HongBaoV2SettleTemp> list = hongBaoV2SettleTempService.listByKey(taskKey);
-		if (list != null && list.size() > 0) {
-
-			Integer sourceType = null;
-			List<InviteOrderSubsidy> subsidyList = new ArrayList<>();
-			for (HongBaoV2SettleTemp temp : list) {
-				Long hongBaoId = temp.getHongBaoId();
-				HongBaoV2 hongBao = hongBaoV2Mapper.selectByPrimaryKey(hongBaoId);
-				if (hongBao != null)
-					sourceType = hongBao.getOrderType();
-				if (hongBao.getParent() != null)
-					hongBao = hongBao.getParent();
-				HongBaoOrder order = hongBaoOrderMapper.selectByHongBaoId(hongBao.getId());
-				if (order != null && order.getCommonOrder() != null) {
-					InviteOrderSubsidy subSidy = inviteOrderSubsidyService.getByOrderNoAndTypeForUpdate(uid,
-							order.getCommonOrder().getOrderNo(), order.getCommonOrder().getSourceType());
-					if (subSidy != null && subSidy.getState() == InviteOrderSubsidy.STATE_VALID) {
-						subsidyList.add(subSidy);
-					}
-				}
-			}
-
-			if (sourceType == null)
-				throw new OrderMoneySettleException(1, "璁㈠崟绫诲瀷鏈幏鍙栧埌");
-
-			if (subsidyList.size() > 0) {
-				BigDecimal debtMoney = inviteOrderSubsidyDebtService.getTotalDebtMoney(uid);
-				BigDecimal originalDebtMoney = new BigDecimal(debtMoney.toString());// 鎬荤殑娆犳
-				List<InviteOrderSubsidy> copySubsidyList = new ArrayList<>();
-				copySubsidyList.addAll(subsidyList);
-				while (debtMoney.compareTo(new BigDecimal(0)) > 0 && copySubsidyList.size() > 0) {// 鏈夋瑺娆撅紝杩樻湁杩樼殑
-					debtMoney = kouKuan(copySubsidyList, debtMoney);
-				}
-				// 杩樻
-				BigDecimal repayMoney = originalDebtMoney.subtract(debtMoney);
-				BigDecimal bannce = null;
-				if (repayMoney.compareTo(new BigDecimal(0)) > 0) {
-					try {
-						bannce = inviteOrderSubsidyDebtService.repayDebtByUid(uid, repayMoney);
-						// 鍓╀綑鐨勮ˉ璐撮噾棰�
-					} catch (InviteOrderSubsidyDebtException e) {
-						throw new OrderMoneySettleException(2, "杩樻寮傚父");
-					}
-				}
-				if (bannce != null && bannce.compareTo(new BigDecimal(0)) > 0) {
-					// 濡傛灉鏈夎繕鍓╀笅鐨勯挶灏卞姞鍒扮涓�涓笂闈�
-					subsidyList.get(0).setMoney(subsidyList.get(0).getMoney().add(bannce));
-				}
-
-				BigDecimal totalMoney = new BigDecimal(0);
-				for (InviteOrderSubsidy subsidy : subsidyList) {
-					inviteOrderSubsidyService.settleById(subsidy.getId(), subsidy.getMoney());
-					totalMoney = totalMoney.add(subsidy.getMoney());
-				}
-
-				// 鍒拌处
-				UserMoneyDetail userMoneyDetail = null;
-				try {
-					userMoneyDetail = UserMoneyDetailFactory.createInviteSubsidy(uid, sourceType, totalMoney,
-							new Date());
-				} catch (UserMoneyDetailException e) {
-					throw new OrderMoneySettleException(1, "璐︽埛鏄庣粏鏋勫缓鍑洪敊");
-				}
-				// 娣诲姞璧勯噾
-				userMoneyService.addUserMoney(uid, totalMoney, userMoneyDetail);
-				// 娣诲姞娑堟伅
-				userMoneyMsgNotificationService.inviteOrderSubSidy(uid, new Date(), "绯荤粺鑷姩涓嬪彂", totalMoney,
-						userInfoMapper.selectAvailableByPrimaryKey(uid).getMyHongBao());
-			}
-		}
-	}
 
 	private String getTaskKey(Long uid) {
 		return uid + "-" + UUID.randomUUID().toString();
 	}
 
-	private BigDecimal kouKuan(List<InviteOrderSubsidy> subsidyList, BigDecimal debtMoney) {
-		BigDecimal average = debtMoney.divide(new BigDecimal(subsidyList.size()), 2, RoundingMode.UP);
-		for (int i = 0; i < subsidyList.size(); i++) {
-			InviteOrderSubsidy sidy = subsidyList.get(i);
-			BigDecimal subMoney = null;
-			if (average.compareTo(sidy.getMoney()) >= 0) {
-				subMoney = sidy.getMoney();
-			} else {
-				subMoney = average;
-			}
-			if (subMoney.compareTo(debtMoney) > 0)
-				subMoney = debtMoney;
-			debtMoney = debtMoney.subtract(subMoney);
-			sidy.setMoney(sidy.getMoney().subtract(subMoney));
-
-			if (sidy.getMoney().compareTo(new BigDecimal(0)) == 0) {
-				subsidyList.remove(i);
-				i--;
-			}
-		}
-		return debtMoney;
-	}
 }

--
Gitblit v1.8.0