feat:新增投顾工作台相关接口
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
"""审计台账路由(业务在 service/advisor/audit.py)。导出为 CSV 下载。"""
|
||||
from datetime import datetime
|
||||
|
||||
from fastapi import APIRouter, Depends, Query
|
||||
from fastapi.responses import Response
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from api.deps import require_advisor
|
||||
from config.deps import get_db
|
||||
from model.sys_user import SysUser
|
||||
from service.advisor import audit as audit_service
|
||||
from utils.response import success
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("/audit/ledger", summary="本人审计台账筛选")
|
||||
async def ledger(
|
||||
action: str | None = Query(None, max_length=64),
|
||||
keyword: str | None = Query(None, max_length=128),
|
||||
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),
|
||||
user: SysUser = Depends(require_advisor),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
return success(
|
||||
await audit_service.list_ledger(
|
||||
db, user, action=action, keyword=keyword, start=start, end=end,
|
||||
page=page, page_size=page_size,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@router.get("/audit/export", summary="导出本人审计台账(CSV)")
|
||||
async def export(
|
||||
action: str | None = Query(None, max_length=64),
|
||||
keyword: str | None = Query(None, max_length=128),
|
||||
start: datetime | None = Query(None),
|
||||
end: datetime | None = Query(None),
|
||||
user: SysUser = Depends(require_advisor),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
csv_text = await audit_service.export_ledger(
|
||||
db, user, action=action, keyword=keyword, start=start, end=end
|
||||
)
|
||||
return Response(
|
||||
content=csv_text,
|
||||
media_type="text/csv; charset=utf-8",
|
||||
headers={"Content-Disposition": 'attachment; filename="advisor_audit.csv"'},
|
||||
)
|
||||
Reference in New Issue
Block a user