mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-06 09:27:46 +08:00
refactor(runtime): 优化管理端摘要查询与维护聚合链路
- 为 provider catalog key 和 video task 列表增加 summary/page 查询与排序能力,减少列表场景读取重字段 - 将多处 SQL 结果读取改为流式收集,降低 `fetch_all` 的内存占用 - 把日/小时统计、钱包日用量等维护任务改为数据库侧 `CTE + upsert` 聚合 - 修复视频任务轮询更新时从本地 snapshot 回填稀疏字段,避免 `prompt` 和请求体信息丢失
This commit is contained in:
@@ -67,6 +67,34 @@ pub(crate) async fn read_video_task_page(
|
||||
})
|
||||
}
|
||||
|
||||
pub(crate) async fn read_video_task_page_summary(
|
||||
state: &AppState,
|
||||
filter: &VideoTaskQueryFilter,
|
||||
page: usize,
|
||||
page_size: usize,
|
||||
) -> Result<VideoTaskPageResponse, GatewayError> {
|
||||
let page = page.max(1);
|
||||
let page_size = page_size.clamp(1, 100);
|
||||
let total = state.count_video_tasks(filter).await?;
|
||||
let offset = page_size.saturating_mul(page.saturating_sub(1));
|
||||
let items = state
|
||||
.list_video_task_page_summary(filter, offset, page_size)
|
||||
.await?;
|
||||
let pages = if total == 0 {
|
||||
0
|
||||
} else {
|
||||
((total as usize) + page_size - 1) / page_size
|
||||
};
|
||||
|
||||
Ok(VideoTaskPageResponse {
|
||||
items,
|
||||
total,
|
||||
page,
|
||||
page_size,
|
||||
pages,
|
||||
})
|
||||
}
|
||||
|
||||
pub(crate) async fn read_video_task_detail(
|
||||
state: &AppState,
|
||||
task_id: &str,
|
||||
|
||||
Reference in New Issue
Block a user