from sqlalchemy import desc from sqlalchemy.orm import Session from module_admin.entity.do.aichat_do import AiChatHistory from module_admin.entity.do.aichat_do import AiChatSession from module_admin.entity.vo.aichat_vo import AiChatModel from utils.time_format_util import list_format_datetime class AiChatDao: """ 菜单管理模块数据库操作层 """ @classmethod def get_ai_session_list(cls, db: Session,session_id: str, user_id: int): session_list = db.query(AiChatSession)\ .filter(AiChatSession.user == user_id, AiChatSession.session_id != session_id) \ .order_by(desc(AiChatSession.time)) \ .limit(20).all() return session_list @classmethod def get_ai_chat_list(cls, db: Session, session_id: str, user_id: int): chat_list = db.query(AiChatHistory) \ .filter(AiChatHistory.user == user_id, AiChatHistory.session_id == session_id) \ .order_by(AiChatHistory.time).all() return chat_list @classmethod def get_ai_chat_by_id(cls, session_id: str, db: Session, user_id: int): chat_list = db.query(AiChatSession) \ .filter(AiChatSession.user == user_id, AiChatSession.session_id == session_id).first() return chat_list @classmethod def add_ai_chat_session(cls, session_id: str, session_name: str, time: str, db: Session, user_id: int): chat_session = AiChatSession() chat_session.session_id = session_id chat_session.session_name = session_name chat_session.time = time chat_session.user = user_id db.add(chat_session) db.flush() return chat_session @classmethod def add_ai_chat_history(cls, chat: AiChatHistory, db: Session): db.add(chat) db.flush() return chat @classmethod def delete_chat_session(cls, db: Session, session_id: str, user_id: int): db.query(AiChatHistory) \ .filter(AiChatHistory.session_id == session_id) \ .delete() db.query(AiChatSession) \ .filter(AiChatSession.session_id == session_id) \ .delete() @classmethod def update_ai_chat_history(cls, update_chat: AiChatModel, db: Session): db.query(AiChatHistory) \ .filter(AiChatHistory.chat_id == update_chat.chat_id) \ .update(dict(update_chat))