package rpc import "fmt" // 用户相关RPC type User struct{} // 获取用户详情 func (u *User) GetDetail(userId uint32) (*UserDetail, error) { body := map[string]any{ "user_id": userId, "field_list": []string{"mobile", "email", "nickname", "qq", "status"}, } result := &Result[UserDetail]{} if err := GetRequest().Send("user.get_detail", body, result); err != nil { return nil, err } if result.Code != 0 { return nil, fmt.Errorf("%s", result.Message) } return &result.Data, nil } // 获取Websocket签名信息 func (s *User) GetWebsocketSignData(sign string) (*WebsocketSignData, error) { body := map[string]any{ "sign": sign, } result := &Result[WebsocketSignData]{} if err := GetRequest().Send("user.get_websocket_sign", body, result); err != nil { return nil, err } if result.Code != 0 { return nil, fmt.Errorf("%s", result.Message) } return &result.Data, nil } // 删除Websocket签名 func (s *User) DeleteWebsocketSign(sign string) error { body := map[string]any{ "sign": sign, } result := &Result[WebsocketSignData]{} if err := GetRequest().Send("user.get_websocket_sign", body, result); err != nil { return err } if result.Code != 0 { return fmt.Errorf("%s", result.Message) } return nil } var user *User // 获取用户相关RPC func GetUser() *User { if user == nil { user = &User{} } return user }