From 8f21491c720ae47bf673452cc2727dc6bf8568e4 Mon Sep 17 00:00:00 2001 From: XingQue Date: Fri, 26 Jun 2026 20:38:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=95=86=E5=AE=B6=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=97=B6=E9=97=B4=E6=AE=B5=E7=AD=9B=E9=80=89=E5=9C=A8?= =?UTF-8?q?USE=5FTZ=3DFalse=E4=B8=8BMySQL=20500?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- orders/services/merchant_order_list_filters.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/orders/services/merchant_order_list_filters.py b/orders/services/merchant_order_list_filters.py index 33300df..fb93298 100644 --- a/orders/services/merchant_order_list_filters.py +++ b/orders/services/merchant_order_list_filters.py @@ -1,6 +1,7 @@ """商家订单列表通用筛选(商家老板接口 + 子客服列表共用)。""" from datetime import datetime +from django.conf import settings from django.db.models import Q from django.utils import timezone from django.utils.dateparse import parse_datetime @@ -8,11 +9,16 @@ from django.utils.dateparse import parse_datetime from backend.utils import pick_leixing_id -def _aware_dt(dt): +def _db_dt(dt): + """与项目 USE_TZ 设置一致:USE_TZ=False 时必须返回 naive datetime。""" if dt is None: return None - if timezone.is_naive(dt): - return timezone.make_aware(dt, timezone.get_current_timezone()) + if settings.USE_TZ: + if timezone.is_naive(dt): + return timezone.make_aware(dt, timezone.get_current_timezone()) + return dt + if timezone.is_aware(dt): + return timezone.make_naive(dt, timezone.get_current_timezone()) return dt @@ -30,15 +36,15 @@ def parse_order_list_bound(value, is_end=False): return None if is_end: base = base.replace(hour=23, minute=59, second=59) - return _aware_dt(base) + return _db_dt(base) dt = parse_datetime(raw.replace(' ', 'T', 1) if ' ' in raw and 'T' not in raw else raw) if dt is None: try: base = datetime.strptime(raw[:19], '%Y-%m-%d %H:%M:%S') - return _aware_dt(base) + return _db_dt(base) except ValueError: return None - return _aware_dt(dt) + return _db_dt(dt) def apply_merchant_order_list_filters(qs, data):