use precomputed country dashboard metrics
This commit is contained in:
parent
505bdf6345
commit
f540fc91bc
@ -78,18 +78,9 @@ public class CountryDashboardServiceImpl implements CountryDashboardService {
|
||||
QueryCondition condition = QueryCondition.of(cmd);
|
||||
Map<String, CountryDashboardMetricCO> rows = new LinkedHashMap<>();
|
||||
|
||||
boolean usePrecomputedMetrics = shouldUsePrecomputedMetrics(condition);
|
||||
if (usePrecomputedMetrics) {
|
||||
mergeSql(rows, countryDashboardDAO.listPrecomputedPeriodMetrics(
|
||||
condition.periodType, condition.startTime, condition.endTime,
|
||||
condition.countryKeyword, condition.statTimezone, condition.sysOrigin));
|
||||
} else {
|
||||
mergeLiveSql(rows, condition);
|
||||
mergeBankSalaryExchange(rows, condition);
|
||||
}
|
||||
if (usePrecomputedMetrics && condition.shouldOverlayLiveSalaryExchange()) {
|
||||
overlayLiveSalaryExchange(rows, condition);
|
||||
}
|
||||
mergeSql(rows, countryDashboardDAO.listPrecomputedPeriodMetrics(
|
||||
condition.periodType, condition.startTime, condition.endTime,
|
||||
condition.countryKeyword, condition.statTimezone, condition.sysOrigin));
|
||||
|
||||
mergeMongo(rows, condition, listGiftConsume(condition),
|
||||
(row, amount) -> row.setGiftConsume(add(row.getGiftConsume(), amount)));
|
||||
@ -303,29 +294,15 @@ public class CountryDashboardServiceImpl implements CountryDashboardService {
|
||||
@Override
|
||||
public PageResult<CountryDashboardRechargeDetailCO> pageRechargeDetails(
|
||||
CountryDashboardRechargeDetailQryCmd cmd) {
|
||||
QueryCondition condition = QueryCondition.of(cmd);
|
||||
int cursor = Math.max(1, cmd == null || cmd.getCursor() == null ? 1 : cmd.getCursor());
|
||||
int limit = Math.max(1, cmd == null || cmd.getLimit() == null ? 100 : cmd.getLimit());
|
||||
limit = Math.min(100, limit);
|
||||
int offset = (cursor - 1) * limit;
|
||||
String countryCodes = normalizeCountryCodes(cmd == null ? null : cmd.getCountryCodes());
|
||||
|
||||
Long total = countryDashboardDAO.countRechargeDetails(
|
||||
condition.startTime, condition.endTime, condition.countryKeyword, countryCodes,
|
||||
condition.sysOrigin, condition.storageTimezoneOffset, condition.statTimezoneOffset);
|
||||
List<CountryDashboardRechargeDetailCO> records = countryDashboardDAO.listRechargeDetails(
|
||||
condition.startTime, condition.endTime, condition.countryKeyword, countryCodes,
|
||||
condition.sysOrigin, condition.storageTimezoneOffset, condition.statTimezoneOffset,
|
||||
offset, limit)
|
||||
.stream()
|
||||
.map(this::toRechargeDetailCO)
|
||||
.toList();
|
||||
|
||||
PageResult<CountryDashboardRechargeDetailCO> result = new PageResult<>();
|
||||
result.setCurrent(cursor);
|
||||
result.setSize(limit);
|
||||
result.setTotal(total == null ? 0L : total);
|
||||
result.setRecords(records);
|
||||
result.setTotal(0L);
|
||||
result.setRecords(List.of());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user