From cf5ccb33e1e07e4861558a91f8f103229fdae558 Mon Sep 17 00:00:00 2001 From: hokli <2629910752@qq.com> Date: Thu, 28 Aug 2025 15:06:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=B8=B8=E4=BB=BB=E5=8A=A1-=E6=94=B9?= =?UTF-8?q?=E7=89=88=E5=B9=B6=E4=B8=94=E6=B7=BB=E5=8A=A0=E6=88=BF=E9=97=B4?= =?UTF-8?q?=E9=80=81=E7=A4=BC=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/dailytask/DailyTaskConstant.java | 1 + .../constant/dailytask/DailyTaskTypeEnum.java | 1 + .../vo/dailytask/DailyTaskContext.java | 17 ++++- .../business/vo/dailytask/DailyTaskVo.java | 2 +- .../dailytask/AbstractDailyTaskHandler.java | 15 +++- .../dailytask/DailyTaskConfigService.java | 4 +- .../service/dailytask/DailyTaskService.java | 71 ++++++++----------- .../handler/ChargeGoldNumHandler.java | 10 +-- .../dailytask/handler/DailySignHandler.java | 10 +-- .../handler/GuildWeekRewardHandler.java | 2 +- .../dailytask/handler/PlayGameHandler.java | 9 +-- .../handler/RecvLuckyGiftHandler.java | 9 +-- .../handler/RecvNomalGiftGoldHandler.java | 11 +-- .../handler/RecvNomalGiftHandler.java | 9 +-- .../handler/RoomDayDiamondHandler.java | 2 +- .../handler/RoomSendGiftGoldNumHandler.java | 66 +++++++++++++++++ .../handler/RoomSendGiftHandler.java | 7 +- .../dailytask/handler/UpMicCoinHandler.java | 6 +- .../dailytask/handler/UpMicHandler.java | 6 +- .../listener/DailyTaskGiftListener.java | 1 + .../dailytask/DailyTaskController.java | 5 +- 21 files changed, 173 insertions(+), 91 deletions(-) create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomSendGiftGoldNumHandler.java diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/dailytask/DailyTaskConstant.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/dailytask/DailyTaskConstant.java index 68cd39f27..2476646cb 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/dailytask/DailyTaskConstant.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/dailytask/DailyTaskConstant.java @@ -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限制 diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/dailytask/DailyTaskTypeEnum.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/dailytask/DailyTaskTypeEnum.java index d59be8ccb..4fa874855 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/dailytask/DailyTaskTypeEnum.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/dailytask/DailyTaskTypeEnum.java @@ -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; diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/dailytask/DailyTaskContext.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/dailytask/DailyTaskContext.java index 7668a1ae6..5efcadd90 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/dailytask/DailyTaskContext.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/dailytask/DailyTaskContext.java @@ -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 configRewards; + private List 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; } } diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/dailytask/DailyTaskVo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/dailytask/DailyTaskVo.java index a324cef45..ed2d34751 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/dailytask/DailyTaskVo.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/dailytask/DailyTaskVo.java @@ -29,10 +29,10 @@ public class DailyTaskVo { private Long reachNum; @ApiModelProperty("达标值") private Long standardValue; - private String todayDate; @ApiModelProperty("奖励列表") private List rewardVos; private List configRewards; + private String todayDate; @ApiModelProperty("房间流水奖励") private DailyTaskRoomDiamondVo diamondVo; private List guildWeekRewardItems; diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/AbstractDailyTaskHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/AbstractDailyTaskHandler.java index 2d6c1a70f..04412c6a5 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/AbstractDailyTaskHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/AbstractDailyTaskHandler.java @@ -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; } /** diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskConfigService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskConfigService.java index 34ac029b0..06cadb09c 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskConfigService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskConfigService.java @@ -43,9 +43,7 @@ public class DailyTaskConfigService extends ServiceImpl 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); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskService.java index 11e4f6236..43742a77b 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/DailyTaskService.java @@ -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 dailyTaskVos = this.taskVoList(partitionId, taskTabType, taskRole, uid); + List dailyTaskContexts = this.taskVoList(partitionId, taskTabType, taskRole, uid, deviceId, realIpAddress); + List executeDailyTaskList = new ArrayList<>(); - if (CollectionUtils.isEmpty(dailyTaskVos)) { - return dailyTaskVos; + if (CollectionUtils.isEmpty(dailyTaskContexts)) { + return executeDailyTaskList; } - List 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 taskVoList(Integer partitionId, Integer taskTabType, List taskRole, Long uid) { - List resultList = new ArrayList<>(); + public List taskVoList(Integer partitionId, Integer taskTabType, List taskRole, Long uid, String deviceId, String realIpAddress) { + List resultList = new ArrayList<>(); List 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 taskConfigIds = resultList.stream().map(DailyTaskVo::getTaskConfigId).collect(Collectors.toList()); + List taskConfigIds = resultList.stream().map(DailyTaskContext::getTaskConfigId).collect(Collectors.toList()); Map> taskRewardMap = dailyTaskRewardService.mapByTaskConfigId(taskConfigIds); if (MapUtils.isEmpty(taskRewardMap)) { return resultList; } List rewardVos; - for (DailyTaskVo dailyTaskVo : resultList) { + for (DailyTaskContext dailyTaskVo : resultList) { rewardVos = new ArrayList<>(); dailyTaskVo.setRewardVos(rewardVos); List 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> taskRewardMap = dailyTaskRewardService.mapByTaskConfigId(Arrays.asList(taskConfigId)); + Map> taskRewardMap = dailyTaskRewardService.mapByTaskConfigId(Arrays.asList(dailyTaskConfig.getTaskConfigId())); if (MapUtils.isEmpty(taskRewardMap)) { - return dailyTaskVo; + return dailyTaskContext; } - List dailyTaskRewards = taskRewardMap.get(dailyTaskVo.getTaskConfigId()); + List dailyTaskRewards = taskRewardMap.get(dailyTaskContext.getTaskConfigId()); if (CollectionUtils.isEmpty(dailyTaskRewards)) { - return dailyTaskVo; + return dailyTaskContext; } - dailyTaskVo.setConfigRewards(dailyTaskRewards); - return dailyTaskVo; + dailyTaskContext.setConfigRewards(dailyTaskRewards); + return dailyTaskContext; } } \ No newline at end of file diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/ChargeGoldNumHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/ChargeGoldNumHandler.java index cf9ab6759..01bb4093a 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/ChargeGoldNumHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/ChargeGoldNumHandler.java @@ -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 dailyChargeGold(Integer partitionId, String todayDate) { diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/DailySignHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/DailySignHandler.java index 0329c4465..3f574f8ea 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/DailySignHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/DailySignHandler.java @@ -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(); } } \ No newline at end of file diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/GuildWeekRewardHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/GuildWeekRewardHandler.java index a73861e43..f56b2b89f 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/GuildWeekRewardHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/GuildWeekRewardHandler.java @@ -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); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/PlayGameHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/PlayGameHandler.java index 4c52b605a..984973a73 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/PlayGameHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/PlayGameHandler.java @@ -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 playGameCategory(Long uid, String todayDate) { diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvLuckyGiftHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvLuckyGiftHandler.java index 3b96f918c..695a76279 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvLuckyGiftHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvLuckyGiftHandler.java @@ -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 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(); } } \ No newline at end of file diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftGoldHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftGoldHandler.java index c67d507bb..653b17708 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftGoldHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftGoldHandler.java @@ -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 recvGoldNum = recvGoldNum(partitionId, todayDate); @@ -43,11 +43,12 @@ public class RecvNomalGiftGoldHandler extends AbstractDailyTaskHandler { public DailyTaskVo doHandle(DailyTaskContext context) { String todayDate = context.getTodayDate(); RMap 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 recvGoldNum(Integer partitionId, String todayDate) { diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftHandler.java index 20dedc75f..6b725f3e6 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RecvNomalGiftHandler.java @@ -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 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(); } } \ No newline at end of file diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomDayDiamondHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomDayDiamondHandler.java index c2261c49e..8c534495a 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomDayDiamondHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomDayDiamondHandler.java @@ -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(); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomSendGiftGoldNumHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomSendGiftGoldNumHandler.java new file mode 100644 index 000000000..6dd28865f --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomSendGiftGoldNumHandler.java @@ -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 taskStatus = taskStatus(uid, todayDate, ROOM_SEND_NOMAL_GIFT_GOLD); + if (taskStatus.isExists()) { + return; + } + RMap 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 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 sendGoldNum(Integer partitionId, String todayDate) { + return redissonClient.getMap(send_gold_num.getKey(partitionId.toString(), todayDate), LongCodec.INSTANCE); + } +} \ No newline at end of file diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomSendGiftHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomSendGiftHandler.java index 8b19061cb..2ce1202e4 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomSendGiftHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/RoomSendGiftHandler.java @@ -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(); } } \ No newline at end of file diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/UpMicCoinHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/UpMicCoinHandler.java index 1d2aca4dc..82382819b 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/UpMicCoinHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/UpMicCoinHandler.java @@ -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); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/UpMicHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/UpMicHandler.java index e96e76f45..31bd74796 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/UpMicHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/UpMicHandler.java @@ -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 longRBucket = roomMicService.userUpMicTime(uid); Long upMicTime = longRBucket.get(); - DailyTaskTypeEnum taskType = dailyTaskVo.getTaskType(); + DailyTaskTypeEnum taskType = context.getDailyTaskTypeEnum(); if (longRBucket.isExists()) { Map 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); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/listener/DailyTaskGiftListener.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/listener/DailyTaskGiftListener.java index e9f510e23..f972d886d 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/listener/DailyTaskGiftListener.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/listener/DailyTaskGiftListener.java @@ -38,6 +38,7 @@ public class DailyTaskGiftListener implements ApplicationListener> recv(@RequestHeader(PUB_UID) Long uid, String todayDate, Integer taskConfigId, + public BusiResult> 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")