From 0615a60258ac51070388d66a50c065fdb44283df Mon Sep 17 00:00:00 2001 From: chenweijian <820961417@qq.com> Date: Wed, 26 Jul 2023 15:02:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv/group_cv/group.go | 7 ++++++ cv/user_cv/user.go | 47 +++++++++++++++++++++++++++++++++++++ route/group_r/group_list.go | 14 +++++------ route/group_r/group_op.go | 6 +++++ 4 files changed, 67 insertions(+), 7 deletions(-) diff --git a/cv/group_cv/group.go b/cv/group_cv/group.go index 81d12e1..13971b1 100644 --- a/cv/group_cv/group.go +++ b/cv/group_cv/group.go @@ -123,6 +123,13 @@ type MemberDetail struct { InRoom bool `json:"inRoom"` // 是否在房间内 } +type GroupVisitorsDetail struct { + user_cv.CvGroupMember + Role group_e.GroupRoleType `json:"role"` + OnlineStatus online_e.OnlineStatusType `json:"onlineStatus"` // IM在线状态 + InRoom bool `json:"inRoom"` // 是否在房间内 +} + type GroupDetail struct { GroupBasicInfo diff --git a/cv/user_cv/user.go b/cv/user_cv/user.go index c23dce6..0969d43 100644 --- a/cv/user_cv/user.go +++ b/cv/user_cv/user.go @@ -1,6 +1,7 @@ package user_cv import ( + "encoding/json" "git.hilo.cn/hilo-common/domain" "git.hilo.cn/hilo-common/mylogrus" "git.hilo.cn/hilo-common/resource/mysql" @@ -169,6 +170,45 @@ type CvUserExtend struct { ActiveGrade uint32 `json:"activityUserGrade"` } +type CvGroupMember struct { + //不会有返回值 + Id *mysql.ID `json:"id,omitempty"` + //是否默认头像 true:是 false:不是 + DefaultAvatar *bool `json:"defaultAvatar"` + //头像,不存在为nil + Avatar *string `json:"avatar"` + //用户对外ID + ExternalId *string `json:"externalId"` + //昵称,不存在为nil + Nick *string `json:"nick"` + //签名,不存在为nil + Description *string `json:"description"` + Birthday *uint64 `json:"birthday"` + //邀请码 + Code *string `json:"code"` + //国家,不存在为nil + Country *string `json:"country"` + //国旗图标,不存在为nil + CountryIcon *string `json:"countryIcon"` + Sex *uint8 `json:"sex"` + //是否代理管理员, 只有自己查自己的时候才有值,其他情况为nil + IsAgentMgr *bool `json:"isAgentMgr"` + //是否展示年龄, 是本人才有数据,看其他用户均为nil + IsShowAge *uint8 `json:"isShowAge"` + //是否工会成员, 只有是自己查自己,这个才有值,其它全为nil, 20220329 数据开放:原因:产品1对1视频聊天中,公会用户视频需要送礼物。改为: 全部人可以知道是否是公会用户。 + IsTradeUnion *bool `json:"isTradeUnion"` + //工会成员,是否开启了,匹配通知,只有 isTradeUnion值为true,这里才有值, + IsTradeUnionMatchNotification *bool `json:"isTradeUnionMatchNotification"` + //是否VIP用户 + IsVip bool `json:"isVip"` + Ride property_cv.CvProperty `json:"ride"` // 当前使用的座驾 + Noble noble_cv.CvNoble `json:"noble"` // 当前的 + Svip rpc.CvSvip `json:"svip"` // svip结构,等级+权限 + WealthGrade uint32 `json:"wealthUserGrade"` + CharmGrade uint32 `json:"charmUserGrade"` + ActiveGrade uint32 `json:"activityUserGrade"` +} + // 批量获取用户tiny信息 func GetUserTinyMap(userIds []mysql.ID) (map[mysql.ID]CvUserTiny, error) { userTinys, _, err := GetUserTinys(userIds) @@ -1335,3 +1375,10 @@ type TopConsumersUser struct { //昵称,不存在为nil Nick *string `json:"nick"` } + +func CvUserExtendToCvGroupMember(detail CvUserExtend) CvGroupMember { + jData, _ := json.Marshal(detail) + res := CvGroupMember{} + _ = json.Unmarshal(jData, &res) + return res +} diff --git a/route/group_r/group_list.go b/route/group_r/group_list.go index e9d97f2..03e570d 100644 --- a/route/group_r/group_list.go +++ b/route/group_r/group_list.go @@ -796,7 +796,7 @@ func GetMyGroup(c *gin.Context) (*mycontext.MyContext, error) { // @Param groupId path string true "群ID" // @Param pageSize query int false "分页大小 默认:10" default(10) // @Param pageIndex query int false "第几个分页,从1开始 默认:1" default(1) -// @Success 200 {object} GroupMembersRsp +// @Success 200 {object} GetGroupVisitorsRsp // @Router /v1/imGroup/visitors/{groupId} [get] func GetGroupVisitors(c *gin.Context) (*mycontext.MyContext, error) { myContext := mycontext.CreateMyContext(c.Keys) @@ -847,7 +847,7 @@ func GetGroupVisitors(c *gin.Context) (*mycontext.MyContext, error) { } model.Log.Infof("GetGroupVisitors %s: memberNum = %d, user size = %d", groupId, len(rows), len(userIds)) - result := GroupMembersRsp{Total: uint(len(userIds))} + result := GetGroupVisitorsRsp{Total: uint(len(userIds))} beginPos := pageSize * (pageIndex - 1) if uint(beginPos) < result.Total { @@ -961,11 +961,11 @@ func GetGroupVisitors(c *gin.Context) (*mycontext.MyContext, error) { if _, ok := roomUserMap[u]; ok { inRoom = true } - result.Members = append(result.Members, group_cv.MemberDetail{ - CvUserExtend: userExtends[u], - Role: roles[u], - OnlineStatus: statusMap[users[u].ExternalId], - InRoom: inRoom, + result.Members = append(result.Members, group_cv.GroupVisitorsDetail{ + CvGroupMember: user_cv.CvUserExtendToCvGroupMember(userExtends[u]), + Role: roles[u], + OnlineStatus: statusMap[users[u].ExternalId], + InRoom: inRoom, }) } } diff --git a/route/group_r/group_op.go b/route/group_r/group_op.go index 190e84c..e18b6ac 100644 --- a/route/group_r/group_op.go +++ b/route/group_r/group_op.go @@ -1238,6 +1238,12 @@ type GroupMembersRsp struct { Total uint `json:"total"` } +type GetGroupVisitorsRsp struct { + Members []group_cv.GroupVisitorsDetail `json:"members"` + Online uint `json:"online"` // 在线人数 + Total uint `json:"total"` +} + // @Tags 群组 // @Summary 获取永久成员列表 // @Accept application/x-www-form-urlencoded -- 2.22.0