|
|
@ -35,17 +35,20 @@ type User struct {
|
|
|
|
Discov discoveryregistry.SvcDiscoveryRegistry
|
|
|
|
Discov discoveryregistry.SvcDiscoveryRegistry
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// NewUser 新建用户
|
|
|
|
func NewUser(discov discoveryregistry.SvcDiscoveryRegistry) *User {
|
|
|
|
func NewUser(discov discoveryregistry.SvcDiscoveryRegistry) *User {
|
|
|
|
conn, err := discov.GetConn(context.Background(), config.Config.RPCRegisterName.OpenImUserName)
|
|
|
|
conn, err := discov.GetConn(context.Background(), config.Config.RPCRegisterName.OpenImUserName)
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
client := user.NewUserClient(conn)
|
|
|
|
client := user.NewUserClient(conn)
|
|
|
|
|
|
|
|
|
|
|
|
return &User{Discov: discov, Client: client, conn: conn}
|
|
|
|
return &User{Discov: discov, Client: client, conn: conn}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
type UserRPCClient User
|
|
|
|
type UserRPCClient User
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// NewUserRPCClient 新建用户 RPC 客户端
|
|
|
|
func NewUserRPCClient(client discoveryregistry.SvcDiscoveryRegistry) UserRPCClient {
|
|
|
|
func NewUserRPCClient(client discoveryregistry.SvcDiscoveryRegistry) UserRPCClient {
|
|
|
|
return UserRPCClient(*NewUser(client))
|
|
|
|
return UserRPCClient(*NewUser(client))
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -65,24 +68,29 @@ func (u *UserRPCClient) GetUsersInfo(ctx context.Context, userIDs []string) ([]*
|
|
|
|
return resp.UsersInfo, nil
|
|
|
|
return resp.UsersInfo, nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// GetUserInfo 获取指定用户信息
|
|
|
|
func (u *UserRPCClient) GetUserInfo(ctx context.Context, userID string) (*sdkws.UserInfo, error) {
|
|
|
|
func (u *UserRPCClient) GetUserInfo(ctx context.Context, userID string) (*sdkws.UserInfo, error) {
|
|
|
|
users, err := u.GetUsersInfo(ctx, []string{userID})
|
|
|
|
users, err := u.GetUsersInfo(ctx, []string{userID})
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return users[0], nil
|
|
|
|
return users[0], nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// GetUsersInfoMap 获取用户信息集合
|
|
|
|
func (u *UserRPCClient) GetUsersInfoMap(ctx context.Context, userIDs []string) (map[string]*sdkws.UserInfo, error) {
|
|
|
|
func (u *UserRPCClient) GetUsersInfoMap(ctx context.Context, userIDs []string) (map[string]*sdkws.UserInfo, error) {
|
|
|
|
users, err := u.GetUsersInfo(ctx, userIDs)
|
|
|
|
users, err := u.GetUsersInfo(ctx, userIDs)
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return utils.SliceToMap(users, func(e *sdkws.UserInfo) string {
|
|
|
|
return utils.SliceToMap(users, func(e *sdkws.UserInfo) string {
|
|
|
|
return e.UserID
|
|
|
|
return e.UserID
|
|
|
|
}), nil
|
|
|
|
}), nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取公有用户信息
|
|
|
|
func (u *UserRPCClient) GetPublicUserInfos(
|
|
|
|
func (u *UserRPCClient) GetPublicUserInfos(
|
|
|
|
ctx context.Context,
|
|
|
|
ctx context.Context,
|
|
|
|
userIDs []string,
|
|
|
|
userIDs []string,
|
|
|
@ -102,14 +110,17 @@ func (u *UserRPCClient) GetPublicUserInfos(
|
|
|
|
}), nil
|
|
|
|
}), nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// GetPublicUserInfo 获取用户信息
|
|
|
|
func (u *UserRPCClient) GetPublicUserInfo(ctx context.Context, userID string) (*sdkws.PublicUserInfo, error) {
|
|
|
|
func (u *UserRPCClient) GetPublicUserInfo(ctx context.Context, userID string) (*sdkws.PublicUserInfo, error) {
|
|
|
|
users, err := u.GetPublicUserInfos(ctx, []string{userID}, true)
|
|
|
|
users, err := u.GetPublicUserInfos(ctx, []string{userID}, true)
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return users[0], nil
|
|
|
|
return users[0], nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// GetPublicUserInfoMap 获取用户信息集合
|
|
|
|
func (u *UserRPCClient) GetPublicUserInfoMap(
|
|
|
|
func (u *UserRPCClient) GetPublicUserInfoMap(
|
|
|
|
ctx context.Context,
|
|
|
|
ctx context.Context,
|
|
|
|
userIDs []string,
|
|
|
|
userIDs []string,
|
|
|
@ -119,11 +130,13 @@ func (u *UserRPCClient) GetPublicUserInfoMap(
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return utils.SliceToMap(users, func(e *sdkws.PublicUserInfo) string {
|
|
|
|
return utils.SliceToMap(users, func(e *sdkws.PublicUserInfo) string {
|
|
|
|
return e.UserID
|
|
|
|
return e.UserID
|
|
|
|
}), nil
|
|
|
|
}), nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// GetUserGlobalMsgRecvOpt 获取用户消息接收选项
|
|
|
|
func (u *UserRPCClient) GetUserGlobalMsgRecvOpt(ctx context.Context, userID string) (int32, error) {
|
|
|
|
func (u *UserRPCClient) GetUserGlobalMsgRecvOpt(ctx context.Context, userID string) (int32, error) {
|
|
|
|
resp, err := u.Client.GetGlobalRecvMessageOpt(ctx, &user.GetGlobalRecvMessageOptReq{
|
|
|
|
resp, err := u.Client.GetGlobalRecvMessageOpt(ctx, &user.GetGlobalRecvMessageOptReq{
|
|
|
|
UserID: userID,
|
|
|
|
UserID: userID,
|
|
|
@ -131,13 +144,16 @@ func (u *UserRPCClient) GetUserGlobalMsgRecvOpt(ctx context.Context, userID stri
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return 0, err
|
|
|
|
return 0, err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return resp.GlobalRecvMsgOpt, err
|
|
|
|
return resp.GlobalRecvMsgOpt, err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Access token 验签
|
|
|
|
func (u *UserRPCClient) Access(ctx context.Context, ownerUserID string) error {
|
|
|
|
func (u *UserRPCClient) Access(ctx context.Context, ownerUserID string) error {
|
|
|
|
_, err := u.GetUserInfo(ctx, ownerUserID)
|
|
|
|
_, err := u.GetUserInfo(ctx, ownerUserID)
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return tokenverify.CheckAccessV3(ctx, ownerUserID)
|
|
|
|
return tokenverify.CheckAccessV3(ctx, ownerUserID)
|
|
|
|
}
|
|
|
|
}
|
|
|
|