土耳其新政策添加上麦时长

This commit is contained in:
2025-08-12 16:23:45 +08:00
parent 5b80dbdd1d
commit e23133e5d1
2 changed files with 41 additions and 4 deletions

View File

@@ -6,6 +6,7 @@ import com.accompany.business.model.guild.GuildMember;
import com.accompany.business.service.guild.GuildAuthService;
import com.accompany.business.service.guild.GuildMemberService;
import com.accompany.business.service.guild.GuildService;
import com.accompany.business.service.room.RoomMicService;
import com.accompany.business.util.FullMonthCycleTimeUtil;
import com.accompany.business.vo.guild.CycleDateVo;
import com.accompany.business.vo.guildpolicy.GuildPolicy2PersonalVo;
@@ -25,6 +26,8 @@ import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.*;
import static com.accompany.common.constant.Constant.ClanMode.GUILD_POLICY2;
@Slf4j
@Service
public class GuildPolicy2Service {
@@ -38,6 +41,8 @@ public class GuildPolicy2Service {
private GuildMemberService guildMemberService;
@Autowired
private GuildAuthService guildAuthService;
@Autowired
private RoomMicService roomMicService;
public BusiResult<GuildPolicy2Vo> getGuildPolicy2(Long uid, String cycleBeginDate) {
GuildPolicy2Vo guildPolicy2Vo = new GuildPolicy2Vo();
@@ -113,4 +118,21 @@ public class GuildPolicy2Service {
return BusiResult.success(cycleDateVos);
}
public void statMicSecond(GuildMember guildMember, Long entreTimestamp, Long timestamp) {
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(guildMember.getPartitionId());
if (!GUILD_POLICY2.equals(partitionEnum.getClanMode())) {
return;
}
Map<String, Integer> durationMap = roomMicService.calUserUpMicDuration(entreTimestamp, timestamp, guildMember.getPartitionId());
if (durationMap.size() > 0) {
for (Map.Entry<String, Integer> entry : durationMap.entrySet()) {
Integer second = entry.getValue() * 60;
String statDate = entry.getKey();
Date beginOfMonth = DateUtil.beginOfMonth(DateUtil.parseDate(statDate));
String cycleDate = DateUtil.formatDate(beginOfMonth);
guildDiamondStatisticsPolicy2Service.updateDayDiamondStatistics(cycleDate, statDate, guildMember, 0, second);
}
}
}
}

View File

@@ -4,6 +4,7 @@ import com.accompany.business.constant.family.FamilyConstant;
import com.accompany.business.model.guild.GuildMember;
import com.accompany.business.param.MicQueueParam;
import com.accompany.business.service.guild.GuildMemberService;
import com.accompany.business.service.guildpolicy2.GuildPolicy2Service;
import com.accompany.common.redis.RedisKey;
import com.accompany.common.utils.DateTimeUtil;
import com.accompany.core.enumeration.PartitionEnum;
@@ -23,10 +24,13 @@ import org.redisson.api.RSet;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.accompany.common.constant.Constant.ClanMode.GUILD_POLICY2;
@Slf4j
@Service
public class GuildMemberRoomMicRecordService extends ServiceImpl<GuildMemberRoomMicRecordMapper, GuildMemberRoomMicRecord> {
@@ -37,6 +41,8 @@ public class GuildMemberRoomMicRecordService extends ServiceImpl<GuildMemberRoom
private RoomService roomService;
@Autowired
private GuildMemberService guildMemberService;
@Autowired
private GuildPolicy2Service guildPolicy2Service;
@SneakyThrows
public void cacheRecordAndSave(MicQueueParam micQueueParam) {
@@ -53,7 +59,11 @@ public class GuildMemberRoomMicRecordService extends ServiceImpl<GuildMemberRoom
Long uid = null != micQueueParam.getBelongTo()? micQueueParam.getBelongTo(): micQueueParam.getOperator();
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid);
if (null == guildMember || guildMember.getPartitionId() == PartitionEnum.ARAB.getId()){
if (null == guildMember){
return;
}
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(guildMember.getPartitionId());
if (!GUILD_POLICY2.equals(partitionEnum.getClanMode()) && guildMember.getPartitionId() == PartitionEnum.ARAB.getId()){
return;
}
@@ -77,8 +87,12 @@ public class GuildMemberRoomMicRecordService extends ServiceImpl<GuildMemberRoom
Long uid = entry.getValue();
GuildMember guildMember = guildMemberMap.get(uid);
if (null == guildMember || guildMember.getPartitionId() == PartitionEnum.ARAB.getId()){
continue;
if (null == guildMember){
return;
}
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(guildMember.getPartitionId());
if (!GUILD_POLICY2.equals(partitionEnum.getClanMode()) && guildMember.getPartitionId() == PartitionEnum.ARAB.getId()){
return;
}
record(qEvent, timestamp, guildMember, roomUid, roomId, pos);
@@ -118,7 +132,6 @@ public class GuildMemberRoomMicRecordService extends ServiceImpl<GuildMemberRoom
long remainMillisecond = timestamp - entreTimestamp;
log.info("[下麦结算计算时间] uid {} roomUid {} roomId {} pos {} entreTimestamp {} timestamp {} remainMillisecond {}",
uid, roomUid, roomId, pos, entreTimestamp, timestamp, remainMillisecond);
//save
GuildMemberRoomMicRecord record = new GuildMemberRoomMicRecord();
record.setUid(uid);
@@ -132,6 +145,8 @@ public class GuildMemberRoomMicRecordService extends ServiceImpl<GuildMemberRoom
record.setDownTime(new Date(timestamp));
record.setRemainTime(remainMillisecond);
save(record);
guildPolicy2Service.statMicSecond(guildMember, entreTimestamp, timestamp);
}
}