def _escape(value): if value is None: return None return str(value).replace("'", "''") async def chat_session_delete(ns={}): """删除会话及其全部消息""" session_id = ns.get('session_id') if not session_id: return {'status': False, 'msg': 'session_id is required'} userid = ns.get('userid') or await get_user() if not userid: return {'status': False, 'msg': '未找到用户'} db = DBPools() async with db.sqlorContext('kboss') as sor: try: sessions = await sor.R('chat_session', {'id': session_id, 'userid': userid}) if not sessions: return {'status': False, 'msg': '会话不存在'} await sor.sqlExe( "DELETE FROM chat_message WHERE session_id = '%s';" % _escape(session_id), {}, ) await sor.sqlExe( "DELETE FROM chat_session WHERE id = '%s' AND userid = '%s';" % (_escape(session_id), _escape(userid)), {}, ) return {'status': True, 'msg': 'delete success'} except Exception as e: return {'status': False, 'msg': 'delete failed, %s' % str(e)} ret = await chat_session_delete(params_kw) return ret