package service import ( "StuAcaWorksAI/dao" "errors" ) // 创建会话服务 func CreateSession(userID int, name string) (error, uint) { err, id := dao.CreateSession(userID, name) return err, id } // 查找用户的会话列表 func FindSessionByUserID(userID int) []dao.Session { sessions := dao.FindSessionByUserID(userID) return sessions } func FindSessionByID(id, userID int) (error, []dao.Session) { session := dao.FindSessionByID(id) var res []dao.Session if session.UserID != userID { return errors.New("session not belong to user"), res } res = append(res, session) return nil, res } func DeleteSessionByID(id, userID int) error { session := dao.FindSessionByID(id) if session.UserID != userID { return errors.New("session not belong to user") } err := dao.DeleteSessionByID(id) return err } // 更新会话名字 func UpdateSessionByID(id int, userId int, name string) error { err := dao.UpdateSessionByID(id, userId, name) return err } // 创建消息服务 func CreateMessage(msgType int, sessionID int, fromID int, toID int, msg string, status int) (error, uint) { //sessionID, fromID, toID, msgType, status int, msg string err, id := dao.CreateMessage(sessionID, fromID, toID, msgType, status, msg) return err, id } // 通过会话id查询消息 func FindMessageBySessionID(sessionID, userID int) (error, []dao.Message) { //查看会话是否属于该用户 session := dao.FindSessionByID(sessionID) if session.UserID != userID { return errors.New("session not belong to user"), nil } msgs := dao.FindMessageBySessionID(sessionID) return nil, msgs } func CreateGeneralMessageService(fromID, toID, msgType, sessionID int, msg string) (error, uint) { //查看会话是否属于该用户 session := dao.FindSessionByID(sessionID) if session.UserID != fromID { return errors.New("session not belong to user"), 0 } err, mid := CreateMessage(msgType, sessionID, fromID, toID, msg, 0) return err, mid }