公会长移除主播限制

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

@@ -47,6 +47,9 @@ public class GuildMemberAdminVo {
@ExcelProperty("加入时间")
@ApiModelProperty("加入时间")
private Date createTime;
@ExcelProperty("操作/退出时间")
@ApiModelProperty("操作/退出时间")
private Date updateTime;
@ExcelProperty("是否有效状态")
@ApiModelProperty("是否有效状态")
private Boolean enable;

View File

@@ -522,6 +522,7 @@ public class GuildManageAdminService {
vo.setPartitionName(partitionNameMap.get(u.getPartitionId()));
vo.setRoleType(guildMember.getRoleType());
vo.setCreateTime(guildMember.getCreateTime());
vo.setUpdateTime(guildMember.getUpdateTime());
vo.setEnable(guildMember.getEnable());
if (guildMember.getAdminId() != null) {
vo.setAdminName(adminUserMap.get(guildMember.getAdminId()));

View File

@@ -989,6 +989,7 @@ public enum BusiStatus {
RECHARGE_REGION_SALARY_LIMIT(500,"该代理暂不代理该区域业务"),
ROOM_DAY_DIAMOND_REWARD_DATE_CHECK(500, "TODAY NOT ALLOW RECEIVE"),
GUILD_USD_OPT_LIMIT(500, "该交易类型已达到本周交易次数上限"),
GUILD_MEMBER_REMOVE_LIMIT(500, "仅在每个月1号、2号、3号才可以移除主播"),
;
private final int value;

View File

@@ -1397,7 +1397,9 @@ public class Constant {
public static final String CP_MIC_SVGA_URL = "cp_mic_svga_url";
public static String charge_user_x_gold = "charge_user_x_gold";
public static final String CHARGE_USER_X_GOLD = "charge_user_x_gold";
public static final String GUILD_OPERATE_CONFIG = "guild_operate_config";
}
public static class WithDrawStatus {

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);
}
}