feat: 俱乐部超级管理可加本店余额,不再强制集团高管

持有000001且处于当前俱乐部视图时可加余额/押金/可提现;强制目标用户同俱乐部,并在修改记录中写入俱乐部ID。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-27 07:53:33 +08:00
parent 69e1ca0e1a
commit 96f1a80395
5 changed files with 107 additions and 23 deletions

View File

@@ -636,8 +636,10 @@ class UpdateGuanliView(APIView):
if new_yue > old_yue:
if '4400c' not in permissions:
return Response({'code': 403, 'msg': '无权限增加余额需要4400c'})
from jituan.services.group_finance_gate import deny_group_finance_exec
deny = deny_group_finance_exec(request.user, request)
from jituan.services.group_finance_gate import deny_balance_add_exec
deny = deny_balance_add_exec(
request, permissions=permissions, target_user=user,
)
if deny:
return deny
action_desc = f'增加{new_yue - old_yue}'
@@ -650,6 +652,8 @@ class UpdateGuanliView(APIView):
if new_yue != old_yue:
guanshi.yue = new_yue
guanshi.save()
from jituan.services.club_context import resolve_club_id_from_request
club_id = resolve_club_id_from_request(request) or ''
write_xiugai_log(
yonghuid=yonghuid,
xiugaiid=operator,
@@ -658,7 +662,7 @@ class UpdateGuanliView(APIView):
guanshiyueq=old_yue,
qitashuoming=(
f'【后台】修改管事可提现余额:{old_yue}元 → {new_yue}元({action_desc}'
f'管事ID={yonghuid},操作人={operator}'
f'管事ID={yonghuid}俱乐部={club_id}操作人={operator}'
),
)

View File

@@ -468,14 +468,18 @@ class KefuUpdateDashouView(APIView):
elif caozuo == 'jia_yue':
if '001bb' not in permissions:
return Response({'code': 403, 'msg': '无权限加打手余额'})
from jituan.services.group_finance_gate import deny_group_finance_exec
deny = deny_group_finance_exec(request.user, request)
from jituan.services.group_finance_gate import deny_balance_add_exec
from jituan.services.club_context import resolve_club_id_from_request
deny = deny_balance_add_exec(
request, permissions=permissions, target_user=dashou_user,
)
if deny:
return deny
amount = Decimal(str(value))
dashou_profile.yue += amount
dashou_profile.save()
after = dashou_profile.yue
club_id = resolve_club_id_from_request(request) or ''
write_xiugai_log(
yonghuid=dashou_id,
xiugaiid=kefu.user.Phone,
@@ -484,7 +488,8 @@ class KefuUpdateDashouView(APIView):
xiugaitijiaoq=before['yue'],
qitashuoming=(
f'【后台】增加打手可提现余额:{before["yue"]}元 → {after}元,'
f'增加{amount}打手ID={dashou_id}操作人={kefu.user.Phone}'
f'增加{amount}打手ID={dashou_id}俱乐部={club_id}'
f'操作人={kefu.user.Phone}'
),
)
return Response({'code': 0, 'msg': '加余额成功', 'data': {'new_yue': str(after)}})
@@ -515,14 +520,18 @@ class KefuUpdateDashouView(APIView):
elif caozuo == 'jia_yajin':
if '001bb' not in permissions:
return Response({'code': 403, 'msg': '无权限加打手押金'})
from jituan.services.group_finance_gate import deny_group_finance_exec
deny = deny_group_finance_exec(request.user, request)
from jituan.services.group_finance_gate import deny_balance_add_exec
from jituan.services.club_context import resolve_club_id_from_request
deny = deny_balance_add_exec(
request, permissions=permissions, target_user=dashou_user,
)
if deny:
return deny
amount = Decimal(str(value))
dashou_profile.yajin += amount
dashou_profile.save()
after = dashou_profile.yajin
club_id = resolve_club_id_from_request(request) or ''
write_xiugai_log(
yonghuid=dashou_id,
xiugaiid=kefu.user.Phone,
@@ -531,7 +540,8 @@ class KefuUpdateDashouView(APIView):
yyajin=before['yajin'],
qitashuoming=(
f'【后台】增加打手押金:{before["yajin"]}元 → {after}元,'
f'增加{amount}打手ID={dashou_id}操作人={kefu.user.Phone}'
f'增加{amount}打手ID={dashou_id}俱乐部={club_id}'
f'操作人={kefu.user.Phone}'
),
)
return Response({'code': 0, 'msg': '加押金成功', 'data': {'new_yajin': str(after)}})
@@ -1012,8 +1022,11 @@ class KefuUpdateShangjiaView(APIView):
# 增加余额
if action == 'add_balance':
from jituan.services.group_finance_gate import deny_group_finance_exec
deny = deny_group_finance_exec(request.user, request)
from jituan.services.group_finance_gate import deny_balance_add_exec
from jituan.services.club_context import resolve_club_id_from_request
deny = deny_balance_add_exec(
request, permissions=permissions, target_user=shangjia.user,
)
if deny:
return deny
amount_str = request.data.get('amount')
@@ -1029,6 +1042,7 @@ class KefuUpdateShangjiaView(APIView):
return Response({'code': 400, 'msg': '增加后余额超出上限'})
shangjia.yue = new_yue
shangjia.save(update_fields=['yue'])
club_id = resolve_club_id_from_request(request) or ''
write_xiugai_log(
yonghuid=yonghuid,
xiugaiid=kefu.user.Phone,
@@ -1037,7 +1051,8 @@ class KefuUpdateShangjiaView(APIView):
shangjiayueq=old_yue,
qitashuoming=(
f'【后台】增加商家余额:{old_yue}元 → {new_yue}元,增加{amount}元,'
f'商家ID={yonghuid},昵称={shangjia.nicheng}操作人={kefu.user.Phone}'
f'商家ID={yonghuid},昵称={shangjia.nicheng}俱乐部={club_id}'
f'操作人={kefu.user.Phone}'
),
)
return Response({'code': 0, 'msg': '余额增加成功', 'data': {'new_balance': str(shangjia.yue)}})

View File

@@ -505,8 +505,10 @@ class UpdateZuzhangView(APIView):
if new_val > old_ketixian_jine:
if '6600a' not in permissions:
return Response({'code': 403, 'msg': '无权限增加可提现金额需要6600a'})
from jituan.services.group_finance_gate import deny_group_finance_exec
deny = deny_group_finance_exec(request.user, request)
from jituan.services.group_finance_gate import deny_balance_add_exec
deny = deny_balance_add_exec(
request, permissions=permissions, target_user=user,
)
if deny:
return deny
action_desc = f'增加{new_val - old_ketixian_jine}'
@@ -519,6 +521,8 @@ class UpdateZuzhangView(APIView):
if new_val != old_ketixian_jine:
zuzhang.ketixian_jine = new_val
zuzhang.save(update_fields=['ketixian_jine'])
from jituan.services.club_context import resolve_club_id_from_request
club_id = resolve_club_id_from_request(request) or ''
write_xiugai_log(
yonghuid=yonghuid,
xiugaiid=operator,
@@ -527,7 +531,7 @@ class UpdateZuzhangView(APIView):
xiugaitijiaoq=old_ketixian_jine,
qitashuoming=(
f'【后台】修改组长可提现金额:{old_ketixian_jine}元 → {new_val}元({action_desc}'
f'组长ID={yonghuid},操作人={operator}'
f'组长ID={yonghuid}俱乐部={club_id}操作人={operator}'
),
)