From 6eb2c4afc0a53e7b5372357dcf6eff80a60804b3 Mon Sep 17 00:00:00 2001 From: aaron <> Date: Tue, 25 Mar 2025 09:25:47 +0800 Subject: [PATCH] update --- app/api/endpoints/order.py | 124 ++++++++++++++++++++++++++++++++++++- jobs.sqlite | Bin 24576 -> 24576 bytes 2 files changed, 121 insertions(+), 3 deletions(-) diff --git a/app/api/endpoints/order.py b/app/api/endpoints/order.py index 3368825..65b03de 100644 --- a/app/api/endpoints/order.py +++ b/app/api/endpoints/order.py @@ -1446,6 +1446,109 @@ async def deliveryman_pickup_order( except Exception as e: db.rollback() return error_response(code=500, message=f"操作失败: {str(e)}") + +@router.get("/platform/list", response_model=ResponseModel) +async def get_orders( + db: Session = Depends(get_db), + status: Optional[OrderStatus] = None, + user_id: Optional[int] = None, + order_id: Optional[str] = None, + skip: int = 0, + limit: int = 10): + """获取订单列表""" + try: + # 构建基础查询 + query = db.query(ShippingOrderDB) + + # 添加用户ID过滤 + if user_id: + query = query.filter(ShippingOrderDB.userid == user_id) + + # 添加状态过滤 + if status: + query = query.filter(ShippingOrderDB.status == status) + + # 添加订单号过滤 + if order_id: + query = query.filter(ShippingOrderDB.orderid == order_id) + + # 获取总数 + total = query.count() + + # 分页查询 + results = query.order_by( + ShippingOrderDB.create_time.desc() + ).offset(skip).limit(limit).all() + + orders = [] + for order in results: + # 查询订单包裹信息 + packages = db.query( + ShippingOrderPackageDB + ).filter( + ShippingOrderPackageDB.orderid == order.orderid + ).all() + + # 格式化包裹信息 + package_list = [{ + "id": package.id, + "station_id": package.station_id, + "station_name": package.station_name, + "pickup_codes": package.pickup_codes + } for package in packages] + + + item = { + "orderid": order.orderid, + "userid": order.userid, + "status": order.status, + "pickup_images": order.optimized_pickup_images, + "package_count": order.package_count, + "pickup_code_count": order.pickup_code_count, + "pickup_images_count": order.pickup_images_count, + "create_time": order.create_time, + "delivery_method": order.delivery_method, + "original_amount": order.original_amount, + "coupon_discount_amount": order.coupon_discount_amount, + "point_discount_amount": order.point_discount_amount, + "complete_images": order.optimized_complete_images, + "completed_time": order.completed_time, + "final_amount": order.final_amount, + "packages": package_list, + "address": { + "name": order.address_customer_name, + "phone": order.address_customer_phone, + "gender": order.address_customer_gender, + "community_id": order.address_community_id, + "community_name": order.address_community_name, + "building_id": order.address_community_building_id, + "building_name": order.address_community_building_name, + "address_detail": order.address_detail + }, + } + + # 查询配送员 + deliveryman = db.query(UserDB).filter( + UserDB.userid == order.deliveryman_user_id + ).first() + + if deliveryman: + item["deliveryman"] = { + "name": deliveryman.nickname, + "phone": deliveryman.phone + } + + orders.append(item) + + return success_response(data={ + "total": total, + "items": orders + }) + + except Exception as e: + logging.exception(f"获取订单列表失败: {str(e)}") + return error_response(code=500, message=f"获取订单列表失败: {str(e)}") + @router.get("/admin/list", response_model=ResponseModel) async def get_admin_orders( @@ -1511,8 +1614,8 @@ async def get_admin_orders( sub_orders = db.query(PointProductOrderDB).filter( PointProductOrderDB.delivery_order_id == order.orderid ).all() - - orders.append({ + + item = { "orderid": order.orderid, "userid": order.userid, "status": order.status, @@ -1525,6 +1628,8 @@ async def get_admin_orders( "original_amount": order.original_amount, "coupon_discount_amount": order.coupon_discount_amount, "point_discount_amount": order.point_discount_amount, + "complete_images": order.optimized_complete_images, + "completed_time": order.completed_time, "final_amount": order.final_amount, "packages": package_list, "sub_orders": [PointProductOrderInfo.model_validate(sub_order) for sub_order in sub_orders], @@ -1538,7 +1643,20 @@ async def get_admin_orders( "building_name": order.address_community_building_name, "address_detail": order.address_detail }, - }) + } + + # 查询配送员 + deliveryman = db.query(UserDB).filter( + UserDB.userid == order.deliveryman_user_id + ).first() + + if deliveryman: + item["deliveryman"] = { + "name": deliveryman.nickname, + "phone": deliveryman.phone + } + + orders.append(item) return success_response(data={ "total": total, diff --git a/jobs.sqlite b/jobs.sqlite index 808b71e40228a2086e7bfe7133c06e6884c24ebd..a9dd1b1139ce3bbd1b61731929fb609f73691468 100644 GIT binary patch delta 82 zcmZoTz}Rqrae_3X<3t%}M#qf_`9jQ(u10LOb(dw{{9e?Ukx^>1vUo2G`=eVN4Xjh0 jCOf*zY`!cl%K{YtD9@z80~BZGU}j-V2kH86&!_+Zf=e5$ delta 82 zcmZoTz}Rqrae_3X=0q81M$L^0`9jPOn{RBkb(dw{{9e?Ukx_E9vUo2G`@@co2G*%g jlO5e