A bit of notification turn on reminder

This commit is contained in:
2026-03-01 05:45:23 +08:00
parent ec46c33c35
commit e91e7b43d2
9 changed files with 190 additions and 14 deletions
+7 -6
View File
@@ -198,8 +198,9 @@ List<Map<String, dynamic>> _processTasksInIsolate(
<String>{};
if (!isGlobal) {
if (allowedTicketIds.isEmpty && allowedOfficeIds.isEmpty)
if (allowedTicketIds.isEmpty && allowedOfficeIds.isEmpty) {
return <Map<String, dynamic>>[];
}
list = list.where((t) {
final tid = t['ticket_id'] as String?;
final oid = t['office_id'] as String?;
@@ -262,7 +263,7 @@ List<Map<String, dynamic>> _processTasksInIsolate(
return int.tryParse(m.group(0)!);
}
int _parseCreatedAt(Map<String, dynamic> m) {
int parseCreatedAt(Map<String, dynamic> m) {
final v = m['created_at'];
if (v == null) return 0;
if (v is int) return v;
@@ -293,11 +294,11 @@ List<Map<String, dynamic>> _processTasksInIsolate(
final bOrder = (b['queue_order'] as int?) ?? 0x7fffffff;
final qcmp = aOrder.compareTo(bOrder);
if (qcmp != 0) return qcmp;
return _parseCreatedAt(a).compareTo(_parseCreatedAt(b));
return parseCreatedAt(a).compareTo(parseCreatedAt(b));
}
if (ra == 1) {
return _parseCreatedAt(a).compareTo(_parseCreatedAt(b));
return parseCreatedAt(a).compareTo(parseCreatedAt(b));
}
if (ra == 2) {
@@ -306,14 +307,14 @@ List<Map<String, dynamic>> _processTasksInIsolate(
if (an != null && bn != null) return bn.compareTo(an);
if (an != null) return -1;
if (bn != null) return 1;
return _parseCreatedAt(b).compareTo(_parseCreatedAt(a));
return parseCreatedAt(b).compareTo(parseCreatedAt(a));
}
final aOrder = (a['queue_order'] as int?) ?? 0x7fffffff;
final bOrder = (b['queue_order'] as int?) ?? 0x7fffffff;
final cmp = aOrder.compareTo(bOrder);
if (cmp != 0) return cmp;
return _parseCreatedAt(a).compareTo(_parseCreatedAt(b));
return parseCreatedAt(a).compareTo(parseCreatedAt(b));
});
return list;
+5 -3
View File
@@ -185,7 +185,9 @@ List<Map<String, dynamic>> _processTicketsInIsolate(
<String>{};
if (!isGlobal) {
if (allowedOfficeIds.isEmpty) return <Map<String, dynamic>>[];
if (allowedOfficeIds.isEmpty) {
return <Map<String, dynamic>>[];
}
list = list
.where((t) => allowedOfficeIds.contains(t['office_id']))
.toList();
@@ -212,7 +214,7 @@ List<Map<String, dynamic>> _processTicketsInIsolate(
// Sort newest first. `created_at` may be ISO strings or timestamps;
// handle strings and numeric values.
int _parseCreatedAt(Map<String, dynamic> m) {
int parseCreatedAt(Map<String, dynamic> m) {
final v = m['created_at'];
if (v == null) return 0;
if (v is int) return v;
@@ -227,7 +229,7 @@ List<Map<String, dynamic>> _processTicketsInIsolate(
return 0;
}
list.sort((a, b) => _parseCreatedAt(b).compareTo(_parseCreatedAt(a)));
list.sort((a, b) => parseCreatedAt(b).compareTo(parseCreatedAt(a)));
final start = (payload['offset'] as int?) ?? 0;
final limit = (payload['limit'] as int?) ?? 50;