Feat: room member add onLine filed

pull/134/head
zijiren233 2 years ago
parent 1920757a41
commit 74fea6de34

@ -241,3 +241,8 @@ func (h *Hub) SendToUser(userID string, data Message) (err error) {
}
return
}
func (h *Hub) IsOnline(userID string) bool {
_, ok := h.clients.Load(userID)
return ok
}

@ -351,6 +351,11 @@ func (r *Room) UnregisterClient(cli *Client) error {
return r.hub.UnRegClient(cli)
}
func (r *Room) IsOnline(userID string) bool {
r.lazyInitHub()
return r.hub.IsOnline(userID)
}
func (r *Room) SetCurrentStatus(playing bool, seek float64, rate float64, timeDiff float64) *Status {
return r.current.SetStatus(playing, seek, rate, timeDiff)
}

@ -293,17 +293,18 @@ func AdminGetRoomMembers(ctx *gin.Context) {
ctx.JSON(http.StatusOK, model.NewApiDataResp(gin.H{
"total": total,
"list": genRoomMemberListResp(list),
"list": genRoomMemberListResp(list, room),
}))
}
func genRoomMemberListResp(us []*dbModel.User) []*model.RoomMembersResp {
func genRoomMemberListResp(us []*dbModel.User, room *op.Room) []*model.RoomMembersResp {
resp := make([]*model.RoomMembersResp, len(us))
for i, v := range us {
resp[i] = &model.RoomMembersResp{
UserID: v.ID,
Username: v.Username,
JoinAt: v.RoomMembers[0].CreatedAt.UnixMilli(),
OnLine: room.IsOnline(v.ID),
Role: v.RoomMembers[0].Role,
RoomID: v.RoomMembers[0].RoomID,
Permissions: v.RoomMembers[0].Permissions,

@ -90,7 +90,7 @@ func RoomMembers(ctx *gin.Context) {
ctx.JSON(http.StatusOK, model.NewApiDataResp(gin.H{
"total": total,
"list": genRoomMemberListResp(list),
"list": genRoomMemberListResp(list, room),
}))
}
@ -180,7 +180,7 @@ func RoomAdminMembers(ctx *gin.Context) {
ctx.JSON(http.StatusOK, model.NewApiDataResp(gin.H{
"total": total,
"list": genRoomMemberListResp(list),
"list": genRoomMemberListResp(list, room),
}))
}

@ -8,6 +8,7 @@ type RoomMembersResp struct {
UserID string `json:"userId"`
Username string `json:"username"`
JoinAt int64 `json:"joinAt"`
OnLine bool `json:"onLine"`
Role dbModel.RoomMemberRole `json:"role"`
RoomID string `json:"roomId"`
Permissions dbModel.RoomMemberPermission `json:"permissions"`

Loading…
Cancel
Save