From b6c37e4bc38db88a360d0f2c6099183f9bb75bdc Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期一, 22 四月 2019 14:31:59 +0800
Subject: [PATCH] 券推送插入

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java |  154 +++++++++++++++++++++++----------------------------
 1 files changed, 69 insertions(+), 85 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 541d4c4..fe7d20e 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
@@ -17,23 +17,16 @@
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
-import com.yeshi.fanli.dao.mybatis.AccountDetailsMapper;
 import com.yeshi.fanli.dao.mybatis.AccountMessageMapper;
 import com.yeshi.fanli.dao.mybatis.HongBaoManageMapper;
 import com.yeshi.fanli.dao.mybatis.HongBaoV2Mapper;
-import com.yeshi.fanli.dao.mybatis.MoneyRecordMapper;
-import com.yeshi.fanli.dao.mybatis.PidOrderMapper;
-import com.yeshi.fanli.dao.mybatis.ThreeSaleGiftMapper;
 import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
-import com.yeshi.fanli.dao.mybatis.hongbao.HongBaoMapper;
 import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper;
 import com.yeshi.fanli.dao.mybatis.order.HongBaoOrderMapper;
-import com.yeshi.fanli.dao.mybatis.order.OrderItemMapper;
 import com.yeshi.fanli.dao.mybatis.order.OrderMapper;
 import com.yeshi.fanli.dao.mybatis.share.PidUserMapper;
 import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper;
-import com.yeshi.fanli.entity.bus.user.AccountDetails;
-import com.yeshi.fanli.entity.bus.user.HongBao;
+import com.yeshi.fanli.dto.HongBao;
 import com.yeshi.fanli.entity.bus.user.HongBaoV2;
 import com.yeshi.fanli.entity.bus.user.Order;
 import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
@@ -41,13 +34,11 @@
 import com.yeshi.fanli.entity.money.UserMoneyDetail;
 import com.yeshi.fanli.entity.order.CommonOrder;
 import com.yeshi.fanli.entity.order.HongBaoOrder;
-import com.yeshi.fanli.entity.taobao.PidOrder;
 import com.yeshi.fanli.entity.taobao.PidUser;
 import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
 import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
 import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
 import com.yeshi.fanli.exception.HongBaoException;
-import com.yeshi.fanli.exception.ObjectStateException;
 import com.yeshi.fanli.exception.OrderItemException;
 import com.yeshi.fanli.exception.TaoBaoWeiQuanException;
 import com.yeshi.fanli.exception.money.UserMoneyDetailException;
@@ -55,33 +46,29 @@
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.hongbao.AccountDetailsHongBaoMapService;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
 import com.yeshi.fanli.service.inter.msg.UserMoneyMsgNotificationService;
 import com.yeshi.fanli.service.inter.order.CommonOrderService;
 import com.yeshi.fanli.service.inter.order.LostOrderService;
-import com.yeshi.fanli.service.inter.order.OrderItemServcie;
 import com.yeshi.fanli.service.inter.order.OrderProcessService;
 import com.yeshi.fanli.service.inter.order.OrderService;
-import com.yeshi.fanli.service.inter.order.PidOrderService;
 import com.yeshi.fanli.service.inter.push.PushService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanDrawBackService;
 import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.service.inter.user.UserNotificationService;
+import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
 import com.yeshi.fanli.util.CMQManager;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TaoBaoConstant;
 import com.yeshi.fanli.util.TimeUtil;
-import com.yeshi.fanli.util.factory.AccountDetailsFactory;
 import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
