diff --git a/app/api/endpoints/order.py b/app/api/endpoints/order.py index e6bb7fd..cd8fa4a 100644 --- a/app/api/endpoints/order.py +++ b/app/api/endpoints/order.py @@ -46,9 +46,10 @@ def calculate_price(price_request: OrderPriceCalculateRequest,user: UserDB,db: S """ # 计算所有包裹中的取件码总数 package_count = sum( - len(package.pickup_codes.split(',')) + # 如果package.pickup_codes是空字符串,则取0 + 0 if len(package.pickup_codes.split(',')) == 0 else len(package.pickup_codes.split(',')) for package in price_request.packages - if package.pickup_codes + if package.pickup_codes ) result = OrderPriceResult( @@ -188,18 +189,19 @@ async def create_order( # 创建订单包裹 for package in order.price_request.packages: - - station = db.query(StationDB).filter( - StationDB.id == package.station_id - ).first() + # 如果包裹有取件码,则创建包裹 + if len(package.pickup_codes) > 0: + station = db.query(StationDB).filter( + StationDB.id == package.station_id + ).first() - db_package = ShippingOrderPackageDB( - orderid=orderid, - station_id=package.station_id, - station_name=station.name, - pickup_codes=package.pickup_codes - ) - db.add(db_package) + db_package = ShippingOrderPackageDB( + orderid=orderid, + station_id=package.station_id, + station_name=station.name, + pickup_codes=package.pickup_codes + ) + db.add(db_package) try: # 如果使用了优惠券,更新优惠券状态