From d222232204b5ba3d3039ae8689dad743ea06723f Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期五, 12 七月 2019 09:12:51 +0800
Subject: [PATCH] Merge branch 'master' into div

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java |  152 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 98 insertions(+), 54 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 208c811..396418a 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
@@ -20,6 +20,7 @@
 import com.yeshi.fanli.dao.mybatis.order.CommonOrderTradeIdMapMapper;
 import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper;
 import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
+import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.user.HongBaoV2;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.bus.user.UserSystemCouponRecord;
@@ -30,6 +31,7 @@
 import com.yeshi.fanli.entity.order.CommonOrder;
 import com.yeshi.fanli.entity.order.CommonOrderGoods;
 import com.yeshi.fanli.entity.order.CommonOrderTradeIdMap;
+import com.yeshi.fanli.entity.order.HongBaoOrder;
 import com.yeshi.fanli.entity.pdd.PDDOrder;
 import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -44,6 +46,7 @@
 import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
 import com.yeshi.fanli.service.inter.order.CommonOrderService;
+import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
 import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService;
 import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
 import com.yeshi.fanli.util.Constant;
@@ -98,6 +101,9 @@
 	@Resource
 	private CommonGoodsService commonGoodsService;
 
+	@Resource
+	private HongBaoOrderService hongBaoOrderService;
+
 	// 濂栧姳璁㈠崟鍥剧墖
 	public final static String PIC_REWARD = "http://img.flqapp.com/resource/order/order_state_reward.png";
 
@@ -138,26 +144,26 @@
 
 	@Override
 	public List<CommonOrderVO> listGroupOrderNoByUid(long start, int count, Long uid, Integer state, Integer type,
-			Integer orderState, String orderNo, String startTime, String endTime, Integer dateType)
+			Integer orderState, String orderNo, String startTime, String endTime, Integer dateType, Integer source)
 			throws CommonOrderException {
 		return commonOrderMapper.listUserOrder(start, count, uid, state, type, orderState, orderNo, startTime, endTime,
-				dateType);
+				dateType, source);
 	}
 
 	@Override
 	public long countGroupOrderNoByUid(Long uid, Integer state, Integer type, Integer orderState, String orderNo,
-			String startTime, String endTime, Integer dateType) throws CommonOrderException {
-		return commonOrderMapper.countUserOrder(uid, state, type, orderState, orderNo, startTime, endTime, dateType);
+			String startTime, String endTime, Integer dateType, Integer source) throws CommonOrderException {
+		return commonOrderMapper.countUserOrder(uid, state, type, orderState, orderNo, startTime, endTime, dateType, source);
 	}
 
 	@Override
-	public List<CommonOrderVO> getOrderByUid(Integer page, Long uid, Integer state, Integer type, Integer orderState,
-			String orderNo, String startTime, String endTime, Integer dateType) throws CommonOrderException {
+	public List<CommonOrderVO> getOrderByUid(AcceptData acceptData,Integer page, Long uid, Integer state, Integer type, Integer orderState,
+			String orderNo, String startTime, String endTime, Integer dateType, Integer source) throws CommonOrderException {
 
 		int pageSize = Constant.PAGE_SIZE;
 
 		List<CommonOrderVO> listOrder = listGroupOrderNoByUid((page - 1) * pageSize, pageSize, uid, state, type,
-				orderState, orderNo, startTime, endTime, dateType);
+				orderState, orderNo, startTime, endTime, dateType, source);
 
 		// 璁㈠崟淇℃伅涓虹┖
 		if (listOrder == null || listOrder.size() == 0) {
@@ -173,24 +179,24 @@
 		}
 
 		// 鏁版嵁鍔犲伐閲嶆柊缁勭粐
-		listDataFactory(listOrder, listGoods, uid);
+		listDataFactory(acceptData, listOrder, listGoods, uid);
 
 		return listOrder;
 	}
 
 	@Override
