From 6f67bf703b1fdf4dad6701f2889506c5348603bb Mon Sep 17 00:00:00 2001 From: "fengchuanhn@gmail.com" Date: Fri, 22 May 2026 15:01:48 +0800 Subject: [PATCH] 1 --- app/api/v1/admin_users.py | 2 ++ app/services/admin_user.py | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/app/api/v1/admin_users.py b/app/api/v1/admin_users.py index 3ccae2f..07ac992 100644 --- a/app/api/v1/admin_users.py +++ b/app/api/v1/admin_users.py @@ -22,6 +22,7 @@ async def list_users( description="每页条数", ), username: str | None = Query(None, description="用户名模糊搜索"), + device_serial: str | None = Query(None, description="设备码模糊搜索"), oem_id: int | None = Query(None, description="按所属 OEM 用户 ID 筛选"), agent_id: int | None = Query(None, description="按所属代理用户 ID 筛选"), role_id: int | None = Query(None, ge=0, le=3, description="按角色筛选"), @@ -31,6 +32,7 @@ async def list_users( page=page, page_size=page_size, username=username, + device_serial=device_serial, oem_id=oem_id, agent_id=agent_id, role_id=role_id, diff --git a/app/services/admin_user.py b/app/services/admin_user.py index abe8d36..3cb7870 100644 --- a/app/services/admin_user.py +++ b/app/services/admin_user.py @@ -19,6 +19,7 @@ class AdminUserError(Exception): def _list_users_filters( *, username: str | None = None, + device_serial: str | None = None, oem_id: int | None = None, agent_id: int | None = None, role_id: int | None = None, @@ -26,6 +27,8 @@ def _list_users_filters( conditions = [] if username and username.strip(): conditions.append(User.username.ilike(f"%{username.strip()}%")) + if device_serial and device_serial.strip(): + conditions.append(User.device_serial.ilike(f"%{device_serial.strip()}%")) if oem_id is not None: conditions.append(User.oem_id == oem_id) if agent_id is not None: @@ -41,6 +44,7 @@ async def list_users( page: int = 1, page_size: int = DEFAULT_PAGE_SIZE, username: str | None = None, + device_serial: str | None = None, oem_id: int | None = None, agent_id: int | None = None, role_id: int | None = None, @@ -50,6 +54,7 @@ async def list_users( offset = (page - 1) * page_size conditions = _list_users_filters( username=username, + device_serial=device_serial, oem_id=oem_id, agent_id=agent_id, role_id=role_id,