From 393e3a365b5ebbed6e9eef07fbd18881cde73711 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 28 三月 2020 16:51:04 +0800
Subject: [PATCH] Merge branch 'div' into div-1

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java |  239 ++++++++++++++++++++++++++++-------------------------------
 1 files changed, 115 insertions(+), 124 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 319b318..56fd1cb 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
@@ -17,10 +17,14 @@
 import org.yeshi.utils.entity.DateInfo;
 import org.yeshi.utils.taobao.TbImgUtil;
 
+import com.aliyun.openservices.ons.api.Message;
+import com.aliyun.openservices.ons.api.Producer;
 import com.yeshi.fanli.dao.mybatis.order.CommonOrderGoodsMapper;
 import com.yeshi.fanli.dao.mybatis.order.CommonOrderMapper;
 import com.yeshi.fanli.dao.mybatis.order.CommonOrderTradeIdMapMapper;
 import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper;
+import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
+import com.yeshi.fanli.dto.mq.order.body.OrderConfirmMQMsg;
 import com.yeshi.fanli.dto.order.CommonOrderAddResultDTO;
 import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
 import com.yeshi.fanli.entity.accept.AcceptData;
@@ -71,7 +75,8 @@
 import com.yeshi.fanli.util.jd.JDApiUtil;
 import com.yeshi.fanli.util.jd.JDUtil;
 import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
-import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
+import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
+import com.yeshi.fanli.util.rocketmq.MQTopicName;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 import com.yeshi.fanli.util.user.UserLevelUtil;
@@ -130,6 +135,9 @@
 
 	@Resource
 	private UserInfoService userInfoService;
+
+	@Resource(name = "producer")
+	private Producer orderProducer;
 
 	// 濂栧姳璁㈠崟鍥剧墖
 	public final static String PIC_REWARD = "http://img.flqapp.com/resource/order/order_state_reward.png";
@@ -273,38 +281,22 @@
 		}
 		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
-					order.setVipOrder(false);
 
-				if (order.isVipOrder())
-					order.setVipOrderDesc("璁㈠崟鏉ユ簮锛氱敱瓒呯骇浼氬憳鐨勭矇涓濅骇鐢�");
-			}
+		// 璁剧疆鏄惁涓簐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("璁㈠崟鏉ユ簮锛氱敱瓒呯骇浼氬憳鐨勭矇涓濅骇鐢�");
 		}
 
 		SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
@@ -316,15 +308,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();
@@ -354,16 +342,7 @@
 					}
 					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
@@ -390,20 +369,10 @@
 					order.getListOrderGoods().add(commonGoodsVO);
 				}
 			}
-			
+
 			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) {
@@ -945,7 +914,7 @@
 			wholeOrderState = CommonOrder.STATE_WHOLE_ORDER_BUFENYOUXIAO;
 
 		for (TaoBaoOrder taoBaoOrder : taoBaoOrders) {
-			CommonOrder newCommonOrder = TaoBaoOrderUtil.convert(taoBaoOrder);
+			CommonOrder newCommonOrder = CommonOrderFactory.create(taoBaoOrder);
 			CommonOrderGoods cog = new CommonOrderGoods();
 			cog.setGoodsId(taoBaoOrder.getAuctionId() + "");
 			cog.setGoodsType(Constant.SOURCE_TYPE_TAOBAO);
@@ -1035,7 +1004,53 @@
 			newCommonOrder.setUserInfo(new UserInfo(uid));
 			commonOrderList.add(addCommonOrder(newCommonOrder));
 		}
+		addConfirmMQMsg(commonOrderList);
 		return commonOrderList;
+	}
+
+	private void addConfirmMQMsg(List<CommonOrderAddResultDTO> resultList) {
+
+		// 璁㈠崟鏄惁鏂板鎴栬�呮洿鏂拌繃
+		boolean isAddOrUpdate = false;
+		for (CommonOrderAddResultDTO dto : resultList)
+			if (dto.getType() == CommonOrderAddResultDTO.TYPE_ADD
+					|| dto.getType() == CommonOrderAddResultDTO.TYPE_UPDATE) {
+				isAddOrUpdate = true;
+				break;
+			}
+		boolean hasSettleOrder = false;
+		// 鏌ヨ鏄惁鏈夌粨绠楃殑璁㈠崟
+		if (isAddOrUpdate) {
+			for (CommonOrderAddResultDTO dto : resultList) {
+				if (dto.getCommonOrder().getSettleTime() != null && dto.getCommonOrder().getSettlement() != null) {
+					hasSettleOrder = true;
+					break;
+				}
+			}
+		}
+		// 鏈夌粨绠楃殑璁㈠崟
+		if (hasSettleOrder) {
+			if (!Constant.IS_TEST) {
+				// 缁熻缁撶畻閲戦
+				BigDecimal settlement = new BigDecimal("0");
+				CommonOrder firstOrder = null;
+				for (CommonOrderAddResultDTO dto : resultList)
+					if (dto.getCommonOrder().getSettlement() != null) {
+						settlement = settlement.add(dto.getCommonOrder().getSettlement());
+						if (firstOrder == null)
+							firstOrder = dto.getCommonOrder();
+					}
+				if (firstOrder != null) {
+					Date placeDate = firstOrder.getThirdCreateTime();
+					OrderConfirmMQMsg mqMsg = new OrderConfirmMQMsg(firstOrder.getOrderNo(), firstOrder.getSourceType(),
+							settlement, firstOrder.getUserInfo().getId(), placeDate, new Date());
+					Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderConfirm,
+							mqMsg);
+					orderProducer.send(msg);
+				}
+			}
+		}
+
 	}
 
 	@Transactional(rollbackFor = Exception.class)
