33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
"""客户服务字典 API"""
|
|
from fastapi import APIRouter, Depends, Query
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.core.database import get_db
|
|
from app.core.menu_guard import require_any_menu_code
|
|
from app.core.response import success_response
|
|
from app.crud import customer_service_dict as svc
|
|
from app.models.models import SysUser
|
|
|
|
router = APIRouter(prefix="/web/admin", tags=["客户服务字典"])
|
|
|
|
|
|
def _get_tenant_no(db: Session, user: dict) -> str:
|
|
user_id = user.get("user_id")
|
|
if not user_id:
|
|
raise PermissionError("用户身份信息缺失,无法确定租户")
|
|
sys_user = db.query(SysUser).filter(SysUser.id == user_id).first()
|
|
if not sys_user or not sys_user.tenant_no:
|
|
raise PermissionError("用户租户信息缺失")
|
|
return sys_user.tenant_no
|
|
|
|
|
|
@router.get("/customer-service-dict")
|
|
async def get_customer_service_dict(
|
|
dictType: str = Query(...),
|
|
user: dict = Depends(require_any_menu_code("cell-storage:sample-info:list")),
|
|
db: Session = Depends(get_db),
|
|
):
|
|
tenant_no = _get_tenant_no(db, user)
|
|
values = svc.list_dict_values(db, tenant_no, dictType)
|
|
return success_response({"list": values})
|