feat:增加分页功能

This commit is contained in:
2026-09-13 22:21:49 +08:00
parent d1fdf04749
commit 31b3acb226
23 changed files with 179 additions and 71 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ async def ledger(
start: datetime | None = Query(None),
end: datetime | None = Query(None),
page: int = Query(1, ge=1),
page_size: int = Query(20, ge=1, le=100),
page_size: int = Query(10, ge=1, le=100),
user: SysUser = Depends(require_advisor),
db: AsyncSession = Depends(get_db),
):
+2 -2
View File
@@ -17,7 +17,7 @@ async def list_customers(
status: str | None = Query(None, max_length=16),
keyword: str | None = Query(None, max_length=64),
page: int = Query(1, ge=1),
page_size: int = Query(20, ge=1, le=100),
page_size: int = Query(10, ge=1, le=100),
user: SysUser = Depends(require_advisor),
db: AsyncSession = Depends(get_db),
):
@@ -51,7 +51,7 @@ async def get_holdings(
async def get_reports(
customer_id: int,
page: int = Query(1, ge=1),
page_size: int = Query(20, ge=1, le=100),
page_size: int = Query(10, ge=1, le=100),
user: SysUser = Depends(require_advisor),
db: AsyncSession = Depends(get_db),
):
+1 -1
View File
@@ -19,7 +19,7 @@ async def list_drafts(
customer_id: int | None = Query(None),
status: str | None = Query(None, max_length=16),
page: int = Query(1, ge=1),
page_size: int = Query(20, ge=1, le=100),
page_size: int = Query(10, ge=1, le=100),
user: SysUser = Depends(require_advisor),
db: AsyncSession = Depends(get_db),
):
+1 -1
View File
@@ -17,7 +17,7 @@ async def list_todos(
status: str | None = Query(None, max_length=16),
todo_type: str | None = Query(None, max_length=32),
page: int = Query(1, ge=1),
page_size: int = Query(20, ge=1, le=100),
page_size: int = Query(10, ge=1, le=100),
user: SysUser = Depends(require_advisor),
db: AsyncSession = Depends(get_db),
):
+2 -2
View File
@@ -16,7 +16,7 @@ router = APIRouter()
async def list_visits(
customer_id: int | None = Query(None),
page: int = Query(1, ge=1),
page_size: int = Query(20, ge=1, le=100),
page_size: int = Query(10, ge=1, le=100),
user: SysUser = Depends(require_advisor),
db: AsyncSession = Depends(get_db),
):
@@ -64,7 +64,7 @@ async def talk_templates(user: SysUser = Depends(require_advisor)):
async def touch_logs(
customer_id: int = Query(...),
page: int = Query(1, ge=1),
page_size: int = Query(20, ge=1, le=100),
page_size: int = Query(10, ge=1, le=100),
user: SysUser = Depends(require_advisor),
db: AsyncSession = Depends(get_db),
):
+1 -1
View File
@@ -322,7 +322,7 @@ async def list_drafts(
customer_id: int | None = Query(default=None),
status: Literal[DRAFT_STATUS_DRAFT, DRAFT_STATUS_DISCARDED] | None = Query(default=None),
page: int = Query(default=1, ge=1),
page_size: int = Query(default=20, ge=1, le=100),
page_size: int = Query(default=10, ge=1, le=100),
user: SysUser = Depends(audited_advisor),
db: AsyncSession = Depends(get_db),
):
+3 -1
View File
@@ -57,6 +57,7 @@ from tool.llm import llm
from utils.exceptions import ForbiddenError, NotFoundError, ParamError
from utils.request_id import get_request_id, new_request_id
from utils.response import success
from utils.pagination import normalize_pagination
router = APIRouter()
@@ -474,10 +475,11 @@ async def list_query_history(
):
"""分页读取当前员工自己的查询历史。"""
ensure_query_employee(user)
page, page_size, offset = normalize_pagination(page, page_size)
rows = await Nl2SqlPermissionRepo(db).list_query_history(
user.id,
limit=page_size,
offset=(page - 1) * page_size,
offset=offset,
status=status,
start_time=start_time,
end_time=end_time,
+2 -2
View File
@@ -5,7 +5,7 @@ import json
import time
from datetime import datetime, timedelta, timezone
from fastapi import APIRouter, Depends
from fastapi import APIRouter, Depends, Query
from fastapi.responses import PlainTextResponse
from sqlalchemy.ext.asyncio import AsyncSession
@@ -275,7 +275,7 @@ async def run_admin_job(
@router.get("/nl2sql/admin/jobs/history")
async def admin_job_history(
page: int = 1,
page_size: int = 20,
page_size: int = Query(10, ge=1, le=10),
status: str | None = None,
user: SysUser = Depends(get_current_user),
db: AsyncSession = Depends(get_db),
+4 -3
View File
@@ -1,5 +1,5 @@
"""风控处置路由:预警列表 + 放行/拦截/冻结(仅风控专员)。"""
from fastapi import APIRouter, Depends
from fastapi import APIRouter, Depends, Query
from sqlalchemy.ext.asyncio import AsyncSession
from api.deps import require_risk_officer
@@ -14,11 +14,12 @@ router = APIRouter(prefix="/risk", tags=["风控"])
@router.get("/alert/list", summary="预警列表")
async def list_alerts(
status: str | None = None,
page: int = Query(1, ge=1),
page_size: int = Query(10, ge=1, le=10),
user: SysUser = Depends(require_risk_officer),
db: AsyncSession = Depends(get_db),
):
alerts = await risk_handle.list_alerts(db, status)
return success([a.model_dump(mode="json") for a in alerts])
return success(await risk_handle.list_alerts(db, status, page=page, page_size=page_size))
@router.post("/alert/{alert_id}/release", summary="放行")
+8 -3
View File
@@ -1,5 +1,5 @@
"""业务工单路由:列表 / 详情 / 认领 / 提交审核 / 复核(仅风控专员)。"""
from fastapi import APIRouter, Depends
from fastapi import APIRouter, Depends, Query
from sqlalchemy.ext.asyncio import AsyncSession
from api.deps import require_risk_officer
@@ -15,11 +15,16 @@ router = APIRouter(prefix="/work-order", tags=["工单"])
@router.get("/list", summary="工单列表")
async def list_work_orders(
status: str | None = None,
page: int = Query(1, ge=1),
page_size: int = Query(10, ge=1, le=10),
user: SysUser = Depends(require_risk_officer),
db: AsyncSession = Depends(get_db),
):
orders = await work_order_service.list_work_orders(db, status)
return success([o.model_dump(mode="json") for o in orders])
return success(
await work_order_service.list_work_orders(
db, status, page=page, page_size=page_size
)
)
@router.get("/{work_order_id}", summary="工单详情")