From 934f91221a5997fb90ff47547112876ffa6b6a31 Mon Sep 17 00:00:00 2001 From: hokli <2629910752@qq.com> Date: Mon, 20 Oct 2025 11:57:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E5=B0=8F=E6=97=B6=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../accompany/common/utils/DateTimeUtil.java | 10 ++++++++-- .../SuperLuckyGiftDiamondIncomeListener.java | 16 ++++++++++------ .../service/activity/LuckyNumberActService.java | 4 ++-- .../service/guild/GuildGiftRecordService.java | 17 ++++++++++++----- 4 files changed, 32 insertions(+), 15 deletions(-) diff --git a/accompany-base/accompany-core/src/main/java/com/accompany/common/utils/DateTimeUtil.java b/accompany-base/accompany-core/src/main/java/com/accompany/common/utils/DateTimeUtil.java index b4595d6c0..63e5e37d7 100644 --- a/accompany-base/accompany-core/src/main/java/com/accompany/common/utils/DateTimeUtil.java +++ b/accompany-base/accompany-core/src/main/java/com/accompany/common/utils/DateTimeUtil.java @@ -1,6 +1,5 @@ package com.accompany.common.utils; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.accompany.common.status.BusiStatus; import com.accompany.core.exception.ServiceException; @@ -39,6 +38,7 @@ public class DateTimeUtil { public static final String DEFAULT_DATE_PATTERN__ = "yyyyMMddHHmmss"; public static final String DEFAULT_TIME_PATTERN = "HH:mm:ss"; public static final String DEFAULT_DATE_MINUTE_PATTERN = "yyyy-MM-dd HH:mm"; + public static final String DEFAULT_DATE_HOUR_PATTERN = "yyyy-MM-dd HH"; public static final String SIMPLE_MONTH_DATE_PATTERN = "M月d日"; public static final String DATE_HOUR_PATTERN = "yyyyMMddHH"; public static final String DATE_FORMAT_YEAR_MONTH = "yyyyMM"; @@ -61,9 +61,10 @@ public class DateTimeUtil { public static final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_PATTERN); public static final DateTimeFormatter datetimeFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATETIME_PATTERN); - public static final DateTimeFormatter dateHourFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_MINUTE_PATTERN); + public static final DateTimeFormatter dateHourMinutesFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_MINUTE_PATTERN); public static final DateTimeFormatter hoursFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DATE_HOUR_PATTERN); public static final DateTimeFormatter monthWithoutZeroDateFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.MONTH_WITHOUT_ZERO_DATE_PATTERN); + public static final DateTimeFormatter dateHourFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_HOUR_PATTERN); public static final DateTimeFormatter yyyyMMdd = DateTimeFormatter.ofPattern("yyyyMMdd"); @@ -1147,4 +1148,9 @@ public class DateTimeUtil { return Date.from(eastEightZonedDateTime.toInstant()); } + + public static String getDayHourDate(Date time, String zoneId) { + ZonedDateTime zdt = DateTimeUtil.convertWithZoneId(time, zoneId); + return zdt.format(dateHourFormatter); + } } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/SuperLuckyGiftDiamondIncomeListener.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/SuperLuckyGiftDiamondIncomeListener.java index ed404f461..f81ebcc0c 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/SuperLuckyGiftDiamondIncomeListener.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/SuperLuckyGiftDiamondIncomeListener.java @@ -3,14 +3,12 @@ package com.accompany.business.event.listener; import com.accompany.business.event.SuperLuckyGiftDiamondIncomeMessageEvent; import com.accompany.business.message.SuperLuckyGiftDiamondIncomeMessage; import com.accompany.business.model.guild.GuildMember; -import com.accompany.business.service.guild.GuildDiamondStatisticsDayService; -import com.accompany.business.service.guild.GuildMemberDiamondStatisticsService; -import com.accompany.business.service.guild.GuildMemberService; -import com.accompany.business.service.guild.GuildRankService; +import com.accompany.business.service.guild.*; import com.accompany.business.service.guildpolicy2.GuildDiamondStatisticsPolicy2Service; import com.accompany.business.service.user.UsersService; import com.accompany.business.util.FullMonthCycleTimeUtil; import com.accompany.common.constant.Constant; +import com.accompany.common.utils.DateTimeUtil; import com.accompany.core.model.PartitionInfo; import com.accompany.core.model.Users; import com.accompany.core.service.partition.PartitionInfoService; @@ -38,6 +36,8 @@ public class SuperLuckyGiftDiamondIncomeListener implements ApplicationListener< private GuildDiamondStatisticsDayService guildDiamondStatisticsDayService; @Autowired private GuildDiamondStatisticsPolicy2Service guildDiamondStatisticsPolicy2Service; + @Autowired + private GuildDiamondStatisticsHourService guildDiamondStatisticsHourService; @Async @Override @@ -59,16 +59,20 @@ public class SuperLuckyGiftDiamondIncomeListener implements ApplicationListener< } Date time = message.getCreateTime(); Double totalDiamondNum = message.getTotalDiamondNum(); + String statDate = FullMonthCycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId()); if (Constant.ClanMode.GUILD.equals(partitionInfo.getClanMode())) { String cycleDate = FullMonthCycleTimeUtil.getCycleDateByZoneId(time, partitionInfo.getZoneId()); - String statDate = FullMonthCycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId()); + statDate = FullMonthCycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId()); guildMemberDiamondStatisticsService.update(cycleDate, guildMember, totalDiamondNum); guildDiamondStatisticsDayService.updateDayDiamondStatistics(cycleDate, statDate, guildMember, totalDiamondNum); } else if (Constant.ClanMode.GUILD_POLICY2.equals(partitionInfo.getClanMode())) { String cycleDate = FullMonthCycleTimeUtil.getCycleDateByZoneId(time, partitionInfo.getZoneId()); - String statDate = FullMonthCycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId()); + statDate = FullMonthCycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId()); guildDiamondStatisticsPolicy2Service.updateDayDiamondStatistics(cycleDate, statDate, guildMember, totalDiamondNum); } + String dayHourDate = DateTimeUtil.getDayHourDate(time, partitionInfo.getZoneId()); + guildDiamondStatisticsHourService.updateHourDiamondStatistics(statDate, dayHourDate, guildMember, totalDiamondNum); + //todo 时区 zoneId guildRankService.updateRank(guildMember.getGuildId(), guildMember.getUid(), totalDiamondNum, receiver.getPartitionId()); } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/LuckyNumberActService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/LuckyNumberActService.java index 49e8f992f..7244cddd5 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/LuckyNumberActService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/LuckyNumberActService.java @@ -141,7 +141,7 @@ public class LuckyNumberActService { vo.setLuckyNumber(round.getLuckyNumber()); ZonedDateTime zdt = ZonedDateTime.parse(round.getEndTime(), DateTimeFormatter.ISO_ZONED_DATE_TIME); - vo.setEndTime(zdt.format(DateTimeUtil.dateHourFormatter)); + vo.setEndTime(zdt.format(DateTimeUtil.dateHourMinutesFormatter)); return vo; }).collect(Collectors.toList()); @@ -205,7 +205,7 @@ public class LuckyNumberActService { vo.setDate(record.getDate()); ZonedDateTime zdt = ZonedDateTime.parse(round.getEndTime(), DateTimeFormatter.ISO_ZONED_DATE_TIME); - vo.setEndTime(zdt.format(DateTimeUtil.dateHourFormatter)); + vo.setEndTime(zdt.format(DateTimeUtil.dateHourMinutesFormatter)); vo.setLuckyNumber(round.getLuckyNumber()); vo.setNumberList(record.getNumberList()); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildGiftRecordService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildGiftRecordService.java index 953b0a692..140a9886f 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildGiftRecordService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildGiftRecordService.java @@ -46,6 +46,9 @@ public class GuildGiftRecordService extends ServiceImpl