unipay/wwwroot/manual_recharge.dspy
2025-12-16 11:25:28 +08:00

38 lines
1.3 KiB
Plaintext

userid = await get_user()
roles = await get_user_roles(userid)
debug(f'{roles=},{params_kw=}')
params_kw.amount = float(params_kw.amount)
"""
for r in roles:
if not r.startswith("owner."):
return UiError(title="手工充值", message="只有平台用户才能执行")
"""
userorgid = await get_userorgid()
if params_kw.customerid == userorgid:
return UiError(title="手工充值",message="不能给平台机构充值")
db = DBPools()
dbname = get_module_dbname('unipay')
async with db.sqlorContext(dbname) as sor:
pl = PaymentLog(request._run_ns)
biz_date = await get_business_date(sor)
recs = await sor.R('organization', {'id': params_kw.customerid})
if len(recs) < 0:
return UiError(title="手工充值",
message=f"客户机构不存在{params_kw.customerid}")
plog = await pl.sor_new_log(sor, userid, params_kw.customerid, 'agent',
'手工充值', params_kw.amount, 0.0,
request['client_ip'], currency='CNY')
await recharge_accounting(sor, params_kw.customerid, 'RECHARGE',
plog['id'],
biz_date,
params_kw.amount,
0.00)
pl.payed_log(plog.id)
return UiMessage(title="手工充值",message=f"充值{params_kw.amount} 成功")
exception(f'Exception:{db.e_except}')
return UiError(title="手工充值",
message=f"充值失败")