diff --git a/orders/models.py b/orders/models.py index 2da4e66..0d405ff 100644 --- a/orders/models.py +++ b/orders/models.py @@ -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='处理者身份', ) diff --git a/orders/views.py b/orders/views.py index 517d157..6659feb 100644 --- a/orders/views.py +++ b/orders/views.py @@ -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': '已重新申请罚款'})