fix: 今日订单配置保存兜底;企微客服缺表返回明确提示

This commit is contained in:
XingQue committed 2026-08-11 21:39:29 +08:00
1 parent 98c7b0886b
commit bc4e41f54a
3 files changed
+163 -95

No files matched your search

+32 -5
View File
@@ -82,12 +82,39 @@ def config_to_dict(row: TodayOrderShowConfig | None) -> dict:
def save_config(club_id: str, data: dict) -> dict:
row = get_or_create_config(club_id)
def _as_bool(v):
if isinstance(v, bool):
return v
if isinstance(v, (int, float)):
return bool(v)
if isinstance(v, (list, tuple)):
v = v[-1] if v else False
s = str(v or '').strip().lower()
if s in ('1', 'true', 'yes', 'on'):
return True
if s in ('0', 'false', 'no', 'off', ''):
return False
return bool(v)
def _as_int(v, default):
if isinstance(v, (list, tuple)):
v = v[-1] if v else default
if v is None or v == '':
return default
try:
return int(float(v))
except (TypeError, ValueError):
return default
if 'mix_enabled' in data:
row.mix_enabled = bool(data.get('mix_enabled'))
if 'batch_size' in data and data.get('batch_size') is not None:
row.batch_size = max(0, min(500, int(data.get('batch_size') or 0)))
if 'interval_seconds' in data and data.get('interval_seconds') is not None:
row.interval_seconds = max(1, min(86400, int(data.get('interval_seconds') or 120)))
row.mix_enabled = _as_bool(data.get('mix_enabled'))
if 'batch_size' in data and data.get('batch_size') is not None and data.get('batch_size') != '':
row.batch_size = max(0, min(500, _as_int(data.get('batch_size'), row.batch_size or 5)))
if 'interval_seconds' in data and data.get('interval_seconds') is not None and data.get('interval_seconds') != '':
row.interval_seconds = max(
1, min(86400, _as_int(data.get('interval_seconds'), row.interval_seconds or 120)),
)
row.save()
return config_to_dict(row)