Browse Source

fix: 新增GET /quota/{quota_id}额度详情接口

alphah 2 weeks ago
parent
commit
2178597841
1 changed files with 36 additions and 0 deletions
  1. 36 0
      backend/app/plugin/module_payment/expense/quota/controller.py

+ 36 - 0
backend/app/plugin/module_payment/expense/quota/controller.py

@@ -141,6 +141,42 @@ async def list_quota_controller(
     return SuccessResponse(data=result, msg="查询额度列表成功")
 
 
+@QuotaRouter.get(
+    "/{quota_id}",
+    summary="查询额度详情",
+    description="根据额度ID查询额度详情",
+)
+async def detail_quota_controller(
+    quota_id: Annotated[str, Path(description="额度ID")],
+    auth: Annotated[AuthSchema, Depends(AuthPermission(["module_payment:expense:quota:detail"]))],
+) -> JSONResponse:
+    from .model import QuotaModel
+    from sqlalchemy import select
+    stmt = select(QuotaModel).where(QuotaModel.quota_id == quota_id)
+    result = await auth.db.execute(stmt)
+    quota = result.scalar_one_or_none()
+    if not quota:
+        return SuccessResponse(data=None, msg="额度不存在")
+    return SuccessResponse(data={
+        "id": quota.id,
+        "quota_id": quota.quota_id,
+        "employee_id": quota.employee_id,
+        "institution_id": quota.institution_id,
+        "out_biz_no": quota.out_biz_no,
+        "quota_type": quota.quota_type,
+        "target_type": quota.target_type,
+        "target_id": quota.target_id,
+        "total_amount": float(quota.total_amount) if quota.total_amount else 0,
+        "available_amount": float(quota.available_amount) if quota.available_amount else 0,
+        "status": quota.status,
+        "valid_from": str(quota.valid_from) if quota.valid_from else None,
+        "valid_to": str(quota.valid_to) if quota.valid_to else None,
+        "created_time": str(quota.created_time) if quota.created_time else None,
+        "updated_time": str(quota.updated_time) if quota.updated_time else None,
+        "enterprise_id": quota.enterprise_id,
+    }, msg="查询额度详情成功")
+
+
 # ========================
 # 手工批量发放额度
 # ========================