|
|
@@ -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="查询额度详情成功")
|
|
|
+
|
|
|
+
|
|
|
# ========================
|
|
|
# 手工批量发放额度
|
|
|
# ========================
|