203 lines
5.5 KiB
Go
203 lines
5.5 KiB
Go
package passport
|
||
|
||
import (
|
||
"crypto/md5"
|
||
"encoding/hex"
|
||
"fmt"
|
||
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
||
"time"
|
||
)
|
||
|
||
type GetUserListRequest struct {
|
||
*requests.RpcRequest
|
||
}
|
||
|
||
type GetUserListResponse struct {
|
||
*responses.BaseResponse
|
||
Code int `json:"code"`
|
||
Msg string `json:"msg"`
|
||
Data []UserInfo `json:"data"`
|
||
}
|
||
|
||
type UserInfo struct {
|
||
Id string `json:"id"`
|
||
Uid string `json:"uid"`
|
||
BbsUid string `json:"bbs_uid"`
|
||
UserName string `json:"user_name"`
|
||
UserPwd string `json:"user_pwd"`
|
||
Email string `json:"email"`
|
||
Integral string `json:"integral"`
|
||
NickName string `json:"nick_name"`
|
||
TrueName string `json:"true_name"`
|
||
Sex string `json:"sex"`
|
||
IdType string `json:"id_type"`
|
||
IdCard string `json:"id_card"`
|
||
Birthday string `json:"birthday"`
|
||
Telephone string `json:"telephone"`
|
||
Mobile string `json:"mobile"`
|
||
Address string `json:"address"`
|
||
Zipcode int64 `json:"zipcode"`
|
||
Level string `json:"level"`
|
||
Qq string `json:"qq"`
|
||
Msn string `json:"msn"`
|
||
Question string `json:"question"`
|
||
Answer string `json:"answer"`
|
||
HeadPic string `json:"head_pic"`
|
||
Defendboss string `json:"defendboss"`
|
||
RegTime int64 `json:"reg_time"`
|
||
RegIp string `json:"reg_ip"`
|
||
LoginIp string `json:"login_ip"`
|
||
LoginTime string `json:"login_time"`
|
||
State string `json:"state"`
|
||
}
|
||
|
||
// CreateGetUserListRequest 获取玩家用户列表
|
||
func CreateGetUserListRequest(userName string) (req *GetUserListRequest) {
|
||
ts, sign := GetSign()
|
||
|
||
req = &GetUserListRequest{
|
||
RpcRequest: &requests.RpcRequest{},
|
||
}
|
||
req.InitWithApiInfo(HOST, VERSION, "/remote_login.php")
|
||
req.FormParams = map[string]string{
|
||
"act": "info",
|
||
"do": "get_user_list",
|
||
"user_names": userName,
|
||
"time": fmt.Sprintf("%v", ts),
|
||
"sign": sign,
|
||
}
|
||
|
||
req.Method = requests.POST
|
||
return
|
||
}
|
||
|
||
func CreateGetUserListResponse() (response *GetUserListResponse) {
|
||
response = &GetUserListResponse{
|
||
BaseResponse: &responses.BaseResponse{},
|
||
}
|
||
return
|
||
}
|
||
|
||
type GetUserRoleListRequest struct {
|
||
*requests.RpcRequest
|
||
}
|
||
|
||
type GetUserRoleListResponse struct {
|
||
*responses.BaseResponse
|
||
Code int `json:"code"`
|
||
Msg string `json:"msg"`
|
||
Data []UserRoleInfo `json:"data"`
|
||
}
|
||
|
||
type UserRoleInfo struct {
|
||
Uid string `json:"uid"` // uid
|
||
GameId string `json:"game_id"` // 子游戏id
|
||
RoleId string `json:"role_id"` // 角色id
|
||
RoleName string `json:"role_name"` // 角色名
|
||
RoleServer string `json:"role_server"` // 角色服务器名
|
||
AddTime string `json:"add_time"` // 创建时间戳
|
||
UpdateTime string `json:"update_time"` // 更新时间戳
|
||
}
|
||
|
||
// GetSign 封装一个方法,获取当天时间戳和api签名
|
||
func GetSign() (ts int64, sign string) {
|
||
ts = time.Now().Unix()
|
||
hash := md5.New()
|
||
hash.Write([]byte(fmt.Sprintf("%v%v", ts, appKey)))
|
||
hashBytes := hash.Sum(nil)
|
||
sign = hex.EncodeToString(hashBytes)
|
||
return
|
||
}
|
||
|
||
// CreateGetUserRoleListRequest 获取玩家角色列表
|
||
func CreateGetUserRoleListRequest(uid int, gameId int, roleId int, roleServer string) (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", uid),
|
||
"game_id": fmt.Sprintf("%d", gameId),
|
||
"role_id": fmt.Sprintf("%d", roleId),
|
||
"role_server": roleServer,
|
||
"time": fmt.Sprintf("%v", ts),
|
||
"sign": sign,
|
||
}
|
||
|
||
req.Method = requests.POST
|
||
return
|
||
}
|
||
|
||
func CreateGetUserRoleListResponse() (response *GetUserRoleListResponse) {
|
||
response = &GetUserRoleListResponse{
|
||
BaseResponse: &responses.BaseResponse{},
|
||
}
|
||
return
|
||
}
|
||
|
||
type GetUserGameSignRequest struct {
|
||
*requests.RpcRequest
|
||
}
|
||
|
||
type GetUserGameSignResponse struct {
|
||
*responses.BaseResponse
|
||
Code int `json:"code"`
|
||
Msg string `json:"msg"`
|
||
Data struct {
|
||
List []UserGameSign `json:"list"`
|
||
} `json:"data"`
|
||
}
|
||
|
||
type UserGameSign struct {
|
||
Id string `json:"id"`
|
||
AgentId string `json:"agent_id"`
|
||
SiteId string `json:"site_id"`
|
||
Uid string `json:"uid"`
|
||
UserName string `json:"user_name"`
|
||
GameId string `json:"game_id"`
|
||
GameSign string `json:"game_sign"`
|
||
Oaid string `json:"oaid"`
|
||
Imei string `json:"imei"`
|
||
Imei2 string `json:"imei2"`
|
||
Ua string `json:"ua"`
|
||
FirstLoginIp string `json:"first_login_ip"`
|
||
FirstLoginTime string `json:"first_login_time"`
|
||
LastLoginIp string `json:"last_login_ip"`
|
||
LastLoginTime string `json:"last_login_time"`
|
||
}
|
||
|
||
// CreateGetUserGameSignRequest 获取用户登录过的游戏大类
|
||
func CreateGetUserGameSignRequest(userName, gameSign, orderBy string) (req *GetUserGameSignRequest) {
|
||
ts, sign := GetSign()
|
||
|
||
req = &GetUserGameSignRequest{
|
||
RpcRequest: &requests.RpcRequest{},
|
||
}
|
||
req.InitWithApiInfo(HOST, VERSION, "/remote_login.php")
|
||
req.FormParams = map[string]string{
|
||
"act": "info",
|
||
"do": "get_user_game_sign",
|
||
"username": userName,
|
||
"game_sign": gameSign,
|
||
"order_by": orderBy,
|
||
"time": fmt.Sprintf("%v", ts),
|
||
"sign": sign,
|
||
}
|
||
|
||
req.Method = requests.POST
|
||
return
|
||
}
|
||
|
||
func CreateGetUserGameSignResponse() (response *GetUserGameSignResponse) {
|
||
response = &GetUserGameSignResponse{
|
||
BaseResponse: &responses.BaseResponse{},
|
||
}
|
||
return
|
||
}
|