From cc55ffcea74c7d23dadaa0860befbcdf98f35341 Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期一, 16 九月 2019 23:22:13 +0800
Subject: [PATCH] 资金相关包目录修改

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/TokenRecordServiceImpl.java |  144 ++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 121 insertions(+), 23 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 57dbc70..15c6e2c 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,10 +8,12 @@
 
 import javax.annotation.Resource;
 
+import org.springframework.context.annotation.Lazy;
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Service;
 
 import com.yeshi.fanli.dao.mybatis.user.TokenRecordMapper;
+import com.yeshi.fanli.dto.msg.MsgInviteContentDTO;
 import com.yeshi.fanli.dto.msg.MsgOtherGiveContentDTO;
 import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinGiveRecord;
 import com.yeshi.fanli.entity.bus.user.TokenRecord;
@@ -21,12 +23,16 @@
 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.UserInviteMsgNotificationService;
 import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinGiveRecordService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
@@ -54,6 +60,7 @@
 	private UserInfoService userInfoService;
 
 	@Resource
+	@Lazy
 	private UserSystemCouponService userSystemCouponService;
 
 	@Resource
@@ -76,6 +83,17 @@
 
 	@Resource
 	private UserOtherMsgNotificationService userOtherMsgNotificationService;
+	
+	@Lazy
+	@Resource
+	private IntegralGetService  integralGetService;
+	
+	@Resource
+	private SystemCouponService systemCouponService;
+	
+	@Resource
+	private UserInviteMsgNotificationService userInviteMsgNotificationService;
+	
 
 	@Override
 	public void insertSelective(TokenRecord record) {
@@ -102,10 +120,14 @@
 		if (StringUtil.isNullOrEmpty(parseToken)) 
 			throw new TokenRecordException(1, "鏈彂鐜板彛浠�");
 		
-		TokenRecord rokenRecord = tokenRecordMapper.getByToken(token);
+		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();
@@ -199,20 +221,22 @@
 			}
 		} else if (tokenType == TokenTypeEnum.taoLiJin) {
 			type = 12;
-			UserTaoLiJinGiveRecord giveRecord = userTaoLiJinGiveRecordService
-					.selectByPrimaryKey(Long.parseLong(identify));
-			if (giveRecord == null || giveRecord.getState() == UserTaoLiJinGiveRecord.STATE_OVERDUE) {
+			
+			UserTaoLiJinGiveRecord giveRecord = userTaoLiJinGiveRecordService.selectByPrimaryKey(Long.parseLong(identify));
+			if (giveRecord == null)
+				throw new TokenRecordException(1, "鍙d护宸插け鏁�");
+			
+			BigDecimal amount = giveRecord.getAmount();
+			num = Integer.parseInt(amount.setScale(0).toString());
+			
+			if(giveRecord.getState() == UserTaoLiJinGiveRecord.STATE_OVERDUE) {
 				tips.add("鍝庡憖锛屾帹骞跨孩鍖呭凡澶辨晥浜嗭紒");
 			} else if (giveRecord.getState() == UserTaoLiJinGiveRecord.STATE_RECEIVE) {
 				tips.add("鍝庡憖锛屾帹骞跨孩鍖呭凡琚鍙栦簡锛�");
 			} else if (giveRecord.getState() == UserTaoLiJinGiveRecord.STATE_INIT) {
 				if (uid == null || uid <= 0)
 					throw new TokenRecordException(1001, "娓╅Θ鎻愮ず锛孾鎺ㄥ箍绾㈠寘]闇�瑕佺櫥褰曞悗棰嗗彇");
-
 				state = true;
-				BigDecimal amount = giveRecord.getAmount();
-				num = Integer.parseInt(amount.setScale(0).toString());
-				
 				UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
 				if (userInfoExtra == null || StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) {
 					tips.add("纭棰嗗彇鍚庯紝浣犲皢鎴愪负璧犻�佽�呯殑涓�绾ч槦鍛橈紱");
@@ -241,7 +265,7 @@
 		}
 
 		if (StringUtil.isNullOrEmpty(nickName))
-			nickName = Constant.systemCommonConfig.getDefaultNickName();
+			nickName = Constant.systemCommonConfig.getDefaultNickName() + inviteId;
 
 		if (StringUtil.isNullOrEmpty(portrait))
 			portrait = Constant.systemCommonConfig.getDefaultPortrait();
@@ -252,7 +276,7 @@
 		
 		TokenVO tokenVO = new TokenVO();
 		tokenVO.setAmount(num);
-		tokenVO.setToken(token);
+		tokenVO.setToken(parseToken);
 		tokenVO.setNickName(nickName + "璧犻��");
 		tokenVO.setPortrait(portrait);
 		tokenVO.setTips(tips);
@@ -274,7 +298,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())
@@ -311,10 +339,11 @@
 			if (userCoupon == null || userCoupon.getGive() == null || !userCoupon.getGive()
 					|| userCoupon.getState() != UserSystemCoupon.STATE_IN_USE)
 				throw new TokenRecordException(1, "璇ュ埜涓嶅瓨鍦ㄦ垨闈炶禒閫�");
-
+			
+			UserSystemCoupon userSystemCoupon= null;
 			try {
-				userSystemCouponService.insertUserCoupon(uid, CouponTypeEnum.freeCoupon.name(),
-						UserSystemCoupon.SOURCE_GIVE);
+				userSystemCoupon = userSystemCouponService.insertUserCoupon(uid, CouponTypeEnum.freeCoupon.name(),
+						UserSystemCoupon.SOURCE_GIVE, null);
 			} catch (Exception e) {
 				LogHelper.errorDetailInfo(e);
 				throw new TokenRecordException(1, "棰嗗彇澶辫触");
@@ -340,17 +369,23 @@
 
 			// 鏇存柊璧犻�佽褰�
 			UserSystemCouponGiveRecord updateGiveRecord = new UserSystemCouponGiveRecord();
+			updateGiveRecord.setId(giveRecord.getId());
 			updateGiveRecord.setReceiveUid(uid);
 			updateGiveRecord.setReceiveTime(new Date());
 			updateGiveRecord.setState(UserSystemCouponGiveRecord.STATE_RECEIVE);
+			if (userSystemCoupon != null) {
+				updateGiveRecord.setReceiveId(userSystemCoupon.getId());
+			}
 			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)
@@ -365,10 +400,14 @@
 					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);
+					
+					// 婵�娲婚個璇蜂俊鎭�
+					if (addTeam)
+					    addInviteMsg(uid, giveUid, "鍏嶅崟鍒�");
 				}
 			});
 		} else if (tokenType == TokenTypeEnum.rebatePercentCoupon) {
@@ -387,9 +426,18 @@
 					|| 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, "璇ュ埜涓嶅瓨鍦�");
