From 02ece4ea308a26928dea57ca68f0585fef1d2e62 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期四, 28 二月 2019 15:48:38 +0800
Subject: [PATCH] 券消息bug调整

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java |  125 +++++++++++++++++++++++++++++------------
 1 files changed, 88 insertions(+), 37 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 12563d1..468af7c 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
@@ -28,6 +28,7 @@
 import com.yeshi.fanli.entity.order.CommonOrder;
 import com.yeshi.fanli.entity.system.SystemCoupon;
 import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
+import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.exception.user.UserInfoExtraException;
 import com.yeshi.fanli.exception.user.UserSystemCouponException;
 import com.yeshi.fanli.log.LogHelper;
@@ -49,7 +50,9 @@
 import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
+import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
+import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
 import com.yeshi.fanli.vo.order.CommonOrderVO;
 import com.yeshi.fanli.vo.user.UserSystemCouponRecordVO;
@@ -62,6 +65,9 @@
 
 	@Resource(name = "taskExecutor")
 	private TaskExecutor executor;
+	
+	@Resource
+	private RedisManager redisManager;
 	
 	@Resource
 	private UserSystemCouponMapper userSystemCouponMapper;
@@ -209,12 +215,12 @@
 		
 		// 娑堟伅鎺ㄩ��
 		try {
-			if (coupon.getType() != CouponTypeEnum.welfareFreeCoupon) {
+			if (coupon.getType() == CouponTypeEnum.welfareFreeCoupon) {
 				userOtherMsgNotificationService.welfareCouponGet(userCoupon);
-			} else if (coupon.getType() != CouponTypeEnum.freeCoupon) {
+			} else if (coupon.getType() == CouponTypeEnum.freeCoupon) {
 				userOtherMsgNotificationService.freeSheetCouponGet(userCoupon);
-			} else if (coupon.getType() != CouponTypeEnum.rebatePercentCoupon) {
-				userOtherMsgNotificationService.rewardCouponGet(userCoupon);
+			} else if (coupon.getType() == CouponTypeEnum.rebatePercentCoupon) {
+				userOtherMsgNotificationService.rewardCouponGet(userCoupon,coupon.getPercent().intValue());
 			}
 			
 		} catch(Exception e) {
@@ -227,7 +233,7 @@
 	}
 
 	
-	
+	@Transactional
 	@Override
 	public List<UserSystemCouponVO> getUserCouponVOList(long start, int count, Long uid)
 			throws UserSystemCouponException, Exception {
@@ -334,7 +340,7 @@
 
 					} else if (CouponTypeEnum.rebatePercentCoupon == type) {
 						// 杩斿埄濂栧姳鍒�- 璺宠浆鑷宠鍗曞埌璐︾晫闈�
-						jumpLink.put("state", 2);
+						jumpLink.put("state", "2");
 						
 						jumpBtn = new HashMap<String, Object>();
 						jumpBtn.put("params", jumpLink);
@@ -418,13 +424,6 @@
 			userCouponVO.setCouponEffect(systemCoupon.getEffect());
 			userCouponVO.setCouponRule(systemCoupon.getRule());
 
-			Integer stateActivated = userCouponVO.getStateActivated();
-			if (stateActivated == null || stateActivated == 0) {
-				userCouponVO.setCouponPicture(PIC_INVALID); // 鏈縺娲�
-				userCouponVO.setState(0);
-			} else {
-				userCouponVO.setCouponPicture(systemCoupon.getPicture());
-			}
 
 			int differentDays = 0;
 			String couponTerm = "鏈夋晥鏈燂細";
@@ -446,7 +445,23 @@
 			// 鍓╀綑澶╂暟
 			Map<String, Object> remainDays = new HashMap<String, Object>();
 			remainDays.put("content", "杩樺墿" + differentDays + "澶╄繃鏈�");
-			remainDays.put("fontColor", "#F14242");
+			String  remainDaysFontColor = "";
+			
+			Integer stateActivated = userCouponVO.getStateActivated();
+			if (stateActivated == null || stateActivated == 0) {
+				userCouponVO.setState(0);
+				userCouponVO.setCouponEffect("寰呮縺娲�");
+				userCouponVO.setCouponPicture(PIC_INVALID); // 鏈縺娲诲浘鐗�
+				
+				remainDaysFontColor = "#CCCCCC";
+				
+			} else {
+				userCouponVO.setCouponPicture(systemCoupon.getPicture());
+				
+				remainDaysFontColor = "#F14242";
+			}
+			
+			remainDays.put("fontColor", remainDaysFontColor);
 			userCouponVO.setRemainDays(remainDays);
 		}
 
@@ -477,6 +492,7 @@
 		return hasCoupon;
 	}
 
