统一记录后台敏感操作到 xiugaijilu,并提供管理员操作日志查询接口。

覆盖商家/管事/组长资金与封禁、冻结解冻、后台账号变更;列表接口权限 000001。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-17 01:41:35 +08:00
parent 83ccdff0f5
commit d3f6ff34bb
7 changed files with 545 additions and 10 deletions

View File

@@ -66,6 +66,22 @@ class DongjieUserConfigView(APIView):
try:
with transaction.atomic():
data = save_user_freeze_settings(user_main, leixing, request.data)
from yonghu.xiugai_log import (
write_xiugai_log, FREEZE_TO_XIUGAI_LEIXING, FREEZE_LEIXING_NAME,
)
role_name = FREEZE_LEIXING_NAME.get(leixing, str(leixing))
write_xiugai_log(
yonghuid=yonghuid,
operator_phone=kefu.user.phone,
leixing=FREEZE_TO_XIUGAI_LEIXING.get(leixing, 0),
qitashuoming=(
f'保存用户冻结配置[{role_name}]'
f'单独开关={data.get("dandu_dongjie_enabled")}'
f'模式={data.get("dongjie_mode")}'
f'比例={data.get("dongjie_bili")}'
f'固定额={data.get("dongjie_guding_jine")}'
),
)
return Response({'code': 0, 'msg': '保存成功', 'data': data})
except ValueError as e:
return Response({'code': 400, 'msg': str(e)})
@@ -81,6 +97,35 @@ class DongjieUserConfigView(APIView):
user_main, leixing, jine,
operator_id=username, beizhu=beizhu,
)
from yonghu.xiugai_log import (
write_xiugai_log, FREEZE_TO_XIUGAI_LEIXING, FREEZE_LEIXING_NAME,
)
role_name = FREEZE_LEIXING_NAME.get(leixing, str(leixing))
xiugai_leixing = FREEZE_TO_XIUGAI_LEIXING.get(leixing, 0)
log_kwargs = {
'yonghuid': yonghuid,
'operator_phone': kefu.user.phone,
'leixing': xiugai_leixing,
'qitashuoming': (
f'管理员解冻[{role_name}] {result["unfreeze_jine"]}'
f'余额 {result["balance_before"]}{result["balance_after"]}'
f'冻结池 {result["dongjie_chi_before"]}{result["dongjie_chi_after"]}'
+ (f';备注:{beizhu}' if beizhu else '')
),
}
if leixing == 1:
log_kwargs['dashou_yue_before'] = result['balance_before']
log_kwargs['dashou_yue_after'] = result['balance_after']
elif leixing == 5:
log_kwargs['yajin_before'] = result['balance_before']
log_kwargs['yajin_after'] = result['balance_after']
elif leixing == 2:
log_kwargs['guanshi_yue_before'] = result['balance_before']
log_kwargs['guanshi_yue_after'] = result['balance_after']
elif leixing == 6:
log_kwargs['shangjia_yue_before'] = result['balance_before']
log_kwargs['shangjia_yue_after'] = result['balance_after']
write_xiugai_log(**log_kwargs)
info = get_user_freeze_info(user_main, leixing)
info['balance'] = str(result['balance_after'])
info['dongjie_chi'] = str(result['dongjie_chi_after'])