日常任务-改版并且添加房间送礼任务
This commit is contained in:
@@ -17,6 +17,7 @@ public interface DailyTaskConstant {
|
||||
charge_gold,//日充值金币
|
||||
play_game,//游戏种类
|
||||
recv_gold_num,//收礼金币
|
||||
send_gold_num,//送礼金币
|
||||
task_config,//任务配置
|
||||
up_mic_coin_ip_limit,//主播上麦领取ip限制
|
||||
up_mic_coin_uid_limit,//主播上麦领取ip限制
|
||||
|
@@ -16,6 +16,7 @@ public enum DailyTaskTypeEnum {
|
||||
UP_MIC_COIN("UP_MIC_COIN"),//上麦聊天(获得金币)
|
||||
ROOM_DAY_DIAMOND("ROOM_DAY_DIAMOND"),//房间日流水奖励
|
||||
GUILD_WEEK_REWARD("GUILD_WEEK_REWARD"),//公会周奖励
|
||||
ROOM_SEND_NOMAL_GIFT_GOLD("ROOM_SEND_NOMAL_GIFT_GOLD"),//房间送普通礼物礼对应金币
|
||||
;
|
||||
|
||||
private String handlerType;
|
||||
|
@@ -1,21 +1,32 @@
|
||||
package com.accompany.business.vo.dailytask;
|
||||
|
||||
import com.accompany.business.constant.dailytask.DailyTaskTypeEnum;
|
||||
import com.accompany.business.model.dailytask.DailyTaskReward;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class DailyTaskContext {
|
||||
private final Long uid;
|
||||
private final DailyTaskVo dailyTaskVo;
|
||||
private String todayDate;
|
||||
private DailyTaskTypeEnum dailyTaskTypeEnum;
|
||||
private Integer partitionId;
|
||||
private Integer taskConfigId;
|
||||
private String deviceId;
|
||||
private String realIpAddress;
|
||||
private Long standardValue;
|
||||
private List<DailyTaskReward> configRewards;
|
||||
private List<DailyTaskRewardVo> rewardVos;
|
||||
|
||||
public DailyTaskContext(Long uid, DailyTaskVo dailyTaskVo, Integer partitionId, String deviceId, String realIpAddress) {
|
||||
public DailyTaskContext(DailyTaskTypeEnum dailyTaskTypeEnum, Integer taskConfigId, Long uid,
|
||||
Integer partitionId, String deviceId, String realIpAddress, Long standardValue) {
|
||||
this.dailyTaskTypeEnum = dailyTaskTypeEnum;
|
||||
this.taskConfigId = taskConfigId;
|
||||
this.uid = uid;
|
||||
this.dailyTaskVo = dailyTaskVo;
|
||||
this.partitionId = partitionId;
|
||||
this.deviceId = deviceId;
|
||||
this.realIpAddress = realIpAddress;
|
||||
this.standardValue = standardValue;
|
||||
}
|
||||
}
|
||||
|
@@ -29,10 +29,10 @@ public class DailyTaskVo {
|
||||
private Long reachNum;
|
||||
@ApiModelProperty("达标值")
|
||||
private Long standardValue;
|
||||
private String todayDate;
|
||||
@ApiModelProperty("奖励列表")
|
||||
private List<DailyTaskRewardVo> rewardVos;
|
||||
private List<DailyTaskReward> configRewards;
|
||||
private String todayDate;
|
||||
@ApiModelProperty("房间流水奖励")
|
||||
private DailyTaskRoomDiamondVo diamondVo;
|
||||
private List<GuildMemberWeekLevelRewardItemVo> guildWeekRewardItems;
|
||||
|
@@ -59,9 +59,18 @@ public abstract class AbstractDailyTaskHandler implements DailyTaskHandler {
|
||||
public DailyTaskVo handle(DailyTaskContext context){
|
||||
String todayDate = this.getTaskDate(context.getPartitionId(), new Date());
|
||||
context.setTodayDate(todayDate);
|
||||
context.getDailyTaskVo().setTodayDate(todayDate);
|
||||
context.getDailyTaskVo().setPartitionId(context.getPartitionId());
|
||||
return this.doHandle(context);
|
||||
|
||||
DailyTaskVo dailyTaskVo = this.doHandle(context);
|
||||
if (dailyTaskVo == null) {
|
||||
return dailyTaskVo;
|
||||
}
|
||||
dailyTaskVo.setRewardVos(context.getRewardVos());
|
||||
dailyTaskVo.setConfigRewards(context.getConfigRewards());
|
||||
dailyTaskVo.setTodayDate(todayDate);
|
||||
dailyTaskVo.setStandardValue(context.getStandardValue());
|
||||
dailyTaskVo.setTaskType(context.getDailyTaskTypeEnum());
|
||||
dailyTaskVo.setPartitionId(context.getPartitionId());
|
||||
return dailyTaskVo;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -43,9 +43,7 @@ public class DailyTaskConfigService extends ServiceImpl<DailyTaskConfigMapper, D
|
||||
return dailyTaskConfig;
|
||||
}
|
||||
LambdaQueryWrapper<DailyTaskConfig> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.select(DailyTaskConfig::getTaskConfigId, DailyTaskConfig::getTaskTabType, DailyTaskConfig::getTaskKey,
|
||||
DailyTaskConfig::getTaskName, DailyTaskConfig::getReachNum, DailyTaskConfig::getTaskSeq)
|
||||
.eq(DailyTaskConfig::getPartitionId, partitionId)
|
||||
wrapper.eq(DailyTaskConfig::getPartitionId, partitionId)
|
||||
.eq(DailyTaskConfig::getTaskKey, taskKey)
|
||||
.eq(DailyTaskConfig::getEnable, 1)
|
||||
.orderByAsc(DailyTaskConfig::getTaskSeq);
|
||||
|
@@ -55,9 +55,9 @@ public class DailyTaskService {
|
||||
@Autowired
|
||||
private UsersService usersService;
|
||||
|
||||
public DailyTaskVo executeDailyTask(DailyTaskVo dailyTaskVo, Long uid, Integer partitionId, String deviceId, String realIpAddress) {
|
||||
DailyTaskHandler handler = taskHandlerRegistry.getHandler(dailyTaskVo.getTaskType().getHandlerType());
|
||||
DailyTaskContext dailyTaskContext = new DailyTaskContext(uid, dailyTaskVo, partitionId, deviceId, realIpAddress);
|
||||
public DailyTaskVo executeDailyTask(DailyTaskContext dailyTaskContext) {
|
||||
DailyTaskTypeEnum dailyTaskTypeEnum = dailyTaskContext.getDailyTaskTypeEnum();
|
||||
DailyTaskHandler handler = taskHandlerRegistry.getHandler(dailyTaskTypeEnum.getHandlerType());
|
||||
return handler.handle(dailyTaskContext);
|
||||
}
|
||||
|
||||
@@ -79,15 +79,13 @@ public class DailyTaskService {
|
||||
* @param todayDate
|
||||
* @return
|
||||
*/
|
||||
public BusiResult executeReceive(Integer taskConfigId, Long uid, String todayDate, String deviceId, String realIpAddress) {
|
||||
DailyTaskVo dailyTaskVo = this.taskVo(taskConfigId, uid);
|
||||
DailyTaskTypeEnum taskType = dailyTaskVo.getTaskType();
|
||||
DailyTaskHandler handler = taskHandlerRegistry.getHandler(taskType.getHandlerType());
|
||||
public BusiResult executeReceive(DailyTaskTypeEnum dailyTaskTypeEnum, Long uid, String todayDate, String deviceId, String realIpAddress) {
|
||||
DailyTaskContext dailyTaskContext = this.taskVo(dailyTaskTypeEnum, uid, deviceId, realIpAddress);
|
||||
DailyTaskHandler handler = taskHandlerRegistry.getHandler(dailyTaskTypeEnum.getHandlerType());
|
||||
if (handler == null || StringUtils.isEmpty(todayDate) || uid == null) {
|
||||
throw new ServiceException(BusiStatus.PARAMERROR);
|
||||
}
|
||||
DailyTaskContext dailyTaskContext = new DailyTaskContext(uid, dailyTaskVo, dailyTaskVo.getPartitionId(), deviceId, realIpAddress);
|
||||
dailyTaskVo = handler.handle(dailyTaskContext);
|
||||
DailyTaskVo dailyTaskVo = handler.handle(dailyTaskContext);
|
||||
return handler.receive(uid, todayDate, dailyTaskVo, deviceId, realIpAddress);
|
||||
}
|
||||
|
||||
@@ -143,15 +141,15 @@ public class DailyTaskService {
|
||||
|
||||
Users users = usersService.getUsersByUid(uid);
|
||||
Integer partitionId = users.getPartitionId();
|
||||
List<DailyTaskVo> dailyTaskVos = this.taskVoList(partitionId, taskTabType, taskRole, uid);
|
||||
List<DailyTaskContext> dailyTaskContexts = this.taskVoList(partitionId, taskTabType, taskRole, uid, deviceId, realIpAddress);
|
||||
List<DailyTaskVo> executeDailyTaskList = new ArrayList<>();
|
||||
|
||||
if (CollectionUtils.isEmpty(dailyTaskVos)) {
|
||||
return dailyTaskVos;
|
||||
if (CollectionUtils.isEmpty(dailyTaskContexts)) {
|
||||
return executeDailyTaskList;
|
||||
}
|
||||
|
||||
List<DailyTaskVo> executeDailyTaskList = new ArrayList<>();
|
||||
dailyTaskVos.stream().forEach(dailyTaskVo -> {
|
||||
DailyTaskVo taskVo = executeDailyTask(dailyTaskVo, uid, partitionId, deviceId, realIpAddress);
|
||||
dailyTaskContexts.stream().forEach(dailyTaskContext -> {
|
||||
DailyTaskVo taskVo = executeDailyTask(dailyTaskContext);
|
||||
if (taskVo != null) {
|
||||
executeDailyTaskList.add(taskVo);
|
||||
}
|
||||
@@ -160,8 +158,8 @@ public class DailyTaskService {
|
||||
return executeDailyTaskList;
|
||||
}
|
||||
|
||||
public List<DailyTaskVo> taskVoList(Integer partitionId, Integer taskTabType, List<Byte> taskRole, Long uid) {
|
||||
List<DailyTaskVo> resultList = new ArrayList<>();
|
||||
public List<DailyTaskContext> taskVoList(Integer partitionId, Integer taskTabType, List<Byte> taskRole, Long uid, String deviceId, String realIpAddress) {
|
||||
List<DailyTaskContext> resultList = new ArrayList<>();
|
||||
List<DailyTaskConfig> dailyTaskConfigs = dailyTaskConfigService.listByRole(partitionId, taskTabType, taskRole);
|
||||
if (CollectionUtils.isEmpty(dailyTaskConfigs)) {
|
||||
return resultList;
|
||||
@@ -175,13 +173,8 @@ public class DailyTaskService {
|
||||
|
||||
for (DailyTaskConfig dailyTaskConfig : dailyTaskConfigs) {
|
||||
try {
|
||||
DailyTaskVo dailyTaskVo = DailyTaskVo.builder().
|
||||
taskConfigId(dailyTaskConfig.getTaskConfigId()).
|
||||
taskType(DailyTaskTypeEnum.valueOf(dailyTaskConfig.getTaskKey())).
|
||||
standardValue(dailyTaskConfig.getReachNum())
|
||||
.partitionId(dailyTaskConfig.getPartitionId())
|
||||
.build();
|
||||
resultList.add(dailyTaskVo);
|
||||
resultList.add(new DailyTaskContext(DailyTaskTypeEnum.valueOf(dailyTaskConfig.getTaskKey()), dailyTaskConfig.getTaskConfigId(),
|
||||
uid, partitionId, deviceId, realIpAddress, dailyTaskConfig.getReachNum()));
|
||||
} catch (Exception e) {
|
||||
log.error("taskVoList error,config:{} e:{}", JSONObject.toJSONString(dailyTaskConfig),e.getMessage(), e);
|
||||
}
|
||||
@@ -189,13 +182,13 @@ public class DailyTaskService {
|
||||
if (CollectionUtils.isEmpty(resultList)) {
|
||||
return resultList;
|
||||
}
|
||||
List<Integer> taskConfigIds = resultList.stream().map(DailyTaskVo::getTaskConfigId).collect(Collectors.toList());
|
||||
List<Integer> taskConfigIds = resultList.stream().map(DailyTaskContext::getTaskConfigId).collect(Collectors.toList());
|
||||
Map<Integer, List<DailyTaskReward>> taskRewardMap = dailyTaskRewardService.mapByTaskConfigId(taskConfigIds);
|
||||
if (MapUtils.isEmpty(taskRewardMap)) {
|
||||
return resultList;
|
||||
}
|
||||
List<DailyTaskRewardVo> rewardVos;
|
||||
for (DailyTaskVo dailyTaskVo : resultList) {
|
||||
for (DailyTaskContext dailyTaskVo : resultList) {
|
||||
rewardVos = new ArrayList<>();
|
||||
dailyTaskVo.setRewardVos(rewardVos);
|
||||
List<DailyTaskReward> dailyTaskRewards = taskRewardMap.get(dailyTaskVo.getTaskConfigId());
|
||||
@@ -216,30 +209,26 @@ public class DailyTaskService {
|
||||
return resultList;
|
||||
}
|
||||
|
||||
public DailyTaskVo taskVo(Integer taskConfigId, Long uid) {
|
||||
DailyTaskConfig dailyTaskConfig = dailyTaskConfigService.getById(taskConfigId);
|
||||
public DailyTaskContext taskVo(DailyTaskTypeEnum dailyTaskTypeEnum, Long uid, String deviceId, String realIpAddress) {
|
||||
Users users = usersService.getUsersByUid(uid);
|
||||
DailyTaskConfig dailyTaskConfig = dailyTaskConfigService.getByPartTaskKey(users.getPartitionId(), dailyTaskTypeEnum.name());
|
||||
Boolean isRechargeUser = rechargeUserService.isRechargeUser(uid);
|
||||
if (isRechargeUser && dailyTaskConfig.getRechargeLimit()) {
|
||||
throw new ServiceException(BusiStatus.ACCESS_DENIED);
|
||||
}
|
||||
DailyTaskContext dailyTaskContext = new DailyTaskContext(dailyTaskTypeEnum, dailyTaskConfig.getTaskConfigId(),
|
||||
uid, users.getPartitionId(), deviceId, realIpAddress, dailyTaskConfig.getReachNum());
|
||||
|
||||
DailyTaskVo dailyTaskVo = DailyTaskVo.builder().
|
||||
taskConfigId(dailyTaskConfig.getTaskConfigId()).
|
||||
taskType(DailyTaskTypeEnum.valueOf(dailyTaskConfig.getTaskKey())).
|
||||
standardValue(dailyTaskConfig.getReachNum())
|
||||
.partitionId(dailyTaskConfig.getPartitionId())
|
||||
.build();
|
||||
|
||||
Map<Integer, List<DailyTaskReward>> taskRewardMap = dailyTaskRewardService.mapByTaskConfigId(Arrays.asList(taskConfigId));
|
||||
Map<Integer, List<DailyTaskReward>> taskRewardMap = dailyTaskRewardService.mapByTaskConfigId(Arrays.asList(dailyTaskConfig.getTaskConfigId()));
|
||||
if (MapUtils.isEmpty(taskRewardMap)) {
|
||||
return dailyTaskVo;
|
||||
return dailyTaskContext;
|
||||
}
|
||||
List<DailyTaskReward> dailyTaskRewards = taskRewardMap.get(dailyTaskVo.getTaskConfigId());
|
||||
List<DailyTaskReward> dailyTaskRewards = taskRewardMap.get(dailyTaskContext.getTaskConfigId());
|
||||
if (CollectionUtils.isEmpty(dailyTaskRewards)) {
|
||||
return dailyTaskVo;
|
||||
return dailyTaskContext;
|
||||
}
|
||||
dailyTaskVo.setConfigRewards(dailyTaskRewards);
|
||||
return dailyTaskVo;
|
||||
dailyTaskContext.setConfigRewards(dailyTaskRewards);
|
||||
return dailyTaskContext;
|
||||
}
|
||||
|
||||
}
|
@@ -58,14 +58,14 @@ public class ChargeGoldNumHandler extends AbstractDailyTaskHandler {
|
||||
|
||||
@Override
|
||||
public DailyTaskVo doHandle(DailyTaskContext context) {
|
||||
DailyTaskTypeEnum taskType = context.getDailyTaskVo().getTaskType();
|
||||
DailyTaskVo dailyTaskVo = context.getDailyTaskVo();
|
||||
DailyTaskTypeEnum taskType = context.getDailyTaskTypeEnum();
|
||||
Long uid = context.getUid();
|
||||
String todayDate = context.getTodayDate();
|
||||
Long chargeGold = dailyChargeGold(context.getPartitionId(), todayDate).getOrDefault(uid, 0L);
|
||||
dailyTaskVo.setReachNum(chargeGold);
|
||||
dailyTaskVo.setReceiveStatus(computeReceiveStatus(uid, todayDate, taskType));
|
||||
return dailyTaskVo;
|
||||
return DailyTaskVo.builder()
|
||||
.reachNum(chargeGold)
|
||||
.receiveStatus(computeReceiveStatus(uid, todayDate, taskType))
|
||||
.build();
|
||||
}
|
||||
|
||||
private RMap<Long, Long> dailyChargeGold(Integer partitionId, String todayDate) {
|
||||
|
@@ -26,10 +26,10 @@ public class DailySignHandler extends AbstractDailyTaskHandler {
|
||||
|
||||
@Override
|
||||
public DailyTaskVo doHandle(DailyTaskContext context) {
|
||||
DailyTaskVo dailyTaskVo = context.getDailyTaskVo();
|
||||
DailyTaskConstant.ReceiveStatus receiveStatus = computeReceiveStatus(context.getUid(),
|
||||
context.getTodayDate(), dailyTaskVo.getTaskType());
|
||||
dailyTaskVo.setReceiveStatus(receiveStatus);
|
||||
return dailyTaskVo;
|
||||
DailyTaskConstant.ReceiveStatus receiveStatus =
|
||||
computeReceiveStatus(context.getUid(), context.getTodayDate(), context.getDailyTaskTypeEnum());
|
||||
return DailyTaskVo.builder()
|
||||
.receiveStatus(receiveStatus)
|
||||
.build();
|
||||
}
|
||||
}
|
@@ -34,7 +34,7 @@ public class GuildWeekRewardHandler extends AbstractDailyTaskHandler {
|
||||
|
||||
@Override
|
||||
public DailyTaskVo doHandle(DailyTaskContext context) {
|
||||
DailyTaskVo dailyTaskVo = context.getDailyTaskVo();
|
||||
DailyTaskVo dailyTaskVo = new DailyTaskVo();
|
||||
Integer partitionId = context.getPartitionId();
|
||||
Long uid = context.getUid();
|
||||
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid);
|
||||
|
@@ -46,10 +46,11 @@ public class PlayGameHandler extends AbstractDailyTaskHandler {
|
||||
public DailyTaskVo doHandle(DailyTaskContext context) {
|
||||
Long uid = context.getUid();
|
||||
String todayDate = context.getTodayDate();
|
||||
DailyTaskVo dailyTaskVo = context.getDailyTaskVo();
|
||||
dailyTaskVo.setReachNum((long)playGameCategory(uid, todayDate).size());
|
||||
dailyTaskVo.setReceiveStatus(computeReceiveStatus(uid, todayDate, dailyTaskVo.getTaskType()));
|
||||
return dailyTaskVo;
|
||||
DailyTaskTypeEnum dailyTaskTypeEnum = context.getDailyTaskTypeEnum();
|
||||
return DailyTaskVo.builder()
|
||||
.reachNum((long)playGameCategory(uid, todayDate).size())
|
||||
.receiveStatus(computeReceiveStatus(uid, todayDate, dailyTaskTypeEnum))
|
||||
.build();
|
||||
}
|
||||
|
||||
private RSet<String> playGameCategory(Long uid, String todayDate) {
|
||||
|
@@ -22,7 +22,7 @@ public class RecvLuckyGiftHandler extends AbstractDailyTaskHandler {
|
||||
|
||||
@Override
|
||||
public void doExecuteProgress(DailyProgressContext progressContext) {
|
||||
Long uid = progressContext.getUid();
|
||||
Long uid = progressContext.getRecvUid();
|
||||
Integer partitionId = progressContext.getPartitionId();
|
||||
String todayDate = getTaskDate(partitionId, progressContext.getCreateTime());
|
||||
RBucket<Integer> taskStatus = taskStatus(uid, todayDate, DailyTaskTypeEnum.RECV_LUCKY_GIFT);
|
||||
@@ -37,10 +37,11 @@ public class RecvLuckyGiftHandler extends AbstractDailyTaskHandler {
|
||||
|
||||
@Override
|
||||
public DailyTaskVo doHandle(DailyTaskContext context) {
|
||||
DailyTaskVo dailyTaskVo = context.getDailyTaskVo();
|
||||
Long uid = context.getUid();
|
||||
String todayDate = context.getTodayDate();
|
||||
dailyTaskVo.setReceiveStatus(computeReceiveStatus(uid, todayDate, dailyTaskVo.getTaskType()));
|
||||
return dailyTaskVo;
|
||||
DailyTaskTypeEnum dailyTaskTypeEnum = context.getDailyTaskTypeEnum();
|
||||
return DailyTaskVo.builder()
|
||||
.receiveStatus(computeReceiveStatus(uid, todayDate, dailyTaskTypeEnum))
|
||||
.build();
|
||||
}
|
||||
}
|
@@ -23,7 +23,7 @@ public class RecvNomalGiftGoldHandler extends AbstractDailyTaskHandler {
|
||||
|
||||
@Override
|
||||
public void doExecuteProgress(DailyProgressContext progressContext) {
|
||||
Long uid = progressContext.getUid();
|
||||
Long uid = progressContext.getRecvUid();
|
||||
Integer partitionId = progressContext.getPartitionId();
|
||||
String todayDate = getTaskDate(partitionId, progressContext.getCreateTime());
|
||||
RMap<Long, Long> recvGoldNum = recvGoldNum(partitionId, todayDate);
|
||||
@@ -43,11 +43,12 @@ public class RecvNomalGiftGoldHandler extends AbstractDailyTaskHandler {
|
||||
public DailyTaskVo doHandle(DailyTaskContext context) {
|
||||
String todayDate = context.getTodayDate();
|
||||
RMap<Long, Long> recvGoldNum = recvGoldNum(context.getPartitionId(), todayDate);
|
||||
DailyTaskVo dailyTaskVo = context.getDailyTaskVo();
|
||||
DailyTaskTypeEnum dailyTaskTypeEnum = context.getDailyTaskTypeEnum();
|
||||
Long uid = context.getUid();
|
||||
dailyTaskVo.setReceiveStatus(computeReceiveStatus(uid, todayDate, dailyTaskVo.getTaskType()));
|
||||
dailyTaskVo.setReachNum(recvGoldNum.getOrDefault(uid, 0L));
|
||||
return dailyTaskVo;
|
||||
return DailyTaskVo.builder()
|
||||
.receiveStatus(computeReceiveStatus(uid, todayDate, dailyTaskTypeEnum))
|
||||
.reachNum(recvGoldNum.getOrDefault(uid, 0L))
|
||||
.build();
|
||||
}
|
||||
|
||||
private RMap<Long, Long> recvGoldNum(Integer partitionId, String todayDate) {
|
||||
|
@@ -22,7 +22,7 @@ public class RecvNomalGiftHandler extends AbstractDailyTaskHandler {
|
||||
|
||||
@Override
|
||||
public void doExecuteProgress(DailyProgressContext progressContext) {
|
||||
Long uid = progressContext.getUid();
|
||||
Long uid = progressContext.getRecvUid();
|
||||
Integer partitionId = progressContext.getPartitionId();
|
||||
String todayDate = getTaskDate(partitionId, progressContext.getCreateTime());
|
||||
RBucket<Integer> taskStatus = taskStatus(uid, todayDate, DailyTaskTypeEnum.RECV_NOMAL_GIFT);
|
||||
@@ -38,10 +38,11 @@ public class RecvNomalGiftHandler extends AbstractDailyTaskHandler {
|
||||
|
||||
@Override
|
||||
public DailyTaskVo doHandle(DailyTaskContext context) {
|
||||
DailyTaskVo dailyTaskVo = context.getDailyTaskVo();
|
||||
Long uid = context.getUid();
|
||||
String todayDate = context.getTodayDate();
|
||||
dailyTaskVo.setReceiveStatus(computeReceiveStatus(uid, todayDate, dailyTaskVo.getTaskType()));
|
||||
return dailyTaskVo;
|
||||
DailyTaskTypeEnum dailyTaskTypeEnum = context.getDailyTaskTypeEnum();
|
||||
return DailyTaskVo.builder()
|
||||
.receiveStatus(computeReceiveStatus(uid, todayDate, dailyTaskTypeEnum))
|
||||
.build();
|
||||
}
|
||||
}
|
@@ -40,7 +40,7 @@ public class RoomDayDiamondHandler extends AbstractDailyTaskHandler {
|
||||
|
||||
@Override
|
||||
public DailyTaskVo doHandle(DailyTaskContext context) {
|
||||
DailyTaskVo dailyTaskVo = context.getDailyTaskVo();
|
||||
DailyTaskVo dailyTaskVo = new DailyTaskVo();
|
||||
Integer partitionId = context.getPartitionId();
|
||||
Long uid = context.getUid();
|
||||
DailyTaskRoomDiamondVo dailyTaskRoomDiamondVo = new DailyTaskRoomDiamondVo();
|
||||
|
@@ -0,0 +1,66 @@
|
||||
package com.accompany.business.service.dailytask.handler;
|
||||
|
||||
import com.accompany.business.constant.dailytask.DailyTaskTypeEnum;
|
||||
import com.accompany.business.model.dailytask.DailyTaskConfig;
|
||||
import com.accompany.business.service.dailytask.AbstractDailyTaskHandler;
|
||||
import com.accompany.business.service.dailytask.annotation.DailyTaskHandlerType;
|
||||
import com.accompany.business.service.gift.GiftSendService;
|
||||
import com.accompany.business.vo.dailytask.DailyProgressContext;
|
||||
import com.accompany.business.vo.dailytask.DailyTaskContext;
|
||||
import com.accompany.business.vo.dailytask.DailyTaskVo;
|
||||
import org.redisson.api.RBucket;
|
||||
import org.redisson.api.RMap;
|
||||
import org.redisson.client.codec.LongCodec;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import static com.accompany.business.constant.dailytask.DailyTaskConstant.RedisKey.send_gold_num;
|
||||
import static com.accompany.business.constant.dailytask.DailyTaskTypeEnum.ROOM_SEND_NOMAL_GIFT_GOLD;
|
||||
|
||||
@Component
|
||||
@DailyTaskHandlerType(ROOM_SEND_NOMAL_GIFT_GOLD)
|
||||
public class RoomSendGiftGoldNumHandler extends AbstractDailyTaskHandler {
|
||||
|
||||
@Autowired
|
||||
private GiftSendService giftSendService;
|
||||
|
||||
@Override
|
||||
public void doExecuteProgress(DailyProgressContext progressContext) {
|
||||
boolean luckyGift = giftSendService.isLuckyGift(progressContext.getGiftType());
|
||||
if (luckyGift) {
|
||||
return;
|
||||
}
|
||||
Long uid = progressContext.getUid();
|
||||
Integer partitionId = progressContext.getPartitionId();
|
||||
String todayDate = getTaskDate(partitionId, progressContext.getCreateTime());
|
||||
RBucket<Integer> taskStatus = taskStatus(uid, todayDate, ROOM_SEND_NOMAL_GIFT_GOLD);
|
||||
if (taskStatus.isExists()) {
|
||||
return;
|
||||
}
|
||||
RMap<Long, Long> sendGoldNum = sendGoldNum(partitionId, todayDate);
|
||||
Long addAndGet = sendGoldNum.addAndGet(uid, progressContext.getRecvGoldNum());
|
||||
sendGoldNum.expire(Duration.ofDays(EXPIRE_DAY));
|
||||
DailyTaskConfig dailyTaskConfig = dailyTaskConfigService.getByPartTaskKey(partitionId, ROOM_SEND_NOMAL_GIFT_GOLD.name());
|
||||
if (dailyTaskConfig != null && addAndGet != null && addAndGet >= dailyTaskConfig.getReachNum()) {
|
||||
taskStatus(uid, todayDate, DailyTaskTypeEnum.ROOM_SEND_NOMAL_GIFT_GOLD).set(1, Duration.ofDays(EXPIRE_DAY));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DailyTaskVo doHandle(DailyTaskContext context) {
|
||||
String todayDate = context.getTodayDate();
|
||||
RMap<Long, Long> sendGoldNum = sendGoldNum(context.getPartitionId(), todayDate);
|
||||
Long uid = context.getUid();
|
||||
DailyTaskTypeEnum dailyTaskTypeEnum = context.getDailyTaskTypeEnum();
|
||||
return DailyTaskVo.builder()
|
||||
.receiveStatus(computeReceiveStatus(uid, todayDate, dailyTaskTypeEnum))
|
||||
.reachNum(sendGoldNum.getOrDefault(uid, 0L))
|
||||
.build();
|
||||
}
|
||||
|
||||
private RMap<Long, Long> sendGoldNum(Integer partitionId, String todayDate) {
|
||||
return redissonClient.getMap(send_gold_num.getKey(partitionId.toString(), todayDate), LongCodec.INSTANCE);
|
||||
}
|
||||
}
|
@@ -32,10 +32,11 @@ public class RoomSendGiftHandler extends AbstractDailyTaskHandler {
|
||||
|
||||
@Override
|
||||
public DailyTaskVo doHandle(DailyTaskContext context) {
|
||||
DailyTaskVo dailyTaskVo = context.getDailyTaskVo();
|
||||
Long uid = context.getUid();
|
||||
String todayDate = context.getTodayDate();
|
||||
dailyTaskVo.setReceiveStatus(computeReceiveStatus(uid, todayDate, dailyTaskVo.getTaskType()));
|
||||
return dailyTaskVo;
|
||||
DailyTaskTypeEnum dailyTaskTypeEnum = context.getDailyTaskTypeEnum();
|
||||
return DailyTaskVo.builder()
|
||||
.receiveStatus(computeReceiveStatus(uid, todayDate, dailyTaskTypeEnum))
|
||||
.build();
|
||||
}
|
||||
}
|
@@ -47,9 +47,9 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler {
|
||||
@Override
|
||||
public DailyTaskVo doHandle(DailyTaskContext context) {
|
||||
Long uid = context.getUid();
|
||||
DailyTaskVo dailyTaskVo = context.getDailyTaskVo();
|
||||
DailyTaskVo dailyTaskVo = new DailyTaskVo();
|
||||
String deviceId = context.getDeviceId();
|
||||
DailyTaskTypeEnum taskType = dailyTaskVo.getTaskType();
|
||||
DailyTaskTypeEnum taskType = context.getDailyTaskTypeEnum();
|
||||
String realIpAddress = context.getRealIpAddress();
|
||||
String mondayDate = context.getTodayDate();
|
||||
String nowDate = getNowDate(context.getPartitionId(), new Date());
|
||||
@@ -74,7 +74,7 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler {
|
||||
totalDuration = taskStatus.get();
|
||||
}
|
||||
dailyTaskVo.setTodayDate(mondayDate);
|
||||
if (totalDuration != null && totalDuration >= dailyTaskVo.getStandardValue()) {
|
||||
if (totalDuration != null && totalDuration >= context.getStandardValue()) {
|
||||
taskStatus.set(totalDuration, Duration.ofDays(getReceiveExpireDay()));
|
||||
}
|
||||
DailyTaskConstant.ReceiveStatus receiveStatus = computeReceiveStatus(uid, mondayDate, taskType);
|
||||
|
@@ -34,20 +34,20 @@ public class UpMicHandler extends AbstractDailyTaskHandler {
|
||||
@Override
|
||||
public DailyTaskVo doHandle(DailyTaskContext context) {
|
||||
Long uid = context.getUid();
|
||||
DailyTaskVo dailyTaskVo = context.getDailyTaskVo();
|
||||
DailyTaskVo dailyTaskVo = new DailyTaskVo();
|
||||
String todayDate = context.getTodayDate();
|
||||
RAtomicLong userDayUpMicDuration = roomMicService.userDayUpMicDuration(todayDate, uid);
|
||||
long totalDuration = userDayUpMicDuration.get();
|
||||
RBucket<Long> longRBucket = roomMicService.userUpMicTime(uid);
|
||||
Long upMicTime = longRBucket.get();
|
||||
DailyTaskTypeEnum taskType = dailyTaskVo.getTaskType();
|
||||
DailyTaskTypeEnum taskType = context.getDailyTaskTypeEnum();
|
||||
if (longRBucket.isExists()) {
|
||||
Map<String, Integer> upMicDuration = roomMicService.calUserUpMicDuration(upMicTime, Calendar.getInstance().getTimeInMillis(), context.getPartitionId());
|
||||
if (!upMicDuration.isEmpty()) {
|
||||
totalDuration += upMicDuration.getOrDefault(todayDate, 0);
|
||||
}
|
||||
}
|
||||
if (totalDuration >= dailyTaskVo.getStandardValue()) {
|
||||
if (totalDuration >= context.getStandardValue()) {
|
||||
taskStatus(uid, todayDate, taskType).set(1, Duration.ofDays(1));
|
||||
}
|
||||
dailyTaskVo.setReachNum(totalDuration);
|
||||
|
@@ -38,6 +38,7 @@ public class DailyTaskGiftListener implements ApplicationListener<GiftMessageEve
|
||||
dailyTaskService.executeProgress(DailyTaskTypeEnum.RECV_NOMAL_GIFT_GOLD, dailyProgressContext);
|
||||
dailyTaskService.executeProgress(DailyTaskTypeEnum.RECV_NOMAL_GIFT, dailyProgressContext);
|
||||
dailyTaskService.executeProgress(DailyTaskTypeEnum.ROOM_SEND_GIFT, dailyProgressContext);
|
||||
dailyTaskService.executeProgress(DailyTaskTypeEnum.ROOM_SEND_NOMAL_GIFT_GOLD, dailyProgressContext);
|
||||
} catch (Exception e) {
|
||||
log.error("DailyTaskGiftListener:e.getMessage:{}", e.getMessage(), e);
|
||||
}
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package com.accompany.business.controller.activity.dailytask;
|
||||
|
||||
import com.accompany.business.constant.dailytask.DailyTaskTypeEnum;
|
||||
import com.accompany.business.service.dailytask.DailyTaskService;
|
||||
import com.accompany.business.service.dailytask.DailyTaskShopService;
|
||||
import com.accompany.business.vo.dailytask.DailyTaskShopCenterVo;
|
||||
@@ -55,10 +56,10 @@ public class DailyTaskController {
|
||||
})
|
||||
@Authorization
|
||||
@PostMapping("/recv")
|
||||
public BusiResult<List<DailyTaskVo>> recv(@RequestHeader(PUB_UID) Long uid, String todayDate, Integer taskConfigId,
|
||||
public BusiResult<List<DailyTaskVo>> recv(@RequestHeader(PUB_UID) Long uid, String todayDate, DailyTaskTypeEnum taskType,
|
||||
@RequestHeader(DEVICE_ID)String deviceId, HttpServletRequest request) {
|
||||
String realIpAddress = IPUtils.getRealIpAddress(request);
|
||||
return dailyTaskService.executeReceive(taskConfigId, uid, todayDate, deviceId, realIpAddress);
|
||||
return dailyTaskService.executeReceive(taskType, uid, todayDate, deviceId, realIpAddress);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "兑换中心", httpMethod = "GET")
|
||||
|
Reference in New Issue
Block a user