From a4d96fb3100e6aaf65e54d260921ceb1c00e54ef Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期二, 26 二月 2019 10:10:51 +0800
Subject: [PATCH] 免单商品/bug修复

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java |   60 +++++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 41 insertions(+), 19 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
index a82bcb5..f2a951f 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
@@ -23,7 +23,6 @@
 import com.yeshi.fanli.entity.common.JumpDetailV2;
 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.system.SystemCoupon;
 import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
 import com.yeshi.fanli.exception.user.UserSystemCouponException;
@@ -154,7 +153,7 @@
 	 * 
 	 * @param listVO
 	 */
-	public void listDataFactory(List<UserSystemCouponVO> listVO) {
+	public void listDataFactory(List<UserSystemCouponVO> listVO) throws Exception{
 
 		for (UserSystemCouponVO userCouponVO : listVO) {
 
@@ -191,8 +190,10 @@
 				userCouponVO.setCouponRule(systemCoupon.getRemark());
 				systemCoupon.setEffect("寰呮縺娲�");
 
-				// 鐘舵�佹湭婵�娲�
-				userCouponVO.setState(0);
+				// 鐘舵�佹湭婵�娲� -涓旀湭琚娇鐢�
+				if (UserSystemCoupon.STATE_CAN_USE == state) {
+					userCouponVO.setState(0);
+				}
 
 				jumpBtn = new HashMap<String, Object>();
 				Map<String, Object> jumpLink = new HashMap<String, Object>();
@@ -210,7 +211,9 @@
 					CouponTypeEnum type = systemCoupon.getType();
 					if (CouponTypeEnum.freeCoupon == type || CouponTypeEnum.welfareFreeCoupon == type) {
 						// 鍏嶅崟鍒搞�� 绂忓埄鍏嶅崟鍒�
-						jumpLink.put("url", configService.get("invite_activation_url"));
+						
+						// 鍏嶅崟鍟嗗搧鍒楄〃
+						jumpLink.put("url", configService.get("free_goods_list"));
 
 						jumpBtn = new HashMap<String, Object>();
 						jumpBtn.put("params", jumpLink);
@@ -218,11 +221,14 @@
 
 					} else if (CouponTypeEnum.rebatePercentCoupon == type) {
 						// 杩斿埄濂栧姳鍒�
-						jumpLink.put("url", configService.get("invite_activation_url"));
-
+						jumpLink.put("state", 2);
+						
 						jumpBtn = new HashMap<String, Object>();
 						jumpBtn.put("params", jumpLink);
-						jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("invite"));
+						
+						// 璺宠浆璁㈠崟鍒楄〃
+						jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("orderList"));
+						
 					}
 				} else if (UserSystemCoupon.STATE_END_USE == state || UserSystemCoupon.STATE_OVERDUE == state) {
 					userCouponVO.setCouponPicture(PIC_INVALID);
@@ -243,7 +249,8 @@
 			if (UserSystemCoupon.STATE_CAN_USE == state) {
 				int differentDays = 0;
 				if (endTime != null && startTime != null) {
-					differentDays = DateUtil.differentDaysByMillisecond(new Date(), endTime) + 1;
+					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+					differentDays = DateUtil.daysBetween(sdf.format(new Date()), sdf.format(endTime)) + 1;
 					if (differentDays < 0) {
 						differentDays = 0;
 					}
@@ -309,8 +316,9 @@
 			if (endTime != null && startTime != null) {
 				SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
 				couponTerm = couponTerm + sdf.format(startTime) + "-" + sdf.format(endTime);
-
-				differentDays = DateUtil.differentDaysByMillisecond(new Date(), endTime) + 1;
+				
+				SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
+				differentDays = DateUtil.daysBetween(sdf2.format(new Date()), sdf2.format(endTime)) + 1;
 				if (differentDays < 0) {
 					differentDays = 0;
 				}
@@ -407,6 +415,11 @@
 			throw new UserSystemCouponException(1, "鏈壘鍒板埜鍩烘湰淇℃伅");
 		}
 
+		if (baseCoupon.getType() != CouponTypeEnum.freeCoupon
+				&& baseCoupon.getType() != CouponTypeEnum.welfareFreeCoupon) {
+			throw new UserSystemCouponException(1, "鍒哥被鍨嬩笉鍖归厤");
+		}
+		
 		Date date = new Date();
 		// 鏇存柊鍒镐娇鐢�
 		userSystemCoupon.setState(UserSystemCoupon.STATE_IN_USE); // 姝e湪鍖归厤
@@ -449,6 +462,11 @@
 			}
 		}
 
+		if (systemCoupon.getType() != CouponTypeEnum.rebatePercentCoupon) {
+			throw new UserSystemCouponException(1, "鍒哥被鍨嬩笉鍖归厤");
+		}
+
+		
 		if (orderNo == null || orderNo.trim().length() == 0) {
 			throw new UserSystemCouponException(1, "璁㈠崟鍙蜂笉瀛樺湪");
 		}
@@ -459,7 +477,6 @@
 			throw new UserSystemCouponException(1, "璁㈠崟淇℃伅鑾峰彇澶辫触");
 		}
 
-		Long commonOrderId = orderVO.getId();
 
 		BigDecimal hongBao = orderVO.getHongBao();
 		// 绾㈠寘鐘舵��
@@ -563,21 +580,26 @@
 			throw new UserSystemCouponException(1, "鍒哥被鍨嬩笉姝g‘");
 		}
 
-		List<CommonOrderVO> list = commonOrderService.getCouponHongbaoByOrderNo(userSystemCoupon.getUid(),
-				HongBaoV2.STATE_YILINGQU, orderNo);
-
-		if (list == null || list.size() == 0) {
+		Long uid = userSystemCoupon.getUid();
+		
+		CommonOrderVO commonOrderVO= commonOrderService.getCommonOrderByOrderNo(userSystemCoupon.getUid(),
+				orderNo, CommonOrder.STATE_JS);
+		
+		if (commonOrderVO == null) {
 			throw new UserSystemCouponException(1, "璁㈠崟淇℃伅鑾峰彇澶辫触");
 		}
+		
+		// 鑾峰彇濂栧姳閲戦
+		Map<String, BigDecimal> map = orderHongBaoMapService.getCouponHongbaoByOrderNo(orderNo, uid);
 
 		UserSystemCouponRecordVO userRecordVO = new UserSystemCouponRecordVO();
 		userRecordVO.setCouponMoneyState("宸插埌璐�");
-		userRecordVO.setCommonOrder(list.get(0));
-		userRecordVO.setCouponName("濂栧姳閲�: 楼" + list.get(0).getCouponMoney().setScale(2, BigDecimal.ROUND_DOWN));
+		userRecordVO.setCommonOrder(commonOrderVO);
+		userRecordVO.setCouponName("濂栧姳閲�: 楼" + map.get("couponMoney").setScale(2, BigDecimal.ROUND_DOWN));
 
 		// 姣斾緥
 		BigDecimal percent = baseCoupon.getPercent();
-		BigDecimal hongBao = list.get(0).getHongBao().setScale(2, BigDecimal.ROUND_DOWN);
+		BigDecimal hongBao = map.get("totalMoney").setScale(2, BigDecimal.ROUND_DOWN);
 		userRecordVO.setCouponEffect("杩斿埄楼" + hongBao + "宸茶繑" + percent + "%");
 
 		// 璺宠浆绂忓埄涓績

--
Gitblit v1.8.0