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"充值失败")