feat: 罚款分红费率按俱乐部可读可配,接入提现设置

个人利率优先,其次 club_fadan_fenhong_lilv,再回退全局表;组队均摊仍按每张罚单金额×费率。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-27 19:54:58 +08:00
parent 75fb69e6da
commit 1c67f98866
2 changed files with 84 additions and 2 deletions

View File

@@ -43,9 +43,22 @@ def _read_global_fenhong_rate(lilv_shenfen):
return None
def _read_club_fenhong_rate(club_id, lilv_shenfen):
"""俱乐部级罚款分红费率club_fadan_fenhong_lilv"""
from jituan.models import ClubFadanFenhongLilv
club_id = _normalize_club_id(club_id)
row = ClubFadanFenhongLilv.query.filter(
club_id=club_id, shenfen=int(lilv_shenfen),
).first()
if row is not None and row.lilv is not None and Decimal(str(row.lilv)) > 0:
return row.lilv
return None
def _get_fenhong_rate(fenhongzhe_id, fenhong_shenfen, lilv_shenfen, club_id='xq'):
"""
获取分红利率:个人单独利率 > 0 优先;否则回退全局 fadan_fenhong_lilv。
获取分红利率:个人单独利率 > 0 优先;否则俱乐部配置;再回退全局 fadan_fenhong_lilv。
"""
club_id = _normalize_club_id(club_id)
try:
@@ -61,6 +74,10 @@ def _get_fenhong_rate(fenhongzhe_id, fenhong_shenfen, lilv_shenfen, club_id='xq'
except PenaltyBonus.DoesNotExist:
pass
club_rate = _read_club_fenhong_rate(club_id, lilv_shenfen)
if club_rate is not None:
return club_rate
return _read_global_fenhong_rate(lilv_shenfen)