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