From bf5c02aaecb3f7a42daa4fa356c62a2e6bca0db5 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期一, 28 十月 2019 09:55:59 +0800
Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/HongBaoV2ServiceImpl.java |   53 ++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 44 insertions(+), 9 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/HongBaoV2ServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/HongBaoV2ServiceImpl.java
index 25d557f..e81ca91 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/HongBaoV2ServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/HongBaoV2ServiceImpl.java
@@ -13,6 +13,7 @@
 
 import javax.annotation.Resource;
 
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -107,6 +108,7 @@
 	@Resource
 	private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
 
+	@Lazy
 	@Resource
 	private UserSystemCouponService userSystemCouponService;
 
@@ -145,7 +147,7 @@
 
 	@Transactional
 	@Override
-	public void addHongBao(List<CommonOrder> commonOrderList, int type) throws HongBaoException {
+	public int addHongBao(List<CommonOrder> commonOrderList, int type) throws HongBaoException {
 		Set<Integer> stateSet = new HashSet<>();// 璁㈠崟鐘舵�丼et
 		if (commonOrderList != null && commonOrderList.size() > 0) {
 			int orderType = commonOrderList.get(0).getSourceType();
@@ -153,6 +155,7 @@
 			Map<Integer, HongBaoOrder> notificationMap = new HashMap<>();
 			int goodsCount = 0;
 			boolean hasAdd = false;
+			boolean hasUpdate = false;
 			for (CommonOrder commonOrder : commonOrderList) {
 				stateSet.add(commonOrder.getState());
 				goodsCount += commonOrder.getCount();
@@ -163,7 +166,9 @@
 					saveHongBao(commonOrder, type, notificationMap);
 					hasAdd = true;
 				} else {
-					updateHongBao(hongBaoOrder, commonOrder, type, notificationMap);
+					boolean update = updateHongBao(hongBaoOrder, commonOrder, type, notificationMap);
+					if (update)
+						hasUpdate = true;
 				}
 			}
 			/**
@@ -242,8 +247,17 @@
 					}
 				}
 			}
-		}
 
+			int resultCode = 0;
+			if (hasAdd && hasUpdate)
+				return 12;
+			else if (hasAdd)
+				return 1;
+			else if (hasUpdate)
+				return 2;
+			return resultCode;
+		}
+		return 0;
 	}
 
 	private int getOrderState(Set<Integer> states) {
@@ -261,7 +275,7 @@
 	}
 
 	@Transactional
-	private void updateHongBao(HongBaoOrder hongBaoOrder, CommonOrder commonOrder, int type,
+	private boolean updateHongBao(HongBaoOrder hongBaoOrder, CommonOrder commonOrder, int type,
 			Map<Integer, HongBaoOrder> notificationMap) throws HongBaoException {
 		System.out.println(commonOrder.getOrderNo());
 		// 閿佽
@@ -270,7 +284,7 @@
 			throw new HongBaoException(10, "绾㈠寘瀵硅薄涓嶅瓨鍦�");
 		// 宸茬粡澶辨晥锛屽凡缁忛鍙栵紝鏂拌�佺姸鎬佷竴鑷寸殑绾㈠寘涓嶅仛澶勭悊
 		if (oldHongBao.getState() == HongBaoV2.STATE_SHIXIAO || oldHongBao.getState() == HongBaoV2.STATE_YILINGQU)
-			return;
+			return false;
 
 		if (type == HongBaoV2.TYPE_ZIGOU) {// 鑾峰彇鑷喘鐨勮繑鍒╂瘮渚�
 			BigDecimal fanliRate = hongBaoManageService.getFanLiRate(commonOrder.getCreateTime().getTime());
@@ -317,7 +331,7 @@
 
 			// 鏂拌�佺孩鍖呯姸鎬佷竴鑷翠笉澶勭悊
 			if (oldHongBao.getState().intValue() == hongBao.getState())
-				return;
+				return false;
 
 			if (hongBao.getState() == HongBaoV2.STATE_SHIXIAO) {
 				if (mianDan) {
@@ -411,7 +425,7 @@
 						BigDecimal firstRate = hongBaoManageService
 								.getFirstInviteRate(boss.getRank() == null ? 0 : boss.getRank());
 						if (firstRate.compareTo(new BigDecimal(0)) <= 0)
-							return;
+							return true;
 						HongBaoV2 firstHongbao = new HongBaoV2();
 						firstHongbao.setUserInfo(boss);
 						firstHongbao.setUrank(boss.getRank());
@@ -420,6 +434,7 @@
 						firstHongbao.setType(HongBaoV2.TYPE_YIJI);
 						firstHongbao.setVersion(2);
 						firstHongbao.setState(hongBao.getState());
+						firstHongbao.setOrderType(commonOrder.getSourceType());
 
 						if (hongBao.getState() == HongBaoV2.STATE_KELINGQU) {
 							firstHongbao.setMoney(
@@ -459,7 +474,7 @@
 							BigDecimal secondRate = hongBaoManageService
 									.getSecondInviteRate(boss.getRank() == null ? 0 : boss.getRank());
 							if (secondRate.compareTo(new BigDecimal(0)) <= 0)
-								return;
+								return true;
 							HongBaoV2 secondHongbao = new HongBaoV2();
 							secondHongbao.setUserInfo(boss);
 							secondHongbao.setUrank(boss.getRank());
@@ -468,6 +483,7 @@
 							secondHongbao.setType(HongBaoV2.TYPE_ERJI);
 							secondHongbao.setVersion(2);
 							secondHongbao.setState(hongBao.getState());
+							secondHongbao.setOrderType(commonOrder.getSourceType());
 							if (hongBao.getState() == HongBaoV2.STATE_KELINGQU) {
 								secondHongbao.setMoney(MoneyBigDecimalUtil.mul(hongBao.getMoney(),
 										secondRate.divide(new BigDecimal(100))));
@@ -622,6 +638,8 @@
 				}
 		} else
 			throw new HongBaoException(2, "type閿欒");
+
+		return true;
 	}
 
 	@Transactional
@@ -642,7 +660,6 @@
 					CommonOrderGoods goods = commonOrderGoodsMapper
 							.selectByPrimaryKey(commonOrder.getCommonOrderGoods().getId());
 					if (goods != null) {
-
 						try {
 							if (userSystemCouponService.updateCouponRecordUsed(commonOrder.getUserInfo().getId(),
 									commonOrder.getOrderNo(), payMent, Long.parseLong(goods.getGoodsId())))
@@ -694,6 +711,7 @@
 
 			UserInfo user = userInfoService.getUserById(commonOrder.getUserInfo().getId());
 			hongBao.setUrank(user.getRank());
+			hongBao.setOrderType(commonOrder.getSourceType());
 			hongBaoV2Mapper.insertSelective(hongBao);
 			// 娣诲姞绾㈠寘涓庤鍗曠殑鏄犲皠
 			HongBaoOrder hongBaoOrder = new HongBaoOrder();
@@ -735,6 +753,7 @@
 				firstHongbao.setType(HongBaoV2.TYPE_YIJI);
 				firstHongbao.setVersion(2);
 				firstHongbao.setState(hongBao.getState());
+				firstHongbao.setOrderType(commonOrder.getSourceType());
 
 				if (hongBao.getState() == HongBaoV2.STATE_KELINGQU) {
 					firstHongbao.setMoney(
@@ -787,6 +806,7 @@
 					secondHongbao.setType(HongBaoV2.TYPE_ERJI);
 					secondHongbao.setVersion(2);
 					secondHongbao.setState(hongBao.getState());
+					secondHongbao.setOrderType(commonOrder.getSourceType());
 					if (hongBao.getState() == HongBaoV2.STATE_KELINGQU) {
 						secondHongbao.setMoney(
 								MoneyBigDecimalUtil.mul(hongBao.getMoney(), secondRate.divide(new BigDecimal(100))));
@@ -890,6 +910,7 @@
 			UserInfo user = userInfoService.getUserById(commonOrder.getUserInfo().getId());
 			hongBao.setUrank(user.getRank());
 			hongBao.setUserInfo(user);
+			hongBao.setOrderType(commonOrder.getSourceType());
 			hongBaoV2Mapper.insertSelective(hongBao);
 			// 鎻掑叆绾㈠寘涓庤鍗曟槧灏�
 			HongBaoOrder hongBaoOrder = new HongBaoOrder();
@@ -943,6 +964,7 @@
 					child.setUrank(boss.getRank());
 					child.setVersion(2);
 					child.setCreateTime(new Date());
+					child.setOrderType(commonOrder.getSourceType());
 					if (child.getMoney().compareTo(new BigDecimal(0)) > 0) {
 						hongBaoV2Mapper.insertSelective(child);
 						// 娣诲姞閫氱煡
@@ -1067,6 +1089,13 @@
 	}
 
 	@Override
+	public List<HongBaoV2> listChildrenByIds(List<Long> idList) {
+		if (idList == null || idList.size() == 0)
+			return null;
+		return hongBaoV2Mapper.listChildrenByIds(idList);
+	}
+
+	@Override
 	public List<Long> getUidByNear30DayShareSucceed() {
 		return hongBaoV2Mapper.getUidByNear30DayShareSucceed();
 	}
@@ -1115,4 +1144,10 @@
 			return hongBaoV2List.get(0);
 		return null;
 	}
+
+	@Override
+	public List<HongBaoV2> listByIds(List<Long> idList) {
+		return hongBaoV2Mapper.listByIds(idList);
+	}
+
 }

--
Gitblit v1.8.0