customer_service_dict.py 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. """客户服务字典 API"""
  2. from fastapi import APIRouter, Depends, Query
  3. from sqlalchemy.orm import Session
  4. from app.core.database import get_db
  5. from app.core.menu_guard import require_any_menu_code
  6. from app.core.response import success_response
  7. from app.crud import customer_service_dict as svc
  8. from app.models.models import SysUser
  9. router = APIRouter(prefix="/web/admin", tags=["客户服务字典"])
  10. def _get_tenant_no(db: Session, user: dict) -> str:
  11. user_id = user.get("user_id")
  12. if not user_id:
  13. raise PermissionError("用户身份信息缺失,无法确定租户")
  14. sys_user = db.query(SysUser).filter(SysUser.id == user_id).first()
  15. if not sys_user or not sys_user.tenant_no:
  16. raise PermissionError("用户租户信息缺失")
  17. return sys_user.tenant_no
  18. @router.get("/customer-service-dict")
  19. async def get_customer_service_dict(
  20. dictType: str = Query(...),
  21. user: dict = Depends(require_any_menu_code("cell-storage:sample-info:list")),
  22. db: Session = Depends(get_db),
  23. ):
  24. tenant_no = _get_tenant_no(db, user)
  25. values = svc.list_dict_values(db, tenant_no, dictType)
  26. return success_response({"list": values})