放宽商家提现校验:仅校验订单状态3/5,不再校验罚单

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-06-20 21:36:04 +08:00
parent 09dc5cebba
commit 5e4be15990
2 changed files with 20 additions and 43 deletions

View File

@@ -214,9 +214,10 @@ def validate_withdraw_eligibility(user_main, leixing, jine):
"""
yonghuid = user_main.yonghuid
fadan_ok, fadan_msg = check_fadan_qiangdan_eligible(yonghuid, 2)
if not fadan_ok:
return False, fadan_msg, {}
if leixing != 6:
fadan_ok, fadan_msg = check_fadan_qiangdan_eligible(yonghuid, 2)
if not fadan_ok:
return False, fadan_msg, {}
if leixing == 1:
try:
@@ -299,12 +300,6 @@ def validate_withdraw_eligibility(user_main, leixing, jine):
).exclude(dingdan__zhuangtai__in=[ORDER_STATUS_COMPLETED, ORDER_STATUS_REFUNDED]).exists()
if unfinished_orders:
return False, '您还有未完成或未退款的订单,请先处理完毕再提现余额', {}
self_fadan = Fadan.objects.filter(beichufa_id=yonghuid).exclude(zhuangtai__in=[2, 4]).exists()
if self_fadan:
return False, '您有未处理完毕的自身罚单(待缴纳/申诉中),请先处理', {}
applied_fadan = Fadan.objects.filter(shenqing_chufa=yonghuid).exclude(zhuangtai__in=[2, 4]).exists()
if applied_fadan:
return False, '您发起的对其他用户的处罚尚未处理完毕,请等待完结', {}
return True, '', {'nicheng': shangjia.nicheng or ''}
return False, '无效的提现类型', {}
@@ -318,9 +313,10 @@ def validate_collect_eligibility(user_main, leixing):
"""
yonghuid = user_main.yonghuid
fadan_ok, fadan_msg = check_fadan_qiangdan_eligible(yonghuid, 2)
if not fadan_ok:
return False, fadan_msg
if leixing != 6:
fadan_ok, fadan_msg = check_fadan_qiangdan_eligible(yonghuid, 2)
if not fadan_ok:
return False, fadan_msg
if leixing == 1:
try:
@@ -391,12 +387,6 @@ def validate_collect_eligibility(user_main, leixing):
).exclude(dingdan__zhuangtai__in=[ORDER_STATUS_COMPLETED, ORDER_STATUS_REFUNDED]).exists()
if unfinished_orders:
return False, '您还有未完成或未退款的订单,无法收款'
self_fadan = Fadan.objects.filter(beichufa_id=yonghuid).exclude(zhuangtai__in=[2, 4]).exists()
if self_fadan:
return False, '您有未处理完毕的自身罚单,无法收款'
applied_fadan = Fadan.objects.filter(shenqing_chufa=yonghuid).exclude(zhuangtai__in=[2, 4]).exists()
if applied_fadan:
return False, '您发起的处罚尚未处理完毕,无法收款'
return True, ''
return False, '无效的提现类型'

View File

@@ -1906,10 +1906,17 @@ class TixianShenqingView(APIView):
fangshi = request.data.get('fangshi')
txskfs = request.data.get('txskfs', 0)
# 罚单检查(共用)
fadan_ok, fadan_msg = check_fadan_qiangdan_eligible(yonghuid, 2)
if not fadan_ok:
return Response({'code': 400, 'msg': fadan_msg})
# 提前解析 leixing商家提现(leixing=6)不校验罚单
raw_leixing = request.data.get('leixing')
try:
leixing_preview = int(raw_leixing) if raw_leixing is not None else None
except (ValueError, TypeError):
leixing_preview = None
if leixing_preview != 6:
fadan_ok, fadan_msg = check_fadan_qiangdan_eligible(yonghuid, 2)
if not fadan_ok:
return Response({'code': 400, 'msg': fadan_msg})
# 参数完整性
missing = []
@@ -2147,8 +2154,7 @@ class TixianShenqingView(APIView):
def _check_shangjia_withdraw(self, user_main, jine):
"""
商家余额提现校验(退出平台)
包含:订单、自身罚单、申请的罚单检查
商家余额提现校验:仅校验订单状态,允许已完成(3)与已退款(5),其余状态不可提现。
"""
try:
shangjia = UserShangjia.objects.get(user=user_main)
@@ -2160,7 +2166,6 @@ class TixianShenqingView(APIView):
if shangjia.yue < jine:
return {'code': 62, 'msg': f'商家余额不足,当前余额: {shangjia.yue}'}
# 订单检查(使用 Q 取反)
unfinished_orders = DingdanShangjia.objects.filter(
shangjia_id=user_main.yonghuid,
).exclude(
@@ -2169,24 +2174,6 @@ class TixianShenqingView(APIView):
if unfinished_orders:
return {'code': 63, 'msg': '您还有未完成或未退款的订单,请先处理完毕再提现余额'}
# 自身被处罚的罚单检查(状态不是已缴纳(2)和已驳回(4)
self_fadan = Fadan.objects.filter(
beichufa_id=user_main.yonghuid,
).exclude(
zhuangtai__in=[2, 4]
).exists()
if self_fadan:
return {'code': 64, 'msg': '您有未处理完毕的自身罚单(待缴纳/申诉中),请先处理'}
# 申请的对他人处罚罚单检查(状态不是已缴纳(2)和已驳回(4)
applied_fadan = Fadan.objects.filter(
shenqing_chufa=user_main.yonghuid,
).exclude(
zhuangtai__in=[2, 4]
).exists()
if applied_fadan:
return {'code': 65, 'msg': '您发起的对其他用户的处罚尚未处理完毕(待缴纳/申诉中),请等待完结'}
return {'code': 0, 'msg': 'ok', 'data': {'nicheng': shangjia.nicheng or ''}}
def _check_dashou_yajin_withdraw(self, user_main, jine):