package imgroupmemberser import ( "91porn-server/common/log" "91porn-server/models/cache/imgroupmemberdata" "91porn-server/models/commod" "91porn-server/models/v/imgroupmembermod" "go.mongodb.org/mongo-driver/bson" ) type AppQueryListReq struct { commod.Page } type AppListRes struct { Total int64 `json:"total"` HasNext bool `json:"hasNext"` List []*imgroupmembermod.ImGroupMemberInfo `json:"list"` } // GetList 获取列表 func (p *AppQueryListReq) GetList() AppListRes { var res AppListRes var err error filter := bson.M{} sort := bson.D{{"_id", -1}} // 获取列表 var data []imgroupmembermod.ImGroupMember data, res.Total, res.HasNext, err = imgroupmemberdata.GetListFromCache(filter, int64(p.Skip()), int64(p.Limit()), sort) if err != nil { log.Error("获取im群组成员列表数据错误", log.Any("Params", *p), log.E(err)) return res } res.List = imgroupmemberdata.FormatAppDataList(data) return res } type HasJoinReq struct { GroupId int64 `json:"groupId" form:"groupId" binding:"required"` } type HasJoinRes struct { Status int `json:"status"` // 0-已被禁言 1-可发言 2-未加入 } // GetInfo 获取详情 func (p *HasJoinReq) GetInfo(uid uint64) (res HasJoinRes, err error) { item, err := imgroupmembermod.GetInfoByCond(bson.M{"groupId": p.GroupId, "uid": uid}) if err != nil { log.Error("获取im群组成员详情数据错误", log.Any("groupId", p.GroupId), log.Any("uid", uid), log.E(err)) return } if item.ID.IsZero() || item.Status == 2 { res.Status = 2 //.未加入 } else { res.Status = item.Status } return }