From face96a9da438c203e1c7d8a157f9b359a32ecf9 Mon Sep 17 00:00:00 2001 From: khalil Date: Tue, 29 Jul 2025 17:14:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=9A-=E7=BB=93=E7=AE=97-cal?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E8=BF=94=E5=9B=9Enullable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/guild/GuildSettleRecordAdminService.java | 7 ++++++- .../business/service/guild/GuildSettleService.java | 8 ++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guild/GuildSettleRecordAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guild/GuildSettleRecordAdminService.java index 2908ca103..6b369d6c3 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guild/GuildSettleRecordAdminService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guild/GuildSettleRecordAdminService.java @@ -86,6 +86,9 @@ public class GuildSettleRecordAdminService { if (curCycleDate.equals(basePageParams.getDateCycle())){ String endDate = CycleTimeUtil.getCurCycleEndDateByZoneId(partitionInfo.getZoneId()); List poList = guildSettleService.cal(basePageParams.getPartitionId(), curCycleDate, endDate, gId, basePageParams.getRegionId()); + if (CollectionUtils.isEmpty(poList)){ + return voPage; + } List voList = transferToVo(poList, basePageParams.getPageNo(), basePageParams.getPageSize()); voPage.setRecords(voList); voPage.setTotal(poList.size()); @@ -110,7 +113,9 @@ public class GuildSettleRecordAdminService { private List transferToVo(List poList, Integer pageNo, Integer pageSize) { if (null != pageNo && null != pageSize){ - poList = poList.subList((pageNo - 1) * pageSize, pageNo * pageSize); + int start = (pageNo - 1) * pageSize; + int end = Math.min(poList.size(), start + pageSize); + poList = poList.subList(start, end); } List guildIdList = poList.stream().map(GuildSettleRecord::getGuildId).distinct().toList(); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildSettleService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildSettleService.java index e38135a95..48eca3c88 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildSettleService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildSettleService.java @@ -26,6 +26,7 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; @@ -64,8 +65,7 @@ public class GuildSettleService { public List cal(Integer partitionId, String beginDate, String endDate, Integer gId, Integer regionId){ List memberSettleList = guildMemberDiamondStatisticsMapper.listGuildMemberDiamondStat(partitionId, beginDate, gId, regionId); if (CollectionUtils.isEmpty(memberSettleList)){ - log.error("[guild settle] partitionId {} cycleDate {} 周期内无有效公会", partitionId, beginDate); - throw new ServiceException(BusiStatus.SERVERERROR); + return Collections.emptyList(); } Map> groupByGuildIdMap = memberSettleList.stream().collect(Collectors.groupingBy(GuildMemberDiamondStatisticsVo::getGuildId)); @@ -125,6 +125,10 @@ public class GuildSettleService { public void settle(Integer partitionId, String beginDate, String endDate){ List guildSettleRecords = cal(partitionId, beginDate, endDate, null, null); + if (CollectionUtils.isEmpty(guildSettleRecords)){ + log.error("[guild settle] partitionId {} cycleDate {} 周期内无有效公会", partitionId, beginDate); + return; + } guildSettleRecordService.saveBatch(guildSettleRecords); sendMessage(guildSettleRecords);