rag/wwwroot/program_selected.dspy
2025-08-27 15:06:45 +08:00

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}')