fix: 罚单申请时锁定分红利率与应得金额,缴纳按锁定值入账

This commit is contained in:
XingQue
2026-06-27 17:46:39 +08:00
parent e2e568bcda
commit d19b6250ae
7 changed files with 228 additions and 104 deletions

View File

@@ -11741,7 +11741,10 @@ class ShangjiaCufaTongjiView(APIView):
shensuzhong_jine=Sum('FineAmount', filter=Q(Status=3)),
yibohui=Count('id', filter=Q(Status=4)),
yibohui_jine=Sum('FineAmount', filter=Q(Status=4)),
shijidaozhang_jine=Sum('ApplicantBonusAmount', filter=Q(Status=2)),
shijidaozhang_jine=Sum(
'ApplicantBonusAmount',
filter=Q(Status=2, BonusCredited=True),
),
)
jifen_agg = PenaltyRecord.query.filter(ApplicantID=yonghuid).aggregate(
@@ -11875,6 +11878,8 @@ class ShangjiaFakuanLieBiaoView(APIView):
'shensuliyou': r.AppealReason or '',
'bohuiliyou': r.RejectReason or '',
'applicant_bonus_amount': str(r.ApplicantBonusAmount or 0),
'applicant_bonus_rate': str(r.ApplicantBonusRate or 0),
'bonus_credited': bool(r.BonusCredited),
'shop_staff_user_id': r.ShopStaffUserID or '',
'staff_display_name': staff_name_map.get(r.ShopStaffUserID or '', ''),
'zhengju_tupian': zhengju_map.get(rid, []),
@@ -12006,7 +12011,7 @@ class FaKuanPayView(APIView):
yonghuid=request.user.UserUID,
jine=jine,
leixing=4,
shuoming=settings.FAKUAN_PAY_DESCRIPTION,
shuoming=f'{settings.FAKUAN_PAY_DESCRIPTION}#fadan:{fadan.id}',
club_id=resolve_club_id_for_write(request, request.user),
)
@@ -12225,12 +12230,20 @@ class FaKuanHuitiaoView(View):
# 8. 更新罚单状态为已缴纳2
try:
# 根据订单中的用户ID和金额匹配待缴纳的罚单
fadan = Penalty.query.filter(
PenalizedUserID=order.yonghuid,
FineAmount=order.jine,
Status__in=[1, 3]
).first()
fadan = None
m = re.search(r'#fadan:(\d+)', order.shuoming or '')
if m:
fadan = Penalty.query.filter(
id=int(m.group(1)),
PenalizedUserID=order.yonghuid,
Status__in=[1, 3],
).first()
if not fadan:
fadan = Penalty.query.filter(
PenalizedUserID=order.yonghuid,
FineAmount=order.jine,
Status__in=[1, 3],
).order_by('-CreateTime').first()
if fadan:
fadan.Status = 2 # 已缴纳
fadan.save(update_fields=['Status'])