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);
|
QueryCondition condition = QueryCondition.of(cmd);
|
||||||
Map<String, CountryDashboardMetricCO> rows = new LinkedHashMap<>();
|
Map<String, CountryDashboardMetricCO> rows = new LinkedHashMap<>();
|
||||||
|
|
||||||
boolean usePrecomputedMetrics = shouldUsePrecomputedMetrics(condition);
|
mergeSql(rows, countryDashboardDAO.listPrecomputedPeriodMetrics(
|
||||||
if (usePrecomputedMetrics) {
|
condition.periodType, condition.startTime, condition.endTime,
|
||||||
mergeSql(rows, countryDashboardDAO.listPrecomputedPeriodMetrics(
|
condition.countryKeyword, condition.statTimezone, condition.sysOrigin));
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
mergeMongo(rows, condition, listGiftConsume(condition),
|
mergeMongo(rows, condition, listGiftConsume(condition),
|
||||||
(row, amount) -> row.setGiftConsume(add(row.getGiftConsume(), amount)));
|
(row, amount) -> row.setGiftConsume(add(row.getGiftConsume(), amount)));
|
||||||
@ -303,29 +294,15 @@ public class CountryDashboardServiceImpl implements CountryDashboardService {
|
|||||||
@Override
|
@Override
|
||||||
public PageResult<CountryDashboardRechargeDetailCO> pageRechargeDetails(
|
public PageResult<CountryDashboardRechargeDetailCO> pageRechargeDetails(
|
||||||
CountryDashboardRechargeDetailQryCmd cmd) {
|
CountryDashboardRechargeDetailQryCmd cmd) {
|
||||||
QueryCondition condition = QueryCondition.of(cmd);
|
|
||||||
int cursor = Math.max(1, cmd == null || cmd.getCursor() == null ? 1 : cmd.getCursor());
|
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());
|
int limit = Math.max(1, cmd == null || cmd.getLimit() == null ? 100 : cmd.getLimit());
|
||||||
limit = Math.min(100, limit);
|
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<>();
|
PageResult<CountryDashboardRechargeDetailCO> result = new PageResult<>();
|
||||||
result.setCurrent(cursor);
|
result.setCurrent(cursor);
|
||||||
result.setSize(limit);
|
result.setSize(limit);
|
||||||
result.setTotal(total == null ? 0L : total);
|
result.setTotal(0L);
|
||||||
result.setRecords(records);
|
result.setRecords(List.of());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user