From 4e938ce8cf18ebb12c102e7c18c1ca16fe1b15a8 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 28 二月 2019 14:03:44 +0800
Subject: [PATCH] 消息返回修改

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java |  114 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 101 insertions(+), 13 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 e9cff22..34ca787 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
@@ -11,6 +11,7 @@
 
 import javax.annotation.Resource;
 
+import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.yeshi.utils.DateUtil;
@@ -27,6 +28,8 @@
 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;
 import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
@@ -47,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;
@@ -58,6 +63,12 @@
 @Service
 public class UserSystemCouponServiceImpl implements UserSystemCouponService {
 
+	@Resource(name = "taskExecutor")
+	private TaskExecutor executor;
+	
+	@Resource
+	private RedisManager redisManager;
+	
 	@Resource
 	private UserSystemCouponMapper userSystemCouponMapper;
 
@@ -185,6 +196,22 @@
 		// 鎻掑叆鏁版嵁搴�
 		insertSelective(userCoupon);
 		
+		executor.execute(new Runnable() {
+			@Override
+			public void run() {
+				UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
+				// 娣诲姞涓�鏉℃秷鎭�
+				if (userInfoExtra != null) {
+					userInfoExtra.setCouponNews(userInfoExtra.getCouponNews() + 1);
+					try {
+						userInfoExtraService.saveUserInfoExtra(userInfoExtra);
+					} catch (UserInfoExtraException e) {
+						e.printStackTrace();
+					}
+				}
+				
+			}
+		});
 		
 		// 娑堟伅鎺ㄩ��
 		try {
@@ -193,7 +220,7 @@
 			} else if (coupon.getType() != CouponTypeEnum.freeCoupon) {
 				userOtherMsgNotificationService.freeSheetCouponGet(userCoupon);
 			} else if (coupon.getType() != CouponTypeEnum.rebatePercentCoupon) {
-				userOtherMsgNotificationService.rewardCouponGet(userCoupon);
+				userOtherMsgNotificationService.rewardCouponGet(userCoupon,coupon.getPercent().intValue());
 			}
 			
 		} catch(Exception e) {
@@ -399,8 +426,9 @@
 
 			Integer stateActivated = userCouponVO.getStateActivated();
 			if (stateActivated == null || stateActivated == 0) {
-				userCouponVO.setCouponPicture(PIC_INVALID); // 鏈縺娲�
 				userCouponVO.setState(0);
+				userCouponVO.setCouponEffect("寰呮縺娲�");
+				userCouponVO.setCouponPicture(PIC_INVALID); // 鏈縺娲诲浘鐗�
 			} else {
 				userCouponVO.setCouponPicture(systemCoupon.getPicture());
 			}
@@ -477,9 +505,14 @@
 	}
 
 	@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涓虹┖");
 		}
 		
 		// 鏇存柊杩囨湡鍒�
@@ -493,7 +526,26 @@
 			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);
+					}
+				}
+			}
+		}
+		
+		return list;
 	}
 
 	@Override
@@ -549,9 +601,9 @@
 		// 娑堟伅鎺ㄩ��
 		try {
 			if (baseCoupon.getType() != CouponTypeEnum.welfareFreeCoupon) {
-				userOtherMsgNotificationService.welfareCouponUsing(userSystemCoupon);
+//				userOtherMsgNotificationService.welfareCouponUsing(userSystemCoupon,order);
 			} else if (baseCoupon.getType() != CouponTypeEnum.freeCoupon) {
-				userOtherMsgNotificationService.freeSheetCouponUsing(userSystemCoupon);
+//				userOtherMsgNotificationService.freeSheetCouponUsing(userSystemCoupon);
 			}
 			
 		} catch(Exception e) {
@@ -666,7 +718,7 @@
 			
 			// 娑堟伅鎺ㄩ��
 			try {
-				userOtherMsgNotificationService.rewardCouponUsed(userSystemCoupon);
+				userOtherMsgNotificationService.rewardCouponUsed(userSystemCoupon, hongBao, money, orderNo);
 			} catch(Exception e) {
 				LogHelper.errorDetailInfo(e);
 			}
@@ -990,10 +1042,46 @@
 				}
 			}
 		}
-		
-		
 	}
 	
+	@Override
+	public void updateStateByDrawback(String orderNo) throws Exception {
+		
+		if (orderNo == null || orderNo.trim().length() == 0) {
+			return;
+		}
+
+		UserSystemCouponRecord record = userSystemCouponRecordService.getRecordByOrderNo(orderNo, null);
+		if (record == null) {
+			return;
+		}
+		
+		record.setOrderNo(orderNo);
+		record.setUpdateTime(new Date());
+		record.setState(UserSystemCouponRecord.STATE_FAIL_DRAWBACK);
+		userSystemCouponRecordService.updateByPrimaryKeySelective(record);
+		
+		// 鍒搁��鍥�
+		sendBackCoupon(record.getUserSystemCoupon());
+	}
+	
+	@Override
+	public void updateStateByArrivalAccount(String orderNo) throws Exception {
+		
+		if (orderNo == null || orderNo.trim().length() == 0) {
+			return;
+		}
+
+		UserSystemCouponRecord record = userSystemCouponRecordService.getRecordByOrderNo(orderNo, 2);
+		if (record == null) {
+			return;
+		}
+		
+		record.setOrderNo(orderNo);
+		record.setUpdateTime(new Date());
+		record.setState(UserSystemCouponRecord.STATE_SUCCESS);
+		userSystemCouponRecordService.updateByPrimaryKeySelective(record);
+	}
 
 	@Override
 	public void updateCounponInvalid(Long uid) {
@@ -1040,7 +1128,7 @@
 	@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;
 		}
@@ -1146,11 +1234,11 @@
 				SystemCoupon baseCoupon = systemCouponService.selectByPrimaryKey(systemCoupon.getId());
 				if (baseCoupon == null) {
 					// 鍒稿凡浣跨敤
-					userOtherMsgNotificationService.freeSheetCouponUsed(userSystemCoupon);
+					userOtherMsgNotificationService.freeSheetCouponUsed(userSystemCoupon, orderNo);
 				} else 	if (baseCoupon.getType() != CouponTypeEnum.welfareFreeCoupon) {
-					userOtherMsgNotificationService.welfareCouponUsed(userSystemCoupon);
+					userOtherMsgNotificationService.welfareCouponUsing(userSystemCoupon,orderNo,payment);
 				} else if (baseCoupon.getType() != CouponTypeEnum.freeCoupon) {
-					userOtherMsgNotificationService.freeSheetCouponUsed(userSystemCoupon);
+					userOtherMsgNotificationService.freeSheetCouponUsed(userSystemCoupon,orderNo);
 				} 
 			}
 		}

--
Gitblit v1.8.0