+			
+			UserSystemCoupon userSystemCoupon= null;
 			try {
-				userSystemCouponService.insertUserCoupon(uid, CouponTypeEnum.freeCoupon.name(),
-						UserSystemCoupon.SOURCE_GIVE);
+				userSystemCoupon = userSystemCouponService.insertUserCoupon(uid, CouponTypeEnum.rebatePercentCoupon.name(),
+						UserSystemCoupon.SOURCE_GIVE, systemCoupon.getPercent());
 			} catch (Exception e) {
 				LogHelper.errorDetailInfo(e);
 				throw new TokenRecordException(1, "棰嗗彇澶辫触");
@@ -415,17 +463,23 @@
 
 			// 鏇存柊璧犻�佽褰�
 			UserSystemCouponGiveRecord updateGiveRecord = new UserSystemCouponGiveRecord();
+			updateGiveRecord.setId(giveRecord.getId());
 			updateGiveRecord.setReceiveUid(uid);
 			updateGiveRecord.setReceiveTime(new Date());
 			updateGiveRecord.setState(UserSystemCouponGiveRecord.STATE_RECEIVE);
+			if (userSystemCoupon != null) {
+				updateGiveRecord.setReceiveId(userSystemCoupon.getId());
+			}
 			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)
@@ -440,10 +494,14 @@
 					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);
+					
+					// 婵�娲婚個璇蜂俊鎭�
+					if (addTeam)
+					    addInviteMsg(uid, giveUid, "杩斿埄濂栧姳鍒�");
 				}
 			});
 		} else if (tokenType == TokenTypeEnum.taoLiJin) {
@@ -469,13 +527,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)
@@ -487,13 +547,17 @@
 							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);
+						msgOther.setReceiveInfo("鏄电О锛�" + userName + " ID锛�" + uid);
 						msgOther.setGiveTime(sd.format(giveRecord.getGiveTime()));
 						msgOther.setReceiveTime(sd.format(new Date()));
 						userOtherMsgNotificationService.tokenGiveMsg(giveUid, beiZhu, msgOther);
+						
+						// 婵�娲婚個璇蜂俊鎭�
+						if (addTeam)
+						    addInviteMsg(uid, giveUid, amount.setScale(2) + "鍏冩帹骞跨孩鍖�");
 					}
 				});
 			} catch (UserTaoLiJinOriginException e) {
@@ -532,5 +596,39 @@
 		}
 		return invite;
 	}
+	
+	
+	private void addInviteMsg(Long uid, Long giveUid, String giftName) {
+		try {
+			UserInfo user = userInfoService.selectByPKey(giveUid);
+			UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
+			MsgInviteContentDTO msgInvite = new MsgInviteContentDTO();
+			msgInvite.setTitle("閭�璇锋秷鎭�");
+			msgInvite.setState("鎴愬姛婵�娲婚個璇�");
+			msgInvite.setCode("浣犵殑閭�璇风爜锛�" + userInfoExtra.getInviteCode());
+			msgInvite.setInviter("鏄电О锛�"+user.getNickName());
+			msgInvite.setMode("鎴愬姛棰嗗彇閭�璇蜂汉鐨�" + giftName);
+			userInviteMsgNotificationService.receiveGift(uid, "閭�璇峰叧绯讳竴鏃︾‘绔嬫棤娉曟洿鏀� ", msgInvite);
+		} catch (Exception e) {
+			LogHelper.errorDetailInfo(e);
+		}
+	}
+	
+	@Override
+	public List<TokenRecord> overdueList(int count) {
+		return tokenRecordMapper.overdueList(count);
+	}
 
+	
+	@Override
+	public void overdue(List<TokenRecord> list) {
+		if (list == null || list.size() == 0)
+			return;
+		Date date = new Date();
+		for (TokenRecord tokenRecord: list) {
+			tokenRecord.setState(1);
+			tokenRecord.setUpdateTime(date);
+			tokenRecordMapper.updateByPrimaryKeySelective(tokenRecord);
+		}
+	}
 }

--
Gitblit v1.8.0