From cb103f567a8e0ad2840bdd7757d349116d4e7a82 Mon Sep 17 00:00:00 2001 From: hokli <2629910752@qq.com> Date: Tue, 5 Aug 2025 17:01:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E8=96=AA=E8=B5=84=E4=BB=A3?= =?UTF-8?q?=E7=90=86=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GuildUsdToRechargeUserLimitService.java | 32 ++++++++++++------- .../service/guildgame/GameUsdService.java | 2 +- .../GameUsdToRechargeUserLimitService.java | 31 +++++++++++------- 3 files changed, 40 insertions(+), 25 deletions(-) diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildUsdToRechargeUserLimitService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildUsdToRechargeUserLimitService.java index e1a1d19c4..672c5105d 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildUsdToRechargeUserLimitService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildUsdToRechargeUserLimitService.java @@ -39,22 +39,30 @@ public class GuildUsdToRechargeUserLimitService { public String getLimitTIp(GuildMember guildMember) { GuildUsdToRechargeUserLimitConfigDto configDto = getConfig().getByPartitionId(guildMember.getPartitionId()); - if (null == configDto){ - return null; - } - List enableDayOfMonth = GuildConstant.RoleType.OWNER.equals(guildMember.getRoleType())? - configDto.getOwnerEnableDayOfMonth(): - configDto.getMemberEnableDayOfMonth(); - if (CollectionUtils.isEmpty(enableDayOfMonth)){ - return null; + + if (null == configDto.getDayNumLimit() || BigDecimal.ZERO.compareTo(configDto.getDayNumLimit()) >= 0) { + return ""; } + PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(guildMember.getPartitionId()); ZonedDateTime zdt = DateTimeUtil.getDateTimeByZoneId(partitionEnum.getZoneId()); - if (enableDayOfMonth.contains(zdt.getDayOfMonth())){ - return null; + ZonedDateTime todayStartTime = zdt.withHour(0).withMinute(0).withSecond(0).withNano(0); + 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) { diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildgame/GameUsdService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildgame/GameUsdService.java index b6228c816..058acfbde 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildgame/GameUsdService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildgame/GameUsdService.java @@ -191,7 +191,7 @@ public class GameUsdService { String limitTip = guildUsdToRechargeUserLimitService.getLimitTIp(guildMember); vo.setRechargeUserLimitTip(limitTip); - if (org.apache.commons.lang3.StringUtils.isNotBlank(limitTip)){ + if (StringUtils.isNotBlank(limitTip)){ return; } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildgame/GameUsdToRechargeUserLimitService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildgame/GameUsdToRechargeUserLimitService.java index b1dc37a33..b453e747f 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildgame/GameUsdToRechargeUserLimitService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildgame/GameUsdToRechargeUserLimitService.java @@ -39,22 +39,29 @@ public class GameUsdToRechargeUserLimitService { public String getLimitTIp(GuildMember guildMember) { GameUsdToRechargeUserLimitConfigDto configDto = getConfig().getByPartitionId(guildMember.getPartitionId()); - if (null == configDto){ - return null; - } - List enableDayOfMonth = GuildConstant.RoleType.OWNER.equals(guildMember.getRoleType())? - configDto.getOwnerEnableDayOfMonth(): - configDto.getMemberEnableDayOfMonth(); - if (CollectionUtils.isEmpty(enableDayOfMonth)){ - return null; + if (null == configDto.getDayNumLimit() || BigDecimal.ZERO.compareTo(configDto.getDayNumLimit()) >= 0) { + return ""; } + PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(guildMember.getPartitionId()); ZonedDateTime zdt = DateTimeUtil.getDateTimeByZoneId(partitionEnum.getZoneId()); - if (enableDayOfMonth.contains(zdt.getDayOfMonth())){ - return null; + ZonedDateTime todayStartTime = zdt.withHour(0).withMinute(0).withSecond(0).withNano(0); + 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 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 gameUsdNum) {