From d8359ddb48dab5cc797a9d552e11fde571f4920c Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期二, 27 八月 2019 12:32:46 +0800
Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/TokenRecordServiceImpl.java |   72 +++++++++++++++++++++++++++++------
 1 files changed, 59 insertions(+), 13 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 927da3c..a6e4ea7 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
@@ -8,6 +8,7 @@
 
 import javax.annotation.Resource;
 
+import org.springframework.context.annotation.Lazy;
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Service;
 
@@ -21,12 +22,15 @@
 import com.yeshi.fanli.entity.bus.user.UserSystemCoupon;
 import com.yeshi.fanli.entity.bus.user.UserSystemCouponGiveRecord;
 import com.yeshi.fanli.entity.bus.user.UserSystemCouponRecord;
+import com.yeshi.fanli.entity.system.SystemCoupon;
 import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
 import com.yeshi.fanli.exception.tlj.UserTaoLiJinOriginException;
 import com.yeshi.fanli.exception.user.TokenRecordException;
 import com.yeshi.fanli.exception.user.UserInfoExtraException;
 import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.config.SystemCouponService;
 import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
+import com.yeshi.fanli.service.inter.integral.IntegralGetService;
 import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinGiveRecordService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
@@ -38,6 +42,7 @@
 import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TokenUtil;
 import com.yeshi.fanli.vo.msg.TokenVO;
 
 @Service
@@ -75,6 +80,14 @@
 
 	@Resource
 	private UserOtherMsgNotificationService userOtherMsgNotificationService;
+	
+	@Lazy
+	@Resource
+	private IntegralGetService  integralGetService;
+	
+	@Resource
+	private SystemCouponService systemCouponService;
+	
 
 	@Override
 	public void insertSelective(TokenRecord record) {
@@ -83,6 +96,12 @@
 		tokenRecordMapper.insertSelective(record);
 	}
 
