添加获取好友列表及加入群组
This commit is contained in:
parent
63dee0c857
commit
cd42b443f2
18
dao/im.go
18
dao/im.go
|
|
@ -176,3 +176,21 @@ func FindFriend(from_user_id, to_user_id int) []Friend {
|
||||||
DB.Debug().Where("user_id = ? and friend_id = ?", from_user_id, to_user_id).Find(&friends)
|
DB.Debug().Where("user_id = ? and friend_id = ?", from_user_id, to_user_id).Find(&friends)
|
||||||
return friends
|
return friends
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FriendRet struct {
|
||||||
|
ID int `json:"id"` //用户id
|
||||||
|
Username string `json:"username"` //用户名
|
||||||
|
Avatar string `json:"avatar"` //头像
|
||||||
|
}
|
||||||
|
|
||||||
|
func FindFriends(user_id int) []FriendRet {
|
||||||
|
var friends []FriendRet
|
||||||
|
DB.Debug().Raw("select users.id, users.username, users.avatar from users join friends on users.id = friends.friend_id where friends.user_id = ?", user_id).Scan(&friends)
|
||||||
|
return friends
|
||||||
|
}
|
||||||
|
|
||||||
|
func FindGroups(user_id int) []Group {
|
||||||
|
var groups []Group
|
||||||
|
DB.Debug().Raw("select groups.* from groups join group_users on groups.id = group_users.group_id where group_users.user_id = ?", user_id).Scan(&groups)
|
||||||
|
return groups
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,7 @@ func SetUpIMGroup(router *gin.Engine) {
|
||||||
imGroup.POST("/accept_invite", AcceptInvite)
|
imGroup.POST("/accept_invite", AcceptInvite)
|
||||||
imGroup.POST("/create_group", CreateGroup)
|
imGroup.POST("/create_group", CreateGroup)
|
||||||
imGroup.GET("/sse_msg", ServerSendMsg)
|
imGroup.GET("/sse_msg", ServerSendMsg)
|
||||||
|
imGroup.POST("/get_friend_list", GetFriendList) //获取好友列表,包括群聊
|
||||||
}
|
}
|
||||||
func generateRandomHexString(length int) (string, error) {
|
func generateRandomHexString(length int) (string, error) {
|
||||||
bytes := make([]byte, length/2) // 16字节的字符串需要32个十六进制字符,即16个字节
|
bytes := make([]byte, length/2) // 16字节的字符串需要32个十六进制字符,即16个字节
|
||||||
|
|
@ -74,6 +75,13 @@ func generateRandomHexString(length int) (string, error) {
|
||||||
}
|
}
|
||||||
return hex.EncodeToString(bytes), nil
|
return hex.EncodeToString(bytes), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetFriendList(c *gin.Context) {
|
||||||
|
id, _ := c.Get("id")
|
||||||
|
user_id := int(id.(float64))
|
||||||
|
data := service.GetFriendList(user_id)
|
||||||
|
c.JSON(http.StatusOK, gin.H{"code": proto.SuccessCode, "data": data, "message": "success"})
|
||||||
|
}
|
||||||
func GetMessage(c *gin.Context) {
|
func GetMessage(c *gin.Context) {
|
||||||
var req Message
|
var req Message
|
||||||
user_id, _ := c.Get("id")
|
user_id, _ := c.Get("id")
|
||||||
|
|
|
||||||
|
|
@ -108,3 +108,18 @@ func CreateGroup(groupName, groupInfo, groupType, groupIcon string, user_id int)
|
||||||
err, id := dao.CreateGroup(groupName, groupInfo, groupType, groupIcon, user_id)
|
err, id := dao.CreateGroup(groupName, groupInfo, groupType, groupIcon, user_id)
|
||||||
return err, id
|
return err, id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FGRet struct {
|
||||||
|
Friends []dao.FriendRet `json:"friends"`
|
||||||
|
Groups []dao.Group `json:"groups"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetFriendList(user_id int) FGRet {
|
||||||
|
//获取好友id和群id
|
||||||
|
friends := dao.FindFriends(user_id)
|
||||||
|
groups := dao.FindGroups(user_id)
|
||||||
|
var fg FGRet
|
||||||
|
fg.Friends = friends
|
||||||
|
fg.Groups = groups
|
||||||
|
return fg
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue