diff --git a/services/asdk/client.go b/services/asdk/client.go index c378822..ebdedef 100644 --- a/services/asdk/client.go +++ b/services/asdk/client.go @@ -61,3 +61,10 @@ func (c *Client) ClearPaySwitchCache(req *ClearPaySwitchCacheReq) (resp *ClearPa err = c.DoAction(req, resp) return } + +// GetLastLoginGame 查询玩家最近登录游戏所属的根游戏(内网接口,供 AI 客服定位玩家在玩的游戏) +func (c *Client) GetLastLoginGame(req *LastLoginGameReq) (resp *LastLoginGameResp, err error) { + resp = CreateLastLoginGameResp() + err = c.DoAction(req, resp) + return +} diff --git a/services/asdk/last_login_game.go b/services/asdk/last_login_game.go new file mode 100644 index 0000000..4e5e10b --- /dev/null +++ b/services/asdk/last_login_game.go @@ -0,0 +1,61 @@ +package asdk + +import ( + "strconv" + "strings" + + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests" + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses" +) + +// LastLoginGameReq +// 查询玩家最近登录游戏(内网接口,走 /api 分组的内部签名) +type LastLoginGameReq struct { + *requests.RpcRequest +} + +// LastLoginGameResp +// Data 为空对象(game_id=0、game_sign="")表示这些账号都没有登录记录, +// 「查不到」是正常结果而非错误,code 仍为 0。 +type LastLoginGameResp struct { + *responses.BaseResponse + Code int `json:"code"` + Msg string `json:"msg"` + Data struct { + UserName string `json:"user_name"` + GameId int64 `json:"game_id"` // 子游戏(包)ID + GameSign string `json:"game_sign"` // 根游戏标识 + GameName string `json:"game_name"` // 子游戏名,非根游戏名 + LastLoginTime int64 `json:"last_login_time"` + } `json:"data"` + TraceId string `json:"trace_id"` +} + +type LastLoginGameParam struct { + Ts int64 + Sign string + UserNames []string +} + +// CreateLastLoginGameReq 构造查询请求:多个平台账号一并下发, +// 服务端在这些账号里挑最近登录的那一条返回。 +func CreateLastLoginGameReq(param LastLoginGameParam) *LastLoginGameReq { + req := &LastLoginGameReq{ + RpcRequest: &requests.RpcRequest{}, + } + + req.InitWithApiInfo(HOST, VERSION, "/api/user/last_login_game") + req.Method = requests.POST + req.FormParams = map[string]string{ + "ts": strconv.FormatInt(param.Ts, 10), + "sign": param.Sign, + "user_names": strings.Join(param.UserNames, ","), + } + return req +} + +func CreateLastLoginGameResp() *LastLoginGameResp { + return &LastLoginGameResp{ + BaseResponse: &responses.BaseResponse{}, + } +}