From aa774af6df16ef11e1e34ac5aeed9aae0cb3e8e2 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 09 四月 2020 16:25:03 +0800
Subject: [PATCH] 团队分红完善

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java |  219 ++++++++++++++++++++----------------------------------
 1 files changed, 82 insertions(+), 137 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
index c7c155c..25c333b 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -31,6 +31,7 @@
 import com.yeshi.fanli.entity.bus.user.HongBaoV2;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.bus.user.UserSystemCouponRecord;
+import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
 import com.yeshi.fanli.entity.goods.CommonGoods;
 import com.yeshi.fanli.entity.jd.JDGoods;
 import com.yeshi.fanli.entity.jd.JDOrder;
@@ -63,7 +64,9 @@
 import com.yeshi.fanli.service.inter.user.UserInfoService;
 import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService;
 import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
+import com.yeshi.fanli.service.inter.user.invite.UserInviteService;
 import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
+import com.yeshi.fanli.service.manger.user.UserLevelManager;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.StringUtil;
@@ -135,6 +138,12 @@
 
 	@Resource
 	private UserInfoService userInfoService;
+
+	@Resource
+	private UserInviteService userInviteService;
+
+	@Resource
+	private UserLevelManager userLevelManager;
 
 	@Resource(name = "producer")
 	private Producer orderProducer;
@@ -281,38 +290,21 @@
 		}
 		Map<Long, Boolean> vipUserMap = userVIPInfoService.listByUids(needSelectVIPUidList);
 
