From 2dcd5cc9a6162e9b85660bd6ef7d14387e0df673 Mon Sep 17 00:00:00 2001 From: XingQue Date: Thu, 2 Jul 2026 02:54:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B9=B3=E5=8F=B0=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E4=BB=85zhuangtai=3D5=EF=BC=8C=E4=B8=8D=E5=86=8D=E8=AF=AF?= =?UTF-8?q?=E7=BA=B3=E5=85=A5=E6=97=A7=E5=95=86=E5=AE=B6=E5=BE=85=E7=BC=B4?= =?UTF-8?q?=E7=BA=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/view.py | 25 +++++++------------------ utils/penalty_status.py | 27 +++++---------------------- 2 files changed, 12 insertions(+), 40 deletions(-) diff --git a/backend/view.py b/backend/view.py index 3586cc5..81bccd0 100644 --- a/backend/view.py +++ b/backend/view.py @@ -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): diff --git a/utils/penalty_status.py b/utils/penalty_status.py index 0c9c2a6..e22f182 100644 --- a/utils/penalty_status.py +++ b/utils/penalty_status.py @@ -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, '未知')