-	public Map<String, BigDecimal> countHistoryOrder(Long uid, Integer day) {
-		return commonOrderMapper.countHistoryOrder(uid, day);
+	public Map<String, BigDecimal> countHistoryOrder(Long uid, Integer day, Integer source) {
+		return commonOrderMapper.countHistoryOrder(uid, day, source);
 	}
 
 	@Override
-	public long countBonusOrderNumber(Long uid, Integer type, Integer day, String startTime, String endTime) {
-		return commonOrderMapper.countBonusOrderNumber(uid, type, day, startTime, endTime);
+	public long countBonusOrderNumber(Long uid, Integer type, Integer day, String startTime, String endTime, Integer source) {
+		return commonOrderMapper.countBonusOrderNumber(uid, type, day, startTime, endTime, source);
 	}
 
 	@Override
-	public BigDecimal countBonusOrderMoney(Long uid, Integer type, Integer day, String startTime, String endTime) {
-		return commonOrderMapper.countBonusOrderMoney(uid, type, day, startTime, endTime);
+	public BigDecimal countBonusOrderMoney(Long uid, Integer type, Integer day, String startTime, String endTime, Integer source) {
+		return commonOrderMapper.countBonusOrderMoney(uid, type, day, startTime, endTime, source);
 	}
 
 	@Override
@@ -201,11 +207,11 @@
 
 	@Override
 	public Map<String, BigDecimal> countByUidAndOrderState(Long uid, Integer type, String startTime, String endTime,
-			Integer day) {
-		return commonOrderMapper.countByUidAndOrderState(uid, type, startTime, endTime, day);
+			Integer day, Integer source) {
+		return commonOrderMapper.countByUidAndOrderState(uid, type, startTime, endTime, day, source);
 	}
 
-	public void listDataFactory(List<CommonOrderVO> listOrder, List<CommonOrderVO> listGoods, Long uid) {
+	public void listDataFactory(AcceptData acceptData, List<CommonOrderVO> listOrder, List<CommonOrderVO> listGoods, Long uid) {
 
 		List<String> listNo = new ArrayList<String>();
 		for (CommonOrderVO commonOrderVO : listOrder) {
@@ -272,13 +278,19 @@
 
 					listOrderGoods.add(commonGoodsVO);
 
-					Integer orderType = commonOrder.getOrderType();
+					Integer orderType = order.getOrderType();
 					if (orderType == null) {
 						String shopType = commonGoodsVO.getShopType();
 						if (CommonOrderGoodsVO.TYPE_TAOBAO.equalsIgnoreCase(shopType)) {
-							commonOrder.setOrderType(1);
+							order.setOrderType(1);
 						} else if (CommonOrderGoodsVO.TYPE_TMALL.equalsIgnoreCase(shopType)) {
-							commonOrder.setOrderType(2);
+							order.setOrderType(2);
+						} 
+						
+						if (Constant.SOURCE_TYPE_JD == sourceType2) {
+							order.setOrderType(3);
+						} else if (Constant.SOURCE_TYPE_PDD == sourceType2) {
+							order.setOrderType(4);
 						}
 					}
 
@@ -783,7 +795,8 @@
 			return commonOrder;
 		} else {// 淇敼
 			// 宸茬粡缁撶畻鎴栬�呭凡缁忓け鏁堢殑璁㈠崟涓嶅鐞�
-			if (oldCommonOrder.getState() == CommonOrder.STATE_JS || oldCommonOrder.getState() == CommonOrder.STATE_SX) {
+			if (oldCommonOrder.getState() == CommonOrder.STATE_JS
+					|| oldCommonOrder.getState() == CommonOrder.STATE_SX) {
 				return oldCommonOrder;
 			}
 			// 浜ゆ槗ID涓�鑷存墠淇敼
@@ -907,6 +920,14 @@
 		if (list.size() == 0) {
 			return list;
 		}
+		
+		List<String> listNo = new ArrayList<String>();
+		for (CommonOrderVO commonOrderVO : list) {
+			listNo.add(commonOrderVO.getOrderNo());
+		}
+		// 宸茬粡浣跨敤鍒歌鍗�
+		List<UserSystemCouponRecord> couponRecordList = userSystemCouponRecordService.getRecordByOrderNoList(listNo);
+
 
 		SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
 		for (CommonOrderVO order : list) {
@@ -984,6 +1005,28 @@
 					}
 				}
 			}
+			
+			// 濂栧姳璁㈠崟銆佸厤鍗� 浣跨敤璁板綍
+			if (couponRecordList != null && couponRecordList.size() > 0) {
+				for (UserSystemCouponRecord couponRecord : couponRecordList) {
+					// 璁㈠崟鍙峰尮閰�
+					if (order.getOrderNo().equals(couponRecord.getOrderNo())) {
+
+						String systemCouponType = couponRecord.getCouponType();
+						Integer couponState = couponRecord.getState();
+						if (CouponTypeEnum.freeCoupon.name().equals(systemCouponType)
+								|| CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) {
+							 if (UserSystemCouponRecord.STATE_SUCCESS == couponState) {
+								// 鍏嶅崟鎴愬姛
+								 order.setOtherState(1);
+							} 
+						}
+
+						break;
+					}
+				}
+			}
+
 
 		}
 
@@ -997,15 +1040,6 @@
 		return commonOrderMapper.countQuery(keyType, key, state, type, orderState, startTime, endTime);
 	}
 
-	@Override
-	public CommonOrderVO getInfoByOrderNo(Long uid, String orderNo) throws CommonOrderException {
-		List<CommonOrderVO> list = getOrderByUid(1, uid, null, null, null, orderNo, null, null, null);
-		if (list == null || list.size() == 0) {
-			return null;
-		} else {
-			return list.get(0);
-		}
-	}
 
 	@Override
 	public CommonOrderVO getCommonOrderByOrderNo(Long uid, String orderNo, Integer orderState)
@@ -1100,30 +1134,6 @@
 		return commonOrderVO;
 	}
 
-	@Override
-	public List<CommonOrderVO> getCouponHongbaoByOrderNo(Long uid, Integer hongBaoState, String orderNo)
-			throws CommonOrderException {
-
-		List<CommonOrderVO> listOrder = commonOrderMapper.getCouponHongbaoByOrderNo(uid, hongBaoState, orderNo);
-
-		// 璁㈠崟淇℃伅涓虹┖
-		if (listOrder == null || listOrder.size() == 0) {
-			listOrder = new ArrayList<CommonOrderVO>();
-			return listOrder;
-		}
-
-		// 鍟嗗搧淇℃伅
-		List<CommonOrderVO> listGoods = commonOrderMapper.listOrderGoodsInfo(listOrder);
-		// 璁㈠崟鍟嗗搧涓虹┖
-		if (listGoods == null || listGoods.size() == 0) {
-			return listOrder;
-		}
-
-		// 鏁版嵁鍔犲伐閲嶆柊缁勭粐
-		listDataFactory(listOrder, listGoods, uid);
-
-		return listOrder;
-	}
 
 	@Override
 	public JSONObject getRewardJumpInfo(String orderNo) {
@@ -1164,4 +1174,38 @@
 		return commonOrderMapper.selectBySourceTypeAndTradeId(sourceType, tradeId);
 	}
 
+	@Transactional
+	@Override
+	public void deleteErrorCommonOrder(Long coId) {
+		// 鏌ヨ鏄惁杩斿埄鍒拌处
+		HongBaoOrder hongBaoOrder = hongBaoOrderService.selectDetailByCommonOrderId(coId);
+		if (hongBaoOrder.getHongBaoV2().getState() == HongBaoV2.STATE_YILINGQU)
+			return;
+		List<HongBaoV2> hongBaoList = hongBaoV2Service.listChildrenById(hongBaoOrder.getHongBaoV2().getId());
+		boolean canDelete = true;
+		for (HongBaoV2 child : hongBaoList)
+			if (child.getState() == HongBaoV2.STATE_YILINGQU) {
+				canDelete = false;
+				break;
+			}
+		// 涓嶈兘鍒犻櫎
+		if (!canDelete)
+			return;
+
+		// 鍒犻櫎child
+		for (HongBaoV2 child : hongBaoList)
+			hongBaoV2Service.deleteByPrimaryKey(child.getId());
+		// 鍒犻櫎涓荤孩鍖�
+		hongBaoV2Service.deleteByPrimaryKey(hongBaoOrder.getHongBaoV2().getId());
+		// 鍒犻櫎hongbaoOrder
+		hongBaoOrderService.deleteByPrimaryKey(hongBaoOrder.getId());
+		// 鍒犻櫎CommonOrder
+		commonOrderMapper.deleteByPrimaryKey(hongBaoOrder.getCommonOrder().getId());
+	}
+
+	@Override
+	public List<CommonOrder> listBySourceTypeAndTradeId(int sourceType, String tradeId) {
+		return commonOrderMapper.listBySourceTypeAndTradeId(sourceType, tradeId);
+	}
+
 }

--
Gitblit v1.8.0