From 0a9d5ba2ed7c09aa48ad41b9945dec96b596bf84 Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Sun, 27 Sep 2026 18:35:59 +0800 Subject: [PATCH] feat(api): accept mineVehicles on vehicle-recharge-apply endpoints Wire query param through list/get/create/update/submit/cancel for mini-program scope. Co-authored-by: Cursor --- backend/app/api/pl/vehicle_recharge.py | 30 +++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/backend/app/api/pl/vehicle_recharge.py b/backend/app/api/pl/vehicle_recharge.py index 6ac7fd84e..224ddf4b5 100644 --- a/backend/app/api/pl/vehicle_recharge.py +++ b/backend/app/api/pl/vehicle_recharge.py @@ -51,6 +51,14 @@ def _param_get(params: dict, *keys: str) -> Any: return None +def _as_bool(value: Any) -> bool: + if isinstance(value, bool): + return value + if value is None: + return False + return str(value).strip().lower() in {"1", "true", "yes", "y"} + + def _body_to_params(body: BaseModel) -> dict: data = body.model_dump(by_alias=True, exclude_none=True) for key in ("ids", "columns"): @@ -76,6 +84,7 @@ def _apply_list_kwargs(params: dict) -> dict: applicant_id=_param_get(params, "applicantId", "applicant_id"), sort_field=_param_get(params, "sortField", "sort_field"), sort_order=_param_get(params, "sortOrder", "sort_order"), + mine_vehicles=_as_bool(_param_get(params, "mineVehicles", "mine_vehicles")), ) @@ -106,6 +115,7 @@ def list_applies( apply_date_from: Optional[date] = Query(default=None, alias="applyDateFrom"), apply_date_to: Optional[date] = Query(default=None, alias="applyDateTo"), applicant_id: Optional[str] = Query(default=None, alias="applicantId"), + mine_vehicles: Optional[bool] = Query(default=None, alias="mineVehicles"), page: int = Query(default=1, ge=1), page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), @@ -120,6 +130,7 @@ def list_applies( applyDateFrom=apply_date_from, applyDateTo=apply_date_to, applicantId=applicant_id, + mineVehicles=mine_vehicles, ) items, total = svc.list_applies( db, @@ -209,52 +220,61 @@ def export_recharge_applies( @apply_router.get("/{id}", response_model=VehicleRechargeApplyRead) def get_apply( id: str, + mine_vehicles: bool = Query(default=False, alias="mineVehicles"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> VehicleRechargeApplyRead: tenant_no = get_tenant_no(db, user.to_tenant_user_dict()) - return svc.get_apply(db, tenant_no, user, id) + return svc.get_apply(db, tenant_no, user, id, mine_vehicles=mine_vehicles) @apply_router.post("/{id}/submit", response_model=VehicleRechargeApplyRead) def submit_apply( id: str, + mine_vehicles: bool = Query(default=False, alias="mineVehicles"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> VehicleRechargeApplyRead: tenant_no = get_tenant_no(db, user.to_tenant_user_dict()) - return svc.submit_apply(db, tenant_no, user, id) + return svc.submit_apply(db, tenant_no, user, id, mine_vehicles=mine_vehicles) @apply_router.post("/", response_model=VehicleRechargeApplyRead, status_code=status.HTTP_201_CREATED) def create_apply( payload: VehicleRechargeApplyCreate, + mine_vehicles: bool = Query(default=False, alias="mineVehicles"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> VehicleRechargeApplyRead: tenant_no = get_tenant_no(db, user.to_tenant_user_dict()) - return svc.create_apply(db, tenant_no, user, payload) + return svc.create_apply( + db, tenant_no, user, payload, mine_vehicles=mine_vehicles + ) @apply_router.put("/{id}", response_model=VehicleRechargeApplyRead) def update_apply( id: str, payload: VehicleRechargeApplyUpdate, + mine_vehicles: bool = Query(default=False, alias="mineVehicles"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> VehicleRechargeApplyRead: tenant_no = get_tenant_no(db, user.to_tenant_user_dict()) - return svc.update_apply(db, tenant_no, user, id, payload) + return svc.update_apply( + db, tenant_no, user, id, payload, mine_vehicles=mine_vehicles + ) @apply_router.post("/{id}/cancel", response_model=VehicleRechargeApplyRead) def cancel_apply( id: str, + mine_vehicles: bool = Query(default=False, alias="mineVehicles"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> VehicleRechargeApplyRead: tenant_no = get_tenant_no(db, user.to_tenant_user_dict()) - return svc.cancel_apply(db, tenant_no, user, id) + return svc.cancel_apply(db, tenant_no, user, id, mine_vehicles=mine_vehicles) @apply_router.delete("/{ids}", status_code=status.HTTP_204_NO_CONTENT)