fix: 商家撤销罚单处理人身份为商家;处罚待处理含申诉中

This commit is contained in:
XingQue
2026-06-27 08:04:35 +08:00
parent 93bf2193d2
commit 318e3e3216
2 changed files with 10 additions and 13 deletions

View File

@@ -498,7 +498,7 @@ class Penalty(QModel):
db_column='shenqingren_shenfen', verbose_name='申请处罚人身份',
)
ProcessorIdentity = models.IntegerField(
choices=[(1, '客服'), (2, '售后'), (3, '管理员')],
choices=[(1, '客服'), (2, '售后'), (3, '管理员'), (5, '商家')],
default=2,
db_column='chulizhe_shenfen', verbose_name='处理者身份',
)

View File

@@ -2171,8 +2171,8 @@ class ShangjiaShujuTongjiView(APIView):
try:
from orders.models import Penalty, PenaltyRecord
from django.db.models import Q, Sum
fakuan_pending = Penalty.query.filter(ApplicantID=yonghuid, Status=1).count()
fakuan_pending_amt = Penalty.query.filter(ApplicantID=yonghuid, Status=1).aggregate(
fakuan_pending = Penalty.query.filter(ApplicantID=yonghuid, Status__in=[1, 3]).count()
fakuan_pending_amt = Penalty.query.filter(ApplicantID=yonghuid, Status__in=[1, 3]).aggregate(
amt=Sum('FineAmount')
)['amt']
jifen_pending = PenaltyRecord.query.filter(
@@ -6600,7 +6600,7 @@ class ShangjiaFakuaiXiugaiView(APIView):
elif operation == 'cancel_penalty':
return self._cancel_penalty(fadan, request.data.get('liyou', ''), user.UserUID)
elif operation == 'resubmit_penalty':
return self._resubmit_penalty(fadan, request.data.get('liyou', ''), request.data.get('jine'))
return self._resubmit_penalty(fadan, request.data.get('liyou', ''), request.data.get('jine'), user.UserUID)
elif operation == 'manage_penalty_evidence':
return self._manage_penalty_evidence(fadan, request.data)
else:
@@ -6645,11 +6645,8 @@ class ShangjiaFakuaiXiugaiView(APIView):
fadan.FineAmount = jine
if processor_id:
fadan.ProcessorID = processor_id
fadan.ProcessorIdentity = 5 # 小程序商家自行处理
fadan.save()
logger.info(
f"商家修改罚单{fadan.id}:理由={liyou[:50]},金额={jine}"
f"操作人={processor_id or fadan.ApplicantID}"
)
return Response({'code': 0, 'msg': '罚款修改成功'})
def _cancel_penalty(self, fadan, liyou, processor_id=None):
@@ -6663,14 +6660,11 @@ class ShangjiaFakuaiXiugaiView(APIView):
fadan.RejectReason = liyou[:500]
if processor_id:
fadan.ProcessorID = processor_id
fadan.ProcessorIdentity = 5 # 小程序商家撤销=商家作为处理人
fadan.save()
logger.info(
f"商家撤销罚单{fadan.id},驳回理由={liyou[:50]}"
f"操作人={processor_id or fadan.ApplicantID}"
)
return Response({'code': 0, 'msg': '罚款已撤销(驳回)'})
def _resubmit_penalty(self, fadan, liyou, jine_str):
def _resubmit_penalty(self, fadan, liyou, jine_str, processor_id=None):
"""再次申请罚款状态4 → 状态1修改理由和金额"""
if fadan.Status != 4:
return Response({'code': 400, 'msg': '只有已驳回的罚单可再次申请'})
@@ -6687,6 +6681,9 @@ class ShangjiaFakuaiXiugaiView(APIView):
fadan.Reason = liyou[:500]
fadan.FineAmount = jine
fadan.RejectReason = '' # 清空驳回理由
if processor_id:
fadan.ProcessorID = processor_id
fadan.ProcessorIdentity = 5
fadan.save()
logger.info(f"商家重新申请罚单{fadan.id},金额={jine}")
return Response({'code': 0, 'msg': '已重新申请罚款'})