From c9cbdfa41d645d42eeaa7e06d550d4ef8ac328e7 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期五, 03 一月 2020 12:15:08 +0800
Subject: [PATCH] redis关键词
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/TokenRecordServiceImpl.java | 165 +++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 148 insertions(+), 17 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..e9573ec 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,14 @@
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.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;
import com.yeshi.fanli.entity.bus.user.TokenRecord.TokenTypeEnum;
import com.yeshi.fanli.entity.bus.user.UserInfo;
@@ -21,13 +26,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;
@@ -40,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
@@ -83,6 +93,12 @@
@Resource
private UserInviteMsgNotificationService userInviteMsgNotificationService;
+ @Resource
+ private RedPackGiveRecordService redPackGiveRecordService;
+
+ @Resource
+ private UserMoneyMsgNotificationService userMoneyMsgNotificationService;
+
@Override
public void insertSelective(TokenRecord record) {
@@ -101,9 +117,14 @@
public TokenRecord getNearByTypeAndIdentify(String type, String identify) {
return tokenRecordMapper.getNearByTypeAndIdentify(type, identify);
}
+
+ @Override
+ public TokenRecord getByTypeAndIdentify(String type, String identify) {
+ return tokenRecordMapper.getByTypeAndIdentify(type, identify);
+ }
@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))
@@ -125,8 +146,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 +162,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("鍝庡憖锛岃繖寮犲厤鍗曞埜宸茶棰嗗彇浜嗭紒");
@@ -159,7 +178,7 @@
state = true;
UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
if (userInfoExtra == null || StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) {
- tips.add("纭棰嗗彇鍚庯紝浣犲皢鎴愪负璧犻�佽�呯殑涓�绾ч槦鍛橈紱");
+ tips.add("纭棰嗗彇鍚庯紝浣犲皢鎴愪负璧犻�佷汉鐨勭洿鎺ョ矇涓濓紱");
tips.add("鑾疯禒鐨勫厤鍗曞埜锛岄渶瑕佹縺娲诲悗鎵嶈兘浣跨敤锛岃鎯呭弬瑙佸厤鍗曞埜婵�娲昏鍒欙紱");
tips.add("鎴愬姛棰嗗彇鍚庯紝璇峰埌鈥滄垜鐨�-绂忓埄涓績鈥濇煡鐪嬨��");
} else {
@@ -179,15 +198,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("鍝庡憖锛岃繖寮犺繑鍒╁鍔卞埜宸茶棰嗗彇浜嗭紒");
@@ -198,7 +214,7 @@
state = true;
UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
if (userInfoExtra == null || StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) {
- tips.add("纭棰嗗彇鍚庯紝浣犲皢鎴愪负璧犻�佽�呯殑涓�绾ч槦鍛橈紱");
+ tips.add("纭棰嗗彇鍚庯紝浣犲皢鎴愪负璧犻�佷汉鐨勭洿鎺ョ矇涓濓紱");
tips.add("鏉挎牀蹇渷濂栧姳鍒革紝鍙敤浜庘�滃凡鍒拌处鈥濈殑杩斿埄璁㈠崟锛屽湪杩斿埄鐨勫熀纭�涓婂啀鑾峰緱涓�瀹氭瘮渚嬬殑杩斿埄锛�");
tips.add("鎴愬姛棰嗗彇鍚庯紝璇峰埌鈥滄垜鐨�-绂忓埄涓績鈥濅腑鏌ョ湅銆�");
} else {
@@ -207,6 +223,39 @@
}
} else {
throw new TokenRecordException(1, "鍙d护宸插け鏁�");
+ }
+ } else if (tokenType == TokenTypeEnum.redPack) {
+ if(!VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion()))
+ throw new TokenRecordException(1, "璇峰崌绾у埌鏈�鏂扮増");
+
+
+ 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 +286,7 @@
TokenVO tokenVO = new TokenVO();
tokenVO.setAmount(num);
+ tokenVO.setMoney(money);
tokenVO.setToken(parseToken);
tokenVO.setNickName(nickName + "璧犻��");
tokenVO.setPortrait(portrait);
@@ -249,7 +299,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, "鐢ㄦ埛鏈櫥褰�");
@@ -285,7 +335,6 @@
String msg = "棰嗗彇鎴愬姛";
TokenTypeEnum tokenType = rokenRecord.getType();
if (tokenType == TokenTypeEnum.freeCoupon) {
-
// 璧犻�佽褰�
UserSystemCouponGiveRecord giveRecord = userSystemCouponGiveRecordService
.selectByPrimaryKey(Long.parseLong(identify));
@@ -350,7 +399,7 @@
boolean addTeam = addInviteTeam(uid, giveUid, userInfoExtra);
String beiZhu = "鏃�";
if (addTeam)
- beiZhu = "棰嗗彇浜哄凡缁忔垚涓轰綘鐨勪竴绾ч槦鍛�";
+ beiZhu = "棰嗗彇浜哄凡缁忔垚涓轰綘鐨勭洿鎺ョ矇涓�";
String userName = "鏃�";
UserInfo user = userInfoService.selectByPKey(uid);
@@ -444,7 +493,7 @@
boolean addTeam = addInviteTeam(uid, giveUid, userInfoExtra);
String beiZhu = "鏃�";
if (addTeam)
- beiZhu = "棰嗗彇浜哄凡缁忔垚涓轰綘鐨勪竴绾ч槦鍛�";
+ beiZhu = "棰嗗彇浜哄凡缁忔垚涓轰綘鐨勭洿鎺ョ矇涓�";
String userName = "鏃�";
UserInfo user = userInfoService.selectByPKey(uid);
@@ -465,6 +514,58 @@
addInviteMsg(uid, giveUid, "杩斿埄濂栧姳鍒�");
}
});
+ } else if (tokenType == TokenTypeEnum.redPack) {
+ if(!VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion()))
+ throw new TokenRecordException(1, "璇峰崌绾у埌鏈�鏂扮増");
+
+ try {
+ msg = "棰嗗彇绾㈠寘鎴愬姛锛岃鍒癧鎴戠殑-绾㈠寘]涓煡鐪�";
+ // 棰嗗彇绾㈠寘銆佹洿鏂拌褰�
+ RedPackGiveRecord giveRecord = redPackGiveRecordService.receiveFriendsGive(uid, 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(uid, 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 {
@@ -506,10 +607,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);
@@ -535,4 +644,26 @@
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