Files
along_django/utils/shangjia_paifa_config.py

40 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""商家派单金额限额 — 读 XcxSysPeizhi后台可配"""
from decimal import Decimal, InvalidOperation
from utils.xcx_sys_config import wx_cfg
DEFAULT_MIN = Decimal('10')
DEFAULT_MAX = Decimal('10000')
def get_shangjia_paifa_jiage_limits():
"""返回 (min, max) Decimal"""
min_v = getattr(wx_cfg, 'SHANGJIA_PAIFA_JIAGE_MIN', None) or DEFAULT_MIN
max_v = getattr(wx_cfg, 'SHANGJIA_PAIFA_JIAGE_MAX', None) or DEFAULT_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):
"""
校验派单金额
@return (ok, msg, jiage_float|None)
"""
if jiage_str is None or str(jiage_str).strip() == '':
return False, '缺少价格', None
jiage_raw = str(jiage_str).strip()
try:
jiage = Decimal(jiage_raw)
except (InvalidOperation, ValueError, TypeError):
return False, '价格格式错误', None
if '.' in jiage_raw and len(jiage_raw.split('.')[1]) > 2:
return False, '最多支持两位小数', None
min_v, max_v = get_shangjia_paifa_jiage_limits()
if jiage < min_v or jiage > max_v:
return False, f'价格需在{min_v}-{max_v}元之间', None
return True, '', float(jiage)