update
This commit is contained in:
parent
ef8ad72322
commit
9d84614ea8
@ -103,7 +103,7 @@ def calculate_price(price_request: OrderPriceCalculateRequest,user: UserDB,db: S
|
||||
extra_package_price = float(community.extra_package_price)
|
||||
extra_package_threshold = int(community.extra_package_threshold)
|
||||
|
||||
original_amount = round(base_price + extra_package_price * (package_count - extra_package_threshold), 2)
|
||||
original_amount = round((base_price + extra_package_price * (package_count - extra_package_threshold)), 2)
|
||||
|
||||
result.price_info.package_count = package_count
|
||||
result.price_info.pickup_images_count = pickup_images_count
|
||||
@ -550,51 +550,46 @@ async def deliveryman_get_order_status_count(
|
||||
db: Session = Depends(get_db),
|
||||
current_user: UserDB = Depends(get_current_user)
|
||||
):
|
||||
|
||||
"""获取社区订单状态数量"""
|
||||
status_list = [OrderStatus.CREATED, OrderStatus.RECEIVED, OrderStatus.DELIVERING, OrderStatus.UNPAID, OrderStatus.COMPLETED]
|
||||
|
||||
created_count = db.query(
|
||||
ShippingOrderDB.status
|
||||
).filter(
|
||||
ShippingOrderDB.address_community_id == community_id,
|
||||
ShippingOrderDB.status == OrderStatus.CREATED
|
||||
)
|
||||
|
||||
if time_period_id:
|
||||
created_count = created_count.filter(
|
||||
ShippingOrderDB.time_period_id == time_period_id
|
||||
result = []
|
||||
for status in status_list:
|
||||
query = db.query(
|
||||
ShippingOrderDB.status
|
||||
).filter(
|
||||
ShippingOrderDB.address_community_id == community_id,
|
||||
ShippingOrderDB.status == status
|
||||
)
|
||||
created_count = created_count.count()
|
||||
|
||||
others_status_count = db.query(
|
||||
ShippingOrderDB.status,
|
||||
func.count(ShippingOrderDB.orderid)
|
||||
).filter(
|
||||
ShippingOrderDB.address_community_id == community_id,
|
||||
ShippingOrderDB.status != OrderStatus.CREATED,
|
||||
ShippingOrderDB.deliveryman_user_id == current_user.userid
|
||||
).group_by(
|
||||
ShippingOrderDB.status
|
||||
)
|
||||
|
||||
if time_period_id:
|
||||
others_status_count = others_status_count.filter(
|
||||
ShippingOrderDB.time_period_id == time_period_id
|
||||
)
|
||||
others_status_count = others_status_count.all()
|
||||
# 如果传入了时间周期id,则过滤时间周期
|
||||
if time_period_id:
|
||||
query = query.filter(
|
||||
ShippingOrderDB.time_period_id == time_period_id
|
||||
)
|
||||
|
||||
result = [{
|
||||
"status": OrderStatus.CREATED,
|
||||
"count": created_count
|
||||
}]
|
||||
# 不是待接单的订单,需要过滤配送员
|
||||
if status != OrderStatus.CREATED:
|
||||
query = query.filter(
|
||||
ShippingOrderDB.deliveryman_user_id == current_user.userid
|
||||
)
|
||||
|
||||
for status, count in others_status_count:
|
||||
# 不是未支付、已完成订单,需要过滤配送日期
|
||||
if status != OrderStatus.UNPAID and status != OrderStatus.COMPLETED:
|
||||
query = query.filter(
|
||||
ShippingOrderDB.delivery_date == datetime.now().date()
|
||||
)
|
||||
|
||||
count = query.count()
|
||||
result.append({
|
||||
"status": status,
|
||||
"count": count
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
return success_response(data=result)
|
||||
|
||||
|
||||
# 提供一个接口,传入 community_id 返回每栋楼栋的订单数量
|
||||
@router.get("/community_building/count", response_model=ResponseModel)
|
||||
async def deliveryman_get_community_building_order_count(
|
||||
@ -640,6 +635,12 @@ async def deliveryman_get_community_building_order_count(
|
||||
ShippingOrderDB.deliveryman_user_id == current_user.userid
|
||||
)
|
||||
|
||||
# 如果订单状态不是待支付和已完成,则只显示今日配送的订单
|
||||
if status not in [OrderStatus.UNPAID, OrderStatus.COMPLETED]:
|
||||
query = query.filter(
|
||||
ShippingOrderDB.delivery_date == datetime.now().date()
|
||||
)
|
||||
|
||||
building_order_count = query.group_by(
|
||||
ShippingOrderDB.address_community_building_id
|
||||
).all()
|
||||
@ -892,6 +893,10 @@ async def deliveryman_orders(
|
||||
if OrderStatus.CREATED not in statuses:
|
||||
query = query.filter(ShippingOrderDB.deliveryman_user_id == deliveryman.userid)
|
||||
|
||||
# 如果订单状态不是待支付和已完成,则只显示今日配送的订单
|
||||
if OrderStatus.UNPAID not in statuses and OrderStatus.COMPLETED not in statuses:
|
||||
query = query.filter(ShippingOrderDB.delivery_date == datetime.now().date())
|
||||
|
||||
# 楼栋筛选
|
||||
if building_id:
|
||||
query = query.filter(ShippingOrderDB.address_community_building_id == building_id)
|
||||
@ -903,6 +908,7 @@ async def deliveryman_orders(
|
||||
# 配送时段筛选
|
||||
if time_period_id:
|
||||
query = query.filter(ShippingOrderDB.time_period_id == time_period_id)
|
||||
|
||||
|
||||
# 获取总数
|
||||
total = query.count()
|
||||
|
||||
@ -14,6 +14,7 @@ class UserRole(str, enum.Enum):
|
||||
DELIVERYMAN = "deliveryman"
|
||||
MERCHANT = "merchant"
|
||||
ADMIN = "admin"
|
||||
PARTNER = "partner"
|
||||
|
||||
class Gender(str, enum.Enum):
|
||||
MALE = "MALE"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user