From 9eeda0d3049b71877c373c04d65533939b5582ef Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期一, 02 九月 2019 09:55:55 +0800
Subject: [PATCH] getBoss方法只查询有效上级信息

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoV2ServiceImpl.java |  107 ++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 80 insertions(+), 27 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoV2ServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoV2ServiceImpl.java
index b1fedcc..5aba925 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoV2ServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoV2ServiceImpl.java
@@ -53,6 +53,7 @@
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TaoBaoConstant;
 import com.yeshi.fanli.util.TimeUtil;
 
 @Service
@@ -180,27 +181,27 @@
 					BigDecimal money = notify.getMoney();
 					switch (t) {
 					case HongBaoV2.TYPE_ZIGOU:
-						userOrderMsgNotificationService.orderFanLiStatistic(uid, orderId, orderType,commonOrder.getPayment(),
-								money, goodsCount, state);
+						userOrderMsgNotificationService.orderFanLiStatistic(uid, orderId, orderType,
+								commonOrder.getPayment(), money, goodsCount, state);
 						break;
 					case HongBaoV2.TYPE_SHARE_GOODS:
-					
-						userOrderMsgNotificationService.orderShareStatistic(uid, orderId,orderType, commonOrder.getPayment(),
-								money, goodsCount, state);
+
+						userOrderMsgNotificationService.orderShareStatistic(uid, orderId, orderType,
+								commonOrder.getPayment(), money, goodsCount, state);
 						break;
 					case HongBaoV2.TYPE_YIJI:
-					
-						userOrderMsgNotificationService.orderInviteStatistic(uid, orderId,orderType, commonOrder.getPayment(),
-								money, goodsCount, state);
+
+						userOrderMsgNotificationService.orderInviteStatistic(uid, orderId, orderType,
+								commonOrder.getPayment(), money, goodsCount, state);
 						break;
 					case HongBaoV2.TYPE_ERJI:
-					
-						userOrderMsgNotificationService.orderInviteStatistic(uid, orderId,orderType, commonOrder.getPayment(),
-								money, goodsCount, state);
+
+						userOrderMsgNotificationService.orderInviteStatistic(uid, orderId, orderType,
+								commonOrder.getPayment(), money, goodsCount, state);
 						break;
 
 					case HongBaoV2.TYPE_SHARE_YIJI:
-						userOrderMsgNotificationService.orderShareFirstLevelStatistic(uid, orderId,orderType,
+						userOrderMsgNotificationService.orderShareFirstLevelStatistic(uid, orderId, orderType,
 								commonOrder.getPayment(), money, goodsCount, state, notify.getBeizhu());
 						break;
 					}
@@ -220,23 +221,23 @@
 					BigDecimal money = notify.getMoney();
 					switch (t) {
 					case HongBaoV2.TYPE_ZIGOU:
-						userOrderMsgNotificationService.orderFanLiStateChanged(uid, orderId,orderType, commonOrder.getPayment(),
-								money, state);
+						userOrderMsgNotificationService.orderFanLiStateChanged(uid, orderId, orderType,
+								commonOrder.getPayment(), money, state);
 						break;
 					case HongBaoV2.TYPE_SHARE_GOODS:
-						userOrderMsgNotificationService.orderShareStateChanged(uid, orderId,orderType, commonOrder.getPayment(),
-								money, state);
+						userOrderMsgNotificationService.orderShareStateChanged(uid, orderId, orderType,
+								commonOrder.getPayment(), money, state);
 						break;
 					case HongBaoV2.TYPE_YIJI:
-						userOrderMsgNotificationService.orderInviteStateChanged(uid, orderId,orderType, commonOrder.getPayment(),
-								money, state);
+						userOrderMsgNotificationService.orderInviteStateChanged(uid, orderId, orderType,
+								commonOrder.getPayment(), money, state);
 						break;
 					case HongBaoV2.TYPE_ERJI:
-						userOrderMsgNotificationService.orderInviteStateChanged(uid, orderId,orderType, commonOrder.getPayment(),
-								money, state);
+						userOrderMsgNotificationService.orderInviteStateChanged(uid, orderId, orderType,
+								commonOrder.getPayment(), money, state);
 						break;
 					case HongBaoV2.TYPE_SHARE_YIJI:
-						userOrderMsgNotificationService.orderShareFirstLevelStateChanged(uid, orderId,orderType,
+						userOrderMsgNotificationService.orderShareFirstLevelStateChanged(uid, orderId, orderType,
 								commonOrder.getPayment(), money, state);
 					}
 				}
@@ -300,14 +301,17 @@
 				hongBao.setState(HongBaoV2.STATE_KELINGQU);
 				hongBao.setMoney(
 						MoneyBigDecimalUtil.mul(commonOrder.geteIncome(), fanliRate.divide(new BigDecimal(100))));
-				hongBao.setPreGetTime(new Date(commonOrder.getSettleTime().getTime() + 1000 * 60 * 60 * 24 * 15L));
+				if (commonOrder.getSourceType() == Constant.SOURCE_TYPE_PDD)// 鎷煎澶�15澶╄繃1涓皬鏃跺埌璐�
+					hongBao.setPreGetTime(new Date(
+							commonOrder.getSettleTime().getTime() + 1000 * 60 * 60 * 24 * 15L + 1000 * 60 * 60 * 1L));
+				else
+					hongBao.setPreGetTime(new Date(commonOrder.getSettleTime().getTime() + 1000 * 60 * 60 * 24 * 15L));
 				if (mianDan)
 					hongBao.setMoney(commonOrder.getSettlement().compareTo(commonOrder.getPayment()) <= 0
 							? commonOrder.getSettlement() : commonOrder.getPayment());// 杩斿埄缁撶畻涓庝粯娆捐緝灏忕殑閲戦
 			} else if (commonOrder.getState() == CommonOrder.STATE_SX) {
 				hongBao.setState(HongBaoV2.STATE_SHIXIAO);
 				hongBao.setMoney(new BigDecimal(0));
-
 			}
 
 			// 鏂拌�佺孩鍖呯姸鎬佷竴鑷翠笉澶勭悊
