From d28bed1a1275131a5ca37f7da37961e2b518ac07 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 26 八月 2019 13:44:00 +0800
Subject: [PATCH] 淘礼金创建异常处理

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java |   83 +++++++++++++++++++++++------------------
 1 files changed, 47 insertions(+), 36 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 cc131c8..82441ef 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
@@ -330,7 +330,7 @@
 
 		// 鏄惁瀛樺湪濂栧姳鍒�
 		boolean hasRewardCoupon = userSystemCouponService.hasRewardCoupon(uid);
-		
+
 		// 2019.8.1寮�濮嬭繑鍥炵淮鏉冧俊鎭�
 		Date august = null;
 		try {
@@ -390,7 +390,7 @@
 			if (hongBao == null) {
 				hongBao = new BigDecimal(0);
 			}
-			
+
 			if (CommonOrder.STATE_FK == orderState) {
 				orderStateContent = "宸蹭粯娆�";
 			} else if (CommonOrder.STATE_JS == orderState) {
@@ -422,7 +422,7 @@
 							isPart = true;
 						}
 					}
-					
+
 					if (!VersionUtil.greaterThan_1_6_0(acceptData.getPlatform(), acceptData.getVersion())) {
 						if (isPart) {
 							hongBaoState = HongBaoV2.STATE_BUFENSHIXIAO; // 閮ㄥ垎澶辨晥
@@ -438,12 +438,15 @@
 							if (isPart) {
 								// 缁存潈澶辨晥閲戦=缁存潈鐨勯噾棰�*鑾峰緱鐨勭孩鍖�/缁撶畻閲戦
 								BigDecimal settlement = order.getSettlement();
-								BigDecimal wqHongbao = MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(hongBao, settlement), settlement);
-								weiQuanInfo.setWqHongBao("缁存潈锛�-楼" + wqHongbao.setScale(2, BigDecimal.ROUND_DOWN).toString());
+								BigDecimal wqHongbao = MoneyBigDecimalUtil
+										.div(MoneyBigDecimalUtil.mul(hongBao, settlement), settlement);
+								weiQuanInfo.setWqHongBao(
+										"缁存潈锛�-楼" + wqHongbao.setScale(2, BigDecimal.ROUND_DOWN).toString());
 								hongBao = MoneyBigDecimalUtil.sub(hongBao, wqHongbao);
 							} else {
+								weiQuanInfo
+										.setWqHongBao("缁存潈锛�-楼" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString());
 								hongBao = new BigDecimal(0);
-								weiQuanInfo.setWqHongBao("缁存潈锛�-楼" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString());
 							}
 							order.setWeiQuanInfo(weiQuanInfo);
 						}
@@ -533,7 +536,6 @@
 
 			hongbaoInfo = hongBaoState_Str + hongbaoInfo;
 
-			
 			Map<String, String> hongBaoMap = new HashMap<String, String>();
 			hongBaoMap.put("content", hongbaoInfo + " 楼" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString());
 			hongBaoMap.put("fontColor", hongbaoInfoFontColor);
@@ -557,9 +559,9 @@
 			}
 
 			// 鍒嗕韩銆侀個璇� 闅愯棌璁㈠崟鍙�
-			if (HongBaoV2.TYPE_SHARE_GOODS == hongBaoType || HongBaoV2.TYPE_YAOQING == hongBaoType || HongBaoV2.TYPE_YIJI == hongBaoType
-					|| HongBaoV2.TYPE_ERJI == hongBaoType || HongBaoV2.TYPE_SHARE_YIJI == hongBaoType
-					|| HongBaoV2.TYPE_SHARE_ERJI == hongBaoType) {
+			if (HongBaoV2.TYPE_SHARE_GOODS == hongBaoType || HongBaoV2.TYPE_YAOQING == hongBaoType
+					|| HongBaoV2.TYPE_YIJI == hongBaoType || HongBaoV2.TYPE_ERJI == hongBaoType
+					|| HongBaoV2.TYPE_SHARE_YIJI == hongBaoType || HongBaoV2.TYPE_SHARE_ERJI == hongBaoType) {
 				order.setOrderNo(UserUtil.filterOrderId(order.getOrderNo()));
 			}
 		}
@@ -787,16 +789,6 @@
 				commonOrderGoodsMapper.insertSelective(cog);
 				newCommonOrder.setCommonOrderGoods(cog);
 			} else {
-				if (!Constant.IS_OUTNET) {
-					PDDGoodsDetail pddGoods = null;
-					pddGoods = PinDuoDuoApiUtil.getGoodsDetail(Long.parseLong(cog.getGoodsId()));
-					if (pddGoods != null) {
-						cog = CommonOrderGoodsFactory.create(pddGoods);
-						commonGoodsList.get(0).setPicture(cog.getPicture());
-						commonOrderGoodsMapper.updateByPrimaryKeySelective(commonGoodsList.get(0));
-					}
-				}
-
 			}
 			newCommonOrder.setUserInfo(new UserInfo(uid));
 			commonOrderList.add(addCommonOrder(newCommonOrder));
