日常任务时长优化
This commit is contained in:
@@ -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
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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) {
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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();
|
||||
DailyTaskTypeEnum taskType = context.getDailyTaskTypeEnum();
|
||||
long totalDuration = 0L;
|
||||
if (PartitionEnum.ENGLISH2.getId() == context.getPartitionId()) {
|
||||
RBucket<Integer> 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);
|
||||
long totalDuration = userDayUpMicDuration.get();
|
||||
totalDuration = userDayUpMicDuration.get();
|
||||
RBucket<Long> longRBucket = roomMicService.userUpMicTime(uid);
|
||||
Long upMicTime = longRBucket.get();
|
||||
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 >= 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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user