From 75d3bca541611c8e1a2f0b1807cf816b70abde7e Mon Sep 17 00:00:00 2001 From: hokli <2629910752@qq.com> Date: Wed, 24 Sep 2025 14:46:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=B8=B8=E4=BB=BB=E5=8A=A1=E6=97=B6?= =?UTF-8?q?=E9=95=BF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dailytask/AbstractDailyTaskHandler.java | 2 +- .../dailytask/handler/GuildSalaryHandler.java | 3 -- .../handler/GuildWeekRewardHandler.java | 5 -- .../dailytask/handler/UpMicCoinHandler.java | 5 +- .../dailytask/handler/UpMicHandler.java | 47 +++++++++++++++---- 5 files changed, 39 insertions(+), 23 deletions(-) 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 82301d19d..8210a8808 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 @@ -48,7 +48,7 @@ public abstract class AbstractDailyTaskHandler implements DailyTaskHandler { @Autowired protected DailyTaskConfigService dailyTaskConfigService; @Autowired - private GuildMemberService guildMemberService; + protected GuildMemberService guildMemberService; @Autowired private DailyTaskRewardRecordService dailyTaskRewardRecordService; @Autowired diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/GuildSalaryHandler.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/GuildSalaryHandler.java index 7caf82568..2511fdd20 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/GuildSalaryHandler.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/dailytask/handler/GuildSalaryHandler.java @@ -6,7 +6,6 @@ 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.GuildDiamondWageService; -import com.accompany.business.service.guild.GuildMemberService; import com.accompany.business.vo.dailytask.DailyProgressContext; import com.accompany.business.vo.dailytask.DailyTaskContext; import com.accompany.business.vo.dailytask.DailyTaskVo; @@ -18,8 +17,6 @@ import org.springframework.stereotype.Component; @DailyTaskHandlerType(DailyTaskTypeEnum.GUILD_SALARY) public class GuildSalaryHandler extends AbstractDailyTaskHandler { - @Autowired - private GuildMemberService guildMemberService; @Autowired private GuildDiamondWageService guildDiamondWageService; 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 4ede043c2..a22316e80 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 @@ -4,7 +4,6 @@ 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.guild.GuildMemberWeekLevelRewardSelectService; import com.accompany.business.vo.dailytask.DailyProgressContext; import com.accompany.business.vo.dailytask.DailyTaskContext; @@ -23,10 +22,6 @@ public class GuildWeekRewardHandler extends AbstractDailyTaskHandler { @Autowired private GuildMemberWeekLevelRewardSelectService guildMemberWeekLevelRewardSelectService; - @Autowired - private GuildMemberService guildMemberService; - - @Override public void doExecuteProgress(DailyProgressContext progressContext) { } 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 1a79dbeff..51b4bbe2e 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 @@ -5,7 +5,6 @@ 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; @@ -32,8 +31,6 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler { @Autowired private GuildMicStatisticsPolicy2Service guildMicStatisticsPolicy2Service; - @Autowired - private GuildMemberService guildMemberService; @Override @@ -78,7 +75,7 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler { if (receiveStatus == DailyTaskConstant.ReceiveStatus.RECEIVED) { return dailyTaskVo; } - dailyTaskVo.setReachNum(totalDuration.longValue()); + dailyTaskVo.setReachNum(Math.min(totalDuration.longValue(), context.getStandardValue())); return dailyTaskVo; } 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 8b866ef32..13819c239 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 @@ -1,12 +1,16 @@ 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.guildpolicy2.GuildMicStatisticsPolicy2Service; import com.accompany.business.service.room.RoomMicService; import com.accompany.business.vo.dailytask.DailyProgressContext; import com.accompany.business.vo.dailytask.DailyTaskContext; import com.accompany.business.vo.dailytask.DailyTaskVo; +import com.accompany.core.enumeration.PartitionEnum; import org.redisson.api.RAtomicLong; import org.redisson.api.RBucket; import org.springframework.beans.factory.annotation.Autowired; @@ -22,6 +26,8 @@ public class UpMicHandler extends AbstractDailyTaskHandler { @Autowired private RoomMicService roomMicService; + @Autowired + private GuildMicStatisticsPolicy2Service guildMicStatisticsPolicy2Service; @Override @@ -36,22 +42,43 @@ public class UpMicHandler extends AbstractDailyTaskHandler { Long uid = context.getUid(); 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 = context.getDailyTaskTypeEnum(); - if (longRBucket.isExists()) { - Map upMicDuration = roomMicService.calUserUpMicDuration(upMicTime, Calendar.getInstance().getTimeInMillis(), context.getPartitionId()); - if (!upMicDuration.isEmpty()) { - totalDuration += upMicDuration.getOrDefault(todayDate, 0); + long totalDuration = 0L; + if (PartitionEnum.ENGLISH2.getId() == context.getPartitionId()) { + RBucket taskStatus = taskStatus(uid, todayDate, taskType); + if (!taskStatus.isExists()) { //达标之后不再统计上麦时长 + GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid); + if (null == guildMember) { + return null; + } + totalDuration = guildMicStatisticsPolicy2Service.getMinutes(context.getPartitionId(), guildMember.getId(), todayDate); + } else { + totalDuration = taskStatus.get(); + } + } else { + RAtomicLong userDayUpMicDuration = roomMicService.userDayUpMicDuration(todayDate, uid); + totalDuration = userDayUpMicDuration.get(); + RBucket longRBucket = roomMicService.userUpMicTime(uid); + Long upMicTime = longRBucket.get(); + if (longRBucket.isExists()) { + Map upMicDuration = roomMicService.calUserUpMicDuration(upMicTime, Calendar.getInstance().getTimeInMillis(), context.getPartitionId()); + if (!upMicDuration.isEmpty()) { + totalDuration += upMicDuration.getOrDefault(todayDate, 0); + } } } - if (totalDuration >= context.getStandardValue()) { + DailyTaskConstant.ReceiveStatus receiveStatus = computeReceiveStatus(uid, todayDate, taskType); + boolean receive = receiveStatus.equals(DailyTaskConstant.ReceiveStatus.RECEIVED); + + if (totalDuration >= context.getStandardValue() && !receive) { taskStatus(uid, todayDate, taskType).set(1, Duration.ofDays(1)); } + + if (receive) { + totalDuration = context.getStandardValue(); + } dailyTaskVo.setReachNum(Math.min(totalDuration, context.getStandardValue())); - dailyTaskVo.setReceiveStatus(computeReceiveStatus(uid, todayDate, taskType)); + dailyTaskVo.setReceiveStatus(receiveStatus); return dailyTaskVo; } }