This commit is contained in:
fengchuanhn@gmail.com
2026-05-22 15:01:48 +08:00
parent 5aafba8eb9
commit 6f67bf703b
2 changed files with 7 additions and 0 deletions

View File

@@ -22,6 +22,7 @@ async def list_users(
description="每页条数", description="每页条数",
), ),
username: str | None = Query(None, description="用户名模糊搜索"), username: str | None = Query(None, description="用户名模糊搜索"),
device_serial: str | None = Query(None, description="设备码模糊搜索"),
oem_id: int | None = Query(None, description="按所属 OEM 用户 ID 筛选"), oem_id: int | None = Query(None, description="按所属 OEM 用户 ID 筛选"),
agent_id: int | None = Query(None, description="按所属代理用户 ID 筛选"), agent_id: int | None = Query(None, description="按所属代理用户 ID 筛选"),
role_id: int | None = Query(None, ge=0, le=3, description="按角色筛选"), role_id: int | None = Query(None, ge=0, le=3, description="按角色筛选"),
@@ -31,6 +32,7 @@ async def list_users(
page=page, page=page,
page_size=page_size, page_size=page_size,
username=username, username=username,
device_serial=device_serial,
oem_id=oem_id, oem_id=oem_id,
agent_id=agent_id, agent_id=agent_id,
role_id=role_id, role_id=role_id,

View File

@@ -19,6 +19,7 @@ class AdminUserError(Exception):
def _list_users_filters( def _list_users_filters(
*, *,
username: str | None = None, username: str | None = None,
device_serial: str | None = None,
oem_id: int | None = None, oem_id: int | None = None,
agent_id: int | None = None, agent_id: int | None = None,
role_id: int | None = None, role_id: int | None = None,
@@ -26,6 +27,8 @@ def _list_users_filters(
conditions = [] conditions = []
if username and username.strip(): if username and username.strip():
conditions.append(User.username.ilike(f"%{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: if oem_id is not None:
conditions.append(User.oem_id == oem_id) conditions.append(User.oem_id == oem_id)
if agent_id is not None: if agent_id is not None:
@@ -41,6 +44,7 @@ async def list_users(
page: int = 1, page: int = 1,
page_size: int = DEFAULT_PAGE_SIZE, page_size: int = DEFAULT_PAGE_SIZE,
username: str | None = None, username: str | None = None,
device_serial: str | None = None,
oem_id: int | None = None, oem_id: int | None = None,
agent_id: int | None = None, agent_id: int | None = None,
role_id: int | None = None, role_id: int | None = None,
@@ -50,6 +54,7 @@ async def list_users(
offset = (page - 1) * page_size offset = (page - 1) * page_size
conditions = _list_users_filters( conditions = _list_users_filters(
username=username, username=username,
device_serial=device_serial,
oem_id=oem_id, oem_id=oem_id,
agent_id=agent_id, agent_id=agent_id,
role_id=role_id, role_id=role_id,