商家派单押金要求改为后台可配限额,去掉写死的 0.1-50。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
"""商家派单金额限额 — 读 XcxSysPeizhi,后台可配"""
|
||||
"""商家派单金额/押金要求限额 — 读 XcxSysPeizhi,后台可配"""
|
||||
from decimal import Decimal, InvalidOperation
|
||||
|
||||
from utils.xcx_sys_config import wx_cfg
|
||||
|
||||
DEFAULT_MIN = Decimal('10')
|
||||
DEFAULT_MAX = Decimal('10000')
|
||||
DEFAULT_YAJIN_MIN = Decimal('0.10')
|
||||
DEFAULT_YAJIN_MAX = Decimal('10000')
|
||||
|
||||
|
||||
def get_shangjia_paifa_jiage_limits():
|
||||
@@ -18,6 +20,17 @@ def get_shangjia_paifa_jiage_limits():
|
||||
return min_v, max_v
|
||||
|
||||
|
||||
def get_shangjia_paifa_yajin_limits():
|
||||
"""返回派单「要求接单员押金」金额 (min, max) Decimal"""
|
||||
min_v = getattr(wx_cfg, 'SHANGJIA_PAIFA_YAJIN_MIN', None) or DEFAULT_YAJIN_MIN
|
||||
max_v = getattr(wx_cfg, 'SHANGJIA_PAIFA_YAJIN_MAX', None) or DEFAULT_YAJIN_MAX
|
||||
min_v = Decimal(str(min_v))
|
||||
max_v = Decimal(str(max_v))
|
||||
if min_v > max_v:
|
||||
min_v, max_v = max_v, min_v
|
||||
return min_v, max_v
|
||||
|
||||
|
||||
def validate_shangjia_paifa_jiage(jiage_str):
|
||||
"""
|
||||
校验派单金额
|
||||
@@ -37,3 +50,24 @@ def validate_shangjia_paifa_jiage(jiage_str):
|
||||
if jiage < min_v or jiage > max_v:
|
||||
return False, f'价格需在{min_v}-{max_v}元之间', None
|
||||
return True, '', float(jiage)
|
||||
|
||||
|
||||
def validate_shangjia_paifa_yajin(yajin_str):
|
||||
"""
|
||||
校验派单押金要求金额
|
||||
@return (ok, msg, yajin_decimal|None)
|
||||
"""
|
||||
if yajin_str is None or str(yajin_str).strip() == '':
|
||||
return False, '押金金额不能为空', None
|
||||
raw = str(yajin_str).strip()
|
||||
try:
|
||||
amount = Decimal(raw)
|
||||
except (InvalidOperation, ValueError, TypeError):
|
||||
return False, '押金格式错误', None
|
||||
if '.' in raw and len(raw.split('.')[1]) > 2:
|
||||
return False, '押金最多支持两位小数', None
|
||||
|
||||
min_v, max_v = get_shangjia_paifa_yajin_limits()
|
||||
if amount < min_v or amount > max_v:
|
||||
return False, f'押金需在{min_v}-{max_v}元之间', None
|
||||
return True, '', amount
|
||||
|
||||
@@ -142,6 +142,20 @@ class WxConfig:
|
||||
return row.shangjia_paifa_jiage_max
|
||||
return Decimal('10000')
|
||||
|
||||
@property
|
||||
def SHANGJIA_PAIFA_YAJIN_MIN(self):
|
||||
row = _load_row()
|
||||
if row is not None and getattr(row, 'shangjia_paifa_yajin_min', None) is not None:
|
||||
return row.shangjia_paifa_yajin_min
|
||||
return Decimal('0.10')
|
||||
|
||||
@property
|
||||
def SHANGJIA_PAIFA_YAJIN_MAX(self):
|
||||
row = _load_row()
|
||||
if row is not None and getattr(row, 'shangjia_paifa_yajin_max', None) is not None:
|
||||
return row.shangjia_paifa_yajin_max
|
||||
return Decimal('10000')
|
||||
|
||||
|
||||
wx_cfg = WxConfig()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user