+import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil;
 
 @Service
 public class OrderProcessServiceImpl implements OrderProcessService {
-
-	@Resource
-	private PidOrderMapper pidOrderMapper;
 
 	@Resource
 	private OrderMapper orderMapper;
@@ -90,37 +77,13 @@
 	private PidUserMapper pidUserMapper;
 
 	@Resource
-	private HongBaoService hongBaoService;
-
-	@Resource
-	private OrderItemServcie orderItemService;
-
-	@Resource
-	private PidOrderService pidOrderService;
-
-	@Resource
 	private UserInfoMapper userInfoMapper;
-
-	@Resource
-	private OrderItemMapper orderItemMapper;
-
-	@Resource
-	private HongBaoMapper hongBaoMapper;
 
 	@Resource
 	private HongBaoManageMapper hongBaoManageMapper;
 
 	@Resource
-	private AccountDetailsMapper accountDetailsMapper;
-
-	@Resource
 	private AccountMessageMapper accountMessageMapper;
-
-	@Resource
-	private MoneyRecordMapper moneyRecordMapper;
-
-	@Resource
-	private ThreeSaleGiftMapper threeSaleGiftMapper;
 
 	@Resource
 	private OrderService orderService;
@@ -167,6 +130,9 @@
 	@Resource
 	private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
 
+	@Resource
+	private UserSystemCouponService userSystemCouponService;
+
 	@Override
 	public void processOrder(Map<String, List<TaoBaoOrder>> orders) {
 		List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
@@ -174,10 +140,10 @@
 		// 鍒嗙鍑鸿繑鍒╄鍗曚笌鍒嗕韩璧氳鍗�
 		Iterator<String> its = orders.keySet().iterator();
 		Map<String, List<TaoBaoOrder>> fanliOrderMap = new HashMap<>();
-		Map<String, List<PidOrder>> sharePidOrderMap = new HashMap<>();
 		Map<String, List<TaoBaoOrder>> shareOrderMap = new HashMap<>();
 		while (its.hasNext()) {
 			String orderId = its.next();
+
 			if (orders.get(orderId) != null && orders.get(orderId).size() > 0) {
 				List<TaoBaoOrder> list = orders.get(orderId);
 
@@ -482,31 +448,27 @@
 			// 灏嗚嚜宸辨坊鍔犲埌鐢ㄦ埛
 			Long uid = its.next();
 			BigDecimal money = userMoney.get(uid);
-			userInfoMapper.addHongBaoByUid(uid, money);
-
-			AccountDetails accountDetails = AccountDetailsFactory.create("+" + money, AccountDetailsFactory.FANLI, null,
-					null, new UserInfo(uid));
-			accountDetailsMapper.insertSelective(accountDetails);
-
+			UserMoneyDetail userMoneyDetail = null;
 			// 鎻掑叆鏂扮増璧勯噾鏄庣粏
 			try {
-				UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createFanLi(uid,
-						hongBaoOrder.getCommonOrder().getOrderNo(), hongBaoOrder.getCommonOrder().getSourceType(), null,
-						money);
-				userMoneyDetail.setId(accountDetails.getId());
-				userMoneyDetailMapper.insert(userMoneyDetail);
+				// 姝ゅ涓嶇敤璁㈠崟鍙峰仛鍞竴鎬х储寮�
+				userMoneyDetail = UserMoneyDetailFactory.createFanLi(uid, hongBaoOrder.getCommonOrder().getOrderNo(),
+						hongBaoOrder.getCommonOrder().getSourceType(), null, money);
 			} catch (UserMoneyDetailException e1) {
 				try {
-					LogHelper.errorDetailInfo(e1);
+					LogHelper.errorDetailInfo(e1, "璁㈠崟鍙�:" + hongBaoOrder.getCommonOrder().getOrderNo(), "");
 				} catch (Exception e2) {
 					e2.printStackTrace();
 				}
 			}
 
+			userMoneyDetailMapper.insertSelective(userMoneyDetail);
 			// 娣诲姞璧勯噾鏄庣粏涓庣孩鍖呯殑鏄犲皠鍏崇郴
 			for (HongBaoV2 v2 : userHongBao.get(uid)) {
-				accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(v2.getId(), accountDetails.getId());
+				accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(v2.getId(), userMoneyDetail.getId());
 			}
+			// 澧炲姞鐢ㄦ埛璧勯噾
+			userInfoMapper.addHongBaoByUid(uid, money);
 
 			// 绔欏唴淇�+鎺ㄩ��
 			UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
@@ -524,13 +486,51 @@
 			// 鏂扮増閫氱煡
 			userMoneyMsgNotificationService.fanliOrderReceived(uid, hongBaoOrder.getCommonOrder().getOrderNo(),
 					userGoodsCount.get(uid), money, user.getMyHongBao());
-
+		}
+		// 閫氱煡鍏嶅崟鍒拌处
+		try {
+			userSystemCouponService.updateStateByArrivalAccount(hongBaoOrder.getCommonOrder().getOrderNo());
+		} catch (Exception e) {
+			e.printStackTrace();
 		}
 
 		// 缁存潈鎵f锛�2018-08-05鍚庡紑濮嬪疄琛岋級
 		if (hongBaoOrder.getCommonOrder().getSettleTime() != null && hongBaoOrder.getCommonOrder().getSettleTime()
 				.getTime() >= TimeUtil.convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) {
-			taoBaoWeiQuanDrawBackService.doWeiQuanFanli(hongBaoOrder.getCommonOrder().getOrderNo());
+			try {
+
+				taoBaoWeiQuanDrawBackService.doWeiQuanFanli(hongBaoOrder.getCommonOrder().getOrderNo());
+
+			} catch (TaoBaoWeiQuanException e) {
+				if (e.getCode() == TaoBaoWeiQuanException.CODE_NEDD_UPDATE_ORDER) {
+					List<TaoBaoOrder> olist = taoBaoOrderService
+							.getTaoBaoOrderByOrderId(hongBaoOrder.getCommonOrder().getOrderNo());
+
+					if (olist != null && olist.size() > 0) {
+						long time = TimeUtil.convertToTimeTemp(olist.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss");
+						olist = TaoKeOrderApiUtil.getTaoBaoAllOrder(TimeUtil.getGernalTime(time, "yyyy-MM-dd HH:mm:ss"),
+								TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+						List<TaoBaoOrder> thirdOList = TaoKeOrderApiUtil.getTaoBaoThirdAllOrder(
+								TimeUtil.getGernalTime(time, "yyyy-MM-dd HH:mm:ss"), 30, 1,
+								TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+						if (thirdOList != null && thirdOList.size() > 0)
+							olist.addAll(thirdOList);
+
+						if (olist != null && olist.size() > 0) {
+							for (int i = 0; i < olist.size(); i++) {
+								if (!olist.get(i).getOrderId()
+										.equalsIgnoreCase(hongBaoOrder.getCommonOrder().getOrderNo())) {// 鍒犻櫎鏃犲叧璁㈠崟
+									olist.remove(i);
+									i--;
+								}
+							}
+
+							taoBaoOrderService.addTaoBaoOrderList(olist);
+						}
+					}
+				} else
+					throw new TaoBaoWeiQuanException(e.getCode(), e.getMsg());
+			}
 		}
 
 	}
@@ -557,12 +557,8 @@
 		if (order.getJieSuanTime().getTime() >= TimeUtil.convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) {
 			return;
 		}
-		try {
-			orderService.failureOrderWithWeiQuan(order.getOrderId(), Order.ORDER_TYPE_TAOBAO);
-		} catch (ObjectStateException e) {
-			e.printStackTrace();
-		}
-		pidOrderService.weiQuan(order.getOrderId());
+
+		// TODO 澶勭悊缁存潈鎴愬姛浣嗘槸宸插埌璐︾殑璁㈠崟
 	}
 
 	@Override
@@ -703,10 +699,6 @@
 		// 閭�璇疯禋鍒拌处
 		if (invitemoney.compareTo(new BigDecimal(0)) > 0) {
 			userInfoMapper.addHongBaoByUid(uid, invitemoney);
-			// 娣诲姞璁板綍
-			AccountDetails accountDetails = AccountDetailsFactory.create("+" + invitemoney,
-					AccountDetailsFactory.TICHENG, null, null, new UserInfo(uid));
-			accountDetailsMapper.insertSelective(accountDetails);
 
 			// 娣诲姞鏂扮増璇︽儏璁板綍
 			try {
@@ -727,8 +719,9 @@
 
 				UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, (int) validCount,
 						(int) weiQuanCount, (int) invalidCount, invitemoney, new Date());
-				userMoneyDetail.setId(accountDetails.getId());
 				userMoneyDetailMapper.insert(userMoneyDetail);
+				// 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
+				accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, userMoneyDetail.getId());
 			} catch (UserMoneyDetailException e) {
 				try {
 					LogHelper.errorDetailInfo(e);
@@ -736,11 +729,6 @@
 					e1.printStackTrace();
 				}
 			}
-
-			// 璁板綍杩斿埄绾㈠寘涓庤祫閲戣鎯呯殑瀵瑰簲鍏崇郴
-
-			// 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
-			accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, accountDetails.getId());
 
 			// 鍙戦�佹帹閫�
 			try {
@@ -753,7 +741,7 @@
 
 			// 鏂扮増閫氱煡
 			userMoneyMsgNotificationService.inviteOrderReceived(uid, inviteOrders.size(), inviteGoodsCount, invitemoney,
-					userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
+					userInfoMapper.selectByPKey(uid).getMyHongBao());
 
 			for (String orderId : drawBackOrders)
 				taoBaoWeiQuanDrawBackService.doWeiQuanInvite(orderId);
@@ -807,11 +795,6 @@
 
 		if (sharemoney.compareTo(new BigDecimal(0)) > 0) {
 			userInfoMapper.addHongBaoByUid(uid, sharemoney);
-			// 娣诲姞璁板綍
-			AccountDetails accountDetails = AccountDetailsFactory.create("+" + sharemoney,
-					AccountDetailsFactory.SHARE_GOODS, null, null, new UserInfo(uid));
-			accountDetailsMapper.insertSelective(accountDetails);
-
 			// 娣诲姞鏂扮増璇︽儏璁板綍
 			try {
 				// 璁$畻鏈湀鐨勬湁鏁堣鍗曪紝澶辨晥璁㈠崟锛岀淮鏉冭鍗�
@@ -832,8 +815,9 @@
 
 				UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, (int) validCount,
 						(int) weiQuanCount, (int) invalidCount, sharemoney, new Date());
-				userMoneyDetail.setId(accountDetails.getId());
 				userMoneyDetailMapper.insert(userMoneyDetail);
+				// 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
+				accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, userMoneyDetail.getId());
 			} catch (UserMoneyDetailException e) {
 				try {
 					LogHelper.errorDetailInfo(e);
@@ -841,10 +825,6 @@
 					e1.printStackTrace();
 				}
 			}
-			// 璁板綍杩斿埄绾㈠寘涓庤祫閲戣鎯呯殑瀵瑰簲鍏崇郴
-
-			// 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
-			accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, accountDetails.getId());
 
 			// 鍙戦�佹帹閫�
 			try {
@@ -875,6 +855,11 @@
 	@Override
 	public void processShopingFanliOrderNew(String orderId, List<TaoBaoOrder> orderList)
 			throws HongBaoException, OrderItemException {
+
+		LogHelper.test(String.format("璁㈠崟澶勭悊:璁㈠崟鍙�-%s  璁㈠崟鏁伴噺-%s", orderId, orderList.size() + ""));
+		if (orderList.size() == 1)
+			LogHelper.test("璁㈠崟鎺掑簭鍊�:" + orderList.get(0).getOrderBy());
+
 		List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
 
 		if (orderList != null && orderList.size() > 0) {
@@ -1001,7 +986,6 @@
 				e1.printStackTrace();
 			}
 		}
-
 	}
 
 }

--
Gitblit v1.8.0