日常任务-上麦1

This commit is contained in:
2025-08-26 19:16:15 +08:00
parent a869b3846d
commit fc5105c0cb

View File

@@ -50,8 +50,9 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler {
String deviceId = context.getDeviceId();
String realIpAddress = context.getRealIpAddress();
String todayDate = context.getTodayDate();
RAtomicLong userDayUpMicDuration = roomMicService.userDayUpMicDuration(todayDate, uid);
String mondayDate = context.getTodayDate();
String nowDate = getNowDate(context.getPartitionId(), new Date());
RAtomicLong userDayUpMicDuration = roomMicService.userDayUpMicDuration(nowDate, uid);
long totalDuration = userDayUpMicDuration.get();
RBucket<Long> longRBucket = roomMicService.userUpMicTime(uid);
Long upMicTime = longRBucket.get();
@@ -59,11 +60,10 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler {
if (longRBucket.isExists()) {
Map<String, Integer> upMicDuration = roomMicService.calUserUpMicDuration(upMicTime, Calendar.getInstance().getTimeInMillis(), context.getPartitionId());
if (!upMicDuration.isEmpty()) {
totalDuration += upMicDuration.getOrDefault(todayDate, 0);
totalDuration += upMicDuration.getOrDefault(nowDate, 0);
}
}
String mondayDate = getMondayDate(context.getPartitionId(), new Date());
dailyTaskVo.setTodayDate(mondayDate);
if (totalDuration >= dailyTaskVo.getStandardValue()) {
taskStatus(uid, mondayDate, taskType).set(1, Duration.ofDays(1));
@@ -109,12 +109,19 @@ public class UpMicCoinHandler extends AbstractDailyTaskHandler {
return BusiResult.success();
}
private String getMondayDate(Integer partitionId, Date date) {
@Override
public String getTodayDate(Integer partitionId, Date date) {
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
ZonedDateTime zonedDateTime = DateTimeUtil.convertWithZoneId(date, partitionEnum.getZoneId());
return zonedDateTime.with(TemporalAdjusters.nextOrSame(DayOfWeek.MONDAY)).format(DateTimeUtil.dateFormatter);
}
private String getNowDate(Integer partitionId, Date date) {
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
ZonedDateTime zonedDateTime = DateTimeUtil.convertWithZoneId(date, partitionEnum.getZoneId());
return zonedDateTime.format(DateTimeUtil.dateFormatter);
}
private RMap<String, Long> getIpCache(String monday) {
return redissonClient.getMap(up_mic_coin_ip_limit.getKey(monday), new TypedJsonJacksonCodec(String.class, Long.class));
}