@@ -1283,7 +1298,7 @@
 	@Override
 	public List<CommonOrderVO> listQuery(long start, int count, Integer keyType, String key, Integer state,
 			Integer type, Integer orderState, String startTime, String endTime, Integer source, List<Long> listShopId,
-			List<Long> listGoodsId, Date minTime, BigDecimal money,BigDecimal payment) throws CommonOrderException {
+			List<Long> listGoodsId, Date minTime, BigDecimal money, BigDecimal payment) throws CommonOrderException {
 
 		List<CommonOrderVO> list = null;
 
@@ -1292,7 +1307,7 @@
 					startTime, endTime, source, payment);
 		} else {
 			list = commonOrderMapper.listQuery(start, count, keyType, key, state, type, orderState, startTime, endTime,
-					source, listShopId, listGoodsId, minTime, money,payment);
+					source, listShopId, listGoodsId, minTime, money, payment);
 		}
 
 		if (list == null) {
@@ -1479,7 +1494,7 @@
 	@Override
 	public long countQuery(Integer keyType, String key, Integer state, Integer type, Integer orderState,
 			String startTime, String endTime, Integer source, List<Long> listShopId, List<Long> listGoodsId,
-			Date minTime, BigDecimal money,BigDecimal payment) throws CommonOrderException {
+			Date minTime, BigDecimal money, BigDecimal payment) throws CommonOrderException {
 		if (StringUtil.isNullOrEmpty(key) || keyType == 1) {// 鎼滅储妗嗘棤鍊兼垨鑰呮寜璁㈠崟鍙锋悳绱㈡椂閮藉彧鎼滅储涓昏鍗�
 			return commonOrderMapper.countQueryWithNoChild(keyType, key, state, type, orderState, startTime, endTime,
 					source, payment);
@@ -1716,7 +1731,8 @@
 	}
 
 	@Override
-	public List<CommonOrderVO> searchOrderByUid(AcceptData acceptData, int page, int size, Long uid, List<ESOrder> list) throws Exception {
+	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);
 
 		// 璁㈠崟淇℃伅涓虹┖
@@ -1746,8 +1762,8 @@
 	 * @param listGoods
 	 * @param uid
 	 */
-	private void orderVOFactoryNew(AcceptData acceptData, List<CommonOrderVO> listOrder, List<CommonOrderVO> listGoods, Long uid)
-			throws Exception {
+	private void orderVOFactoryNew(AcceptData acceptData, List<CommonOrderVO> listOrder, List<CommonOrderVO> listGoods,
+			Long uid) throws Exception {
 		List<String> listTB = new ArrayList<String>();
 		List<String> listJD = new ArrayList<String>();
 		List<String> listPDD = new ArrayList<String>();
@@ -1788,42 +1804,20 @@
 					|| 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("璁㈠崟鏉ユ簮锛氱敱瓒呯骇浼氬憳鐨勭矇涓濅骇鐢�");
 			}
 		}
-	
 
 		SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
 		SimpleDateFormat formatday = new SimpleDateFormat("yyyy.MM.dd");
@@ -1834,17 +1828,12 @@
 		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();
@@ -1873,19 +1862,7 @@
 						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
 							|| HongBaoV2.TYPE_ERJI == hongBaoType || HongBaoV2.TYPE_SHARE_YIJI == hongBaoType
@@ -1908,6 +1885,11 @@
 							order.setOrderType(2);
 						}
 					}
+					
+					Integer goodsType = commonGoodsVO.getGoodsType();
+					if (goodsType != null & goodsType == 6) {
+						order.setOrderType(5); // 楗夸簡涔堣鍗�
+					}
 
 					order.getListOrderGoods().add(commonGoodsVO);
 				}
@@ -1919,16 +1901,6 @@
 				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));
@@ -1965,6 +1937,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)) {
+					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);
@@ -2271,4 +2254,12 @@
 		}
 	}
 
+	@Override
+	public Date getThirdCreateTime(String orderId, int sourceType) {
+		List<CommonOrder> list = listBySourceTypeAndOrderId(sourceType, orderId);
+		if (list == null || list.size() == 0)
+			return null;
+		return list.get(0).getThirdCreateTime();
+	}
+
 }

--
Gitblit v1.8.0