fix: 修复 rollback --since 日期字符串解析报错
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -17,7 +17,7 @@ import hashlib
|
||||
import logging
|
||||
import random
|
||||
import string
|
||||
from datetime import timedelta
|
||||
from datetime import datetime, timedelta
|
||||
from decimal import Decimal
|
||||
|
||||
import defusedxml.ElementTree as ET
|
||||
@@ -696,6 +696,24 @@ def order_purchase_days_locked(order, club_id=None):
|
||||
return max(int(days or 0), 1)
|
||||
|
||||
|
||||
def _parse_since_option(since):
|
||||
"""管理命令 --since 字符串 → 可比较的 datetime。"""
|
||||
from django.utils.dateparse import parse_date, parse_datetime
|
||||
from jituan.services.huiyuan_bundle import _normalize_datetime_for_compare
|
||||
|
||||
if not since:
|
||||
return None
|
||||
if not isinstance(since, str):
|
||||
return _normalize_datetime_for_compare(since)
|
||||
dt = parse_datetime(since)
|
||||
if dt is None:
|
||||
d = parse_date(since)
|
||||
if d is None:
|
||||
return None
|
||||
dt = datetime.combine(d, datetime.min.time())
|
||||
return _normalize_datetime_for_compare(dt)
|
||||
|
||||
|
||||
def is_suspected_bug_repair_restore(rec, since=None):
|
||||
"""
|
||||
Bug repair 指纹:UpdateTime 时将 daoqi 设为 UpdateTime+days,
|
||||
@@ -705,7 +723,8 @@ def is_suspected_bug_repair_restore(rec, since=None):
|
||||
from jituan.services.huiyuan_bundle import _normalize_datetime_for_compare
|
||||
|
||||
updated = _normalize_datetime_for_compare(rec.UpdateTime)
|
||||
if since and updated < _normalize_datetime_for_compare(since):
|
||||
since_dt = _parse_since_option(since)
|
||||
if since_dt and updated < since_dt:
|
||||
return None
|
||||
daoqi = _normalize_datetime_for_compare(rec.daoqi_time)
|
||||
gap_days = (daoqi - updated).days
|
||||
|
||||
Reference in New Issue
Block a user