商家罚款增加平台审核:新增状态5、证据图、审核API;审核通过前不影响抢单,提现仍拦截未结案罚单

This commit is contained in:
XingQue
2026-07-02 01:53:25 +08:00
parent 9fe03727c5
commit c21168ad2d
8 changed files with 194 additions and 26 deletions

View File

@@ -11601,6 +11601,7 @@ class FaKuanJiFenTongJiView(APIView):
total=Count('id'),
daijiaona=Count('id', filter=Q(Status=1)),
shensuzhong=Count('id', filter=Q(Status=3)),
pingtai_shenhe=Count('id', filter=Q(Status=5)),
yijiaona=Count('id', filter=Q(Status=2)),
yibohui=Count('id', filter=Q(Status=4)),
)
@@ -11622,6 +11623,7 @@ class FaKuanJiFenTongJiView(APIView):
"total": fadan_stats['total'],
"daijiaona": fadan_stats['daijiaona'],
"shensuzhong": fadan_stats['shensuzhong'],
"pingtai_shenhe": fadan_stats['pingtai_shenhe'],
"yijiaona": fadan_stats['yijiaona'],
"yibohui": fadan_stats['yibohui'],
},
@@ -11686,7 +11688,7 @@ class DaShouFaKuanLieBiaoView(APIView):
qs = Penalty.query.filter(PenalizedUserID=yonghuid)
# 状态筛选
if zhuangtai is not None and int(zhuangtai) in [1, 2, 3, 4]:
if zhuangtai is not None and int(zhuangtai) in [1, 2, 3, 4, 5]:
qs = qs.filter(Status=int(zhuangtai))
# 订单号模糊搜索
@@ -11805,6 +11807,8 @@ class ShangjiaCufaTongjiView(APIView):
yijiaona_jine=Sum('FineAmount', filter=Q(Status=2)),
shensuzhong=Count('id', filter=Q(Status=3)),
shensuzhong_jine=Sum('FineAmount', filter=Q(Status=3)),
pingtai_shenhe=Count('id', filter=Q(Status=5)),
pingtai_shenhe_jine=Sum('FineAmount', filter=Q(Status=5)),
yibohui=Count('id', filter=Q(Status=4)),
yibohui_jine=Sum('FineAmount', filter=Q(Status=4)),
shijidaozhang_jine=Sum(
@@ -11842,6 +11846,8 @@ class ShangjiaCufaTongjiView(APIView):
'yijiaona_jine': _money_str(fadan_agg['yijiaona_jine']),
'shensuzhong': fadan_agg['shensuzhong'] or 0,
'shensuzhong_jine': _money_str(fadan_agg['shensuzhong_jine']),
'pingtai_shenhe': fadan_agg['pingtai_shenhe'] or 0,
'pingtai_shenhe_jine': _money_str(fadan_agg['pingtai_shenhe_jine']),
'yibohui': fadan_agg['yibohui'] or 0,
'yibohui_jine': _money_str(fadan_agg['yibohui_jine']),
'shijidaozhang_jine': _money_str(fadan_agg['shijidaozhang_jine']),
@@ -11889,7 +11895,7 @@ class ShangjiaFakuanLieBiaoView(APIView):
sousuo_dingdan_id = str(request.data.get('sousuo_dingdan_id', '')).strip()
qs = Penalty.query.filter(ApplicantID=yonghuid)
if zhuangtai is not None and int(zhuangtai) in [1, 2, 3, 4]:
if zhuangtai is not None and int(zhuangtai) in [1, 2, 3, 4, 5]:
qs = qs.filter(Status=int(zhuangtai))
if sousuo_dingdan_id:
qs = qs.filter(RelatedOrderID__icontains=sousuo_dingdan_id)
@@ -12002,14 +12008,23 @@ class FaKuanShenSuView(APIView):
except Penalty.DoesNotExist:
return Response({'code': 404, 'msg': '罚单不存在或无权操作'}, status=404)
# 只允许待缴纳状态状态1且没有驳回理由的罚单申诉
if fadan.Status != 1:
# 待缴纳(1)或平台审核中(5)可申诉;平台审核中仅保存申诉内容,不改变状态
from utils.penalty_status import (
PENALTY_PENDING_PAY, PENALTY_APPEALING, PENALTY_PLATFORM_AUDIT,
)
if fadan.Status not in (PENALTY_PENDING_PAY, PENALTY_PLATFORM_AUDIT):
return Response({'code': 400, 'msg': '罚单状态不允许申诉'}, status=400)
if fadan.RejectReason:
if fadan.Status == PENALTY_PENDING_PAY and fadan.RejectReason:
return Response({'code': 400, 'msg': '该罚单申诉已被驳回,不可再次申诉'}, status=400)
# 更新罚单状态为申诉中,并记录理由
fadan.Status = 3
if not isinstance(tupian_urls, list):
return Response({'code': 400, 'msg': '申诉图片格式错误'}, status=400)
tupian_urls = [str(u).strip() for u in tupian_urls if str(u).strip()]
if len(tupian_urls) > 9:
return Response({'code': 400, 'msg': '申诉图片最多9张'}, status=400)
if fadan.Status == PENALTY_PENDING_PAY:
fadan.Status = PENALTY_APPEALING
fadan.AppealReason = shensu_liyou
fadan.save()