feat(im): Task 3 - IM Service 核心业务 + DTO + 接口定义
IMService 核心方法: - SendMessage: 发送消息(好友校验→查找/创建会话→幂等去重→写入→推送) - RecallMessage: 2分钟撤回 - GetConversationList: 会话列表(含对方用户信息) - GetHistoryMessages: 游标分页历史消息 - MarkRead / PinConversation / DeleteConversation / ClearHistory - SearchMessages: 全局消息搜索 - GetTotalUnread: Redis 全局未读总数 DTO: - SendMessageRequest / RecallMessageRequest - ConversationDTO / HistoryMessageResponse - SearchMessageRequest / MarkReadRequest / TypingRequest 接口: - FriendChecker: 好友校验(contact 模块注入) - UserInfoGetter: 用户信息批量查询(contact 模块注入) Made-with: Cursor
This commit is contained in:
20
backend/go-service/app/im/service/interfaces.go
Normal file
20
backend/go-service/app/im/service/interfaces.go
Normal file
@@ -0,0 +1,20 @@
|
||||
// Package service 提供 IM 模块的业务逻辑
|
||||
package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
authModel "github.com/echochat/backend/app/auth/model"
|
||||
)
|
||||
|
||||
// FriendChecker 好友关系校验接口
|
||||
// 由 contact.FriendshipDAO 隐式实现,通过 Wire 接口注入避免直接依赖 contact 包
|
||||
type FriendChecker interface {
|
||||
IsFriend(ctx context.Context, userID, targetID int64) (bool, error)
|
||||
}
|
||||
|
||||
// UserInfoGetter 用户信息批量查询接口
|
||||
// 由 contact.FriendshipDAO 隐式实现,返回 id/username/nickname/avatar
|
||||
type UserInfoGetter interface {
|
||||
GetUsersByIDs(ctx context.Context, userIDs []int64) ([]authModel.User, error)
|
||||
}
|
||||
Reference in New Issue
Block a user