From cdcbed9af813b2a02cdc01eefa24db8bec6b51a9 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期三, 27 三月 2019 12:17:33 +0800
Subject: [PATCH] 主分类 + 子分类 DAO改造

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java |  177 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 82 insertions(+), 95 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 6b7878e..db7759d 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,36 +17,28 @@
 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;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 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;
@@ -54,32 +46,27 @@
 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.TimeUtil;
-import com.yeshi.fanli.util.factory.AccountDetailsFactory;
 import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
 
 @Service
 public class OrderProcessServiceImpl implements OrderProcessService {
-
-	@Resource
-	private PidOrderMapper pidOrderMapper;
 
 	@Resource
 	private OrderMapper orderMapper;
@@ -88,37 +75,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;
@@ -162,6 +125,12 @@
 	@Resource
 	private UserMoneyMsgNotificationService userMoneyMsgNotificationService;
 
+	@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);
@@ -169,24 +138,30 @@
 		// 鍒嗙鍑鸿繑鍒╄鍗曚笌鍒嗕韩璧氳鍗�
 		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);
-				String pid = String.format("mm_%s_%s_%s", configList.get(0).getAccountId(),
-						list.get(0).getSourceMediaId(), list.get(0).getAdPositionId());
-				PidUser pidUser = pidUserMapper.selectByPid(pid);
-				if (pidUser != null && pidUser.getType() == PidUser.TYPE_SHARE_GOODS) {// 鍟嗗搧鍒嗕韩璁㈠崟
-					// List<PidOrder> pidOrderList = new ArrayList<>();
-					// for (TaoBaoOrder order : list) {
-					// pidOrderList.add(TaoBaoOrderUtil.convertToPidOrder(order));
-					// }
-					// sharePidOrderMap.put(orderId, pidOrderList);
+
+				if (!StringUtil.isNullOrEmpty(list.get(0).getRelationId())) {
 					shareOrderMap.put(orderId, list);
-				} else {// 鏅�氳繑鍒╄鍗�
+				} else if (!StringUtil.isNullOrEmpty(list.get(0).getSpecialId())) {
 					fanliOrderMap.put(orderId, list);
+				} else {
+					String pid = String.format("mm_%s_%s_%s", configList.get(0).getAccountId(),
+							list.get(0).getSourceMediaId(), list.get(0).getAdPositionId());
+					PidUser pidUser = pidUserMapper.selectByPid(pid);
+					if (pidUser != null && pidUser.getType() == PidUser.TYPE_SHARE_GOODS) {// 鍟嗗搧鍒嗕韩璁㈠崟
+						// List<PidOrder> pidOrderList = new ArrayList<>();
+						// for (TaoBaoOrder order : list) {
+						// pidOrderList.add(TaoBaoOrderUtil.convertToPidOrder(order));
+						// }
+						// sharePidOrderMap.put(orderId, pidOrderList);
+						shareOrderMap.put(orderId, list);
+					} else {// 鏅�氳繑鍒╄鍗�
+						fanliOrderMap.put(orderId, list);
+					}
 				}
 			}
 		}
@@ -275,7 +250,16 @@
 			Iterator<String> its = orders.keySet().iterator();
 			while (its.hasNext()) {
 				String orderId = its.next();
-				processShareGoodsOrderNew(orderId, orders.get(orderId));
+				try {
+					processShareGoodsOrderNew(orderId, orders.get(orderId));
+				} catch (Exception e) {
+					try {
+						LogHelper.errorDetailInfo(e, "processShareGoodsOrderNew鍑洪敊", "璁㈠崟鍙�:" + orderId);
+					} catch (Exception e1) {
+						e1.printStackTrace();
+					}
+				}
+
 			}
 		}
 	}
@@ -461,31 +445,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.insert(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);
@@ -503,7 +483,12 @@
 			// 鏂扮増閫氱煡
 			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鍚庡紑濮嬪疄琛岋級
@@ -536,12 +521,6 @@
 		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());
 	}
 
 	@Override
@@ -682,10 +661,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 {
@@ -706,8 +681,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);
@@ -715,11 +691,6 @@
 					e1.printStackTrace();
 				}
 			}
-
-			// 璁板綍杩斿埄绾㈠寘涓庤祫閲戣鎯呯殑瀵瑰簲鍏崇郴
-
-			// 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
-			accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, accountDetails.getId());
 
 			// 鍙戦�佹帹閫�
 			try {
@@ -732,7 +703,7 @@
 
 			// 鏂扮増閫氱煡
 			userMoneyMsgNotificationService.inviteOrderReceived(uid, inviteOrders.size(), inviteGoodsCount, invitemoney,
-					userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
+					userInfoMapper.selectByPKey(uid).getMyHongBao());
 
 			for (String orderId : drawBackOrders)
 				taoBaoWeiQuanDrawBackService.doWeiQuanInvite(orderId);
@@ -786,11 +757,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 {
 				// 璁$畻鏈湀鐨勬湁鏁堣鍗曪紝澶辨晥璁㈠崟锛岀淮鏉冭鍗�
@@ -811,8 +777,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);
@@ -820,10 +787,6 @@
 					e1.printStackTrace();
 				}
 			}
-			// 璁板綍杩斿埄绾㈠寘涓庤祫閲戣鎯呯殑瀵瑰簲鍏崇郴
-
-			// 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
-			accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, accountDetails.getId());
 
 			// 鍙戦�佹帹閫�
 			try {
@@ -881,6 +844,25 @@
 					// 鍔犲叆鍒拌鍗曡〃
 					orderMapper.insertSelective(order);
 					oldOrder = order;
+				} else {
+					UserExtraTaoBaoInfo info = userExtraTaoBaoInfoService
+							.getBySpecialId(orderList.get(0).getSpecialId());
+					if (info != null && info.getUser() != null) {
+						uid = info.getUser().getId();
+						// 鎻掑叆鍒癘rder涓�
+						// 娣诲姞鍒拌鍗曚腑鍘�
+						Order order = new Order();
+						order.setBeizhu("PID杩斿埄璁㈠崟");
+						order.setCreatetime(System.currentTimeMillis());
+						order.setOrderId(orderId);
+						order.setOrderType(1);
+						order.setState(Order.STATE_YIZHIFU);
+						order.setUserInfo(new UserInfo(uid));
+						order.setVersion(2);
+						// 鍔犲叆鍒拌鍗曡〃
+						orderMapper.insertSelective(order);
+						oldOrder = order;
+					}
 				}
 			} else {
 				uid = oldOrder.getUserInfo().getId();
@@ -922,7 +904,7 @@
 				hongBaoV2Service.addHongBao(commonOrderList, HongBaoV2.TYPE_ZIGOU);
 			} catch (CommonOrderException e) {
 				try {
-					LogHelper.errorDetailInfo(e, null, "璁㈠崟鍙�:" + orderId);
+					LogHelper.errorDetailInfo(e, "addTaoBaoOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + orderId);
 				} catch (Exception e1) {
 					e1.printStackTrace();
 				}
@@ -941,6 +923,11 @@
 			PidUser pidUser = pidUserMapper.selectByPid(pid);
 			if (pidUser != null)
 				uid = pidUser.getUid();
+			else {
+				UserExtraTaoBaoInfo info = userExtraTaoBaoInfoService.getByRelationId(orderList.get(0).getRelationId());
+				if (info != null && info.getUser() != null)
+					uid = info.getUser().getId();
+			}
 
 			// 灏氭湭鎵惧埌鍜孭ID瀵瑰簲鐨勭敤鎴�
 			if (uid == null)

--
Gitblit v1.8.0