diff --git a/app/api/endpoints/merchant_order.py b/app/api/endpoints/merchant_order.py index c7e8176..7bec9d9 100644 --- a/app/api/endpoints/merchant_order.py +++ b/app/api/endpoints/merchant_order.py @@ -386,32 +386,39 @@ async def accept_order( return error_response(code=500, message=f"确认订单失败: {str(e)}") -@router.get("/merchant/verify/{verify_code}", response_model=ResponseModel) -async def query_verify( +@router.get("/merchant/scan_query_order/{verify_code}", response_model=ResponseModel) +async def scan_query_order( verify_code: str, db: Session = Depends(get_db), merchant_user: UserDB = Depends(get_merchant_user) ): """查询待核销订单""" + merchant = db.query(MerchantDB).filter( + MerchantDB.user_id == merchant_user.userid + ).first() + if not merchant: + return error_response(code=404, message="商家不存在") + order = db.query( - MerchantOrderDB, - MerchantProductDB, - MerchantDB - ).join( - MerchantProductDB, - MerchantOrderDB.merchant_product_id == MerchantProductDB.id - ).join( - MerchantDB, - MerchantProductDB.merchant_id == MerchantDB.id + MerchantOrderDB ).filter( MerchantOrderDB.order_verify_code == verify_code, MerchantOrderDB.status == MerchantOrderStatus.PICKUP_READY, - MerchantDB.user_id == merchant_user.userid + MerchantOrderDB.merchant_id == merchant.id ).first() - return success_response(data=MerchantOrderInfo.model_validate(order)) + if not order: + return error_response(code=404, message="订单不存在或已核销") + + result = { + "order" : MerchantOrderInfo.model_validate(order), + "product" : MerchantProductInfo.model_validate(order.merchant_product), + "merchant" : MerchantInfo.model_validate(merchant) + } -@router.post("/merchant/verify", response_model=ResponseModel) + return success_response(data=result) + +@router.post("/merchant/verify_order", response_model=ResponseModel) async def verify_order( request: MerchantOrderVerify, db: Session = Depends(get_db), diff --git a/jobs.sqlite b/jobs.sqlite index 19bc42f..ab1cad5 100644 Binary files a/jobs.sqlite and b/jobs.sqlite differ