公会薪资代理限制

This commit is contained in:
2025-08-05 17:01:42 +08:00
parent 241cf9b8fc
commit cb103f567a
3 changed files with 40 additions and 25 deletions

View File

@@ -39,22 +39,30 @@ public class GuildUsdToRechargeUserLimitService {
public String getLimitTIp(GuildMember guildMember) { public String getLimitTIp(GuildMember guildMember) {
GuildUsdToRechargeUserLimitConfigDto configDto = getConfig().getByPartitionId(guildMember.getPartitionId()); GuildUsdToRechargeUserLimitConfigDto configDto = getConfig().getByPartitionId(guildMember.getPartitionId());
if (null == configDto){
return null; if (null == configDto.getDayNumLimit() || BigDecimal.ZERO.compareTo(configDto.getDayNumLimit()) >= 0) {
} return "";
List<Integer> enableDayOfMonth = GuildConstant.RoleType.OWNER.equals(guildMember.getRoleType())?
configDto.getOwnerEnableDayOfMonth():
configDto.getMemberEnableDayOfMonth();
if (CollectionUtils.isEmpty(enableDayOfMonth)){
return null;
} }
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(guildMember.getPartitionId()); PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(guildMember.getPartitionId());
ZonedDateTime zdt = DateTimeUtil.getDateTimeByZoneId(partitionEnum.getZoneId()); ZonedDateTime zdt = DateTimeUtil.getDateTimeByZoneId(partitionEnum.getZoneId());
if (enableDayOfMonth.contains(zdt.getDayOfMonth())){ ZonedDateTime todayStartTime = zdt.withHour(0).withMinute(0).withSecond(0).withNano(0);
return null; Date systemStartTime = DateTimeUtil.converLocalDateTimeToDate(todayStartTime.withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime());
String systemStartTimeStr = DateTimeUtil.convertDateTime(systemStartTime);
ZonedDateTime todayEndTime = zdt.withHour(23).withMinute(59).withSecond(59).withNano(999999999);
Date systemEndTime = DateTimeUtil.converLocalDateTimeToDate(todayEndTime.withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime());
String systemEndTimeStr = DateTimeUtil.convertDateTime(systemEndTime);
Double todayNum = guildUsdBillRecordMapper.sum(guildMember.getPartitionId(), guildMember.getUid(), null,
systemStartTimeStr, systemEndTimeStr, GuildUsdOperateTypeEnum.USD_TO_RECHARGE_USER.getType());
BigDecimal judgeNum = null == todayNum? BigDecimal.ZERO: BigDecimal.valueOf(todayNum);
if (judgeNum.compareTo(configDto.getDayNumLimit()) > 0){
return I18NMessageSourceUtil.getMessage(I18nAlertEnum.GUILD_USD_TO_RECHARGE_USER_DAY_NUM_LIMIT, null, guildMember.getPartitionId());
} }
String enableDayOfMonthStr = enableDayOfMonth.stream().sorted().map(String::valueOf).collect(Collectors.joining(","));
return I18NMessageSourceUtil.getMessage(I18nAlertEnum.GUILD_USD_TO_RECHARGE_USER_DAY_OF_MONTH_LIMIT, new Object[]{enableDayOfMonthStr}, guildMember.getPartitionId()); return "";
} }
public void validUsdToRechargeUser(GuildMember guildMember, Long targetUid, BigDecimal guildUsdNum) { public void validUsdToRechargeUser(GuildMember guildMember, Long targetUid, BigDecimal guildUsdNum) {

View File

@@ -191,7 +191,7 @@ public class GameUsdService {
String limitTip = guildUsdToRechargeUserLimitService.getLimitTIp(guildMember); String limitTip = guildUsdToRechargeUserLimitService.getLimitTIp(guildMember);
vo.setRechargeUserLimitTip(limitTip); vo.setRechargeUserLimitTip(limitTip);
if (org.apache.commons.lang3.StringUtils.isNotBlank(limitTip)){ if (StringUtils.isNotBlank(limitTip)){
return; return;
} }

View File

@@ -39,22 +39,29 @@ public class GameUsdToRechargeUserLimitService {
public String getLimitTIp(GuildMember guildMember) { public String getLimitTIp(GuildMember guildMember) {
GameUsdToRechargeUserLimitConfigDto configDto = getConfig().getByPartitionId(guildMember.getPartitionId()); GameUsdToRechargeUserLimitConfigDto configDto = getConfig().getByPartitionId(guildMember.getPartitionId());
if (null == configDto){ if (null == configDto.getDayNumLimit() || BigDecimal.ZERO.compareTo(configDto.getDayNumLimit()) >= 0) {
return null; return "";
}
List<Integer> enableDayOfMonth = GuildConstant.RoleType.OWNER.equals(guildMember.getRoleType())?
configDto.getOwnerEnableDayOfMonth():
configDto.getMemberEnableDayOfMonth();
if (CollectionUtils.isEmpty(enableDayOfMonth)){
return null;
} }
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(guildMember.getPartitionId()); PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(guildMember.getPartitionId());
ZonedDateTime zdt = DateTimeUtil.getDateTimeByZoneId(partitionEnum.getZoneId()); ZonedDateTime zdt = DateTimeUtil.getDateTimeByZoneId(partitionEnum.getZoneId());
if (enableDayOfMonth.contains(zdt.getDayOfMonth())){ ZonedDateTime todayStartTime = zdt.withHour(0).withMinute(0).withSecond(0).withNano(0);
return null; Date systemStartTime = DateTimeUtil.converLocalDateTimeToDate(todayStartTime.withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime());
String systemStartTimeStr = DateTimeUtil.convertDateTime(systemStartTime);
ZonedDateTime todayEndTime = zdt.withHour(23).withMinute(59).withSecond(59).withNano(999999999);
Date systemEndTime = DateTimeUtil.converLocalDateTimeToDate(todayEndTime.withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime());
String systemEndTimeStr = DateTimeUtil.convertDateTime(systemEndTime);
Double todayNum = gameUsdBillRecordMapper.sum(guildMember.getPartitionId(), guildMember.getUid(), null,
systemStartTimeStr, systemEndTimeStr, GuildUsdOperateTypeEnum.USD_TO_RECHARGE_USER.getType());
BigDecimal judgeNum = null == todayNum? BigDecimal.ZERO: BigDecimal.valueOf(todayNum);
if (judgeNum.compareTo(configDto.getDayNumLimit()) > 0){
String errorMsg = I18NMessageSourceUtil.getMessage(I18nAlertEnum.GUILD_USD_TO_RECHARGE_USER_DAY_NUM_LIMIT, null, guildMember.getPartitionId());
throw new ServiceException(errorMsg);
} }
String enableDayOfMonthStr = enableDayOfMonth.stream().sorted().map(String::valueOf).collect(Collectors.joining(",")); return "";
return I18NMessageSourceUtil.getMessage(I18nAlertEnum.GUILD_USD_TO_RECHARGE_USER_DAY_OF_MONTH_LIMIT, new Object[]{enableDayOfMonthStr}, guildMember.getPartitionId());
} }
public void validUsdToRechargeUser(GuildMember guildMember, Long targetUid, BigDecimal gameUsdNum) { public void validUsdToRechargeUser(GuildMember guildMember, Long targetUid, BigDecimal gameUsdNum) {