From 35458a674ef59cd056db1192776237ca8717507e Mon Sep 17 00:00:00 2001 From: hy001 Date: Sat, 23 May 2026 12:27:44 +0800 Subject: [PATCH] fix: make country dashboard backfill atomic --- .../adapter/app/user/DatavRestController.java | 14 ++++++++++---- .../app/datav/CountryDashboardServiceImpl.java | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/rc-service/rc-service-console/console-adapter/src/main/java/com/red/circle/console/adapter/app/user/DatavRestController.java b/rc-service/rc-service-console/console-adapter/src/main/java/com/red/circle/console/adapter/app/user/DatavRestController.java index ac6c1f2c..728b0c11 100644 --- a/rc-service/rc-service-console/console-adapter/src/main/java/com/red/circle/console/adapter/app/user/DatavRestController.java +++ b/rc-service/rc-service-console/console-adapter/src/main/java/com/red/circle/console/adapter/app/user/DatavRestController.java @@ -146,15 +146,21 @@ public class DatavRestController extends BaseController { } LocalDate parsedStartDate = LocalDate.parse(startDate); LocalDate parsedEndDate = LocalDate.parse(endDate); - List refreshedTimezones = countryDashboardBackfillLockService.call( - () -> countryDashboardGameMetricService.refreshRange( - parsedStartDate, parsedEndDate, sysOrigin, statTimezones)); + Map refreshed = countryDashboardBackfillLockService.call(() -> { + List countryTimezones = countryDashboardDailyMetricService.refreshRange( + parsedStartDate, parsedEndDate, sysOrigin, statTimezones); + List gameTimezones = countryDashboardGameMetricService.refreshRange( + parsedStartDate, parsedEndDate, sysOrigin, statTimezones); + return Map.of( + "countryStatTimezones", countryTimezones, + "gameStatTimezones", gameTimezones); + }); return Map.of( "status", "success", "startDate", parsedStartDate.toString(), "endDate", parsedEndDate.toString(), "sysOrigin", sysOrigin, - "statTimezones", refreshedTimezones); + "statTimezones", refreshed); } private CountryDashboardCO emptyCountryDashboard(CountryDashboardQryCmd cmd) { diff --git a/rc-service/rc-service-console/console-application/src/main/java/com/red/circle/console/app/service/app/datav/CountryDashboardServiceImpl.java b/rc-service/rc-service-console/console-application/src/main/java/com/red/circle/console/app/service/app/datav/CountryDashboardServiceImpl.java index f0a227aa..fb134cf3 100644 --- a/rc-service/rc-service-console/console-application/src/main/java/com/red/circle/console/app/service/app/datav/CountryDashboardServiceImpl.java +++ b/rc-service/rc-service-console/console-application/src/main/java/com/red/circle/console/app/service/app/datav/CountryDashboardServiceImpl.java @@ -292,7 +292,7 @@ public class CountryDashboardServiceImpl implements CountryDashboardService { limit = Math.min(100, limit); QueryCondition condition = QueryCondition.of(cmd); - String countryCodes = trimToNull(cmd == null ? null : cmd.getCountryCodes()); + String countryCodes = QueryCondition.trimToNull(cmd == null ? null : cmd.getCountryCodes()); long total = safeLong(countryDashboardDAO.countRechargeDetails( condition.startTime, condition.endTime, condition.countryKeyword, countryCodes, condition.sysOrigin, condition.storageTimezoneOffset, condition.statTimezoneOffset));