+	@Transactional
 	@Override
 	public List<UserSystemCouponVO> getOrderCouponList(Long uid) throws UserSystemCouponException, Exception {
 		if (uid == null) {
@@ -497,10 +513,16 @@
 		return getEnableListByCouponId(uid, 1, couponList);
 	}
 
+	@Transactional
 	@Override
-	public List<UserSystemCouponVO> getGoodsCouponList(Long uid) throws UserSystemCouponException, Exception {
+	public List<UserSystemCouponVO> getGoodsCouponList(Long uid, Long auctionId) throws UserSystemCouponException, Exception {
+		
 		if (uid == null) {
 			throw new UserSystemCouponException(1, "鐢ㄦ埛鏈櫥褰�");
+		}
+		
+		if (auctionId == null) {
+			throw new UserSystemCouponException(1, "鍟嗗搧ID涓虹┖");
 		}
 		
 		// 鏇存柊杩囨湡鍒�
@@ -514,9 +536,36 @@
 			return null;
 		}
 
-		return getEnableListByCouponId(uid, null, couponList);
+		List<UserSystemCouponVO> list = getEnableListByCouponId(uid, null, couponList);
+		
+		// 鑾峰彇鍟嗗搧璇︽儏
+		TaoBaoGoodsBrief taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
+		if (taoBaoGoodsBrief != null) {
+			BigDecimal quanPrice = TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief);
+			
+			// 鍒稿悗浠� 澶т簬10鍏� 涓嶈兘鍏嶅崟
+			if (quanPrice.compareTo(new BigDecimal(10)) > 0) {
+				if (list != null && list.size() > 0) {
+					for (UserSystemCouponVO userCouponVO: list) {
+						// 鏄剧ず涓嶈兘浣跨敤
+						userCouponVO.setState(0);
+						userCouponVO.setCouponPicture(PIC_INVALID);
+						
+						Map<String, Object> map = userCouponVO.getRemainDays();
+						if (map != null) {
+							map.put("fontColor", "#CCCCCC");
+						}
+						userCouponVO.setRemainDays(map);
+						
+					}
+				}
+			}
+		}
+		
+		return list;
 	}
 
