收款接口仅拦截接单中订单,其它订单状态不再阻止收款。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-18 00:57:29 +08:00
parent 2387d00b7e
commit a723868e09

View File

@@ -45,6 +45,16 @@ logger = logging.getLogger('yonghu.tixian_shenhe')
ORDER_STATUS_COMPLETED = 3
ORDER_STATUS_REFUNDED = 5
# 打手已抢到、正在服务中的订单状态(抢单成功后写入)
ORDER_STATUS_IN_SERVICE = 2
def _has_in_service_order(yonghuid: str) -> bool:
"""仅「接单中」订单才限制收款/相关操作。"""
return Dingdan.objects.filter(
jiedan_dashou_id=yonghuid,
zhuangtai=ORDER_STATUS_IN_SERVICE,
).exists()
LEIXING_RATE_KEY = {
1: '5',
@@ -320,8 +330,7 @@ def validate_withdraw_eligibility(user_main, leixing, jine, balance_check_amount
def validate_collect_eligibility(user_main, leixing):
"""
收款前二次校验(申请时已扣款,不再校余额/金额)。
打手佣金/押金:罚单、封禁、接单中、积分、会员等;
其他身份:账号状态、罚单/订单等(不含金额)。
打手佣金/押金:订单限制仅「接单中」(zhuangtai=2) 才拦截;其它订单状态不拦。
"""
yonghuid = user_main.yonghuid
@@ -337,8 +346,9 @@ def validate_collect_eligibility(user_main, leixing):
return False, '您不是打手身份,无法收款'
if dashou.zhanghaozhuangtai != 1:
return False, '打手账号已被封禁,无法收款'
if dashou.zhuangtai != 1:
return False, '您有订单进行中,请完成后再收款'
# 仅真正接单中的订单拦截;待结单/其它非完成态不再拦
if _has_in_service_order(yonghuid):
return False, '您有接单中的订单,请完成后再收款'
return True, ''
if leixing == 5:
@@ -348,13 +358,8 @@ def validate_collect_eligibility(user_main, leixing):
return False, '您不是打手身份,无法收款'
if dashou.zhanghaozhuangtai != 1:
return False, '打手账号已禁用,无法收款'
if dashou.zhuangtai != 1:
return False, '您有订单进行中,请完成后再收款'
unfinished = Dingdan.objects.filter(
jiedan_dashou_id=yonghuid,
).exclude(zhuangtai__in=[ORDER_STATUS_COMPLETED, ORDER_STATUS_REFUNDED]).exists()
if unfinished:
return False, '您还有未完成或未退款的订单,无法收款'
if _has_in_service_order(yonghuid):
return False, '您有接单中的订单,请完成后再收款'
self_fadan = Fadan.objects.filter(beichufa_id=yonghuid).exclude(zhuangtai__in=[2, 4]).exists()
if self_fadan:
return False, '您有未处理完毕的自身罚单,无法收款'