feat(mobile): UI-01 upload center, capture and auxiliary pages
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -407,12 +407,27 @@ class TaskStore {
|
||||
return query.get();
|
||||
}
|
||||
|
||||
/// 账号内各状态任务数(队列 UI 徽章;全部状态都会出现,无任务计 0)。
|
||||
Future<Map<UploadTaskState, int>> countsByState(String accountId) async {
|
||||
final rows = await (_db.selectOnly(_db.uploadTasks)
|
||||
..addColumns([_db.uploadTasks.state, _db.uploadTasks.id.count()])
|
||||
..where(_db.uploadTasks.accountId.equals(accountId))
|
||||
..groupBy([_db.uploadTasks.state]))
|
||||
/// 账号内各状态任务数(队列 UI 徽章/摘要;全部状态都会出现,无任务计
|
||||
/// 0)。可选 albumId/since 与 [listByAccount] 同语义(UI-01 §4.4 摘要按
|
||||
/// 当前筛选范围聚合,仍走 SQL COUNT,不整表载入内存)。
|
||||
Future<Map<UploadTaskState, int>> countsByState(
|
||||
String accountId, {
|
||||
String? albumId,
|
||||
DateTime? since,
|
||||
}) async {
|
||||
final query = _db.selectOnly(_db.uploadTasks)
|
||||
..addColumns([_db.uploadTasks.state, _db.uploadTasks.id.count()])
|
||||
..where(_db.uploadTasks.accountId.equals(accountId));
|
||||
if (albumId != null) {
|
||||
query.where(_db.uploadTasks.albumId.equals(albumId));
|
||||
}
|
||||
if (since != null) {
|
||||
query.where(
|
||||
_db.uploadTasks.createdAt.isBiggerOrEqualValue(since.toUtc()),
|
||||
);
|
||||
}
|
||||
query.groupBy([_db.uploadTasks.state]);
|
||||
final rows = await query
|
||||
.map((row) => MapEntry(
|
||||
row.readWithConverter(_db.uploadTasks.state)!,
|
||||
row.read(_db.uploadTasks.id.count())!,
|
||||
|
||||
Reference in New Issue
Block a user