幸运数字-结算-小秘书
This commit is contained in:
@@ -296,6 +296,9 @@ public enum I18nAlertEnum {
|
||||
|
||||
GUILD_SETTLEMENT_REWARD_TIP("本周期的公会长钻石薪资 {0} 已经发放到你的钱包,请注意查收~"),
|
||||
|
||||
LUCKY_NUMBER_HAS_JACKPOT_TIP("你在幸运数字活动中中奖啦!快去领取你的金币!"),
|
||||
LUCKY_NUMBER_GET_JACKPOT_TIP("恭喜你在幸运数字活动中获得了{0}金币。"),
|
||||
|
||||
;
|
||||
|
||||
private final String defaultStr;
|
||||
|
@@ -4,6 +4,7 @@ package com.accompany.business.service.activity;
|
||||
import com.accompany.business.dto.activity.LuckyNumberActConfig;
|
||||
import com.accompany.business.model.activity.LuckyNumberActInputRecord;
|
||||
import com.accompany.business.model.activity.LuckyNumberActRound;
|
||||
import com.accompany.business.service.SendSysMsgService;
|
||||
import com.accompany.business.service.purse.UserPurseService;
|
||||
import com.accompany.business.service.record.BillRecordService;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
@@ -16,10 +17,12 @@ import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.common.utils.RandomUtil;
|
||||
import com.accompany.core.enumeration.BillObjTypeEnum;
|
||||
import com.accompany.core.enumeration.I18nAlertEnum;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.SysConfService;
|
||||
import com.accompany.core.util.I18NMessageSourceUtil;
|
||||
import com.accompany.core.vo.UserVo;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
@@ -27,6 +30,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
@@ -55,6 +59,8 @@ public class LuckyNumberActService {
|
||||
private LuckyNumberActRoundService roundService;
|
||||
@Autowired
|
||||
private LuckyNumberActPlayerRecordService playerRecordService;
|
||||
@Autowired
|
||||
private SendSysMsgService sendSysMsgService;
|
||||
|
||||
public LuckyNumberActRoundVo getRoundVo(Long uid) {
|
||||
Users u = usersService.getNotNullUsersByUid(uid);
|
||||
@@ -195,6 +201,9 @@ public class LuckyNumberActService {
|
||||
String objId = String.join("_", date, uid.toString(), u.getPartitionId().toString());
|
||||
billRecordService.insertGeneralBillRecord(uid, objId, BillObjTypeEnum.LUCKY_NUM_JACKPOT_OUTPUT_GOLD, output, userPurse);
|
||||
});
|
||||
|
||||
String tip = I18NMessageSourceUtil.getMessage(I18nAlertEnum.LUCKY_NUMBER_GET_JACKPOT_TIP, new Object[]{output}, u.getPartitionId());
|
||||
sendSysMsgService.sendPersonTextMsg(uid, tip);
|
||||
}
|
||||
|
||||
public LuckyNumberActRoundHistoryDetailVo getHistoryRoundDetail(Long uid, String date) {
|
||||
@@ -259,6 +268,7 @@ public class LuckyNumberActService {
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Async
|
||||
public void settlement(String date, Integer partitionId) {
|
||||
LuckyNumberActConfig config = getConfig();
|
||||
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
|
||||
@@ -352,6 +362,25 @@ public class LuckyNumberActService {
|
||||
roundService.updateJackpot(nextRoundDate, partitionId, round.getJackpot());
|
||||
}
|
||||
|
||||
@Async
|
||||
public void sendJackpotTip(String date, int partitionId) {
|
||||
|
||||
LuckyNumberActRound round = roundService.getOrDefault(date, partitionId);
|
||||
if (null != round.getLuckyNumber()){
|
||||
throw new ServiceException(BusiStatus.SERVERBUSY);
|
||||
}
|
||||
|
||||
List<LuckyNumberActInputRecord> luckyPlayerRecordList = playerRecordService.list(Wrappers.<LuckyNumberActInputRecord>lambdaQuery()
|
||||
.eq(LuckyNumberActInputRecord::getDate, date)
|
||||
.eq(LuckyNumberActInputRecord::getPartitionId, partitionId)
|
||||
.eq(LuckyNumberActInputRecord::getLuckyStatus, Constant.StatusV2.valid));
|
||||
|
||||
String tip = I18NMessageSourceUtil.getMessage(I18nAlertEnum.LUCKY_NUMBER_HAS_JACKPOT_TIP, partitionId);
|
||||
for (LuckyNumberActInputRecord record : luckyPlayerRecordList){
|
||||
sendSysMsgService.sendPersonTextMsg(record.getUid(), tip);
|
||||
}
|
||||
}
|
||||
|
||||
private LuckyNumberActConfig getConfig() {
|
||||
String configStr = sysConfService.getSysConfValueById(Constant.SysConfId.LUCKY_NUMBER_ACT_CONFIG);
|
||||
if (!StringUtils.hasText(configStr)){
|
||||
@@ -359,4 +388,5 @@ public class LuckyNumberActService {
|
||||
}
|
||||
return JSON.parseObject(configStr, LuckyNumberActConfig.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -26,6 +26,15 @@ public class LuckyNumberActTask {
|
||||
}
|
||||
}
|
||||
|
||||
@Scheduled(cron = "00 30 23 * * *", zone = "Asia/Manila")
|
||||
public void sendTipEn() {
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ENGLISH, PartitionEnum.ENGLISH2);
|
||||
for (PartitionEnum partitionEnum : partitionEnumList) {
|
||||
String date = DateTimeUtil.getZonedTodayStr(partitionEnum.getZoneId());
|
||||
service.sendJackpotTip(date, partitionEnum.getId());
|
||||
}
|
||||
}
|
||||
|
||||
@Scheduled(cron = "30 35 23 * * *", zone = "Asia/Riyadh")
|
||||
public void settlementAr() {
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ARAB, PartitionEnum.TURKEY);
|
||||
@@ -35,4 +44,13 @@ public class LuckyNumberActTask {
|
||||
}
|
||||
}
|
||||
|
||||
@Scheduled(cron = "00 30 23 * * *", zone = "Asia/Riyadh")
|
||||
public void sendTipAr() {
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ARAB, PartitionEnum.TURKEY);
|
||||
for (PartitionEnum partitionEnum : partitionEnumList) {
|
||||
String date = DateTimeUtil.getZonedTodayStr(partitionEnum.getZoneId());
|
||||
service.sendJackpotTip(date, partitionEnum.getId());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user