From dcfd801ea435c1c87ed47f2ee24cdabaaf230d6f Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 31 三月 2020 12:15:56 +0800
Subject: [PATCH] 大淘客商品过滤修改

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java |  142 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 104 insertions(+), 38 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
index 951c95d..926553a 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -24,8 +24,6 @@
 import com.aliyun.openservices.ons.api.transaction.TransactionProducer;
 import com.aliyun.openservices.ons.api.transaction.TransactionStatus;
 import com.google.gson.Gson;
-import com.opensymphony.xwork2.util.Element;
-import com.sun.org.apache.xml.internal.serializer.ElemDesc;
 import com.yeshi.fanli.dao.mybatis.HongBaoV2Mapper;
 import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
 import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper;
@@ -62,7 +60,9 @@
 import com.yeshi.fanli.exception.order.TaoBaoWeiQuanException;
 import com.yeshi.fanli.exception.user.UserAccountException;
 import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.log.OrderLogHelper;
 import com.yeshi.fanli.service.inter.elme.ElmeHongBaoOrderMapService;
+import com.yeshi.fanli.service.inter.elme.ElmeOrderProcessService;
 import com.yeshi.fanli.service.inter.elme.ElmeOrderService;
 import com.yeshi.fanli.service.inter.hongbao.AccountDetailsHongBaoMapService;
 import com.yeshi.fanli.service.inter.money.UserMoneyService;
@@ -73,6 +73,7 @@
 import com.yeshi.fanli.service.inter.order.LostOrderService;
 import com.yeshi.fanli.service.inter.order.OrderMoneySettleService;
 import com.yeshi.fanli.service.inter.order.OrderProcessService;
+import com.yeshi.fanli.service.inter.order.OrderTeamRewardService;
 import com.yeshi.fanli.service.inter.order.jd.JDOrderService;
 import com.yeshi.fanli.service.inter.order.pdd.PDDOrderService;
 import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService;
@@ -80,7 +81,7 @@
 import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
 import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
 import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
-import com.yeshi.fanli.service.manger.HongBaoV2AddManager;
+import com.yeshi.fanli.service.manger.order.HongBaoV2AddManager;
 import com.yeshi.fanli.util.CMQManager;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
@@ -166,6 +167,9 @@
 	@Resource
 	private HongBaoV2AddManager hongBaoV2AddManager;
 