@@ -501,7 +505,13 @@
 				}
 			}
 		} else if (type == HongBaoV2.TYPE_SHARE_GOODS) {
-			BigDecimal fanliRate = hongBaoManageService.getShareRate(commonOrder.getCreateTime().getTime());
+			BigDecimal fanliRate = null;
+			if (commonOrder.getSourceType() == Constant.SOURCE_TYPE_TAOBAO
+					&& commonOrder.getSourcePosition().equalsIgnoreCase(TaoBaoConstant.TAOBAO_TLJ_RELATION_PID_DEFAULT))
+				fanliRate = hongBaoManageService.getTLJShareRate(commonOrder.getCreateTime().getTime());
+			else
+				fanliRate = hongBaoManageService.getShareRate(commonOrder.getCreateTime().getTime());
+
 			List<ShareGoodsActivityOrder> list = shareGoodsActivityOrderService
 					.listByOrderIdAndUid(commonOrder.getUserInfo().getId(), commonOrder.getOrderNo());
 			if (list != null && list.size() > 0) {
@@ -645,6 +655,7 @@
 					}
 				}
 			} else if (commonOrder.getState() == CommonOrder.STATE_SX) {// 璁剧疆鍏嶅崟鍒稿け鏁�
+				commonOrder.setPayment(new BigDecimal(0));// 璁㈠崟澶辨晥鍚庣殑浠樻閲戦璁剧疆涓�0
 				try {
 					userSystemCouponService.updateStateByDrawback(commonOrder.getOrderNo());
 				} catch (Exception e) {
@@ -665,7 +676,11 @@
 				hongBao.setState(HongBaoV2.STATE_KELINGQU);
 				hongBao.setMoney(
 						MoneyBigDecimalUtil.mul(commonOrder.geteIncome(), fanliRate.divide(new BigDecimal(100))));
-				hongBao.setPreGetTime(new Date(commonOrder.getSettleTime().getTime() + 1000 * 60 * 60 * 24 * 15L));
+				if (commonOrder.getSourceType() == Constant.SOURCE_TYPE_PDD)// 鎷煎澶�15澶╁崐鍒拌处
+					hongBao.setPreGetTime(new Date(
+							commonOrder.getSettleTime().getTime() + 1000 * 60 * 60 * 24 * 15L + 1000 * 60 * 60 * 12L));
+				else
+					hongBao.setPreGetTime(new Date(commonOrder.getSettleTime().getTime() + 1000 * 60 * 60 * 24 * 15L));
 			} else if (commonOrder.getState() == CommonOrder.STATE_SX) {
 				hongBao.setState(HongBaoV2.STATE_SHIXIAO);
 				hongBao.setMoney(new BigDecimal(0));
@@ -817,7 +832,12 @@
 			if (commonOrder.getState() == CommonOrder.STATE_SX || commonOrder.getState() == CommonOrder.STATE_WQ)
 				return;
 			// 鍒嗕韩璧�
-			BigDecimal shareRate = hongBaoManageService.getShareRate(commonOrder.getCreateTime().getTime());
+			BigDecimal shareRate = null;
+			if (commonOrder.getSourceType() == Constant.SOURCE_TYPE_TAOBAO
+					&& commonOrder.getSourcePosition().equalsIgnoreCase(TaoBaoConstant.TAOBAO_TLJ_RELATION_PID_DEFAULT))// 鏉ヨ嚜浜庢窐绀奸噾鐨勫垎浜�
+				shareRate = hongBaoManageService.getTLJShareRate(commonOrder.getCreateTime().getTime());
+			else
+				shareRate = hongBaoManageService.getShareRate(commonOrder.getCreateTime().getTime());
 
 			// 鍒ゆ柇璁㈠崟鍒嗕韩娲诲姩鏄惁寮�鍚�
 			if ("1".equalsIgnoreCase(configService.get("share_goods_activity_open"))) {
@@ -956,7 +976,7 @@
 			hb.setMoney(hongBao.getMoney());
 
 			try {
-				userShareGoodsGroupService.updateOrderRecord(hb,commonOrder.getSourceType());
+				userShareGoodsGroupService.updateOrderRecord(hb, commonOrder.getSourceType());
 			} catch (UserShareGoodsRecordException e) {
 				try {
 					LogHelper.errorDetailInfo(e);
@@ -1046,4 +1066,37 @@
 	public List<Long> getUidByNear30DayShareSucceed() {
 		return hongBaoV2Mapper.getUidByNear30DayShareSucceed();
 	}
+
+	@Override
+	public void invalidInviteHongBaoByParentUid(Long parentUid, String beiZhu) {
+		List<Integer> typeList = new ArrayList<>();
+		typeList.add(HongBaoV2.TYPE_YIJI);
+		typeList.add(HongBaoV2.TYPE_ERJI);
+		typeList.add(HongBaoV2.TYPE_SHARE_YIJI);
+		typeList.add(HongBaoV2.TYPE_SHARE_ERJI);
+		List<Integer> stateList = new ArrayList<>();
+		stateList.add(HongBaoV2.STATE_KELINGQU);
+		stateList.add(HongBaoV2.STATE_BUKELINGQU);
+		long count = hongBaoV2Mapper.countByParentUidAndTypeAndState(parentUid, typeList, stateList);
+		int page = (int) (count % 100 == 0 ? count / 100 : count / 100 + 1);
+		for (int i = 1; i <= page; i++) {
+			List<HongBaoV2> list = hongBaoV2Mapper.listByParentUidAndTypeAndState(parentUid, typeList, stateList, 0,
+					100);
+			if (list != null)
+				for (HongBaoV2 v2 : list) {
+					HongBaoV2 update = new HongBaoV2(v2.getId());
+					update.setUpdateTime(new Date());
+					update.setState(HongBaoV2.STATE_SHIXIAO);
+					update.setBeizhu(beiZhu);
+					hongBaoV2Mapper.updateByPrimaryKeySelective(update);
+				}
+		}
+	}
+
+	@Override
+	public List<HongBaoV2> listBySourceTypeAndTradeIdListAndUid(int sourceType, long uid, List<String> tradeIdList) {
+		if (tradeIdList == null || tradeIdList.size() == 0)
+			return null;
+		return hongBaoV2Mapper.listBySourceTypeAndTradeIdListAndUid(sourceType, uid, tradeIdList);
+	}
 }

--
Gitblit v1.8.0