@@ -842,22 +834,26 @@
 			if (commonGoodsList.size() <= 0)// 涓嶅瓨鍦ㄥ氨鎻掑叆鍟嗗搧
 			{
 				JDGoods goods = JDApiUtil.getGoodsDetail(itemOrder.getSkuId());
+				if (goods == null) {
+					goods = JDUtil.getGoodsFromWeb(itemOrder.getSkuId());
+				}
+
+				if (goods == null) {
+					goods = new JDGoods();
+					goods.setSkuName(itemOrder.getSkuName());
+					goods.setPrice(itemOrder.getPrice());
+					goods.setSkuId(itemOrder.getSkuId());
+				}
 
 				if (goods != null) {
 					cog = CommonOrderGoodsFactory.create(goods);
 				}
+
 				cog.setCreateTime(new Date());
 				cog.setUpdateTime(new Date());
 				commonOrderGoodsMapper.insertSelective(cog);
 			} else {
-				if (!Constant.IS_OUTNET) {
-					JDGoods goods = JDApiUtil.getGoodsDetail(itemOrder.getSkuId());
-					if(goods==null)
-						goods=JDUtil.getGoodsFromWeb(itemOrder.getSkuId());
-					commonGoodsList.get(0).setTitle(goods.getSkuName());
-					commonGoodsList.get(0).setPicture(goods.getPicUrl());
-					commonOrderGoodsMapper.updateByPrimaryKeySelective(commonGoodsList.get(0));
-				}
+
 			}
 			newCommonOrder.setUserInfo(new UserInfo(uid));
 			commonOrderList.add(addCommonOrder(newCommonOrder));
@@ -904,10 +900,9 @@
 		if (!StringUtil.isNullOrEmpty(commonOrder.getTradeId()))
 			oldCommonOrder = commonOrderMapper.selectBySourceTypeAndTradeId(commonOrder.getSourceType(),
 					commonOrder.getTradeId());
-		else
-			oldCommonOrder = commonOrderMapper.selectByOrderNoAndOrderTypeAndOrderBy(commonOrder.getOrderNo(),
-					commonOrder.getSourceType(), commonOrder.getOrderBy());
-
+		else {
+			throw new CommonOrderException(10, "浜ゆ槗ID涓虹┖");
+		}
 		if (oldCommonOrder == null)// 鏂板
 		{
 			commonOrder.setCreateTime(new Date());
@@ -919,6 +914,7 @@
 		} else {// 淇敼
 			// 宸茬粡缁撶畻锛屽凡缁忓け鏁堬紝鐘舵�佹湭鏀瑰彉鐨勮鍗曚笉澶勭悊
 			if (oldCommonOrder.getState() == CommonOrder.STATE_JS || oldCommonOrder.getState() == CommonOrder.STATE_SX
+					|| oldCommonOrder.getState() == CommonOrder.STATE_WQ
 					|| (oldCommonOrder.getState().intValue() == commonOrder.getState())) {
 				return oldCommonOrder;
 			}
@@ -1034,8 +1030,14 @@
 			Integer type, Integer orderState, String startTime, String endTime, Integer source)
 			throws CommonOrderException {
 
-		List<CommonOrderVO> list = commonOrderMapper.listQuery(start, count, keyType, key, state, type, orderState,
-				startTime, endTime, source);
+		List<CommonOrderVO> list = null;
+
+		if (StringUtil.isNullOrEmpty(key) || keyType == 1) {// 鎼滅储妗嗘棤鍊兼垨鑰呮寜璁㈠崟鍙锋悳绱㈡椂閮藉彧鎼滅储涓昏鍗�
+			list = commonOrderMapper.listQueryWithNoChild(start, count, keyType, key, state, type, orderState,
+					startTime, endTime, source);
+		} else
+			list = commonOrderMapper.listQuery(start, count, keyType, key, state, type, orderState, startTime, endTime,
+					source);
 
 		if (list == null) {
 			list = new ArrayList<CommonOrderVO>();
@@ -1166,6 +1168,8 @@
 								|| CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) {
 							if (UserSystemCouponRecord.STATE_SUCCESS == couponState) {
 								// 鍏嶅崟鎴愬姛
+								order.setOtherState(2);
+							} else if (UserSystemCouponRecord.STATE_FREE_ON == couponState) {
 								order.setOtherState(1);
 							}
 						}
@@ -1181,6 +1185,8 @@
 								|| CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) {
 							if (UserSystemCouponRecord.STATE_SUCCESS == couponState) {
 								// 鍏嶅崟鎴愬姛
+								order.setOtherState(2);
+							} else if (UserSystemCouponRecord.STATE_FREE_ON == couponState) {
 								order.setOtherState(1);
 							}
 						}
@@ -1196,6 +1202,8 @@
 								|| CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) {
 							if (UserSystemCouponRecord.STATE_SUCCESS == couponState) {
 								// 鍏嶅崟鎴愬姛
+								order.setOtherState(2);
+							} else if (UserSystemCouponRecord.STATE_FREE_ON == couponState) {
 								order.setOtherState(1);
 							}
 						}
@@ -1212,7 +1220,11 @@
 	@Override
 	public long countQuery(Integer keyType, String key, Integer state, Integer type, Integer orderState,
 			String startTime, String endTime, Integer source) throws CommonOrderException {
-		return commonOrderMapper.countQuery(keyType, key, state, type, orderState, startTime, endTime, source);
+		if (StringUtil.isNullOrEmpty(key) || keyType == 1) {// 鎼滅储妗嗘棤鍊兼垨鑰呮寜璁㈠崟鍙锋悳绱㈡椂閮藉彧鎼滅储涓昏鍗�
+			return commonOrderMapper.countQueryWithNoChild(keyType, key, state, type, orderState, startTime, endTime,
+					source);
+		} else
+			return commonOrderMapper.countQuery(keyType, key, state, type, orderState, startTime, endTime, source);
 	}
 
 	@Override
@@ -1390,5 +1402,4 @@
 		return commonOrderMapper.listBySourceTypeAndStateAndThirdCrateTime(sourceType, state, minTime, maxTime,
 				(page - 1) * pageSize, pageSize);
 	}
-
 }

--
Gitblit v1.8.0