+	@Resource
+	private OrderTeamRewardService orderTeamRewardService;
+
 	/**
 	 * 鏄惁鏄垎浜鍗�
 	 * 
@@ -216,9 +220,14 @@
 				if ("楗夸簡涔�".equalsIgnoreCase(list.get(0).getOrderType())) {
 					// 澶勭悊楗夸簡涔堣鍗�
 					elmeOrderMap.put(orderId, list);
-				}
-
-				else {
+					// TODO 澶勭悊楗夸簡涔堣鍗�
+					// if(list.get(0).getCreateTime()){
+					// //涓嬪崟鏃堕棿澶т簬涓�涓畾鍊煎氨杩涘叆娣樺疂璁㈠崟
+					// //鑾峰彇relationId
+					//
+					//
+					// }
+				} else {
 					if (!StringUtil.isNullOrEmpty(list.get(0).getSpecialId())
 							|| pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID)) {// 璁剧疆娓犻亾ID褰撳仛浼氬憳杩愯惀ID鐨勪綅缃甀D
 						fanliOrderMap.put(orderId, list);
@@ -264,6 +273,13 @@
 			elmeOrder.setIsSettle(true);
 		else
 			elmeOrder.setIsSettle(false);
+
+		if (!taoBaoOrder.getOrderState().equalsIgnoreCase("璁㈠崟澶辨晥"))
+			elmeOrder.setState(1);
+		else {
+			elmeOrder.setState(0);
+			elmeOrder.setPayMoney(new BigDecimal(0));
+		}
 		elmeOrder.setTrackPid(
 				String.format("mm_124933865_%s_%s", taoBaoOrder.getSourceMediaId(), taoBaoOrder.getAdPositionId()));
 		if (!StringUtil.isNullOrEmpty(taoBaoOrder.getRelationId())) {
@@ -281,10 +297,11 @@
 			for (TaoBaoOrder taoBaoOrder : orderList) {
 				ElmeOrder elmeOrder = createElmeOrder(taoBaoOrder);
 				try {
-					elmeOrderService.addOrder(elmeOrder);
+					elmeOrderProcessService.processOrder(elmeOrder);
 				} catch (ElmeOrderException e) {
 					e.printStackTrace();
 				}
+
 			}
 		}
 	}
@@ -410,7 +427,7 @@
 	private HongBaoOrderMapper hongBaoOrderMapper;
 
 	@Override
-	@Transactional
+	@Transactional(rollbackFor = Exception.class)
 	public void fanli(HongBaoV2 hb1) throws TaoBaoWeiQuanException {
 		// 鏌ヨ鏈�鏂扮殑绾㈠寘鏁版嵁
 		hb1 = hongBaoV2Mapper.selectByPrimaryKeyForUpdate(hb1.getId());
@@ -477,18 +494,27 @@
 		String key = mainUser.getId() + "-" + UUID.randomUUID().toString();
 		msg.setKey(key);
 		try {
-			orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
-				@Override
-				public TransactionStatus execute(Message arg0, Object arg1) {
-					try {
-						orderMoneySettleService.ziGouSettle(hongBaoOrder.getCommonOrder().getOrderNo(),
-								hongBaoOrder.getCommonOrder().getSourceType(), key);
-						return TransactionStatus.CommitTransaction;
-					} catch (Exception e) {
-						return TransactionStatus.RollbackTransaction;
+			if (!Constant.IS_TEST)
+				orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
+					@Override
+					public TransactionStatus execute(Message arg0, Object arg1) {
+						try {
+							orderMoneySettleService.ziGouSettle(hongBaoOrder.getCommonOrder().getOrderNo(),
+									hongBaoOrder.getCommonOrder().getSourceType(), key);
+							return TransactionStatus.CommitTransaction;
+						} catch (Exception e) {
+							e.printStackTrace();
+							return TransactionStatus.RollbackTransaction;
+						}
 					}
+				}, null);
+			else {
+				try {
+					orderMoneySettleService.ziGouSettle(hongBaoOrder.getCommonOrder().getOrderNo(),
+							hongBaoOrder.getCommonOrder().getSourceType(), key);
+				} catch (Exception e) {
 				}
-			}, null);
+			}
 		} catch (Exception e) {
 			LogHelper.mqError(e.getMessage(), msg.getTopic(), msg.getTag(), new Gson().toJson(mqMsg));
 		}
@@ -517,13 +543,8 @@
 		if (orderList != null && orderList.size() > 0 & !StringUtil.isNullOrEmpty(orderList.get(0).getSettlementTime()))
 			order.setJieSuanTime(
 					new Date(TimeUtil.convertToTimeTemp(orderList.get(0).getSettlementTime(), "yyyy-MM-dd HH:mm:ss")));
-		// if (order.getJieSuanTime().getTime() >=
-		// TimeUtil.convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) {
-		// return;
-		// }
 
-		// TODO 澶勭悊缁存潈鎴愬姛浣嗘槸宸插埌璐︾殑璁㈠崟
-
+		// 澶勭悊缁存潈鎴愬姛浣嗘槸宸插埌璐︾殑璁㈠崟
 		if (order.getJieSuanTime().getTime() > TimeUtil.convertToTimeTemp("2019-01-01", "yyyy-MM-dd")) {// 缁撶畻鏃堕棿鍦�2鏈�1鍙风殑寮�濮嬪鐞嗗凡鍒拌处浣嗘槸缁存潈鐨�
 			CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
 					order.getOrderItemId());
@@ -534,15 +555,34 @@
 					TaoBaoWeiQuanDrawBack drawBack = taoBaoWeiQuanDrawBackService
 							.selectByOrderItemId(order.getOrderItemId());
 					if (drawBack == null) {// 杩樻湭鎵f
+						OrderLogHelper.taoBaoWeiQuan("宸插埌璐︽湭鎵f澶勭悊:瀛愯鍗曞彿:" + order.getOrderItemId());
 						try {
-							taoBaoWeiQuanDrawBackService.doWeiQuanFanli(order.getOrderId());
+							taoBaoWeiQuanDrawBackService.doWeiQuanFanli(order.getOrderId(), true);
 							taoBaoWeiQuanDrawBackService.doWeiQuanShare(order.getOrderId());
 							taoBaoWeiQuanDrawBackService.doWeiQuanInvite(order.getOrderId());
 						} catch (TaoBaoWeiQuanException e) {
 							try {
-								LogHelper.errorDetailInfo(e, null, "璁㈠崟鍙�:" + order.getOrderId());
+								LogHelper.errorDetailInfo(e, "鍒拌处鍚庡鐞嗙淮鏉冩墸娆惧嚭閿�", "璁㈠崟鍙�:" + order.getOrderId());
 							} catch (Exception e1) {
 								e1.printStackTrace();
+							}
+						}
+					} else {
+						// 鏌ヨ瀛愮孩鍖呮槸鍚﹀凡鍒拌处
+						List<HongBaoV2> children = hongBaoV2Service
+								.listChildrenById(hongBaoOrder.getHongBaoV2().getId());
+						for (HongBaoV2 hongBaoV2 : children) {
+							if (hongBaoV2.getState() == HongBaoV2.STATE_YILINGQU) {
+								try {
+									taoBaoWeiQuanDrawBackService.doWeiQuanInvite(order.getOrderId());
+								} catch (TaoBaoWeiQuanException e) {
+									try {
+										LogHelper.errorDetailInfo(e, "鍒拌处鍚庡鐞嗙淮鏉冩墸娆惧嚭閿�", "璁㈠崟鍙�:" + order.getOrderId());
+									} catch (Exception e1) {
+										e1.printStackTrace();
+									}
+								}
+								break;
 							}
 						}
 					}
@@ -583,9 +623,7 @@
 		} catch (OrderMoneySettleException e) {
 			e.printStackTrace();
 		}
-		if (1 > 0)
-			return;
-		//
+
 		try {
 			orderMoneySettleService.inviteSettleJD(uid);
 		} catch (OrderMoneySettleException e) {
@@ -710,7 +748,8 @@
 					order.setOrderType(Constant.SOURCE_TYPE_TAOBAO);
 					order.setUserInfo(new UserInfo(uid));
 					try {
-						PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
+						if (!Constant.IS_TEST)
+							PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
 					} catch (Exception e) {
 					}
 				}
@@ -1196,6 +1235,9 @@
 	@Resource
 	private ElmeOrderService elmeOrderService;
 
+	@Resource
+	private ElmeOrderProcessService elmeOrderProcessService;
+
 	/**
 	 * 鑾峰彇楗夸簡涔堝彲浠ヨ繑鍒╃殑绾㈠寘
 	 * 
@@ -1261,13 +1303,12 @@
 	@Transactional
 	private void addHongBaoWithMQ(List<CommonOrderAddResultDTO> commonOrderList, String orderId, Long uid,
 			int sourceType, int hongBaoType) {
-
 		final List<CommonOrder> coList = convertCommonOrder(commonOrderList);
 		int resultCode = 0;
 		try {
 			long time = TimeUtil.convertToTimeTemp("2019-12-06", "yyyy-MM-dd");
 			if (!Constant.IS_TEST)
-				time = TimeUtil.convertToTimeTemp("2020-01-01", "yyyy-MM-dd");
+				time = TimeUtil.convertToTimeTemp("2019-12-20", "yyyy-MM-dd");
 
 			if (coList.get(0).getThirdCreateTime().getTime() < time)
 				resultCode = hongBaoV2Service.addHongBao(coList, hongBaoType);
@@ -1282,12 +1323,13 @@
 		} catch (UserAccountException e) {
 
 		}
-		if (resultCode == 1) {// 鍙彂閫佹柊澧炴秷鎭�
-			OrderMQMsg mqMsg = new OrderMQMsg(orderId, sourceType, uid, OrderMQMsg.HANDLE_TYPE_ADD,
-					isCommonOrderValid(coList), 0, new Date());
-			Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderStatistic, mqMsg);
-			producer.send(msg);
-		}
+		if (!Constant.IS_TEST)
+			if (resultCode == 1) {// 鍙彂閫佹柊澧炴秷鎭�
+				OrderMQMsg mqMsg = new OrderMQMsg(orderId, sourceType, uid, OrderMQMsg.HANDLE_TYPE_ADD,
+						isCommonOrderValid(coList), 0, new Date());
+				Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderStatistic, mqMsg);
+				producer.send(msg);
+			}
 	}
 
 	/**
@@ -1306,4 +1348,28 @@
 		return false;
 	}
 
+	@Override
+	public void fanliOrderTeamReward() {
+		Date time = new Date();
+		long count = orderTeamRewardService.countCanSettleUid(time);
+		int pageSize = 500;
+		int page = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
+		List<Long> uidList = new ArrayList<>();
+		for (int i = 0; i < page; i++) {
+			List<Long> list = orderTeamRewardService.listCanSettleUid(time, i + 1, pageSize);
+			if (list != null && list.size() > 0)
+				uidList.addAll(list);
+		}
+		// 娣诲姞鍒伴槦鍒�
+		if (uidList != null)
+			for (Long uid : uidList)
+				if (!Constant.IS_TEST)
+					CMQManager.getInstance().addFanLiOrderTeamRewardMsg(uid);
+	}
+
+	@Override
+	public void fanliOrderTeamReward(Long uid) throws OrderMoneySettleException {
+		orderMoneySettleService.orderTeamRewardSettle(uid);
+	}
+
 }

--
Gitblit v1.8.0