diff --git a/services/passport/client.go b/services/passport/client.go index 13c3a75..feaed86 100644 --- a/services/passport/client.go +++ b/services/passport/client.go @@ -102,3 +102,11 @@ func (c *Client) GetUserId(req *GetUserIdRequest) (response *GetUserIdResponse, err = c.DoAction(req, response) return } + +// GetUserLogin +// 获取用户登陆信息 +func (c *Client) GetUserLogin(req *GetUserLoginRequest) (response *GetUserLoginResponse, err error) { + response = CreateGetUserLoginResponse() + err = c.DoAction(req, response) + return +} diff --git a/services/passport/client_test.go b/services/passport/client_test.go index 6f07bd0..f64acc4 100644 --- a/services/passport/client_test.go +++ b/services/passport/client_test.go @@ -212,3 +212,21 @@ func TestGetUserId(t *testing.T) { fmt.Printf("raw: %s\n", resp.GetHttpContentString()) fmt.Printf("data: %+v\n", data) } + +// 测试获取用户登陆信息 +func TestGetUserLogin(t *testing.T) { + client, err := NewClient() + if err != nil { + t.Error(err) + return + } + req := CreateGetUserLoginRequest("gr28063399") + resp, err := client.GetUserLogin(req) + if err != nil { + t.Error(err) + return + } + + fmt.Printf("raw: %s\n", resp.GetHttpContentString()) + fmt.Printf("data: %+v\n, %d", resp.Data, len(resp.Data)) +} diff --git a/services/passport/userinfo.go b/services/passport/userinfo.go index 3b84e82..670ff09 100644 --- a/services/passport/userinfo.go +++ b/services/passport/userinfo.go @@ -280,3 +280,54 @@ func CreateGetUserLabelsResponse() (response *GetUserLabelsResponse) { } return } + +type GetUserLoginRequest struct { + *requests.RpcRequest +} + +type GetUserLoginResponse struct { + *responses.BaseResponse + Code int `json:"code"` + Msg string `json:"msg"` + Data map[string]UserLogin `json:"data"` +} + +type UserLogin struct { + Uid int64 `json:"uid"` + UserName string `json:"user_name"` + GameId int64 `json:"game_id"` + Imei string `json:"imei"` + Imei2 string `json:"imei2"` + LastLoginTime int64 `json:"last_login_time"` + LastLoginIp string `json:"last_login_ip"` + AgentId int64 `json:"agent_id"` + SiteId int64 `json:"site_id"` + FirstLoginTime int64 `json:"first_login_time"` +} + +// CreateGetUserLoginRequest 获取用户登陆信息 +func CreateGetUserLoginRequest(userNames string) (req *GetUserLoginRequest) { + ts, sign := GetSign() + + req = &GetUserLoginRequest{ + RpcRequest: &requests.RpcRequest{}, + } + req.InitWithApiInfo(HOST, VERSION, "/remote_login.php") + req.FormParams = map[string]string{ + "act": "info", + "do": "get_user_login", + "user_names": userNames, + "time": fmt.Sprintf("%v", ts), + "sign": sign, + } + + req.Method = requests.POST + return +} + +func CreateGetUserLoginResponse() (response *GetUserLoginResponse) { + response = &GetUserLoginResponse{ + BaseResponse: &responses.BaseResponse{}, + } + return +}