This commit is contained in:
aaron 2025-02-20 17:22:47 +08:00
parent ecdc84822f
commit eeca3fd8ad

View File

@ -120,7 +120,7 @@ async def pre_order(
# 检查是否有未支付的订单 # 检查是否有未支付的订单
unpay_order = db.query(ShippingOrderDB).filter( unpay_order = db.query(ShippingOrderDB).filter(
ShippingOrderDB.userid == current_user.userid, ShippingOrderDB.userid == current_user.userid,
ShippingOrderDB.status.not_in([OrderStatus.CANCELLED, OrderStatus.COMPLETED]) ShippingOrderDB.status == OrderStatus.UNPAID
).first() ).first()
if unpay_order: if unpay_order:
@ -382,21 +382,36 @@ async def get_order_status_count(
current_user: UserDB = Depends(get_current_user) current_user: UserDB = Depends(get_current_user)
): ):
"""获取社区订单状态数量""" """获取社区订单状态数量"""
status_order_count = db.query(
created_count = db.query(
ShippingOrderDB.status
).filter(
ShippingOrderDB.address_community_id == community_id,
ShippingOrderDB.status == OrderStatus.CREATED
).count()
others_status_count = db.query(
ShippingOrderDB.status, ShippingOrderDB.status,
func.count(ShippingOrderDB.orderid) func.count(ShippingOrderDB.orderid)
).filter( ).filter(
ShippingOrderDB.address_community_id == community_id ShippingOrderDB.address_community_id == community_id,
ShippingOrderDB.status != OrderStatus.CREATED,
ShippingOrderDB.deliveryman_user_id == current_user.userid
).group_by( ).group_by(
ShippingOrderDB.status ShippingOrderDB.status
).all() ).all()
result = [] result = [{
for status, count in status_order_count: "status": OrderStatus.CREATED,
"count": created_count
}]
for status, count in others_status_count:
result.append({ result.append({
"status": status, "status": status,
"count": count "count": count
}) })
return success_response(data=result) return success_response(data=result)
@ -421,7 +436,7 @@ async def get_community_building_order_count(
# 查询每个楼栋的订单数量 # 查询每个楼栋的订单数量
building_order_count = db.query( query = db.query(
ShippingOrderDB.address_community_building_id, ShippingOrderDB.address_community_building_id,
func.count(ShippingOrderDB.orderid) func.count(ShippingOrderDB.orderid)
).filter( ).filter(
@ -430,11 +445,18 @@ async def get_community_building_order_count(
) )
).filter( ).filter(
ShippingOrderDB.status.in_(status.split(",")) ShippingOrderDB.status.in_(status.split(","))
).group_by( )
# 如果订单状态不是待接单,则需要过滤快递员
if OrderStatus.CREATED not in status:
query = query.filter(
ShippingOrderDB.deliveryman_user_id == current_user.userid
)
building_order_count = query.group_by(
ShippingOrderDB.address_community_building_id ShippingOrderDB.address_community_building_id
).all() ).all()
# 没有订单的楼栋订单数量为0 # 没有订单的楼栋订单数量为0
result = [] result = []
building_order_count_dict = dict(building_order_count) building_order_count_dict = dict(building_order_count)