From 1c6f82cabc8a15b03c6153444752fc94adc3e085 Mon Sep 17 00:00:00 2001 From: aaron <> Date: Sun, 16 Mar 2025 18:36:38 +0800 Subject: [PATCH] update --- app/api/endpoints/order.py | 31 +++++++++++++++++++++++++++---- jobs.sqlite | Bin 24576 -> 24576 bytes 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/app/api/endpoints/order.py b/app/api/endpoints/order.py index 1ae8e75..466a87c 100644 --- a/app/api/endpoints/order.py +++ b/app/api/endpoints/order.py @@ -178,6 +178,22 @@ def format_delivery_time(delivery_date: datetime, time_period_name: str) -> str: else: return f"{delivery_date.strftime('%m-%d')} {time_period_name}" +def has_consecutive_weekdays(weekdays): + if not weekdays or len(weekdays) <= 1: + return True + + days = sorted(weekdays) + + # 处理环绕情况 + if 1 in days and 7 in days and abs(days.index(1) - days.index(7)) == 1: + # 特殊处理周日和周一的连接 + temp = days.copy() + temp.remove(1 if days.index(1) == 0 else 7) + return all(temp[i] - temp[i-1] == 1 for i in range(1, len(temp))) + + # 普通情况 + return all(days[i] - days[i-1] == 1 for i in range(1, len(days))) + @router.post("/pre-order", response_model=ResponseModel) async def pre_order( request: OrderPriceCalculateRequest, @@ -195,10 +211,17 @@ async def pre_order( # 检查是否在服务时间 if community.weekdays and request.delivery_date: if request.delivery_date.isoweekday() not in community.weekdays: - message = f"本小区的服务时间为: " - for day in community.weekdays: - message += f"周{day}, " - message = message[:-2] + + #排序 + sorted_weekdays = sorted(community.weekdays) + + if has_consecutive_weekdays(sorted_weekdays): + message = f"本小区的服务时间为: 周{sorted_weekdays[0]}-{sorted_weekdays[-1]}" + else: + message = f"本小区的服务时间为: " + for day in sorted_weekdays: + message += f"周{day}, " + message = message[:-2] return error_response(code=400, message=message) # 检查是否有配送员在线 diff --git a/jobs.sqlite b/jobs.sqlite index d3d2bca9c5c71ae1daf8b3c36408398f41b9b9c1..b85cfcff272599ab6cc42f8fc9bbb1d4a5771fed 100644 GIT binary patch delta 19 acmZoTz}Rqrae_3X;Y1l{M#GH>3*rGoM+TAr delta 19 acmZoTz}Rqrae_3X?nD`9M%|4G3*rGo3kHe+