fix: 平台审核队列兼容旧商家罚款+列表筛选

This commit is contained in:
XingQue
2026-07-02 02:38:21 +08:00
parent 5d20d1a25e
commit 0c40b326ea
2 changed files with 68 additions and 7 deletions

View File

@@ -6404,12 +6404,18 @@ 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
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)),
daijiaona=Count('id', filter=Q(Status=1) & ~legacy_pending_q),
shensuzhong=Count('id', filter=Q(Status=3)),
yijiaona=Count('id', filter=Q(Status=2)),
yibohui=Count('id', filter=Q(Status=4)),
pingtai_shenhe=Count('id', filter=pending_q),
)
data = {k: v or 0 for k, v in stats.items()}
from jituan.services.club_user_access import list_response_meta
@@ -6446,10 +6452,25 @@ class FaKuanLieBiaoView(APIView):
qs = filter_penalty_qs(Penalty.query.all(), request)
# 状态筛选
zhuangtai = request.data.get('zhuangtai')
if zhuangtai is not None and int(zhuangtai) in [1, 2, 3, 4]:
qs = qs.filter(Status=int(zhuangtai))
# 状态筛选5=平台审核队列,含旧版商家直写待缴纳未审)
from utils.penalty_status import (
penalty_platform_audit_pending_q, APPLICANT_MERCHANT,
)
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):
qs = qs.filter(Status=zt)
except (ValueError, TypeError):
pass
# 被处罚人ID
PenalizedUserID = request.data.get('PenalizedUserID', '').strip()
@@ -6498,6 +6519,8 @@ class FaKuanLieBiaoView(APIView):
else:
shensu_map.setdefault(fid, []).append(url)
from utils.penalty_status import penalty_display_status, is_penalty_platform_audit_pending
# 组装列表数据
results = []
for r in records:
@@ -6512,6 +6535,8 @@ class FaKuanLieBiaoView(APIView):
'fakuanjine': str(r.FineAmount),
'guanliandingdan_id': r.RelatedOrderID or '',
'zhuangtai': r.Status,
'zhuangtai_text': penalty_display_status(r),
'platform_audit_pending': is_penalty_platform_audit_pending(r),
'yingxiang_qiangdan': r.AffectsGrabbing,
'shensuliyou': r.AppealReason or '',
'bohuiliyou': r.RejectReason or '',
@@ -6641,7 +6666,8 @@ class FaKuanPingTaiShenHeView(APIView):
def post(self, request):
try:
from utils.penalty_status import (
PENALTY_PLATFORM_AUDIT, PENALTY_PENDING_PAY, PENALTY_APPEALING, PENALTY_REJECTED,
PENALTY_PENDING_PAY, PENALTY_APPEALING, PENALTY_REJECTED,
is_penalty_platform_audit_pending,
)
username = request.data.get('username', '').strip()
penalty_id = request.data.get('penalty_id') or request.data.get('fadan_id')
@@ -6665,7 +6691,7 @@ class FaKuanPingTaiShenHeView(APIView):
if deny:
return deny
if penalty.Status != PENALTY_PLATFORM_AUDIT:
if not is_penalty_platform_audit_pending(penalty):
return Response({'code': 400, 'msg': '当前状态不可平台审核'})
if not check_fadan_permission(permissions, penalty.Identity):