新增 game.getRole 和 passport.getUserId 接口
- services/game: 新增 GetRole 接口,入参结构体含 game_id/user_id/user_name/reg_time/role_id/server_id/use_cache/no_virtual,响应含 role_info 和 role_list_info - services/passport: 新增 GetUserId 接口,通过用户名查询 uid,type 写死为 1,响应提供 GetData() 解析为 map - 补充两个接口的 client_test.go 使用示例
This commit is contained in:
parent
fe038d91f3
commit
04ec0d92d7
@ -67,3 +67,67 @@ func CreateGetAnchorUserResp() *GetAnchorUserResp {
|
|||||||
BaseResponse: &responses.BaseResponse{},
|
BaseResponse: &responses.BaseResponse{},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type GetRoleReq struct {
|
||||||
|
*requests.RpcRequest
|
||||||
|
GameId int64 `position:"Body" field:"game_id"`
|
||||||
|
UserId string `position:"Body" field:"user_id"`
|
||||||
|
UserName string `position:"Body" field:"user_name"`
|
||||||
|
RegTime int64 `position:"Body" field:"reg_time"`
|
||||||
|
RoleId string `position:"Body" field:"role_id"`
|
||||||
|
ServerId int64 `position:"Body" field:"server_id"`
|
||||||
|
UseCache int64 `position:"Body" field:"use_cache"`
|
||||||
|
NoVirtual int64 `position:"Body" field:"no_virtual"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type RoleItem struct {
|
||||||
|
RoleId int64 `json:"roleId"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Server int64 `json:"server"`
|
||||||
|
ServerName string `json:"serverName"`
|
||||||
|
Level int64 `json:"level"`
|
||||||
|
VipLevel int64 `json:"vipLevel"`
|
||||||
|
CreateTime int64 `json:"createTime"`
|
||||||
|
RoleLevelUpdateTime int64 `json:"roleLevelUpdateTime"`
|
||||||
|
Power int64 `json:"power"`
|
||||||
|
Profession string `json:"profession"`
|
||||||
|
Gold int64 `json:"gold"`
|
||||||
|
CouponCount any `json:"couponCount"`
|
||||||
|
CouponActCount any `json:"couponActCount"`
|
||||||
|
ZhuanshengLv int64 `json:"zhuansheng_lv"`
|
||||||
|
ZhuanshengName string `json:"zhuanshengName"`
|
||||||
|
Points int64 `json:"points"`
|
||||||
|
MiniCustomsPass any `json:"miniCustomsPass"`
|
||||||
|
CardIds string `json:"cardIds"`
|
||||||
|
DayData any `json:"dayData"`
|
||||||
|
RoleExtData any `json:"roleExtData"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type RoleInfo struct {
|
||||||
|
RoleItem
|
||||||
|
FromCache int64 `json:"from_cache"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetRoleResp struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
Code int `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Data struct {
|
||||||
|
RoleInfo RoleInfo `json:"role_info"`
|
||||||
|
RoleListInfo []RoleItem `json:"role_list_info"`
|
||||||
|
} `json:"data"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateGetRoleReq(param *GetRoleReq) *GetRoleReq {
|
||||||
|
if param == nil {
|
||||||
|
param = &GetRoleReq{}
|
||||||
|
}
|
||||||
|
param.RpcRequest = &requests.RpcRequest{}
|
||||||
|
param.InitWithApiInfo(HOST, VERSION, "/api/activity/getRole")
|
||||||
|
param.Method = requests.POST
|
||||||
|
return param
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateGetRoleResp() *GetRoleResp {
|
||||||
|
return &GetRoleResp{BaseResponse: &responses.BaseResponse{}}
|
||||||
|
}
|
||||||
|
|||||||
@ -198,3 +198,10 @@ func (c *Client) MakeOrder(req *MakeOrderReq) (response *MakeOrderResp, err erro
|
|||||||
err = c.DoAction(req, response)
|
err = c.DoAction(req, response)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetRole 获取游戏角色信息
|
||||||
|
func (c *Client) GetRole(req *GetRoleReq) (response *GetRoleResp, err error) {
|
||||||
|
response = CreateGetRoleResp()
|
||||||
|
err = c.DoAction(req, response)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|||||||
@ -410,3 +410,24 @@ func TestCreateMakeOrderReq(t *testing.T) {
|
|||||||
}
|
}
|
||||||
fmt.Println(resp.Msg)
|
fmt.Println(resp.Msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetRole(t *testing.T) {
|
||||||
|
client, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
//game_id=9175&server_id=0&user_id=247058227&user_name=yg90938415&no_virtual=1
|
||||||
|
req := CreateGetRoleReq(&GetRoleReq{
|
||||||
|
GameId: 9175,
|
||||||
|
UserId: "247058227",
|
||||||
|
UserName: "yg90938415",
|
||||||
|
NoVirtual: 1,
|
||||||
|
})
|
||||||
|
resp, err := client.GetRole(req)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Println(resp.Data.RoleListInfo)
|
||||||
|
}
|
||||||
|
|||||||
@ -95,3 +95,10 @@ func (c *Client) GetUserRegInfo(req *GetUserRegInfoRequest) (response *GetUserRe
|
|||||||
err = c.DoAction(req, response)
|
err = c.DoAction(req, response)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetUserId 通过用户名查询 uid
|
||||||
|
func (c *Client) GetUserId(req *GetUserIdRequest) (response *GetUserIdResponse, err error) {
|
||||||
|
response = CreateGetUserIdResponse()
|
||||||
|
err = c.DoAction(req, response)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|||||||
@ -40,6 +40,29 @@ func TestGetUserRoleList(t *testing.T) {
|
|||||||
t.Logf("resp data:%+v", resp.Data)
|
t.Logf("resp data:%+v", resp.Data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetUserRoleList2(t *testing.T) {
|
||||||
|
client, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
// 不限定角色
|
||||||
|
//req := CreateGetUserRoleListRequest(221016372, 7874, 0, "")
|
||||||
|
// 限定角色
|
||||||
|
req := CreateGetUserRoleListRequest2(GetUserRoleListParam{
|
||||||
|
Uid: 0,
|
||||||
|
Username: "rz35990497",
|
||||||
|
GameId: 7874,
|
||||||
|
RoleId: 0,
|
||||||
|
RoleServer: "",
|
||||||
|
})
|
||||||
|
resp, err := client.GetUserRoleList(req)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
t.Logf("resp code:%+v", resp.Code)
|
||||||
|
t.Logf("resp data:%+v", resp.Data)
|
||||||
|
}
|
||||||
|
|
||||||
func TestEditCard(t *testing.T) {
|
func TestEditCard(t *testing.T) {
|
||||||
client, err := NewClient()
|
client, err := NewClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -167,3 +190,25 @@ func TestGetUserRegInfo(t *testing.T) {
|
|||||||
fmt.Printf("%#+v\n", resp)
|
fmt.Printf("%#+v\n", resp)
|
||||||
fmt.Printf("%#+v\n", resp.Data)
|
fmt.Printf("%#+v\n", resp.Data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 测试通过用户名查询 uid
|
||||||
|
func TestGetUserId(t *testing.T) {
|
||||||
|
client, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := CreateGetUserIdRequest("ws45265737")
|
||||||
|
resp, err := client.GetUserId(req)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
data, err := resp.GetData()
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("解析返回数据失败: %v, raw: %s", err, resp.GetHttpContentString())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Printf("raw: %s\n", resp.GetHttpContentString())
|
||||||
|
fmt.Printf("data: %+v\n", data)
|
||||||
|
}
|
||||||
|
|||||||
46
services/passport/get_userid.go
Normal file
46
services/passport/get_userid.go
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
package passport
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GetUserIdRequest 通过用户名查询 uid
|
||||||
|
type GetUserIdRequest struct {
|
||||||
|
*requests.RpcRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetUserIdResponse 返回 {"uid": "user_name", ...} 格式的 map
|
||||||
|
type GetUserIdResponse struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetData 解析返回的 map,key 为 uid,value 为 user_name
|
||||||
|
func (r *GetUserIdResponse) GetData() (map[string]string, error) {
|
||||||
|
result := make(map[string]string)
|
||||||
|
err := json.Unmarshal(r.GetHttpContentBytes(), &result)
|
||||||
|
return result, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateGetUserIdRequest 构造请求,user_name 支持逗号分隔多个
|
||||||
|
func CreateGetUserIdRequest(userName string) *GetUserIdRequest {
|
||||||
|
req := &GetUserIdRequest{RpcRequest: &requests.RpcRequest{}}
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/api/get_userid.php")
|
||||||
|
if !strings.Contains(userName, ",") {
|
||||||
|
userName = fmt.Sprintf("%v,%v", userName, userName)
|
||||||
|
}
|
||||||
|
req.QueryParams = map[string]string{
|
||||||
|
"user_name": userName,
|
||||||
|
"type": "1",
|
||||||
|
}
|
||||||
|
req.Method = requests.GET
|
||||||
|
return req
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateGetUserIdResponse() *GetUserIdResponse {
|
||||||
|
return &GetUserIdResponse{BaseResponse: &responses.BaseResponse{}}
|
||||||
|
}
|
||||||
@ -4,9 +4,10 @@ import (
|
|||||||
"crypto/md5"
|
"crypto/md5"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type GetUserListRequest struct {
|
type GetUserListRequest struct {
|
||||||
@ -100,6 +101,14 @@ type UserRoleInfo struct {
|
|||||||
UpdateTime string `json:"update_time"` // 更新时间戳
|
UpdateTime string `json:"update_time"` // 更新时间戳
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type GetUserRoleListParam struct {
|
||||||
|
Uid int
|
||||||
|
Username string
|
||||||
|
GameId int
|
||||||
|
RoleId int
|
||||||
|
RoleServer string
|
||||||
|
}
|
||||||
|
|
||||||
// GetSign 封装一个方法,获取当天时间戳和api签名
|
// GetSign 封装一个方法,获取当天时间戳和api签名
|
||||||
func GetSign() (ts int64, sign string) {
|
func GetSign() (ts int64, sign string) {
|
||||||
ts = time.Now().Unix()
|
ts = time.Now().Unix()
|
||||||
@ -110,6 +119,31 @@ func GetSign() (ts int64, sign string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CreateGetUserRoleListRequest2 获取玩家角色列表
|
||||||
|
func CreateGetUserRoleListRequest2(param GetUserRoleListParam) (req *GetUserRoleListRequest) {
|
||||||
|
ts, sign := GetSign()
|
||||||
|
|
||||||
|
req = &GetUserRoleListRequest{
|
||||||
|
RpcRequest: &requests.RpcRequest{},
|
||||||
|
}
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/remote_login.php")
|
||||||
|
req.FormParams = map[string]string{
|
||||||
|
"act": "info",
|
||||||
|
"do": "user_role",
|
||||||
|
"method": "get",
|
||||||
|
"uid": fmt.Sprintf("%d", param.Uid),
|
||||||
|
"game_id": fmt.Sprintf("%d", param.GameId),
|
||||||
|
"role_id": fmt.Sprintf("%d", param.RoleId),
|
||||||
|
"role_server": param.RoleServer,
|
||||||
|
"username": param.Username,
|
||||||
|
"time": fmt.Sprintf("%v", ts),
|
||||||
|
"sign": sign,
|
||||||
|
}
|
||||||
|
|
||||||
|
req.Method = requests.POST
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// CreateGetUserRoleListRequest 获取玩家角色列表
|
// CreateGetUserRoleListRequest 获取玩家角色列表
|
||||||
func CreateGetUserRoleListRequest(uid int, gameId int, roleId int, roleServer string) (req *GetUserRoleListRequest) {
|
func CreateGetUserRoleListRequest(uid int, gameId int, roleId int, roleServer string) (req *GetUserRoleListRequest) {
|
||||||
ts, sign := GetSign()
|
ts, sign := GetSign()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user