提交
This commit is contained in:
1 parent
27ac28b8f5
commit
276299ff27
16 files changed
+3999
-3707
No files matched your search
@@ -5,6 +5,7 @@ from typing import Any, List, Optional
|
||||
|
||||
from fastapi import APIRouter, Depends, Query, UploadFile, File, Form
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
from sqlalchemy import or_
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.core.config import settings
|
||||
@@ -25,7 +26,7 @@ from app.crud import menu as menu_svc
|
||||
from app.crud import role as role_svc
|
||||
from app.crud import user as user_svc
|
||||
from app.crud.collection_protocol import _lookup_attachment_by_url
|
||||
from app.models.models import BizAttachment, SysRole, SysUser
|
||||
from app.models.models import BizAttachment, SysDept, SysRole, SysUser
|
||||
from app.services.web_auth_roles import _map_role_name_to_web
|
||||
|
||||
router = APIRouter(prefix="/web/admin", tags=["运营端管理"])
|
||||
@@ -272,8 +273,16 @@ async def list_users(
|
||||
SysUser.del_flag == 0,
|
||||
SysUser.tenant_no == tenant_no,
|
||||
)
|
||||
if keyword:
|
||||
query = query.filter(SysUser.nick_name.like(f"%{keyword}%"))
|
||||
kw = (keyword or "").strip()
|
||||
if kw:
|
||||
like = f"%{kw}%"
|
||||
query = query.filter(
|
||||
or_(
|
||||
SysUser.user_no.like(like),
|
||||
SysUser.nick_name.like(like),
|
||||
SysUser.phone_no.like(like),
|
||||
)
|
||||
)
|
||||
if deptId:
|
||||
query = query.filter(SysUser.dept_id == deptId)
|
||||
if status:
|
||||
@@ -281,7 +290,14 @@ async def list_users(
|
||||
query = apply_data_scope(query, SysUser, user, db, tenant_no)
|
||||
total = query.count()
|
||||
items = query.order_by(SysUser.create_time.desc()).offset((page - 1) * pageSize).limit(pageSize).all()
|
||||
result_list = [user_svc._row_to_dict(r) for r in items]
|
||||
dept_ids = list({r.dept_id for r in items if r.dept_id})
|
||||
dept_map: dict[str, str] = {}
|
||||
if dept_ids:
|
||||
for d in db.query(SysDept).filter(SysDept.id.in_(dept_ids), SysDept.del_flag == 0).all():
|
||||
dept_map[d.id] = d.dept_name or ""
|
||||
result_list = [
|
||||
user_svc._row_to_dict(r, dept_name=dept_map.get(r.dept_id or "", "")) for r in items
|
||||
]
|
||||
tp = user_svc.total_pages(total, pageSize)
|
||||
return success_response({"list": result_list, "total": total, "page": page, "pageSize": pageSize, "totalPages": tp})
|
||||
|
||||
|
||||
Reference in new issue
Block a user