确认收款仅拦截接单中订单,结算中等其它状态不影响自动打款收款。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-20 19:33:06 +08:00
parent a723868e09
commit 9656973923

View File

@@ -45,14 +45,20 @@ logger = logging.getLogger('yonghu.tixian_shenhe')
ORDER_STATUS_COMPLETED = 3
ORDER_STATUS_REFUNDED = 5
# 打手已抢到、正在服务中的订单状态(抢单成功后写入)
# 订单「接单中/进行中」:抢单成功后写入;结算中(8)等其它状态一律不拦收款
ORDER_STATUS_IN_SERVICE = 2
def _has_in_service_order(yonghuid: str) -> bool:
"""仅「接单中」订单才限制收款/相关操作。"""
"""
收款专用:是否有「正在接待」的订单。
仅当该打手作为接单人、且订单状态=2接单中时返回 True。
结算中/待结单/退款审核/已完成/已退款等任何其它状态都不算。
"""
if not yonghuid:
return False
return Dingdan.objects.filter(
jiedan_dashou_id=yonghuid,
jiedan_dashou_id=str(yonghuid),
zhuangtai=ORDER_STATUS_IN_SERVICE,
).exists()
@@ -329,8 +335,11 @@ def validate_withdraw_eligibility(user_main, leixing, jine, balance_check_amount
def validate_collect_eligibility(user_main, leixing):
"""
收款前二次校验(申请时已扣款,不再校余额/金额)。
打手佣金/押金:订单限制仅「接单中」(zhuangtai=2) 才拦截;其它订单状态不拦。
收款前二次校验(tixiansq / 自动打款收款)。
订单限制仅打手佣金1、押金5
- 有接单中订单(zhuangtai=2 且 jiedan_dashou_id=本人) → 不能收款
- 其它任意订单状态(含结算中等)→ 不影响收款
其余规则(封禁、罚单等)不变。
"""
yonghuid = user_main.yonghuid
@@ -346,7 +355,6 @@ def validate_collect_eligibility(user_main, leixing):
return False, '您不是打手身份,无法收款'
if dashou.zhanghaozhuangtai != 1:
return False, '打手账号已被封禁,无法收款'
# 仅真正接单中的订单拦截;待结单/其它非完成态不再拦
if _has_in_service_order(yonghuid):
return False, '您有接单中的订单,请完成后再收款'
return True, ''