From 0612e7e4104f41c3f8b683073e08cdbb65dad44a Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期二, 29 十月 2019 13:58:20 +0800 Subject: [PATCH] 红包相关 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/TokenRecordServiceImpl.java | 107 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 97 insertions(+), 10 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 54dd5b5..9101fa0 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 @@ -11,9 +11,13 @@ import org.springframework.core.task.TaskExecutor; import org.springframework.stereotype.Service; +import com.google.gson.Gson; 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.dto.msg.MsgRedPackGiveContentDTO; +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; import com.yeshi.fanli.entity.bus.user.TokenRecord.TokenTypeEnum; import com.yeshi.fanli.entity.bus.user.UserInfo; @@ -21,13 +25,17 @@ 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.redpack.RedPackGiveRecord; import com.yeshi.fanli.entity.system.SystemCoupon; import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum; +import com.yeshi.fanli.exception.redpack.RedPackGiveRecordException; 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.money.msg.UserMoneyMsgNotificationService; import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService; +import com.yeshi.fanli.service.inter.redpack.RedPackGiveRecordService; import com.yeshi.fanli.service.inter.user.TokenRecordService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoService; @@ -83,6 +91,12 @@ @Resource private UserInviteMsgNotificationService userInviteMsgNotificationService; + @Resource + private RedPackGiveRecordService redPackGiveRecordService; + + @Resource + private UserMoneyMsgNotificationService userMoneyMsgNotificationService; + @Override public void insertSelective(TokenRecord record) { @@ -125,8 +139,9 @@ throw new TokenRecordException(1, "鍙d护宸插け鏁�"); - Integer num = 1; + Integer num = 0; Integer type = 0; + String money = null; boolean state = false; List<String> tips = new ArrayList<String>(); String identify = rokenRecord.getIdentify(); @@ -140,15 +155,12 @@ throw new TokenRecordException(1, "璧犻�佽褰曚笉瀛樺湪"); Date endTime = giveRecord.getEndTime(); - if (endTime != null && endTime.getTime() < now.getTime()) - throw new TokenRecordException(1, "璧犻�佽褰曞凡杩囨湡"); - // 鐢ㄦ埛鍒镐俊鎭� UserSystemCoupon userCoupon = userSystemCouponService.selectByPrimaryKey(giveRecord.getCouponId()); if (userCoupon == null || userCoupon.getGive() == null || !userCoupon.getGive()) throw new TokenRecordException(1, "鍒镐笉瀛樺湪鎴栭潪璧犻�佺姸鎬�"); - if (userCoupon.getState() == UserSystemCoupon.STATE_OVERDUE) { + if (userCoupon.getState() == UserSystemCoupon.STATE_OVERDUE || (endTime != null && endTime.getTime() < now.getTime())) { tips.add("鍝庡憖锛岃繖寮犲厤鍗曞埜宸插け鏁堜簡锛�"); } else if (userCoupon.getState() == UserSystemCoupon.STATE_END_USE) { tips.add("鍝庡憖锛岃繖寮犲厤鍗曞埜宸茶棰嗗彇浜嗭紒"); @@ -179,15 +191,12 @@ throw new TokenRecordException(1, "璧犻�佽褰曚笉瀛樺湪"); Date endTime = giveRecord.getEndTime(); - if (endTime != null && endTime.getTime() < now.getTime()) - throw new TokenRecordException(1, "璧犻�佽褰曞凡杩囨湡"); - UserSystemCoupon userCoupon = userSystemCouponService.selectByPrimaryKey(giveRecord.getCouponId()); if (userCoupon == null || userCoupon.getGive() == null || !userCoupon.getGive()) throw new TokenRecordException(1, "鍒镐笉瀛樺湪鎴栭潪璧犻�佺姸鎬�"); - if (userCoupon.getState() == UserSystemCoupon.STATE_OVERDUE) { + if (userCoupon.getState() == UserSystemCoupon.STATE_OVERDUE|| (endTime != null && endTime.getTime() < now.getTime())) { tips.add("鍝庡憖锛岃繖寮犺繑鍒╁鍔卞埜宸插け鏁堜簡锛�"); } else if (userCoupon.getState() == UserSystemCoupon.STATE_END_USE) { tips.add("鍝庡憖锛岃繖寮犺繑鍒╁鍔卞埜宸茶棰嗗彇浜嗭紒"); @@ -207,6 +216,35 @@ } } else { throw new TokenRecordException(1, "鍙d护宸插け鏁�"); + } + } else if (tokenType == TokenTypeEnum.redPack) { + type = 13; + RedPackGiveRecord giveRecord = redPackGiveRecordService.selectByPrimaryKey(Long.parseLong(identify)); + if (giveRecord == null) + throw new TokenRecordException(1, "鍙d护宸插け鏁�"); + + Date endTime = giveRecord.getEndTime(); + // 璧犻�侀潰棰� + money = giveRecord.getAmount().setScale(2).toString(); + + if(giveRecord.getState() == UserTaoLiJinGiveRecord.STATE_OVERDUE + || (endTime != null && endTime.getTime() < now.getTime())) { + 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; + UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); + if (userInfoExtra == null || StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) { + tips.add("纭棰嗗彇鍚庯紝浣犲皢鎴愪负澧炲�肩殑涓�绾ч槦鍛橈紱"); + tips.add("绾㈠寘鍙彁鐜帮紝鍙喘涔版姌鎵e晢鍝侊紱"); + tips.add("鎴愬姛棰嗗彇鍚庯紝璇峰埌鈥滄垜鐨�-绾㈠寘鈥濅腑鏌ョ湅銆�"); + } else { + tips.add("绾㈠寘鍙彁鐜帮紝鍙喘涔版姌鎵e晢鍝侊紱"); + tips.add("鎴愬姛棰嗗彇鍚庯紝璇峰埌鈥滄垜鐨�-绾㈠寘鈥濅腑鏌ョ湅銆�"); + } } } else if (tokenType == TokenTypeEnum.taoLiJin) { throw new TokenRecordException(1, "鎺ㄥ箍绾㈠寘鐩稿叧鍔熻兘宸蹭笅绾匡紒"); @@ -237,6 +275,7 @@ TokenVO tokenVO = new TokenVO(); tokenVO.setAmount(num); + tokenVO.setMoney(money); tokenVO.setToken(parseToken); tokenVO.setNickName(nickName + "璧犻��"); tokenVO.setPortrait(portrait); @@ -285,7 +324,6 @@ String msg = "棰嗗彇鎴愬姛"; TokenTypeEnum tokenType = rokenRecord.getType(); if (tokenType == TokenTypeEnum.freeCoupon) { - // 璧犻�佽褰� UserSystemCouponGiveRecord giveRecord = userSystemCouponGiveRecordService .selectByPrimaryKey(Long.parseLong(identify)); @@ -465,6 +503,55 @@ addInviteMsg(uid, giveUid, "杩斿埄濂栧姳鍒�"); } }); + } else if (tokenType == TokenTypeEnum.redPack) { + try { + msg = "棰嗗彇绾㈠寘鎴愬姛锛岃鍒癧鎴戠殑-绾㈠寘]涓煡鐪�"; + // 棰嗗彇绾㈠寘銆佹洿鏂拌褰� + RedPackGiveRecord giveRecord = redPackGiveRecordService.receiveFriendsGive(uidToken, Long.parseLong(identify)); + // 娑堟伅 + 闃熷憳 + executor.execute(new Runnable() { + @Override + public void run() { + SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH:mm"); + boolean addTeam = addInviteTeam(uid, giveUid, userInfoExtra); + + String beiZhu = "鏃�"; + String giveBeiZhu = "鏃�"; + if (addTeam) { + beiZhu = "浣犲凡鎴愪负璧犻�佷汉鐨勪竴绾ч槦鍛�"; + giveBeiZhu = "棰嗗彇浜哄凡鎴愪负浣犵殑涓�绾ч槦鍛�"; + // 婵�娲婚個璇蜂俊鎭� + addInviteMsg(uid, giveUid, giveRecord.getAmount().setScale(2) + "鍏冪孩鍖�"); + } + + // 棰嗗彇浜烘秷鎭� + String giveUserName = "鏃�"; + UserInfo giveuser = userInfoService.selectByPKey(giveUid); + if (giveuser != null && !StringUtil.isNullOrEmpty(giveuser.getNickName())) + giveUserName = giveuser.getNickName(); + MsgRedPackGiveContentDTO dto = new MsgRedPackGiveContentDTO(); + dto.setTitle("绾㈠寘棰嗗彇"); + dto.setUserInfo("鏄电О锛�" + giveUserName + " ID锛�" + giveUid); + dto.setTime(sd.format(giveRecord.getGiveTime())); + dto.setMoney("楼" + giveRecord.getAmount().setScale(2)); + userMoneyMsgNotificationService.redPackMsg(giveUid, MsgTypeMoneyTypeEnum.redPackReceiveOff, new Gson().toJson(dto), beiZhu); + + // 璧犻�佷汉娑堟伅 + String userName = "鏃�"; + UserInfo user = userInfoService.selectByPKey(uid); + if (user != null && !StringUtil.isNullOrEmpty(user.getNickName())) + userName = user.getNickName(); + MsgRedPackGiveContentDTO givedto = new MsgRedPackGiveContentDTO(); + givedto.setTitle("绾㈠寘棰嗗彇"); + givedto.setUserInfo("鏄电О锛�" + userName + " ID锛�" + uid); + givedto.setTime(sd.format(new Date())); + givedto.setMoney("楼" + giveRecord.getAmount().setScale(2)); + userMoneyMsgNotificationService.redPackMsg(giveUid, MsgTypeMoneyTypeEnum.redPackGiveOff, new Gson().toJson(givedto), giveBeiZhu); + } + }); + } catch (RedPackGiveRecordException e) { + throw new TokenRecordException(1, e.getMsg()); + } } else if (tokenType == TokenTypeEnum.taoLiJin) { throw new TokenRecordException(1, "鎺ㄥ箍绾㈠寘鐩稿叧鍔熻兘宸蹭笅绾匡紒"); } else { -- Gitblit v1.8.0