From 8dcc1ffea99306ebaa9b48fb739f0b627f706d84 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期一, 16 三月 2020 15:19:37 +0800
Subject: [PATCH] vip 等级
---
fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackGiveRecordServiceImpl.java | 86 ++++++++++++++++++++++++++++++++++++-------
1 files changed, 72 insertions(+), 14 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackGiveRecordServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackGiveRecordServiceImpl.java
index e5fa4b1..45ab717 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackGiveRecordServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackGiveRecordServiceImpl.java
@@ -2,7 +2,9 @@
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.List;
import javax.annotation.Resource;
@@ -20,10 +22,13 @@
import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail.MsgTypeMoneyTypeEnum;
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;
import com.yeshi.fanli.entity.redpack.RedPackDetail;
import com.yeshi.fanli.entity.redpack.RedPackDetail.RedPackDetailTypeEnum;
import com.yeshi.fanli.entity.redpack.RedPackGiveRecord;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.exception.redpack.RedPackGiveRecordException;
+import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService;
import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService;
import com.yeshi.fanli.service.inter.redpack.RedPackConfigService;
@@ -31,6 +36,7 @@
import com.yeshi.fanli.service.inter.redpack.RedPackForbidService;
import com.yeshi.fanli.service.inter.redpack.RedPackGiveRecordService;
import com.yeshi.fanli.service.inter.user.TokenRecordService;
+import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TokenUtil;
@@ -38,6 +44,7 @@
import com.yeshi.fanli.util.factory.RedPackDetailFactory;
import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
+import com.yeshi.fanli.vo.redpack.RedPackGiveVO;
@Service
public class RedPackGiveRecordServiceImpl implements RedPackGiveRecordService {
@@ -65,6 +72,9 @@
@Resource(name = "producer")
private Producer producer;
+
+ @Resource
+ private UserInfoService userInfoService;
@Override
public RedPackGiveRecord selectByPrimaryKey(Long id) {
@@ -134,13 +144,14 @@
throw new RedPackGiveRecordException(1, "浣欓涓嶈冻");
Date nowDate = new Date();
+ Date endTime = DateUtil.plusDayDate(Constant.TOKEN_DAYS, new Date());
// 璧犻�佽褰�
RedPackGiveRecord giveRecord = new RedPackGiveRecord();
giveRecord.setAmount(amount);
giveRecord.setGiveUid(uid);
giveRecord.setState(RedPackGiveRecord.STATE_INIT);
giveRecord.setGiveTime(nowDate);
- giveRecord.setEndTime(DateUtil.plusDayDate(Constant.GIVE_DAYS, new Date()));
+ giveRecord.setEndTime(endTime);
redPackGiveRecordMapper.insertSelective(giveRecord);
// 鍙d护璁板綍
@@ -149,7 +160,7 @@
tokenRecord.setIdentify(giveRecord.getId() + "");
tokenRecord.setType(TokenTypeEnum.redPack);
tokenRecord.setStartTime(nowDate);
- tokenRecord.setEndTime(DateUtil.plusDayDate(Constant.TOKEN_DAYS, new Date()));
+ tokenRecord.setEndTime(endTime);
tokenRecord.setState(0);
tokenRecordService.insertSelective(tokenRecord);
@@ -170,21 +181,25 @@
try {
redPackBalanceService.subRedPack(uid, amount, RedPackDetailFactory.createGiveOthers(giveRecord));
} catch (Exception e) {
- throw new RedPackGiveRecordException(1, "绾㈠寘鍒涘缓澶辫触");
- }
-
- UserRedPackGiftMQMsg msg = new UserRedPackGiftMQMsg();
- msg.setId(giveRecord.getId());
- msg.setUid(uid);
- Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.redPackGiftDrawback,
- msg);
- try {
- producer.send(message);
- } catch (Exception e) {
+ LogHelper.errorDetailInfo(e);
throw new RedPackGiveRecordException(1, "绾㈠寘鍒涘缓澶辫触");
}
-
+ // 鍙戦�佹秷鎭�(闈炴祴璇曚笅)
+ if (!Constant.IS_TEST) {
+ UserRedPackGiftMQMsg msg = new UserRedPackGiftMQMsg();
+ msg.setId(giveRecord.getId());
+ msg.setUid(uid);
+ Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.redPackGiftDrawback, msg);
+ message.setStartDeliverTime(endTime.getTime() + 1000 * 60); // 寤惰繜涓�鍒嗛挓
+ try {
+ producer.send(message);
+ } catch (Exception e) {
+ LogHelper.errorDetailInfo(e);
+ throw new RedPackGiveRecordException(1, "绾㈠寘鍒涘缓澶辫触");
+ }
+ }
+
return tips;
}
@@ -227,4 +242,47 @@
return giveRecord;
}
+
+ @Override
+ public List<RedPackGiveVO> getGiveList(int page, int pageSzie, Long uid) {
+ List<RedPackGiveVO> list = redPackGiveRecordMapper.getGiveList((page-1)*pageSzie, pageSzie, uid);
+ if (list == null) {
+ list = new ArrayList<RedPackGiveVO>();
+ }
+
+ if (list.isEmpty()) {
+ return list;
+ }
+
+ String tips = redPackConfigService.getValueByKey("give_tips");
+ String appLink = redPackConfigService.getValueByKey("app_down_link");
+ String projectChineseName = Constant.systemCommonConfig.getProjectChineseName();
+
+ for (RedPackGiveVO record: list) {
+ Long receiveUid = record.getReceiveUid();
+ if (receiveUid != null) {
+ UserInfo userInfo = userInfoService.selectByPKey(receiveUid);
+ record.setReceiveName(userInfo.getNickName());
+ record.setReceivePortrait(userInfo.getPortrait());
+ record.setReceiveTip("棰嗗彇浜嗕綘鐨勭孩鍖�");
+ }
+ TokenRecord token = tokenRecordService.getByTypeAndIdentify(TokenTypeEnum.redPack.name(),
+ record.getId().toString());
+
+ String desc = tips;
+ while (desc.contains("{APP鍚嶇О}")) {
+ desc = desc.replace("{APP鍚嶇О}", projectChineseName);
+ }
+ desc = desc.replace("{鍙d护}", token.getToken()).replace("{涓嬭浇閾炬帴}", appLink).replace("{闈㈤}", record.getAmount().setScale(2).toString());
+ record.setDesc(desc);
+ }
+
+ return list;
+ }
+
+ @Override
+ public long countGiveList(Long uid) {
+ return redPackGiveRecordMapper.countGiveList(uid);
+ }
+
}
--
Gitblit v1.8.0