抢单押金校验计入冻结押金池,提现等其它场景仍只认未冻结余额。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-17 01:57:43 +08:00
parent d3f6ff34bb
commit 27d203810e

View File

@@ -4297,10 +4297,20 @@ class QiangdanView(APIView):
return {'success': False, 'message': '未开通对应会员,无法抢此订单'}
def _validate_yajin_requirement(self, order, dashou_profile):
yajin_required = order.yongjin or 0
dashou_yajin = dashou_profile.yajin or 0
if dashou_yajin < yajin_required:
return {'success': False, 'message': f'押金不足,需要{yajin_required}元,当前有{dashou_yajin}'}
"""抢单专用:冻结押金(dongjie_chi_yajin)也算可用,提现等其它场景仍只认未冻结余额。"""
from decimal import Decimal
yajin_required = Decimal(str(order.yongjin or 0))
free_yajin = Decimal(str(dashou_profile.yajin or 0))
frozen_yajin = Decimal(str(getattr(dashou_profile, 'dongjie_chi_yajin', 0) or 0))
usable_yajin = free_yajin + frozen_yajin
if usable_yajin < yajin_required:
return {
'success': False,
'message': (
f'押金不足,需要{yajin_required}元,'
f'当前可用{usable_yajin}元(含冻结{frozen_yajin}元)'
),
}
return {'success': True, 'message': '押金验证通过'}
def _execute_qiangdan(self, order, dashou_profile, dashou_yonghuid):