From 06c48997a0bc5f05addf9fbfdeea87eac62a2291 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期三, 20 十一月 2019 10:56:45 +0800
Subject: [PATCH] 红包获得

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java |   28 ++++++++++++++++++++++++++--
 1 files changed, 26 insertions(+), 2 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 42f0976..9ae2f27 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
@@ -840,7 +840,7 @@
 			throw new UserSystemCouponException(1, "璁㈠崟淇℃伅鑾峰彇澶辫触");
 
 		// 鐗堟湰鍖哄垎锛�2.0.2
-		if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) {
+		if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
 			Date thirdCreateTime = orderVO.getThirdCreateTime();
 			if (thirdCreateTime != null) {
 				long downOrderTime = thirdCreateTime.getTime();
@@ -2560,7 +2560,10 @@
 	@RequestSerializableByKeyService(key = "#uid")
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void triggerFreeCouponActivate(Long uid) {
+	public void triggerFreeCouponActivate(Long uid, String orderNo, Integer source) {
+		if (uid == null || source == null || StringUtil.isNullOrEmpty(orderNo)) 
+			return;
+		
 		UserSystemCoupon coupon = userSystemCouponMapper.getNeedActivateCouponByType(uid,
 				CouponTypeEnum.freeCoupon.name());
 		if (coupon == null)
@@ -2568,6 +2571,20 @@
 
 		Long id = coupon.getId();
 		UserSystemCouponActivate couponActivate = userSystemCouponActivateService.selectForUpdate(id);
+		if (couponActivate == null)
+			return;
+		
+		// 楠岃瘉鍚岃鍗曟槸鍚﹀瓨鍦�
+		String key = orderNo + "_" + source;
+		String ordernos = couponActivate.getOrdernos();
+		if (!StringUtil.isNullOrEmpty(ordernos)) {
+			String[] array = ordernos.split(",");
+			if (array != null)
+				for (int i= 0; i < array.length; i ++) {
+					if (array[i].equals(key))
+						return;
+				}
+		}
 
 		// 婵�娲绘暟閲�
 		boolean result = false;
@@ -2581,10 +2598,17 @@
 			state = UserSystemCouponActivate.STATE_END;
 		}
 
+		if (StringUtil.isNullOrEmpty(ordernos)) {
+			ordernos = key;
+		} else {
+			ordernos = ordernos + "," + key;
+		}
+		
 		UserSystemCouponActivate updateActivate = new UserSystemCouponActivate();
 		updateActivate.setId(id);
 		updateActivate.setState(state);
 		updateActivate.setCount(count);
+		updateActivate.setOrdernos(ordernos);
 		updateActivate.setUpdateTime(new Date());
 		userSystemCouponActivateService.updateByPrimaryKeySelective(updateActivate);
 

--
Gitblit v1.8.0