From 1f95b83341f2daf297ed72601aa26934397259e2 Mon Sep 17 00:00:00 2001 From: aaron <> Date: Sun, 16 Mar 2025 11:58:39 +0800 Subject: [PATCH] update --- app/api/endpoints/order.py | 43 +++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/app/api/endpoints/order.py b/app/api/endpoints/order.py index 8d2c70c..841d5e4 100644 --- a/app/api/endpoints/order.py +++ b/app/api/endpoints/order.py @@ -185,30 +185,35 @@ async def pre_order( current_user: UserDB = Depends(get_current_user) ): - # # 检查是否有配送员在线 - # deliveryman_online = db.query(UserDB).filter( - # UserDB.community_id == request.community_id, - # UserDB.is_delivering == True - # ).first() + try: + # 检查是否有配送员在线 + deliveryman_online = db.query(UserDB).filter( + UserDB.roles.contains(UserRole.DELIVERYMAN), + UserDB.community_id == request.community_id, + UserDB.is_delivering == True + ).first() - # if not deliveryman_online: - # return error_response(code=400, message="没有配送员在线, 无法下单") + if not deliveryman_online: + return error_response(code=400, message="没有配送员在线, 无法下单") - # 检查是否有未支付的订单 - unpay_order = db.query(ShippingOrderDB).filter( - ShippingOrderDB.userid == current_user.userid, - ShippingOrderDB.status == OrderStatus.UNPAID - ).first() + # 检查是否有未支付的订单 + unpay_order = db.query(ShippingOrderDB).filter( + ShippingOrderDB.userid == current_user.userid, + ShippingOrderDB.status == OrderStatus.UNPAID + ).first() - if unpay_order: - return error_response(code=400, message="存在未完成的订单", data={ - "orderid": unpay_order.orderid - }) + if unpay_order: + return error_response(code=400, message="存在未完成的订单", data={ + "orderid": unpay_order.orderid + }) - """预下单 - 计算价格""" - price_info = calculate_price(request, current_user, db) - return success_response(data=price_info) + """预下单 - 计算价格""" + price_info = calculate_price(request, current_user, db) + return success_response(data=price_info) + except Exception as e: + logging.exception(f"预下单失败: {str(e)}") + return error_response(code=500, message=f"预下单失败: {str(e)}") @router.post("", response_model=ResponseModel) async def create_order(