40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
from typing import Optional
|
|
|
|
from fastapi import APIRouter, Query
|
|
|
|
from apps.terminology.curd.terminology import page_terminology, create_terminology, update_terminology, \
|
|
delete_terminology
|
|
from apps.terminology.models.terminology_model import TerminologyInfo
|
|
from common.core.deps import SessionDep, CurrentUser, Trans
|
|
|
|
router = APIRouter(tags=["Terminology"], prefix="/system/terminology")
|
|
|
|
|
|
@router.get("/page/{current_page}/{page_size}")
|
|
async def pager(session: SessionDep, current_user: CurrentUser, current_page: int, page_size: int,
|
|
word: Optional[str] = Query(None, description="搜索术语(可选)")):
|
|
current_page, page_size, total_count, total_pages, _list = page_terminology(session, current_page, page_size, word,
|
|
current_user.oid)
|
|
|
|
return {
|
|
"current_page": current_page,
|
|
"page_size": page_size,
|
|
"total_count": total_count,
|
|
"total_pages": total_pages,
|
|
"data": _list
|
|
}
|
|
|
|
|
|
@router.put("")
|
|
async def create_or_update(session: SessionDep, current_user: CurrentUser, trans: Trans, info: TerminologyInfo):
|
|
oid = current_user.oid
|
|
if info.id:
|
|
return update_terminology(session, info, oid, trans)
|
|
else:
|
|
return create_terminology(session, info, oid, trans)
|
|
|
|
|
|
@router.delete("")
|
|
async def delete(session: SessionDep, id_list: list[int]):
|
|
delete_terminology(session, id_list)
|