From 8c04d27e5cebb7e654c208533e9567c4df2c8acc Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期四, 12 十二月 2019 14:21:44 +0800
Subject: [PATCH] 券时间限制

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/TokenRecordServiceImpl.java |   51 +++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 47 insertions(+), 4 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/TokenRecordServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/TokenRecordServiceImpl.java
index c6840f3..96dfaef 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/TokenRecordServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/TokenRecordServiceImpl.java
@@ -16,6 +16,7 @@
 import com.yeshi.fanli.dto.msg.MsgInviteContentDTO;
 import com.yeshi.fanli.dto.msg.MsgOtherGiveContentDTO;
 import com.yeshi.fanli.dto.msg.MsgRedPackGiveContentDTO;
+import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail.MsgTypeMoneyTypeEnum;
 import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinGiveRecord;
 import com.yeshi.fanli.entity.bus.user.TokenRecord;
@@ -48,6 +49,7 @@
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TokenUtil;
+import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.vo.msg.TokenVO;
 
 @Service
@@ -117,7 +119,7 @@
 	}
 
 	@Override
-	public TokenVO discernToken(String token, Long uid) throws TokenRecordException {
+	public TokenVO discernToken(String token, Long uid, AcceptData acceptData) throws TokenRecordException {
 		// 瑙f瀽鍙d护
 		String parseToken = TokenUtil.parseToken(token);
 		if (StringUtil.isNullOrEmpty(parseToken)) 
@@ -218,6 +220,10 @@
 				throw new TokenRecordException(1, "鍙d护宸插け鏁�");
 			}
 		} else if (tokenType == TokenTypeEnum.redPack) {
+			if(!VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion()))
+				throw new TokenRecordException(1, "璇峰崌绾у埌鏈�鏂扮増");
+			
+			
 			type = 13;
 			RedPackGiveRecord giveRecord = redPackGiveRecordService.selectByPrimaryKey(Long.parseLong(identify));
 			if (giveRecord == null)
@@ -288,7 +294,7 @@
 	
 
 	@Override
-	public String receiveToken(String token, Long uid) throws TokenRecordException {
+	public String receiveToken(String token, Long uid, AcceptData acceptData) throws TokenRecordException {
 		if (uid == null || uid <= 0)
 			throw new TokenRecordException(1, "鐢ㄦ埛鏈櫥褰�");
 
@@ -504,6 +510,9 @@
 				}
 			});
 		} else if (tokenType == TokenTypeEnum.redPack) {
+			if(!VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion()))
+				throw new TokenRecordException(1, "璇峰崌绾у埌鏈�鏂扮増");
+			
 			try {
 				msg = "棰嗗彇绾㈠寘鎴愬姛锛岃鍒癧鎴戠殑-绾㈠寘]涓煡鐪�";
 				// 棰嗗彇绾㈠寘銆佹洿鏂拌褰�
@@ -542,7 +551,7 @@
 						if (user != null && !StringUtil.isNullOrEmpty(user.getNickName()))
 							userName = user.getNickName();
 						MsgRedPackGiveContentDTO givedto = new MsgRedPackGiveContentDTO();
-						givedto.setTitle("绾㈠寘棰嗗彇");
+						givedto.setTitle("绾㈠寘璧犻��");
 						givedto.setUserInfo("鏄电О锛�" + userName + " ID锛�" + uid);
 						givedto.setTime(sd.format(new Date()));
 						givedto.setMoney("楼" + giveRecord.getAmount().setScale(2));
@@ -593,10 +602,18 @@
 		try {
 			UserInfo user = userInfoService.selectByPKey(giveUid);
 			UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
+			
+			String inviteCode = null;
+			if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCodeVip())) {
+				inviteCode = userInfoExtra.getInviteCodeVip();
+			} else {
+				inviteCode = userInfoExtra.getInviteCode();
+			}
+			
 			MsgInviteContentDTO msgInvite = new MsgInviteContentDTO();
 			msgInvite.setTitle("閭�璇锋秷鎭�");
 			msgInvite.setState("鎴愬姛婵�娲婚個璇�");
-			msgInvite.setCode("浣犵殑閭�璇风爜锛�" + userInfoExtra.getInviteCode());
+			msgInvite.setCode("浣犵殑閭�璇风爜锛�" + inviteCode);
 			msgInvite.setInviter("鏄电О锛�"+user.getNickName());
 			msgInvite.setMode("鎴愬姛棰嗗彇閭�璇蜂汉鐨�" + giftName);
 			userInviteMsgNotificationService.receiveGift(uid, "閭�璇峰叧绯讳竴鏃︾‘绔嬫棤娉曟洿鏀� ", msgInvite);
@@ -617,9 +634,35 @@
 			return;
 		Date date = new Date();
 		for (TokenRecord tokenRecord: list) {
+			Integer state = tokenRecord.getState();
+			if (state != null && state == 0) 
+				continue;
+			
 			tokenRecord.setState(1);
 			tokenRecord.setUpdateTime(date);
 			tokenRecordMapper.updateByPrimaryKeySelective(tokenRecord);
 		}
 	}
+	
+	
+	@Override
+	public void invalidByRedPack(Long id) {
+		if (id == null)
+			return;
+		
+		List<String> list = new ArrayList<String>();
+		list.add(TokenTypeEnum.redPack.name());
+		tokenRecordMapper.invalidByTypeAndIdentify(list, id.toString());
+	}
+	
+	@Override
+	public void invalidByCoupon(Long id) {
+		if (id == null)
+			return;
+		
+		List<String> list = new ArrayList<String>();
+		list.add(TokenTypeEnum.freeCoupon.name());
+		list.add(TokenTypeEnum.rebatePercentCoupon.name());
+		tokenRecordMapper.invalidByTypeAndIdentify(list, id.toString());
+	}
 }

--
Gitblit v1.8.0