package model import ( "gorm.io/gorm" "hospital-admin-api/global" "time" ) // MessageIm IM消息表 type MessageIm struct { MessageId int64 `gorm:"column:message_id;type:bigint(19);primary_key;comment:主键id" json:"message_id"` FromUserId string `gorm:"column:from_user_id;type:varchar(30);comment:发送方user_id" json:"from_user_id"` ToUserId int64 `gorm:"column:to_user_id;type:bigint(20);comment:接收方user_id;NOT NULL" json:"to_user_id"` MessageKey string `gorm:"column:message_key;type:varchar(255);comment:消息唯一标识(系统返回,撤回消息使用)" json:"message_key"` MessageSendTime string `gorm:"column:message_send_time;type:varchar(11);comment:消息发送时间戳" json:"message_send_time"` MessageSeq int `gorm:"column:message_seq;type:int(11);comment:消息序列号(单聊消息优先使用 MsgTime 进行排序,同一秒发送的消息则按 MsgSeq 排序,MsgSeq 值越大消息越靠后)" json:"message_seq"` MessageSendResult int `gorm:"column:message_send_result;type:tinyint(4);default:0;comment:消息下发结果(0:失败 1:成功)" json:"message_send_result"` SendErrorInfo string `gorm:"column:send_error_info;type:varchar(255);comment:消息下发失败原因" json:"send_error_info"` MessageType string `gorm:"column:message_type;type:varchar(50);comment:消息类型(具体查看:https://cloud.tencent.com/document/product/269/2720)" json:"message_type"` IsSystem int `gorm:"column:is_system;type:tinyint(4);default:0;comment:是否系统操作发送(0:否 1:是)" json:"is_system"` OrderInquiryId int64 `gorm:"column:order_inquiry_id;type:bigint(19);comment:问诊id(自定义字段)" json:"order_inquiry_id"` MessageContent string `gorm:"column:message_content;type:text;comment:消息内容(json形式)" json:"message_content"` MessageCustomContent string `gorm:"column:message_custom_content;type:text;comment:自定义消息内容(json形式)" json:"message_custom_content"` Model } func (m *MessageIm) TableName() string { return "gdxz_message_im" } func (m *MessageIm) BeforeCreate(tx *gorm.DB) error { if m.MessageId == 0 { m.MessageId = global.Snowflake.Generate().Int64() } m.CreatedAt = LocalTime(time.Now()) tx.Statement.SetColumn("CreatedAt", m.CreatedAt) m.UpdatedAt = LocalTime(time.Now()) tx.Statement.SetColumn("UpdatedAt", m.UpdatedAt) return nil }