公会长移除主播限制

This commit is contained in:
2025-10-09 16:27:33 +08:00
parent 8db6d82c4a
commit 1de27e6cd0
7 changed files with 54 additions and 4 deletions

View File

@@ -0,0 +1,17 @@
package com.accompany.business.dto.guild;
import lombok.Data;
import java.util.List;
import java.util.Map;
@Data
public class GuildRemoveConfigDto {
private List<Integer> acceptDays;
private Map<Integer, GuildRemoveConfigDto> partitionMap;
public GuildRemoveConfigDto getByPartitionId(int partitionId) {
return partitionMap.getOrDefault(partitionId, this);
}
}

View File

@@ -80,7 +80,7 @@ public class ChargeUserXService {
return;
}
String value = sysConfService.getDefaultSysConfValueById(Constant.SysConfId.charge_user_x_gold, "200000");
String value = sysConfService.getDefaultSysConfValueById(Constant.SysConfId.CHARGE_USER_X_GOLD, "200000");
Map<Long, GameDayStatData> gameDayStatDataMap = gameDayStatDataService.statByChannelUid4XRecord(GameConstant.GameChannel.LEADERCC.name(), Long.valueOf(value));
List<Long> zeroChargeUidList = new ArrayList<>();

View File

@@ -1,6 +1,7 @@
package com.accompany.business.service.guild;
import com.accompany.business.constant.guild.GuildConstant;
import com.accompany.business.dto.guild.GuildRemoveConfigDto;
import com.accompany.business.event.GuildMemberStatusChangeEvent;
import com.accompany.business.model.give.GiveUser;
import com.accompany.business.model.guild.Guild;
@@ -19,8 +20,10 @@ import com.accompany.core.base.SpringContextHolder;
import com.accompany.core.enumeration.PartitionEnum;
import com.accompany.core.exception.ServiceException;
import com.accompany.core.model.Users;
import com.accompany.core.service.SysConfService;
import com.accompany.core.util.PartitionUtil;
import com.accompany.payment.service.RechargeUserService;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
@@ -32,7 +35,9 @@ import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.time.ZonedDateTime;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -63,6 +68,8 @@ public class GuildRelationService {
private GiveUserService giveUserService;
@Autowired
private ApplicationContext applicationContext;
@Autowired
private SysConfService sysConfService;
public GuildSkipVo getGuildSkipVo(Long uid) {
GuildSkipVo vo = new GuildSkipVo();
@@ -526,6 +533,17 @@ public class GuildRelationService {
} else if (myGuildMember.getRoleType().compareTo(guildMember.getRoleType()) >= 0){
throw new ServiceException(BusiStatus.FAMILY_PERMISSION_DENIED);
}
Date now = new Date();
Integer partitionId = guildMember.getPartitionId();
if (PartitionEnum.TURKEY.getId() == partitionId) {
ZonedDateTime nowZonedDateTime = DateTimeUtil.convertWithZoneId(now, PartitionEnum.getByPartitionId(guildMember.getPartitionId()).getZoneId());
int dayOfMonth = nowZonedDateTime.getDayOfMonth();
GuildRemoveConfigDto config = this.getConfig(partitionId);
if (config != null && CollectionUtils.isNotEmpty(config.getAcceptDays()) &&!config.getAcceptDays().contains(dayOfMonth)) {
throw new ServiceException(BusiStatus.GUILD_MEMBER_REMOVE_LIMIT);
}
}
Guild guild = guildService.getVaildGuildById(myGuildMember.getGuildId());
if (null == guild){
@@ -542,8 +560,6 @@ public class GuildRelationService {
throw new ServiceException(BusiStatus.USERNOTEXISTS);
}
Date now = new Date();
guildMember.setEnable(Boolean.FALSE);
guildMember.setUpdateTime(now);
guildMember.setAdminId(null);
@@ -715,4 +731,14 @@ public class GuildRelationService {
}
}
public GuildRemoveConfigDto getConfig(Integer partitionId) {
String configStr = sysConfService.getSysConfValueById(Constant.SysConfId.GUILD_OPERATE_CONFIG);
if (!StringUtils.hasText(configStr)){
throw new ServiceException(BusiStatus.SERVERERROR);
}
GuildRemoveConfigDto removeConfigDto = JSONObject.parseObject(configStr, GuildRemoveConfigDto.class);
return removeConfigDto.getByPartitionId(partitionId);
}
}