+	
+	@Override
+	public void updateByPrimaryKeySelective(TokenRecord record) {
+		tokenRecordMapper.updateByPrimaryKeySelective(record);
+	}
+	
 	@Override
 	public TokenRecord getNearByTypeAndIdentify(String type, String identify) {
 		return tokenRecordMapper.getNearByTypeAndIdentify(type, identify);
@@ -90,12 +109,19 @@
 
 	@Override
 	public TokenVO discernToken(String token, Long uid) throws TokenRecordException {
-
-		// TODO token 楠岃瘉
-		TokenRecord rokenRecord = tokenRecordMapper.getByToken(token);
+		// 瑙f瀽鍙d护
+		String parseToken = TokenUtil.parseToken(token);
+		if (StringUtil.isNullOrEmpty(parseToken)) 
+			throw new TokenRecordException(1, "鏈彂鐜板彛浠�");
+		
+		TokenRecord rokenRecord = tokenRecordMapper.getByToken(parseToken);
 		if (rokenRecord == null)
 			throw new TokenRecordException(1, "鍙d护涓嶅瓨鍦�");
 
+		Long uidToken = rokenRecord.getUid();
+		if (uid != null && uidToken != null && uid.longValue() == uidToken.longValue())
+			throw new TokenRecordException(1, "涓嶈兘鑷繁璧犻�佺粰鑷繁");
+		
 		Date now = new Date();
 		Date endTimeToken = rokenRecord.getEndTime();
 		Integer stateTtoken = rokenRecord.getState();
@@ -242,7 +268,7 @@
 		
 		TokenVO tokenVO = new TokenVO();
 		tokenVO.setAmount(num);
-		tokenVO.setToken(token);
+		tokenVO.setToken(parseToken);
 		tokenVO.setNickName(nickName + "璧犻��");
 		tokenVO.setPortrait(portrait);
 		tokenVO.setTips(tips);
@@ -264,7 +290,11 @@
 		TokenRecord rokenRecord = tokenRecordMapper.getByToken(token);
 		if (rokenRecord == null)
 			throw new TokenRecordException(1, "鍙d护宸插け鏁�");
-
+		
+		Long uidToken = rokenRecord.getUid();
+		if (uidToken != null && uid.longValue() == uidToken.longValue())
+			throw new TokenRecordException(1, "涓嶈兘鑷繁璧犻�佺粰鑷繁");
+		
 		Date now = new Date();
 		Date endTimeToken = rokenRecord.getEndTime();
 		if (endTimeToken != null && endTimeToken.getTime() < now.getTime())
@@ -302,9 +332,11 @@
 					|| userCoupon.getState() != UserSystemCoupon.STATE_IN_USE)
 				throw new TokenRecordException(1, "璇ュ埜涓嶅瓨鍦ㄦ垨闈炶禒閫�");
 
+			
+			
 			try {
 				userSystemCouponService.insertUserCoupon(uid, CouponTypeEnum.freeCoupon.name(),
-						UserSystemCoupon.SOURCE_GIVE);
+						UserSystemCoupon.SOURCE_GIVE, null);
 			} catch (Exception e) {
 				LogHelper.errorDetailInfo(e);
 				throw new TokenRecordException(1, "棰嗗彇澶辫触");
@@ -335,12 +367,14 @@
 			updateGiveRecord.setState(UserSystemCouponGiveRecord.STATE_RECEIVE);
 			userSystemCouponGiveRecordService.updateByPrimaryKeySelective(updateGiveRecord);
 
+			integralGetService.addGiveFreeCoupon(giveUid);
+			
 			msg = "棰嗗彇鎴愬姛[鍏嶅崟鍒竇鎴愬姛锛岃鍒癧鎴戠殑-绂忓埄涓績]涓煡鐪�";
 			// 娑堟伅 + 闃熷憳
 			executor.execute(new Runnable() {
 				@Override
 				public void run() {
-					SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH.mm");
+					SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH:mm");
 					boolean addTeam = addInviteTeam(uid, giveUid, userInfoExtra);
 					String beiZhu = "鏃�";
 					if (addTeam)
@@ -355,7 +389,7 @@
 					msgOther.setType(MsgOtherGiveContentDTO.TYEP_COUPON);
 					msgOther.setTitle("璧犻�佸厤鍗曞埜");
 					msgOther.setGiveType("浣犺禒閫佺殑鍏嶅崟鍒歌鎴愬姛棰嗗彇");
-					msgOther.setReceiveInfo("鏄电О:  " + userName + " ID:" + uid);
+					msgOther.setReceiveInfo("鏄电О: 锛�" + userName + " ID锛�" + uid);
 					msgOther.setGiveTime(sd.format(giveRecord.getGiveTime()));
 					msgOther.setReceiveTime(sd.format(new Date()));
 					userOtherMsgNotificationService.tokenGiveMsg(giveUid, beiZhu, msgOther);
@@ -377,9 +411,17 @@
 					|| userCoupon.getState() != UserSystemCoupon.STATE_IN_USE)
 				throw new TokenRecordException(1, "璇ュ埜涓嶅瓨鍦ㄦ垨闈炶禒閫�");
 
+			SystemCoupon systemCoupon = userCoupon.getSystemCoupon();
+			if (systemCoupon == null)
+				throw new TokenRecordException(1, "璇ュ埜涓嶅瓨鍦�");
+			
+			systemCoupon = systemCouponService.selectByPrimaryKey(systemCoupon.getId());
+			if (systemCoupon == null)
+				throw new TokenRecordException(1, "璇ュ埜涓嶅瓨鍦�");
+			
 			try {
-				userSystemCouponService.insertUserCoupon(uid, CouponTypeEnum.freeCoupon.name(),
-						UserSystemCoupon.SOURCE_GIVE);
+				userSystemCouponService.insertUserCoupon(uid, CouponTypeEnum.rebatePercentCoupon.name(),
+						UserSystemCoupon.SOURCE_GIVE, systemCoupon.getPercent());
 			} catch (Exception e) {
 				LogHelper.errorDetailInfo(e);
 				throw new TokenRecordException(1, "棰嗗彇澶辫触");
@@ -410,12 +452,14 @@
 			updateGiveRecord.setState(UserSystemCouponGiveRecord.STATE_RECEIVE);
 			userSystemCouponGiveRecordService.updateByPrimaryKeySelective(updateGiveRecord);
 
+			integralGetService.addGiveRebateCoupon(giveUid);
+			
 			msg = "棰嗗彇鎴愬姛[杩斿埄濂栧姳鍒竇鎴愬姛锛岃鍒癧鎴戠殑-绂忓埄涓績]涓煡鐪�";
 			// 娑堟伅 + 闃熷憳
 			executor.execute(new Runnable() {
 				@Override
 				public void run() {
-					SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH.mm");
+					SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH:mm");
 					boolean addTeam = addInviteTeam(uid, giveUid, userInfoExtra);
 					String beiZhu = "鏃�";
 					if (addTeam)
@@ -459,13 +503,15 @@
 				updateRecord.setState(UserTaoLiJinGiveRecord.STATE_RECEIVE);
 				userTaoLiJinGiveRecordService.updateByPrimaryKeySelective(updateRecord);
 
+				integralGetService.addGiveTaoLiJin(giveUid);
+				
 				msg = "棰嗗彇鎴愬姛[鎺ㄥ箍绾㈠寘]鎴愬姛锛岃鍒癧鎴戠殑-鎺ㄥ箍绾㈠寘]涓煡鐪�";
 
 				// 娑堟伅 + 闃熷憳
 				executor.execute(new Runnable() {
 					@Override
 					public void run() {
-						SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH.mm");
+						SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH:mm");
 						boolean addTeam = addInviteTeam(uid, giveUid, userInfoExtra);
 						String beiZhu = "鏃�";
 						if (addTeam)
@@ -477,7 +523,7 @@
 							userName = user.getNickName();
 
 						MsgOtherGiveContentDTO msgOther = new MsgOtherGiveContentDTO();
-						msgOther.setType(MsgOtherGiveContentDTO.TYEP_COUPON);
+						msgOther.setType(MsgOtherGiveContentDTO.TYEP_TLJ);
 						msgOther.setTitle("璧犻�佹帹骞跨孩鍖�");
 						msgOther.setGiveType("浣犺禒閫佺殑鎺ㄥ箍绾㈠寘琚垚鍔熼鍙�");
 						msgOther.setReceiveInfo("鏄电О:  " + userName + " ID:" + uid);

--
Gitblit v1.8.0