saw-go/service/imService.go

71 lines
1.9 KiB
Go
Raw Normal View History

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
}
2025-03-21 16:20:24 +08:00
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
}