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