From cac8dc8e0b9f53ba4ad6a68bdec7d88d227e741a Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 16 Jul 2025 14:39:53 +0800 Subject: [PATCH] feat: Search user api --- backend/apps/system/api/workspace.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/backend/apps/system/api/workspace.py b/backend/apps/system/api/workspace.py index ee67bfd3..8ef6866b 100644 --- a/backend/apps/system/api/workspace.py +++ b/backend/apps/system/api/workspace.py @@ -42,6 +42,29 @@ async def option_pager( stmt=stmt, pagination=pagination, ) + +@router.get("/uws/option", response_model=UserWsOption) +async def option_user( + session: SessionDep, + current_user: CurrentUser, + keyword: str = Query(description="搜索关键字") + ): + if (not current_user.isAdmin) and current_user.weight == 0: + raise RuntimeError("no permission to execute this api") + oid = current_user.oid + + stmt = select(UserModel.id, UserModel.account, UserModel.name).where( + ~exists().where(UserWsModel.uid == UserModel.id, UserWsModel.oid == oid) + ) + + if keyword: + stmt = stmt.where( + or_( + UserModel.account == int(keyword), + UserModel.name == keyword, + ) + ) + return session.exec(stmt).first() @router.get("/uws/pager/{pageNum}/{pageSize}", response_model=PaginatedResponse[WorkspaceUser]) async def pager(