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 d7e8cd49c..a4bcc434f 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 @@ -2,8 +2,10 @@ package com.accompany.business.service.dailytask.handler; import com.accompany.business.constant.dailytask.DailyTaskConstant; import com.accompany.business.constant.dailytask.DailyTaskTypeEnum; +import com.accompany.business.model.guild.GuildMember; import com.accompany.business.service.dailytask.AbstractDailyTaskHandler; import com.accompany.business.service.dailytask.annotation.DailyTaskHandlerType; +import com.accompany.business.service.guild.GuildMemberService; import com.accompany.business.service.guildpolicy2.GuildMicStatisticsPolicy2Service; import com.accompany.business.vo.dailytask.DailyProgressContext; import com.accompany.business.vo.dailytask.DailyTaskContext; @@ -34,6 +36,8 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler { @Autowired private GuildMicStatisticsPolicy2Service guildMicStatisticsPolicy2Service; + @Autowired + private GuildMemberService guildMemberService; @Override @@ -45,28 +49,10 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler { Long uid = context.getUid(); DailyTaskVo dailyTaskVo = context.getDailyTaskVo(); String deviceId = context.getDeviceId(); + DailyTaskTypeEnum taskType = dailyTaskVo.getTaskType(); String realIpAddress = context.getRealIpAddress(); - String mondayDate = context.getTodayDate(); String nowDate = getNowDate(context.getPartitionId(), new Date()); - DailyTaskTypeEnum taskType = dailyTaskVo.getTaskType(); - RBucket taskStatus = taskStatus(uid, mondayDate, taskType); - long totalDuration; - if (!taskStatus.isExists()) { //达标之后不再统计上麦时长 - totalDuration = guildMicStatisticsPolicy2Service.getMinutes(context.getPartitionId(), uid, nowDate); - } else { - totalDuration = dailyTaskVo.getStandardValue(); - } - dailyTaskVo.setTodayDate(mondayDate); - if (totalDuration >= dailyTaskVo.getStandardValue()) { - taskStatus.set(1, Duration.ofDays(1)); - } - dailyTaskVo.setReachNum(totalDuration); - DailyTaskConstant.ReceiveStatus receiveStatus = computeReceiveStatus(uid, mondayDate, taskType); - dailyTaskVo.setReceiveStatus(receiveStatus); - if (receiveStatus == DailyTaskConstant.ReceiveStatus.RECEIVED) { - return dailyTaskVo; - } Long receivUid = getIpCache(mondayDate).getOrDefault(realIpAddress, 0L); if (receivUid > 0 && !receivUid.equals(uid)) { return null; @@ -75,6 +61,28 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler { if (receivUid > 0 && !receivUid.equals(uid)) { return null; } + + RBucket taskStatus = taskStatus(uid, mondayDate, taskType); + Integer totalDuration; + if (!taskStatus.isExists()) { //达标之后不再统计上麦时长 + GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid); + if (null == guildMember) { + return null; + } + totalDuration = guildMicStatisticsPolicy2Service.getMinutes(context.getPartitionId(), guildMember.getId(), nowDate); + } else { + totalDuration = taskStatus.get(); + } + dailyTaskVo.setTodayDate(mondayDate); + if (totalDuration != null && totalDuration >= dailyTaskVo.getStandardValue()) { + taskStatus.set(totalDuration, Duration.ofDays(1)); + } + DailyTaskConstant.ReceiveStatus receiveStatus = computeReceiveStatus(uid, mondayDate, taskType); + dailyTaskVo.setReceiveStatus(receiveStatus); + if (receiveStatus == DailyTaskConstant.ReceiveStatus.RECEIVED) { + return dailyTaskVo; + } + dailyTaskVo.setReachNum(totalDuration.longValue()); return dailyTaskVo; } diff --git a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/activity/dailytask/DailyTaskController.java b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/activity/dailytask/DailyTaskController.java index 4f69ce9ff..8bd4c08ac 100644 --- a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/activity/dailytask/DailyTaskController.java +++ b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/activity/dailytask/DailyTaskController.java @@ -6,6 +6,7 @@ import com.accompany.business.vo.dailytask.DailyTaskShopCenterVo; import com.accompany.business.vo.dailytask.DailyTaskTabVo; import com.accompany.business.vo.dailytask.DailyTaskVo; import com.accompany.business.vo.dailytask.UserGoldBeanBillVo; +import com.accompany.common.annotation.Authorization; import com.accompany.common.result.BusiResult; import com.accompany.common.utils.IPUtils; import io.swagger.annotations.Api; @@ -52,6 +53,7 @@ public class DailyTaskController { @ApiImplicitParam(name = "todayDate", value = "列表有传对应字段", required = true, dataType = "string", paramType = "query"), @ApiImplicitParam(name = "taskConfigId", value = "列表有传对应字段", required = true, dataType = "string", paramType = "query"), }) + @Authorization @PostMapping("/recv") public BusiResult> recv(@RequestHeader(PUB_UID) Long uid, String todayDate, Integer taskConfigId, @RequestHeader(DEVICE_ID)String deviceId, HttpServletRequest request) { @@ -69,6 +71,7 @@ public class DailyTaskController { @ApiImplicitParam(name = "awardId", value = "奖励id", required = true, dataType = "int", paramType = "query"), @ApiImplicitParam(name = "num", value = "奖励数量(默认传1)", required = true, dataType = "int", paramType = "query"), }) + @Authorization @ApiOperation(value = "兑换", httpMethod = "POST") @PostMapping("/shopBuy") public BusiResult shopBuy(@RequestHeader(PUB_UID) Long uid, Long awardId, @RequestParam(defaultValue = "1") Integer num) {