From 733281fcb5f1ab01e1196b542b7e07b49b3e44c4 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 25 十月 2019 17:02:55 +0800
Subject: [PATCH] 订单消息,返利消息,返利券使用,邀请订单补贴

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/money/tb/TaoBaoWeiQuanDrawBackServiceImpl.java |   42 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 41 insertions(+), 1 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/money/tb/TaoBaoWeiQuanDrawBackServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/money/tb/TaoBaoWeiQuanDrawBackServiceImpl.java
index f71c207..fa0afc5 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/money/tb/TaoBaoWeiQuanDrawBackServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/money/tb/TaoBaoWeiQuanDrawBackServiceImpl.java
@@ -22,25 +22,29 @@
 import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanDrawBackMapper;
 import com.yeshi.fanli.entity.bus.user.HongBaoV2;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.money.InviteOrderSubsidyDebt;
 import com.yeshi.fanli.entity.money.UserMoneyDebt;
 import com.yeshi.fanli.entity.money.UserMoneyDebt.UserMoneyDebtTypeEnum;
 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.InviteOrderSubsidy;
 import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
 import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack;
 import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
+import com.yeshi.fanli.exception.money.InviteOrderSubsidyDebtException;
 import com.yeshi.fanli.exception.money.UserMoneyDebtException;
 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.money.InviteOrderSubsidyDebtService;
 import com.yeshi.fanli.service.inter.money.UserMoneyDebtService;
 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.InviteOrderSubsidyService;
 import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
 import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
 import com.yeshi.fanli.vo.order.CommonOrderVO;
@@ -79,6 +83,12 @@
 
 	@Resource
 	private UserMoneyService userMoneyService;
+
+	@Resource
+	private InviteOrderSubsidyService inviteOrderSubsidyService;
+
+	@Resource
+	private InviteOrderSubsidyDebtService inviteOrderSubsidyDebtService;
 
 	@Override
 	public void addWeiQuanDrawBack(TaoBaoWeiQuanDrawBack taoBaoWeiQuanDrawBack) {
@@ -506,6 +516,9 @@
 					weiQuanDrawBack.setUser(child.getUserInfo());
 					taoBaoWeiQuanDrawBackMapper.insertSelective(weiQuanDrawBack);// 鍔犲叆杩旇繕璁板綍
 
+					// 鍔犲叆閭�璇疯ˉ璐磋繑杩樿褰�
+					doInviteOrderSubsidy(orderId, Constant.SOURCE_TYPE_TAOBAO, uid, settleMent, wqMoney);
+
 					// 濡傛灉璧勯噾澶т簬0鎵嶆墸闄�
 
 					if (drawBackMoney != null && drawBackMoney.compareTo(new BigDecimal(0)) > 0) {
@@ -545,6 +558,33 @@
 		}
 	}
 
+	/**
+	 * 閭�璇疯鍗曡ˉ璐寸淮鏉冨鐞�
+	 * 
+	 * @param orderId
+	 * @param sourceType
+	 */
+	private void doInviteOrderSubsidy(String orderId, int sourceType, Long uid, BigDecimal settleMent,
+			BigDecimal weiQuanMoney) throws TaoBaoWeiQuanException {
+		InviteOrderSubsidy subSidy = inviteOrderSubsidyService.getByOrderNoAndType(uid, orderId, sourceType);
+		if (subSidy != null)// 娣诲姞鍊熻捶鍏崇郴
+		{
+			BigDecimal drawBackMoney = computeDrawBackMoney(settleMent, weiQuanMoney, subSidy.getOriginalMoney());
+			if (drawBackMoney.compareTo(new BigDecimal(0)) <= 0)
+				return;
+			InviteOrderSubsidyDebt debt = new InviteOrderSubsidyDebt();
+			debt.setBeiZhu("璁㈠崟缁存潈:" + orderId + "-" + sourceType);
+			debt.setOriginMoney(drawBackMoney);
+			debt.setUid(uid);
+			debt.setCreateTime(new Date());
+			try {
+				inviteOrderSubsidyDebtService.addDebt(debt);
+			} catch (InviteOrderSubsidyDebtException e) {
+				throw new TaoBaoWeiQuanException(101, "閭�璇疯鍗曡ˉ璐村紓甯�");
+			}
+		}
+	}
+
 	@Override
 	public TaoBaoWeiQuanDrawBack selectByOrderItemId(String orderItemId) {
 		List<TaoBaoWeiQuanDrawBack> list = taoBaoWeiQuanDrawBackMapper.selectByOrderItemId(orderItemId);

--
Gitblit v1.8.0