40 lines
1.1 KiB
Plaintext
40 lines
1.1 KiB
Plaintext
|
|
db = DBPools()
|
|
dbname = get_module_dbname('rag')
|
|
async with db.sqlorContext(dbname) as sor:
|
|
orgid = await get_userorgid()
|
|
programs = await sor.R('ragprogram', {'id': params_kw.selected_program})
|
|
if len(programs) < 1:
|
|
e = Exception(f'selected program({params_kw.selected_program}) not exists')
|
|
exception(f'{e}')
|
|
raise e
|
|
program = programs[0]
|
|
sql="select * from ragquota where orgid = ${orgid}$ order by enabled_date"
|
|
qs = await sor.sqlExe(sql, {'orgid': orgid})
|
|
today = curDateString()
|
|
expired_date = strdate_add(today, months=program.term)
|
|
if len(qs) == 0:
|
|
ns = {
|
|
"id": uuid(),
|
|
"orgid": orgid,
|
|
"enabled_date": today,
|
|
"expired_date": expired_date,
|
|
'quota': program.quota
|
|
}
|
|
await sor.C('ragquota', ns)
|
|
else:
|
|
lastq = qs[-1]
|
|
lastq.expired_date = today
|
|
await sor.U('ragquota', lastq.copy())
|
|
ns = {
|
|
"id": uuid(),
|
|
"orgid": orgid,
|
|
"enabled_date": today,
|
|
"expired_date": expired_date,
|
|
'quota': program.quota
|
|
}
|
|
await sor.C('ragquota', ns)
|
|
return UiMessage(title="set quota", message="set quota success")
|
|
e = db.e_except
|
|
return UiError(title="set quota", message=f'set quota error:{e}')
|