|
@@ -57,7 +57,7 @@ public class AnalyticsService {
|
|
|
Instant startTime = parseDate(startDate);
|
|
Instant startTime = parseDate(startDate);
|
|
|
Instant endTime = endDate != null && !endDate.isBlank()
|
|
Instant endTime = endDate != null && !endDate.isBlank()
|
|
|
? LocalDate.parse(endDate).plusDays(1).atStartOfDay(ZoneOffset.UTC).toInstant()
|
|
? LocalDate.parse(endDate).plusDays(1).atStartOfDay(ZoneOffset.UTC).toInstant()
|
|
|
- : null;
|
|
|
|
|
|
|
+ : Instant.parse("2099-12-31T23:59:59Z");
|
|
|
|
|
|
|
|
Specification<UserEvent> spec = (root, query, cb) -> {
|
|
Specification<UserEvent> spec = (root, query, cb) -> {
|
|
|
List<Predicate> predicates = new ArrayList<>();
|
|
List<Predicate> predicates = new ArrayList<>();
|
|
@@ -128,8 +128,8 @@ public class AnalyticsService {
|
|
|
Instant todayStart = parseDate(today);
|
|
Instant todayStart = parseDate(today);
|
|
|
Instant todayEnd = LocalDate.parse(today).plusDays(1).atStartOfDay(ZoneOffset.UTC).toInstant();
|
|
Instant todayEnd = LocalDate.parse(today).plusDays(1).atStartOfDay(ZoneOffset.UTC).toInstant();
|
|
|
|
|
|
|
|
- Instant startTime = null;
|
|
|
|
|
- Instant endTime = null;
|
|
|
|
|
|
|
+ Instant startTime;
|
|
|
|
|
+ Instant endTime;
|
|
|
String label;
|
|
String label;
|
|
|
|
|
|
|
|
if ("today".equals(range)) {
|
|
if ("today".equals(range)) {
|
|
@@ -141,6 +141,9 @@ public class AnalyticsService {
|
|
|
endTime = todayEnd;
|
|
endTime = todayEnd;
|
|
|
label = "week";
|
|
label = "week";
|
|
|
} else {
|
|
} else {
|
|
|
|
|
+ // 累计:用极值替代 null,避免 PG 无法推断 NULL::timestamptz 类型
|
|
|
|
|
+ startTime = Instant.EPOCH;
|
|
|
|
|
+ endTime = Instant.parse("2099-12-31T23:59:59Z");
|
|
|
label = "total";
|
|
label = "total";
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -163,7 +166,7 @@ public class AnalyticsService {
|
|
|
Instant startTime = parseDate(startDate);
|
|
Instant startTime = parseDate(startDate);
|
|
|
Instant endTime = endDate != null && !endDate.isBlank()
|
|
Instant endTime = endDate != null && !endDate.isBlank()
|
|
|
? LocalDate.parse(endDate).plusDays(1).atStartOfDay(ZoneOffset.UTC).toInstant()
|
|
? LocalDate.parse(endDate).plusDays(1).atStartOfDay(ZoneOffset.UTC).toInstant()
|
|
|
- : null;
|
|
|
|
|
|
|
+ : Instant.parse("2099-12-31T23:59:59Z");
|
|
|
|
|
|
|
|
Map<String, Object> result = new LinkedHashMap<>();
|
|
Map<String, Object> result = new LinkedHashMap<>();
|
|
|
// 概览数字(range 控制累计/今天/7天)
|
|
// 概览数字(range 控制累计/今天/7天)
|