57 lines
1.5 KiB
Go
57 lines
1.5 KiB
Go
|
|
package dao
|
|||
|
|
|
|||
|
|
import "gorm.io/gorm"
|
|||
|
|
|
|||
|
|
type Message struct {
|
|||
|
|
gorm.Model
|
|||
|
|
FromUserID int `gorm:"column:from_user_id"`
|
|||
|
|
ToUserID int `gorm:"column:to_user_id"`
|
|||
|
|
GroupID int `gorm:"column:group_id"`
|
|||
|
|
Msg string `gorm:"column:msg"`
|
|||
|
|
Status int `gorm:"column:status"` //单聊时才有0,已读,2未读
|
|||
|
|
Type int `gorm:"column:type"` //1为单聊,2为群聊,3为系统消息
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type Group struct {
|
|||
|
|
gorm.Model
|
|||
|
|
GroupName string `gorm:"column:group_name"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type GroupUser struct {
|
|||
|
|
gorm.Model
|
|||
|
|
GroupID int `gorm:"column:group_id"`
|
|||
|
|
UserID int `gorm:"column:user_id"`
|
|||
|
|
IsMaster int `gorm:"column:is_master"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type Friend struct {
|
|||
|
|
gorm.Model
|
|||
|
|
UserID int `gorm:"column:user_id"`
|
|||
|
|
FriendID int `gorm:"column:friend_id"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 创建单聊消息
|
|||
|
|
func CreateSimpleMessage(from_user_id, to_user_id int, message string) error {
|
|||
|
|
msg := Message{FromUserID: from_user_id, ToUserID: to_user_id, Msg: message, Type: 1, Status: 0}
|
|||
|
|
res := DB.Debug().Create(msg)
|
|||
|
|
return res.Error
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 每20个消息一组,请求index*20
|
|||
|
|
func GetMsgUserByIndex(from_user_id, to_user_id, index int) ([]Message, error) {
|
|||
|
|
var msgs []Message
|
|||
|
|
res := DB.Debug().Where("from_user_id = ? and to_user_id = ?", from_user_id, to_user_id).Find(&msgs).Order("order by createAt DESC").Limit(20 * index)
|
|||
|
|
return msgs, res.Error
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 修改信息
|
|||
|
|
func UpdateMessage() {
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func FindMessageByID(id uint) []Message {
|
|||
|
|
var msgs []Message
|
|||
|
|
DB.Debug().Where("id = ?", id).Find(msgs)
|
|||
|
|
return msgs
|
|||
|
|
}
|