From b5506f5361ac5223d6f4b7f0ae3e6fdfac807f65 Mon Sep 17 00:00:00 2001 From: XingQue Date: Mon, 27 Jul 2026 08:57:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BD=93=E9=AA=8C=E4=BC=9A=E5=91=98?= =?UTF-8?q?=E6=9C=9F=E5=88=A4=E6=96=AD=E7=BB=9F=E4=B8=80=20datetime=20?= =?UTF-8?q?=E6=97=B6=E5=8C=BA=EF=BC=8C=E9=81=BF=E5=85=8D=E6=8F=90=E7=8E=B0?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit naive/aware 混比导致 can't compare offset-naive and offset-aware datetimes。 Co-authored-by: Cursor --- jituan/services/member_recharge.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/jituan/services/member_recharge.py b/jituan/services/member_recharge.py index 796c4ea..5d7b3e0 100644 --- a/jituan/services/member_recharge.py +++ b/jituan/services/member_recharge.py @@ -1119,7 +1119,15 @@ def dashou_in_active_trial_period(yonghuid): """打手是否处于未过期的体验会员期(禁止佣金提现;与抢单池展示逻辑无关)。""" from jituan.services.huiyuan_bundle import huiyuan_ids_match - now = timezone.now() + def _cmp_dt(dt): + """统一成可比较的 datetime,避免 naive/aware 混比。""" + if dt is None: + return None + if timezone.is_naive(dt): + return timezone.make_aware(dt, timezone.get_current_timezone()) + return dt + + now = _cmp_dt(timezone.now()) for rec in Huiyuangoumai.query.filter(yonghu_id=yonghuid): if rec.jiance_shifou_daoqi(): continue @@ -1156,9 +1164,7 @@ def dashou_in_active_trial_period(yonghuid): if days <= 0: _, _, days = club_huiyuan_sellable(cid, hid, is_trial=True) days = max(days, 1) - start = order.CreateTime or now - if timezone.is_naive(start): - start = timezone.make_aware(start, timezone.get_current_timezone()) + start = _cmp_dt(order.CreateTime) or now if start + timedelta(days=days) > now: return True return False