-		if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
-			for (CommonOrderVO order : listOrder) {
-
-				if (order.getHongBaoType() == HongBaoV2.TYPE_YIJI || order.getHongBaoType() == HongBaoV2.TYPE_ERJI
-						|| order.getHongBaoType() == HongBaoV2.TYPE_SHARE_ERJI
-						|| order.getHongBaoType() == HongBaoV2.TYPE_SHARE_ERJI) {
-					Integer urank = order.getUrank();
-					if (urank != null) {
-						String levelName = UserLevelUtil.getLevelName(urank);
-						if (!StringUtil.isNullOrEmpty(levelName)) {
-							order.setOrderDesc(levelName);
-						}
-					}
-				}
-			}
-		} else {
-			// 璁剧疆鏄惁涓簐ip璁㈠崟
-			for (CommonOrderVO order : listOrder) {
-				if (order.getHongBaoType() == HongBaoV2.TYPE_YIJI || order.getHongBaoType() == HongBaoV2.TYPE_ERJI
-						|| order.getHongBaoType() == HongBaoV2.TYPE_SHARE_ERJI
-						|| order.getHongBaoType() == HongBaoV2.TYPE_SHARE_ERJI) {
-					if (vipUserMap.get(Long.parseLong(order.getUserId())) != null
-							&& vipUserMap.get(Long.parseLong(order.getUserId())) == true)
-						order.setVipOrder(true);
-					else
-						order.setVipOrder(false);
-				} else
+		// 璁剧疆鏄惁涓簐ip璁㈠崟
+		for (CommonOrderVO order : listOrder) {
+			if (order.getHongBaoType() == HongBaoV2.TYPE_YIJI || order.getHongBaoType() == HongBaoV2.TYPE_ERJI
+					|| order.getHongBaoType() == HongBaoV2.TYPE_SHARE_ERJI
+					|| order.getHongBaoType() == HongBaoV2.TYPE_SHARE_ERJI) {
+				if (vipUserMap.get(Long.parseLong(order.getUserId())) != null
+						&& vipUserMap.get(Long.parseLong(order.getUserId())) == true)
+					order.setVipOrder(true);
+				else
 					order.setVipOrder(false);
+			} else
+				order.setVipOrder(false);
 
-				if (order.isVipOrder())
-					order.setVipOrderDesc("璁㈠崟鏉ユ簮锛氱敱瓒呯骇浼氬憳鐨勭矇涓濅骇鐢�");
-			}
+			if (order.isVipOrder())
+				order.setVipOrderDesc("璁㈠崟鏉ユ簮锛氱敱瓒呯骇浼氬憳鐨勭矇涓濅骇鐢�");
 		}
 
 		SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
@@ -324,14 +316,11 @@
 		boolean vip = userVIPInfoService.isVIP(uid);
 		// 鏄惁瀛樺湪濂栧姳鍒�
 		boolean hasRewardCoupon = userSystemCouponService.getValidRebateCoupon(uid);
-		long nowTime = java.lang.System.currentTimeMillis();
 		for (CommonOrderVO order : listOrder) {
 			String orderNo = order.getOrderNo();
 			Integer sourceType = order.getSourceType();
 			Integer hongBaoType = order.getHongBaoType();
 
-			BigDecimal totalPay = new BigDecimal(0);
-			BigDecimal totalActual = new BigDecimal(0);
 			// 鍟嗗搧淇℃伅缁勫悎
 			for (CommonOrderVO commonOrder : listGoods) {
 				CommonOrderGoods goods = commonOrder.getCommonOrderGoods();
@@ -360,16 +349,6 @@
 						totalSettlement = commonOrder.getTotalPayment();
 					}
 					commonGoodsVO.setActualPay("浠樻閲戦锛毬�" + totalSettlement);
-
-					totalPay = MoneyBigDecimalUtil.add(totalPay, totalSettlement);
-
-					// 鍟嗗搧浠锋牸
-					BigDecimal actualPrice = commonGoodsVO.getActualPrice();
-					if (actualPrice != null) {
-						Integer totalCount = commonOrder.getTotalCount();
-						totalActual = MoneyBigDecimalUtil.add(totalActual,
-								MoneyBigDecimalUtil.mul(new BigDecimal(totalCount), actualPrice));
-					}
 
 					// 閭�璇疯鍗曚俊鎭繚鎶�
 					if (HongBaoV2.TYPE_YAOQING == hongBaoType || HongBaoV2.TYPE_YIJI == hongBaoType
@@ -401,16 +380,6 @@
 			Date thirdCreateTime = order.getThirdCreateTime();
 			order.setDownTime("涓嬪崟鏃堕棿锛�" + format.format(thirdCreateTime));
 			order.setObtainTime(thirdCreateTime.getTime());
-
-			// 2.1鍒嗕韩璁㈠崟鍜岃繑鍒╄鍗曞疄浠橀噾棰濆ぇ浜庢垨鑰呭皬浜庡埜鍚庝环鐨勬椂鍊欙紝璁㈠崟椤甸潰 鍙樉绀�3澶� 涓嬪崟鏃堕棿寮�濮�
-			if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
-				if (HongBaoV2.TYPE_SHARE_YIJI == hongBaoType
-						&& DateUtil.plusDayDate(3, thirdCreateTime).getTime() > nowTime
-						&& totalPay.compareTo(totalActual) != 0) {
-					order.setFanliDesc("鐢卞疄浠橀噾棰�*杩斿埄姣旇绠楄�屾潵");
-					order.setFanliDescLink(configService.get(ConfigKeyEnum.shareOrderRebateDescLink.getKey()));
-				}
-			}
 
 			Date settleTime = order.getSettleTime();
 			if (settleTime != null) {
@@ -1215,10 +1184,11 @@
 		if (oldCommonOrder == null)// 鏂板
 		{
 			commonOrder.setCreateTime(new Date());
+			UserLevelEnum userLevel = userLevelManager.getUserLevel(commonOrder.getUserInfo().getId(),
+					commonOrder.getThirdCreateTime());
 			// 鏌ヨ鏄惁涓簐ip
-			boolean isVIP = userVIPInfoService.isVIP(commonOrder.getUserInfo().getId());
-			if (isVIP)
-				commonOrder.setUrank(100);// VIP璁㈠崟
+			if (userLevel != null)
+				commonOrder.setUrank(userLevel.getOrderRank());// VIP璁㈠崟
 			else {
 				UserInfo user = userInfoService.selectAvailableByPrimaryKey(commonOrder.getUserInfo().getId());
 				if (user != null)
@@ -1783,6 +1753,11 @@
 	}
 
 	@Override
+	public List<CommonOrder> getMinSettleTimeAndUid() {
+		return commonOrderMapper.getMinSettleTimeAndUid();
+	}
+
+	@Override
 	public List<CommonOrderVO> searchOrderByUid(AcceptData acceptData, int page, int size, Long uid, List<ESOrder> list)
 			throws Exception {
 		List<CommonOrderVO> listVO = commonOrderMapper.searchOrderByUid((page - 1) * size, size, uid, list);
@@ -1856,39 +1831,18 @@
 					|| order.getHongBaoType() == HongBaoV2.TYPE_SHARE_ERJI)
 				needSelectVIPUidList.add(Long.parseLong(order.getUserId()));
 		}
-		Map<Long, Boolean> vipUserMap = userVIPInfoService.listByUids(needSelectVIPUidList);
 
-		if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
-			for (CommonOrderVO order : listOrder) {
-				if (order.getHongBaoType() == HongBaoV2.TYPE_YIJI || order.getHongBaoType() == HongBaoV2.TYPE_ERJI
-						|| order.getHongBaoType() == HongBaoV2.TYPE_SHARE_ERJI
-						|| order.getHongBaoType() == HongBaoV2.TYPE_SHARE_ERJI) {
-					Integer urank = order.getUrank();
-					if (urank != null) {
-						String levelName = UserLevelUtil.getLevelName(urank);
-						if (!StringUtil.isNullOrEmpty(levelName)) {
-							order.setOrderDesc(levelName);
-						}
+		for (CommonOrderVO order : listOrder) {
+			if (order.getHongBaoType() == HongBaoV2.TYPE_YIJI || order.getHongBaoType() == HongBaoV2.TYPE_ERJI
+					|| order.getHongBaoType() == HongBaoV2.TYPE_SHARE_ERJI
+					|| order.getHongBaoType() == HongBaoV2.TYPE_SHARE_ERJI) {
+				Integer urank = order.getUrank();
+				if (urank != null) {
+					String levelName = UserLevelUtil.getLevelName(urank);
+					if (!StringUtil.isNullOrEmpty(levelName)) {
+						order.setOrderDesc("璁㈠崟鏉ユ簮锛�" + levelName);
 					}
 				}
-
-			}
-		} else {
-			// 璁剧疆鏄惁涓簐ip璁㈠崟
-			for (CommonOrderVO order : listOrder) {
-				if (order.getHongBaoType() == HongBaoV2.TYPE_YIJI || order.getHongBaoType() == HongBaoV2.TYPE_ERJI
-						|| order.getHongBaoType() == HongBaoV2.TYPE_SHARE_ERJI
-						|| order.getHongBaoType() == HongBaoV2.TYPE_SHARE_ERJI) {
-					if (vipUserMap.get(Long.parseLong(order.getUserId())) != null
-							&& vipUserMap.get(Long.parseLong(order.getUserId())) == true)
-						order.setVipOrder(true);
-					else
-						order.setVipOrder(false);
-				} else
-					order.setVipOrder(false);
-
-				if (order.isVipOrder())
-					order.setVipOrderDesc("璁㈠崟鏉ユ簮锛氱敱瓒呯骇浼氬憳鐨勭矇涓濅骇鐢�");
 			}
 		}
 
@@ -1897,19 +1851,15 @@
 		// 2019.8.1寮�濮嬭繑鍥炵淮鏉冧俊鎭�
 		Date august = TimeUtil.parse("2019-08-01");
 
-		// 褰撳墠鐢ㄦ埛鏄惁VIP
-		boolean vip = userVIPInfoService.isVIP(uid);
+		// 褰撳墠鐢ㄦ埛鏄惁鍙互浣跨敤濂栧姳鍒�
+		boolean isvip = userInviteService.verifyVIP(uid);
 		// 鏄惁瀛樺湪濂栧姳鍒�
 		boolean hasRewardCoupon = userSystemCouponService.getValidRebateCoupon(uid);
 
-		long nowTime = java.lang.System.currentTimeMillis();
 		for (CommonOrderVO order : listOrder) {
 			String orderNo = order.getOrderNo();
 			Integer sourceType = order.getSourceType();
 			Integer hongBaoType = order.getHongBaoType();
-
-			BigDecimal totalPay = new BigDecimal(0);
-			BigDecimal totalActual = new BigDecimal(0);
 
 			// 鍟嗗搧淇℃伅缁勫悎
 			for (CommonOrderVO commonOrder : listGoods) {
@@ -1921,7 +1871,9 @@
 				if (sourceType.equals(commonOrder.getSourceType()) && orderNo.equals(commonOrder.getOrderNo())) {
 					CommonOrderGoodsVO commonGoodsVO = new CommonOrderGoodsVO();
 					PropertyUtils.copyProperties(commonGoodsVO, goods);
-					commonGoodsVO.setGoodsType(sourceType);
+					if (commonGoodsVO.getGoodsType() == null) {
+						commonGoodsVO.setGoodsType(sourceType);
+					}
 
 					// 娣樺疂鍟嗗搧鍥剧墖澶勭悊
 					String picture = commonGoodsVO.getPicture();
@@ -1940,16 +1892,6 @@
 					}
 					commonGoodsVO.setActualPay("浠樻閲戦锛毬�" + totalSettlement);
 
-					totalPay = MoneyBigDecimalUtil.add(totalPay, totalSettlement);
-
-					// 鍟嗗搧浠锋牸
-					BigDecimal actualPrice = commonGoodsVO.getActualPrice();
-					if (actualPrice != null) {
-						Integer totalCount = commonOrder.getTotalCount();
-						totalActual = MoneyBigDecimalUtil.add(totalActual,
-								MoneyBigDecimalUtil.mul(new BigDecimal(totalCount), actualPrice));
-					}
-
 					// 閭�璇疯鍗曚俊鎭繚鎶�
 					if (HongBaoV2.TYPE_YAOQING == hongBaoType || HongBaoV2.TYPE_YIJI == hongBaoType
 							|| HongBaoV2.TYPE_ERJI == hongBaoType || HongBaoV2.TYPE_SHARE_YIJI == hongBaoType
@@ -1963,18 +1905,32 @@
 					}
 
 					// 璁㈠崟绫诲瀷涓虹┖鏃� 宸插晢鍝佺被涓哄噯
-					Integer orderType = order.getOrderType();
-					if (orderType == null) {
-						String shopType = commonGoodsVO.getShopType();
-						if (CommonOrderGoodsVO.TYPE_TAOBAO.equalsIgnoreCase(shopType)) {
-							order.setOrderType(1);
-						} else if (CommonOrderGoodsVO.TYPE_TMALL.equalsIgnoreCase(shopType)) {
-							order.setOrderType(2);
-						}
+					String shopType = commonGoodsVO.getShopType();
+					if (CommonOrderGoodsVO.TYPE_TAOBAO.equalsIgnoreCase(shopType)) {
+						order.setOrderType(1);
+					} else if (CommonOrderGoodsVO.TYPE_TMALL.equalsIgnoreCase(shopType)) {
+						order.setOrderType(2);
+					}
+
+					Integer goodsType = commonGoodsVO.getGoodsType();
+					if (goodsType != null & goodsType == Constant.SOURCE_TYPE_ELME) {
+						order.setOrderType(Constant.SOURCE_TYPE_ELME); // 楗夸簡涔堣鍗�
 					}
 
 					order.getListOrderGoods().add(commonGoodsVO);
 				}
+			}
+
+			// 璁㈠崟绫诲瀷
+			if (sourceType == Constant.SOURCE_TYPE_TAOBAO) {
+				Integer orderType = order.getOrderType();
+				if (orderType == null) {
+					order.setOrderType(1);
+				}
+			} else if (sourceType == Constant.SOURCE_TYPE_JD) {
+				order.setOrderType(3);
+			} else if (sourceType == Constant.SOURCE_TYPE_PDD) {
+				order.setOrderType(4);
 			}
 
 			Date thirdCreateTime = order.getThirdCreateTime();
@@ -1983,30 +1939,9 @@
 				order.setObtainTime(thirdCreateTime.getTime());
 			}
 
-			// 2.1鍒嗕韩璁㈠崟鍜岃繑鍒╄鍗曞疄浠橀噾棰濆ぇ浜庢垨鑰呭皬浜庡埜鍚庝环鐨勬椂鍊欙紝璁㈠崟椤甸潰 鍙樉绀�3澶� 涓嬪崟鏃堕棿寮�濮�
-			if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
-				if (HongBaoV2.TYPE_SHARE_GOODS == hongBaoType
-						&& DateUtil.plusDayDate(3, thirdCreateTime).getTime() > nowTime
-						&& totalPay.compareTo(totalActual) != 0) {
-					order.setFanliDesc("鐢卞疄浠橀噾棰�*杩斿埄姣旇绠楄�屾潵");
-					order.setFanliDescLink(configService.get(ConfigKeyEnum.shareOrderRebateDescLink.getKey()));
-				}
-			}
-
 			Date settleTime = order.getSettleTime();
 			if (settleTime != null) {
 				order.setReceiveTime("鏀惰揣鏃堕棿锛�" + format.format(settleTime));
-			}
-
-			// 璁㈠崟绫诲瀷
-			if (sourceType == Constant.SOURCE_TYPE_TAOBAO) {
-				Integer orderType = order.getOrderType();
-				if (orderType == null)
-					order.setOrderType(1);
-			} else if (sourceType == Constant.SOURCE_TYPE_JD) {
-				order.setOrderType(3);
-			} else if (sourceType == Constant.SOURCE_TYPE_PDD) {
-				order.setOrderType(4);
 			}
 
 			/* 璁㈠崟鐘舵�� 杞崲澶勭悊 */
@@ -2029,6 +1964,17 @@
 				}
 			}
 
+			// 2.1鏄剧ず杩斿埄璇存槑杩炴帴> 鏈け鏁�-鑷喘-鍒嗕韩
+			if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
+				if (CommonOrder.STATE_SX != orderState
+						&& thirdCreateTime.getTime() > TimeUtil.convertDateToTemp(Constant.ORDER_SHOW_BRACE_TIME)
+						&& ((HongBaoV2.TYPE_ZIGOU == hongBaoType || 2 == hongBaoType)
+								|| HongBaoV2.TYPE_SHARE_GOODS == hongBaoType)) {
+					String rebateLink = configService.get(ConfigKeyEnum.orderRebateDescLink.getKey());
+					order.setRebateLink(rebateLink + "?orderNo=" + orderNo + "&sourceType=" + sourceType);
+				}
+			}
+
 			BigDecimal hongBao = order.getHongBao();
 			if (hongBao == null) {
 				hongBao = new BigDecimal(0);
@@ -2047,7 +1993,6 @@
 					List<TaoBaoWeiQuanOrder> listWQ = taoBaoWeiQuanOrderMapper
 							.selectListByOrderIdAndState(order.getOrderNo(), "缁存潈鎴愬姛");
 
-					boolean isPart = false;// 榛樿澶辨晥
 					BigDecimal weiQuanMoney = getWeiQuanMoney(listWQ, sourceType, uid);
 					if (settleTime != null && august != null && settleTime.getTime() > august.getTime()) {
 						orderStateContent = "鍞悗鎴愬姛";
@@ -2182,13 +2127,13 @@
 			if (HongBaoV2.TYPE_ZIGOU == hongBaoType) {
 				// 濂栧姳璁㈠崟銆佸厤鍗� 浣跨敤璁板綍
 				if (sourceType == null) {
-					couponFactoryNew(order, hasRewardCoupon, hongBaoState, hongBaoType, null, uid, vip);
+					couponFactoryNew(order, hasRewardCoupon, hongBaoState, hongBaoType, null, uid, isvip);
 				} else if (sourceType == Constant.SOURCE_TYPE_TAOBAO) {
-					couponFactoryNew(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordTB, uid, vip);
+					couponFactoryNew(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordTB, uid, isvip);
 				} else if (sourceType == Constant.SOURCE_TYPE_JD) {
-					couponFactoryNew(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordJD, uid, vip);
+					couponFactoryNew(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordJD, uid, isvip);
 				} else if (sourceType == Constant.SOURCE_TYPE_PDD) {
-					couponFactoryNew(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordPDD, uid, vip);
+					couponFactoryNew(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordPDD, uid, isvip);
 				}
 			}
 

--
Gitblit v1.8.0