+	@Transactional
 	@Override
 	public void useGoodsCoupon(Long uid, Long id, Long goodId) throws UserSystemCouponException, Exception {
 		if (uid == null) {
@@ -569,10 +618,10 @@
 		
 		// 娑堟伅鎺ㄩ��
 		try {
-			if (baseCoupon.getType() != CouponTypeEnum.welfareFreeCoupon) {
-				userOtherMsgNotificationService.welfareCouponUsing(userSystemCoupon);
-			} else if (baseCoupon.getType() != CouponTypeEnum.freeCoupon) {
-				userOtherMsgNotificationService.freeSheetCouponUsing(userSystemCoupon);
+			if (baseCoupon.getType() == CouponTypeEnum.welfareFreeCoupon) {
+//				userOtherMsgNotificationService.welfareCouponUsing(userSystemCoupon,order);
+			} else if (baseCoupon.getType() == CouponTypeEnum.freeCoupon) {
+//				userOtherMsgNotificationService.freeSheetCouponUsing(userSystemCoupon);
 			}
 			
 		} catch(Exception e) {
@@ -687,7 +736,7 @@
 			
 			// 娑堟伅鎺ㄩ��
 			try {
-				userOtherMsgNotificationService.rewardCouponUsed(userSystemCoupon);
+				userOtherMsgNotificationService.rewardCouponUsed(userSystemCoupon, hongBao, money, orderNo);
 			} catch(Exception e) {
 				LogHelper.errorDetailInfo(e);
 			}
@@ -754,8 +803,8 @@
 		}
 		userRecordVO.setCouponEffect("杩斿埄楼" + hongBao.setScale(2, BigDecimal.ROUND_DOWN) + "宸茶繑" + percent + "%");
 
-		// 璺宠浆绂忓埄涓績
-		JumpDetailV2 welfareCore = jumpDetailV2Service.getByTypeCache("welfareCore");
+		// 璧勯噾鏄庣粏
+		JumpDetailV2 welfareCore = jumpDetailV2Service.getByTypeCache("capitalDetails");
 		Map<String, Object> jumpWelfare = new HashMap<String, Object>();
 		jumpWelfare.put("jumpDetail", welfareCore);
 		Map<String, Object> jumpparms = new HashMap<String, Object>();
@@ -773,6 +822,7 @@
 		return userRecordVO;
 	}
 
+	
 	@Override
 	public UserSystemCouponRecordVO getFreeCouponRecord(String orderNo) throws UserSystemCouponException, Exception {
 
@@ -974,7 +1024,7 @@
 		return userRecordVO;
 	}
 	
-	
+	@Transactional
 	@Override
 	public void activatedWelfareFreeCoupon(Long uid) {
 		if (uid == null) {
@@ -1013,6 +1063,7 @@
 		}
 	}
 	
+	@Transactional
 	@Override
 	public void updateStateByDrawback(String orderNo) throws Exception {
 		
@@ -1034,6 +1085,7 @@
 		sendBackCoupon(record.getUserSystemCoupon());
 	}
 	
+	@Transactional
 	@Override
 	public void updateStateByArrivalAccount(String orderNo) throws Exception {
 		
@@ -1052,6 +1104,7 @@
 		userSystemCouponRecordService.updateByPrimaryKeySelective(record);
 	}
 
+	@Transactional
 	@Override
 	public void updateCounponInvalid(Long uid) {
 		List<UserSystemCoupon> list = userSystemCouponMapper.getCounponNowInvalid(uid);
@@ -1076,11 +1129,11 @@
 			
 			// 娑堟伅鎺ㄩ��
 			try {
-				if (baseCoupon.getType() != CouponTypeEnum.welfareFreeCoupon) {
+				if (baseCoupon.getType() == CouponTypeEnum.welfareFreeCoupon) {
 					userOtherMsgNotificationService.welfareCouponAlreadyOutOfDate(userSystemCoupon);
-				} else if (baseCoupon.getType() != CouponTypeEnum.freeCoupon) {
+				} else if (baseCoupon.getType() == CouponTypeEnum.freeCoupon) {
 					userOtherMsgNotificationService.freeSheetCouponAlreadyOutOfDate(userSystemCoupon);
-				} else if (baseCoupon.getType() != CouponTypeEnum.rebatePercentCoupon) {
+				} else if (baseCoupon.getType() == CouponTypeEnum.rebatePercentCoupon) {
 					userOtherMsgNotificationService.rewardCouponAlreadyOutOfDate(userSystemCoupon);
 				}
 				
@@ -1094,10 +1147,11 @@
 		}
 	}
 	
+	@Transactional
 	@Override
 	public void  sendBackTimeOutCoupon(Long uid) {
 		// 瓒呰繃120绉� 鏈鍖归厤鐨勫埜
-		List<UserSystemCouponRecord> list = userSystemCouponRecordService.getCouponByUsingTimeOut(uid, 120);
+		List<UserSystemCouponRecord> list = userSystemCouponRecordService.getCouponByUsingTimeOut(uid, 120L);
 		if (list == null || list.size() == 0) {
 			return;
 		}
@@ -1139,13 +1193,10 @@
 		}
 	}
 	
+	@Transactional
 	@Override
 	public boolean updateCouponRecordUsed(Long uid, String orderNo, BigDecimal payment,
 			Long auctionId) throws  Exception{
-		
-		//鍙鐞嗕粯娆鹃噾棰濆皬浜�10鐨�
-		if(payment==null||payment.compareTo(new BigDecimal(10))<0)
-			return false;
 		
 		boolean isfree = false;
 		
@@ -1207,11 +1258,11 @@
 				SystemCoupon baseCoupon = systemCouponService.selectByPrimaryKey(systemCoupon.getId());
 				if (baseCoupon == null) {
 					// 鍒稿凡浣跨敤
-					userOtherMsgNotificationService.freeSheetCouponUsed(userSystemCoupon);
-				} else 	if (baseCoupon.getType() != CouponTypeEnum.welfareFreeCoupon) {
-					userOtherMsgNotificationService.welfareCouponUsed(userSystemCoupon);
-				} else if (baseCoupon.getType() != CouponTypeEnum.freeCoupon) {
-					userOtherMsgNotificationService.freeSheetCouponUsed(userSystemCoupon);
+					userOtherMsgNotificationService.freeSheetCouponUsed(userSystemCoupon, orderNo);
+				} else 	if (baseCoupon.getType() == CouponTypeEnum.welfareFreeCoupon) {
+					userOtherMsgNotificationService.welfareCouponUsing(userSystemCoupon,orderNo,payment);
+				} else if (baseCoupon.getType() == CouponTypeEnum.freeCoupon) {
+					userOtherMsgNotificationService.freeSheetCouponUsed(userSystemCoupon,orderNo);
 				} 
 			}
 		}

--
Gitblit v1.8.0