fix: 平台审核仅zhuangtai=5,不再误纳入旧商家待缴纳

This commit is contained in:
XingQue
2026-07-02 02:54:49 +08:00
parent 0c40b326ea
commit 2dcd5cc9a6
2 changed files with 12 additions and 40 deletions

View File

@@ -6404,14 +6404,11 @@ class FaKuanTongJiView(APIView):
if not has_fadan_view_permission(permissions, username):
return Response({'code': 403, 'msg': '无权限查看罚款统计'})
from utils.penalty_status import penalty_platform_audit_pending_q, APPLICANT_MERCHANT
from utils.penalty_status import penalty_platform_audit_pending_q
pending_q = penalty_platform_audit_pending_q()
legacy_pending_q = Q(
Status=1, ApplicantIdentity=APPLICANT_MERCHANT,
) & (Q(ProcessorID__isnull=True) | Q(ProcessorID=''))
stats = filter_penalty_qs(Penalty.query.all(), request).aggregate(
total=Count('id'),
daijiaona=Count('id', filter=Q(Status=1) & ~legacy_pending_q),
daijiaona=Count('id', filter=Q(Status=1)),
shensuzhong=Count('id', filter=Q(Status=3)),
yijiaona=Count('id', filter=Q(Status=2)),
yibohui=Count('id', filter=Q(Status=4)),
@@ -6452,22 +6449,15 @@ class FaKuanLieBiaoView(APIView):
qs = filter_penalty_qs(Penalty.query.all(), request)
# 状态筛选5=平台审核队列,含旧版商家直写待缴纳未审
from utils.penalty_status import (
penalty_platform_audit_pending_q, APPLICANT_MERCHANT,
)
# 状态筛选5=平台审核中,仅 zhuangtai=5
from utils.penalty_status import penalty_platform_audit_pending_q
zhuangtai_raw = request.data.get('zhuangtai')
if zhuangtai_raw is not None and str(zhuangtai_raw).strip() != '':
try:
zt = int(zhuangtai_raw)
if zt == 5:
qs = qs.filter(penalty_platform_audit_pending_q())
elif zt == 1:
legacy_pending_q = Q(
Status=1, ApplicantIdentity=APPLICANT_MERCHANT,
) & (Q(ProcessorID__isnull=True) | Q(ProcessorID=''))
qs = qs.filter(Status=1).exclude(legacy_pending_q)
elif zt in (2, 3, 4):
elif zt in (1, 2, 3, 4):
qs = qs.filter(Status=zt)
except (ValueError, TypeError):
pass
@@ -6666,8 +6656,7 @@ class FaKuanPingTaiShenHeView(APIView):
def post(self, request):
try:
from utils.penalty_status import (
PENALTY_PENDING_PAY, PENALTY_APPEALING, PENALTY_REJECTED,
is_penalty_platform_audit_pending,
PENALTY_PLATFORM_AUDIT, PENALTY_PENDING_PAY, PENALTY_APPEALING, PENALTY_REJECTED,
)
username = request.data.get('username', '').strip()
penalty_id = request.data.get('penalty_id') or request.data.get('fadan_id')
@@ -6691,7 +6680,7 @@ class FaKuanPingTaiShenHeView(APIView):
if deny:
return deny
if not is_penalty_platform_audit_pending(penalty):
if penalty.Status != PENALTY_PLATFORM_AUDIT:
return Response({'code': 400, 'msg': '当前状态不可平台审核'})
if not check_fadan_permission(permissions, penalty.Identity):

View File

@@ -25,32 +25,15 @@ APPLICANT_MERCHANT = 5
def penalty_platform_audit_pending_q():
"""
待平台审核队列:
- 新流程zhuangtai=5
- 旧数据:商家提交直写 zhuangtai=1 且尚未有平台处理人
"""
"""待平台审核:仅 zhuangtai=5商家新流程提交"""
from django.db.models import Q
legacy_merchant_pending = Q(
Status=PENALTY_PENDING_PAY,
ApplicantIdentity=APPLICANT_MERCHANT,
) & (Q(ProcessorID__isnull=True) | Q(ProcessorID=''))
return Q(Status=PENALTY_PLATFORM_AUDIT) | legacy_merchant_pending
return Q(Status=PENALTY_PLATFORM_AUDIT)
def is_penalty_platform_audit_pending(penalty):
"""单条罚单是否处于平台审核队列(含旧数据)。"""
status = getattr(penalty, 'Status', None)
if status == PENALTY_PLATFORM_AUDIT:
return True
if status == PENALTY_PENDING_PAY and getattr(penalty, 'ApplicantIdentity', None) == APPLICANT_MERCHANT:
return not (getattr(penalty, 'ProcessorID', None) or '').strip()
return False
return getattr(penalty, 'Status', None) == PENALTY_PLATFORM_AUDIT
def penalty_display_status(penalty):
"""列表/详情展示用状态文案。"""
if is_penalty_platform_audit_pending(penalty):
return PENALTY_STATUS_LABELS[PENALTY_PLATFORM_AUDIT]
return PENALTY_STATUS_LABELS.get(getattr(penalty, 'Status', None), '未知')
status = getattr(penalty, 'Status', None)
return PENALTY_STATUS_LABELS.get(status, '未知')