39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
"""投顾待办路由(业务在 service/advisor/todos.py,路由只做编排)。"""
|
||||
|
|
from fastapi import APIRouter, Depends, Query
|
|||
|
|
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 schemas.advisor import TodoHandleReq
|
|||
|
|
from service.advisor import todos as todos_service
|
|||
|
|
from utils.response import success
|
|||
|
|
|
|||
|
|
router = APIRouter()
|
|||
|
|
|
|||
|
|
|
|||
|
|
@router.get("/todos", summary="本人待办列表")
|
|||
|
|
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),
|
|||
|
|
user: SysUser = Depends(require_advisor),
|
|||
|
|
db: AsyncSession = Depends(get_db),
|
|||
|
|
):
|
|||
|
|
return success(
|
|||
|
|
await todos_service.list_todos(
|
|||
|
|
db, user, status=status, todo_type=todo_type, page=page, page_size=page_size
|
|||
|
|
)
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
|
|||
|
|
@router.post("/todos/{todo_id}/handle", summary="处理待办(process/done)")
|
|||
|
|
async def handle_todo(
|
|||
|
|
todo_id: int,
|
|||
|
|
req: TodoHandleReq,
|
|||
|
|
user: SysUser = Depends(require_advisor),
|
|||
|
|
db: AsyncSession = Depends(get_db),
|
|||
|
|
):
|
|||
|
|
return success(await todos_service.handle_todo(db, user, todo_id, req))
|