部分联系人和会话接口

This commit is contained in:
2025-12-04 08:51:40 +08:00
parent f61d567c2a
commit 10a90b262d
6 changed files with 451 additions and 12 deletions

View File

@@ -95,6 +95,7 @@ func initDB() *gorm.DB {
&model.UserContact{},
&model.ContactGroup{},
&model.ChatRoom{},
&model.ChatConversation{},
&model.FriendRequest{},
&model.VerificationCode{},
&model.Attachment{},
@@ -113,6 +114,7 @@ func initDB() *gorm.DB {
{"chat_messages", "聊天消息表,持久化存储聊天记录,包括文本、多媒体和信令状态"},
{"users", "用户基本信息表"},
{"user_contacts", "用户联系人表,存储好友关系、分组、备注等信息"},
{"chat_conversations", "用户会话表,记录每个用户的最近会话列表和未读信息"},
{"contact_groups", "联系人分组表"},
{"chat_rooms", "聊天房间表,支持点对点和群聊"},
{"friend_requests", "好友申请表"},
@@ -205,13 +207,14 @@ func main() {
}
// 步骤4: 初始化所有业务服务
service.InitChatService(db, rdb) // 聊天服务消息处理、WebSocket分发
service.InitAuthService(db, rdb) // 认证服务(登录、注册、验证码)
service.InitUserService(db) // 用户服务(用户信息管理)
service.InitContactService(db) // 联系人服务(好友管理、分组管理)
service.InitRoomService(db) // 房间服务(聊天房间管理
service.InitAttachmentService(db) // 附件服务(文件上传、管理)
service.InitLoginLogService(db) // 登录日志服务(记录登录历史
service.InitChatService(db, rdb) // 聊天服务消息处理、WebSocket分发
service.InitAuthService(db, rdb) // 认证服务(登录、注册、验证码)
service.InitUserService(db) // 用户服务(用户信息管理)
service.InitContactService(db) // 联系人服务(好友管理、分组管理)
service.InitConversationService(db) // 会话服务(最近聊天列表
service.InitRoomService(db) // 房间服务(聊天房间管理)
service.InitAttachmentService(db) // 附件服务(文件上传、管理
service.InitLoginLogService(db) // 登录日志服务(记录登录历史)
// 步骤5: 启动TURN服务器用于WebRTC音视频通话
go turnserver.Start()
@@ -339,6 +342,12 @@ func main() {
authGroup.POST("/contacts/update/:id", api.UpdateContactHandler)
authGroup.POST("/contacts/delete/:id", api.DeleteContactHandler)
// 会话管理
authGroup.GET("/conversations", api.GetConversationListHandler)
authGroup.POST("/conversations/reset-unread", api.ResetConversationUnreadHandler)
authGroup.POST("/conversations/update", api.UpdateConversationHandler)
authGroup.POST("/conversations/delete", api.DeleteConversationHandler)
// 房间管理
authGroup.POST("/rooms", api.CreateRoomHandler)
authGroup.GET("/rooms/:id", api.GetRoomHandler)