Compare commits
29 Commits
Author | SHA1 | Date | |
---|---|---|---|
517d422993 | |||
721b735a0e | |||
e89f227e54 | |||
1902a769f8 | |||
857f7b9f90 | |||
5d941b865b | |||
e26c54c474 | |||
|
a7a0099cb8 | ||
|
e3cfca5bfa | ||
|
6ef4ff5389 | ||
4b55160177 | |||
1faace6bce | |||
995293926f | |||
675a48f7d1 | |||
f11735110f | |||
f272d5f199 | |||
4a37a5aa14 | |||
897a719154 | |||
|
b09f25cf3b | ||
|
63a32ad047 | ||
|
758892ac93 | ||
|
1850103557 | ||
|
41af2049a9 | ||
|
b6961d28b6 | ||
|
09938bbf20 | ||
|
6fb06e3d4f | ||
|
34b757ca09 | ||
|
e710c3050a | ||
|
de3c82cbff |
3
go.mod
Normal file
3
go.mod
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
module golib.gaore.com/GaoreGo/gaore-common-sdk-go
|
||||||
|
|
||||||
|
go 1.19
|
@ -15,6 +15,7 @@ type JsonRequest struct {
|
|||||||
|
|
||||||
func (request *JsonRequest) init() {
|
func (request *JsonRequest) init() {
|
||||||
request.baseRequest = defaultBaseRequest()
|
request.baseRequest = defaultBaseRequest()
|
||||||
|
request.baseRequest.AddHeaderParam("Content-Type", Json)
|
||||||
request.Method = POST
|
request.Method = POST
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,12 +36,16 @@ func (request *JsonRequest) BuildUrl() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (request *JsonRequest) GetStyle() string {
|
func (request *JsonRequest) GetStyle() string {
|
||||||
return RPC
|
return STREAM
|
||||||
}
|
}
|
||||||
|
|
||||||
func (request *JsonRequest) BuildQueries() string {
|
func (request *JsonRequest) BuildQueries() string {
|
||||||
path := strings.TrimLeft(strings.TrimSpace(request.GetActionName()), "/")
|
path := strings.TrimLeft(strings.TrimSpace(request.GetActionName()), "/")
|
||||||
request.queries = "/" + path + "?" + utils.GetUrlFormedMap(request.QueryParams)
|
mod := "&"
|
||||||
|
if !strings.Contains(path, "?") {
|
||||||
|
mod = "?"
|
||||||
|
}
|
||||||
|
request.queries = "/" + path + mod + utils.GetUrlFormedMap(request.QueryParams)
|
||||||
return request.queries
|
return request.queries
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,8 +61,8 @@ func (request *JsonRequest) InitWithApiInfo(domain Host, version, urlPath string
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (request *JsonRequest) GetBodyReader() io.Reader {
|
func (request *JsonRequest) GetBodyReader() io.Reader {
|
||||||
if request.FormParams != nil && len(request.FormParams) > 0 {
|
if request.JsonParams != nil && len(request.JsonParams) > 0 {
|
||||||
body, err := json.Marshal(request.FormParams)
|
body, err := json.Marshal(request.JsonParams)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return bytes.NewReader(body)
|
return bytes.NewReader(body)
|
||||||
}
|
}
|
||||||
|
@ -36,10 +36,12 @@ const (
|
|||||||
Xml = "application/xml"
|
Xml = "application/xml"
|
||||||
Raw = "application/octet-stream"
|
Raw = "application/octet-stream"
|
||||||
Form = "application/x-www-form-urlencoded"
|
Form = "application/x-www-form-urlencoded"
|
||||||
|
FormData = "multipart/form-data"
|
||||||
|
|
||||||
Header = "Header"
|
Header = "Header"
|
||||||
Query = "Query"
|
Query = "Query"
|
||||||
Body = "Body"
|
Body = "Body"
|
||||||
|
BodyJson = "Json"
|
||||||
Path = "Path"
|
Path = "Path"
|
||||||
|
|
||||||
TEST = "TEST"
|
TEST = "TEST"
|
||||||
@ -95,6 +97,7 @@ type AcsRequest interface {
|
|||||||
AddHeaderParam(key, value string)
|
AddHeaderParam(key, value string)
|
||||||
addQueryParam(key, value string)
|
addQueryParam(key, value string)
|
||||||
addFormParam(key, value string)
|
addFormParam(key, value string)
|
||||||
|
addJsonParam(string, any)
|
||||||
}
|
}
|
||||||
|
|
||||||
type baseRequest struct {
|
type baseRequest struct {
|
||||||
@ -118,6 +121,7 @@ type baseRequest struct {
|
|||||||
QueryParams map[string]string
|
QueryParams map[string]string
|
||||||
Headers map[string]string
|
Headers map[string]string
|
||||||
FormParams map[string]string
|
FormParams map[string]string
|
||||||
|
JsonParams map[string]any
|
||||||
Content []byte
|
Content []byte
|
||||||
|
|
||||||
queries string
|
queries string
|
||||||
@ -230,6 +234,10 @@ func (request *baseRequest) addFormParam(key, val string) {
|
|||||||
request.FormParams[key] = val
|
request.FormParams[key] = val
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (request *baseRequest) addJsonParam(key string, val any) {
|
||||||
|
request.JsonParams[key] = val
|
||||||
|
}
|
||||||
|
|
||||||
func defaultBaseRequest() (request *baseRequest) {
|
func defaultBaseRequest() (request *baseRequest) {
|
||||||
request = &baseRequest{
|
request = &baseRequest{
|
||||||
Scheme: HTTP,
|
Scheme: HTTP,
|
||||||
@ -242,6 +250,7 @@ func defaultBaseRequest() (request *baseRequest) {
|
|||||||
"Accept-Encoding": Json,
|
"Accept-Encoding": Json,
|
||||||
},
|
},
|
||||||
FormParams: make(map[string]string),
|
FormParams: make(map[string]string),
|
||||||
|
JsonParams: make(map[string]any),
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -290,14 +299,14 @@ func flatRepeatedList(reflectValue reflect.Value, request AcsRequest, position s
|
|||||||
value = fieldDefault
|
value = fieldDefault
|
||||||
}
|
}
|
||||||
|
|
||||||
err = addParam(request, fieldPosition, name, value)
|
err = addParam(request, fieldPosition, name, value, reflectValue.Field(i).Interface())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func addParam(request AcsRequest, position, key, value string) (err error) {
|
func addParam(request AcsRequest, position, key, value string, vAny any) (err error) {
|
||||||
if len(value) > 0 {
|
if len(value) > 0 {
|
||||||
switch position {
|
switch position {
|
||||||
case Header:
|
case Header:
|
||||||
@ -306,6 +315,8 @@ func addParam(request AcsRequest, position, key, value string) (err error) {
|
|||||||
request.addQueryParam(key, value)
|
request.addQueryParam(key, value)
|
||||||
case Body:
|
case Body:
|
||||||
request.addFormParam(key, value)
|
request.addFormParam(key, value)
|
||||||
|
case BodyJson:
|
||||||
|
request.addJsonParam(key, vAny)
|
||||||
default:
|
default:
|
||||||
errmsg := fmt.Sprintf("unsupport positions add param `%s`", position)
|
errmsg := fmt.Sprintf("unsupport positions add param `%s`", position)
|
||||||
err = errors.New(errmsg)
|
err = errors.New(errmsg)
|
||||||
|
@ -13,6 +13,7 @@ type RpcRequest struct {
|
|||||||
|
|
||||||
func (request *RpcRequest) init() {
|
func (request *RpcRequest) init() {
|
||||||
request.baseRequest = defaultBaseRequest()
|
request.baseRequest = defaultBaseRequest()
|
||||||
|
request.baseRequest.AddHeaderParam("Content-Type", Form)
|
||||||
request.Method = POST
|
request.Method = POST
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ type StreamRequest struct {
|
|||||||
|
|
||||||
func (s *StreamRequest) init() {
|
func (s *StreamRequest) init() {
|
||||||
s.baseRequest = defaultBaseRequest()
|
s.baseRequest = defaultBaseRequest()
|
||||||
s.baseRequest.AddHeaderParam("Content-Type", "application/form-data")
|
s.baseRequest.AddHeaderParam("Content-Type", FormData)
|
||||||
s.Method = POST
|
s.Method = POST
|
||||||
}
|
}
|
||||||
|
|
||||||
|
42
services/capk/client.go
Normal file
42
services/capk/client.go
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
package capk
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
VERSION = "2024-10-30"
|
||||||
|
)
|
||||||
|
|
||||||
|
var HOST requests.Host = requests.Host{
|
||||||
|
Default: "capk.gaore.com",
|
||||||
|
}
|
||||||
|
|
||||||
|
type Client struct {
|
||||||
|
sdk.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewClient() (client *Client, err error) {
|
||||||
|
client = new(Client)
|
||||||
|
err = client.Init()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Client) TaskCreate(req *TaskCreateRequest) (resp *TaskCreateResponse, err error) {
|
||||||
|
resp = CreateTaskCreateResponse()
|
||||||
|
err = c.DoAction(req, resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Client) ConfigModify(req *ConfigModifyRequest) (resp *ConfigModifyResponse, err error) {
|
||||||
|
resp = CreateConfigModifyResponse()
|
||||||
|
err = c.DoAction(req, resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Client) ConfigGet(req *ConfigGetRequest) (resp *ConfigGetResponse, err error) {
|
||||||
|
resp = CreateConfigGetResponse()
|
||||||
|
err = c.DoAction(req, resp)
|
||||||
|
return
|
||||||
|
}
|
39
services/capk/client_test.go
Normal file
39
services/capk/client_test.go
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
package capk
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func TestTask_Create(t *testing.T) {
|
||||||
|
client, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
req := CreateTaskCreateRequest()
|
||||||
|
req.GameId = 7788
|
||||||
|
req.GameVersion = "1.0.1"
|
||||||
|
req.Config = "{\"data\":{\"sdkPath\":\"\",\"localPath\":\"\",\"plugins\":{\"addictioncheck\":\"\",\"msaid\":\"\",\"bugly\":\"\",\"gdt\":\"\",\"gdt_channel\":\"\"},\"decompileApk\":\"\"},\"game\":{\"appID\":\"7477\",\"appName\":\"xyxmz_xlhh_ylh\",\"appKey\":\"yWpx3hWQHFhSnTCj#7477#6KuRKuaAjLJ5sYRy\",\"appDescNew\":\"西游仙魔传\",\"orientation\":\"landscape\",\"cpuSupport\":\"armeabi-v7a|arm64-v8a\",\"minSdkVersion\":\"21\",\"targetSdkVersion\":\"31\",\"outputApkName\":\"{appName}_{appID}_{versionCode}_{versionName}_{time}.apk\",\"gameCategory\":\"25|771-2.0.4.3\",\"icon\":\"\",\"logoPath\":\"\",\"loadingPath\":\"\",\"certificatePath\":\"\"},\"channel\":{\"id\":\"1\",\"name\":\"gaore\",\"sdk\":\"gaore\",\"desc\":\"GRSDK\",\"suffix\":\"com.bjhr.xyxmz\",\"splash\":\"0\",\"splash_copy_to_unity\":\"0\",\"sdkParams\":{\"SCREEN_ORIENTATION\":\"0\",\"GAORE_CHANNELID\":\"1\",\"GAORE_VERSION_TAG\":\"1\",\"GAORE_LOGO_SHOW\":\"1\",\"GAORE_CHANNEL_KEY\":\"GRSDK\",\"GAORE_GAME_VERSION\":\"1.0.0\",\"GAORE_APPLICATION_PROXY_NAME\":\"com.gr.sdk.GaoreApplication,com.gr.sdk.MSAApplication,com.gr.sdk.addictioncheck.application.GaoreApplication,com.gr.sdk.BuglyProxyApplication,com.gr.sdk.GDTProxyApplication,com.gr.sdk.GDTChannelProxyApplication\",\"GAORE_WX_APP_ID\":\"\",\"GAORE_FLOAT_POSITION\":\"0|30\",\"GAORE_ROUND_ICON\":\"0\",\"GAORE_ROUND_ICON_PATH\":\"\",\"GAORE_ROUND_ICON_FOREGROUND_PATH\":\"\",\"GAORE_ROUND_ICON_BACKGROUND_PATH\":\"\",\"GR_AGEWARN\":\"true\",\"GR_REDPACKET\":\"1\",\"GR_REDPACKET_GUIDE\":\"1\",\"GAORE_INIT_SDK_TYPE\":\"2\",\"appkey_avscan\":\"\",\"seckey_avscan\":\"\",\"GDT_USER_ACTION_SET_ID\":\"1203968086\",\"GDT_APP_SECRET_KEY\":\"8ad271167be3dcf120468770a4ee9b21\",\"GISM_APPID\":\"\",\"GISM_APPNAME\":\"\",\"QL_APPID\":\"\",\"KUAISHOU_APPID\":\"\",\"KUAISHOU_APPNAME\":\"\",\"TOUTIAO_AID\":\"\",\"addPermissionActivity\":\"1\",\"VIVO_SRC_ID\":\"\"},\"sdkVersion\":{\"versionName\":\"2.6.1\"},\"plugins\":{\"addictioncheck\":\"\",\"msaid\":\"\",\"bugly\":\"\",\"gdt\":\"\",\"gdt_channel\":\"\"}}}"
|
||||||
|
req.Env = 0 // 灰度为 1 正式为0
|
||||||
|
resp, err := client.TaskCreate(req)
|
||||||
|
t.Logf("%v", resp.Data.TaskId)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestConfig_Modify(t *testing.T) {
|
||||||
|
client, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
req := CreateConfigModifyRequest()
|
||||||
|
req.Content = []byte(`<?xml version='1.0' encoding='UTF-8'?><xml><apks><!-- name:母包文件名 --><!-- screen:屏幕方向 0竖屏 1横屏 --><!-- targetSdk:targetSdkVersion支持30以上 0否 1是 --><apk><param name="id" value="1" /><param name="name" value="heji" /><param name="desc" value="合击" /><param name="screen" value="1" /><param name="targetSdk" value="0" /></apk><apk><param name="id" value="2" /><param name="name" value="lanyue" /><param name="desc" value="蓝月" /><param name="screen" value="1" /><param name="targetSdk" value="0" /></apk></apks></xmls>`)
|
||||||
|
resp, err := client.ConfigModify(req)
|
||||||
|
t.Log(resp.Code, resp.Msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestConfig_Get(t *testing.T) {
|
||||||
|
client, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
req := CreateConfigGetRequest()
|
||||||
|
resp, err := client.ConfigGet(req)
|
||||||
|
t.Log(resp.Code, resp.Data)
|
||||||
|
}
|
34
services/capk/config_get.go
Normal file
34
services/capk/config_get.go
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package capk
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ConfigGetRequest struct {
|
||||||
|
*requests.JsonRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
type ConfigGetResponse struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
Code int `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Data string `json:"data"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateConfigGetRequest() *ConfigGetRequest {
|
||||||
|
req := &ConfigGetRequest{
|
||||||
|
JsonRequest: &requests.JsonRequest{},
|
||||||
|
}
|
||||||
|
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/pack/config/get")
|
||||||
|
req.Method = requests.GET
|
||||||
|
|
||||||
|
return req
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateConfigGetResponse() *ConfigGetResponse {
|
||||||
|
return &ConfigGetResponse{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
}
|
33
services/capk/config_modify.go
Normal file
33
services/capk/config_modify.go
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package capk
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ConfigModifyRequest struct {
|
||||||
|
*requests.StreamRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
type ConfigModifyResponse struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
Code int `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Data string `json:"data"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateConfigModifyRequest() (req *ConfigModifyRequest) {
|
||||||
|
req = &ConfigModifyRequest{
|
||||||
|
StreamRequest: &requests.StreamRequest{},
|
||||||
|
}
|
||||||
|
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/pack/config/set")
|
||||||
|
req.Method = requests.POST
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateConfigModifyResponse() (resp *ConfigModifyResponse) {
|
||||||
|
return &ConfigModifyResponse{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
}
|
38
services/capk/task_create.go
Normal file
38
services/capk/task_create.go
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
package capk
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
||||||
|
)
|
||||||
|
|
||||||
|
type TaskCreateRequest struct {
|
||||||
|
*requests.JsonRequest
|
||||||
|
GameId int `position:"Json" field:"game_id"`
|
||||||
|
GameVersion string `position:"Json" field:"game_version"`
|
||||||
|
Config string `position:"Json" field:"config"`
|
||||||
|
Env int `position:"Json" field:"env"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TaskCreateResponse struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
Code int `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Data struct {
|
||||||
|
TaskId string `json:"task_id"`
|
||||||
|
} `json:"data"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateTaskCreateRequest() (req *TaskCreateRequest) {
|
||||||
|
req = &TaskCreateRequest{
|
||||||
|
JsonRequest: &requests.JsonRequest{},
|
||||||
|
}
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/pack/task/create")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateTaskCreateResponse() (resp *TaskCreateResponse) {
|
||||||
|
resp = &TaskCreateResponse{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
31
services/center-api/client.go
Normal file
31
services/center-api/client.go
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package center_api
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
VERSION = "2020-11-16"
|
||||||
|
)
|
||||||
|
|
||||||
|
var HOST = requests.Host{
|
||||||
|
Default: "center-api",
|
||||||
|
}
|
||||||
|
|
||||||
|
type Client struct {
|
||||||
|
sdk.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewClient() (client *Client, err error) {
|
||||||
|
client = new(Client)
|
||||||
|
err = client.Init()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// PackagingTaskCallback 打包任务回调
|
||||||
|
func (c *Client) PackagingTaskCallback(req *PackagingTaskCallbackReq) (resp *PackagingTaskCallbackResp, err error) {
|
||||||
|
resp = CreatePackagingTaskCallbackResp()
|
||||||
|
err = c.DoAction(req, resp)
|
||||||
|
return
|
||||||
|
}
|
28
services/center-api/client_test.go
Normal file
28
services/center-api/client_test.go
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package center_api
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestPackagingTaskCallback(t *testing.T) {
|
||||||
|
client, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
req := CreatePackagingTaskCallbackReq(Data{
|
||||||
|
TaskId: "asdada120",
|
||||||
|
Status: 1,
|
||||||
|
Msg: "test",
|
||||||
|
Url: "http://www.baidu.com",
|
||||||
|
Md5: "adadsadasdasda",
|
||||||
|
})
|
||||||
|
|
||||||
|
resp, err := client.PackagingTaskCallback(req)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(resp.StatusCode, resp.StatusMsg)
|
||||||
|
}
|
64
services/center-api/packaging.go
Normal file
64
services/center-api/packaging.go
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
package center_api
|
||||||
|
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
type PackagingTaskCallbackReq struct {
|
||||||
|
*requests.RpcRequest
|
||||||
|
TaskId string `position:"Body" field:"task_id"`
|
||||||
|
Status int `position:"Body" field:"status"`
|
||||||
|
Msg string `position:"Body" field:"msg"`
|
||||||
|
Url string `position:"Body" field:"url"`
|
||||||
|
Md5 string `position:"Body" field:"md5"`
|
||||||
|
Sign string `position:"Body" field:"sign"`
|
||||||
|
Ts int64 `position:"Body" field:"ts"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type PackagingTaskCallbackResp struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
StatusCode int `json:"status_code"`
|
||||||
|
StatusMsg string `json:"status_msg"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Data struct {
|
||||||
|
TaskId string `json:"task_id"`
|
||||||
|
Status int `json:"status"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Url string `json:"url"`
|
||||||
|
Md5 string `json:"md5"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreatePackagingTaskCallbackReq(data Data) *PackagingTaskCallbackReq {
|
||||||
|
req := &PackagingTaskCallbackReq{
|
||||||
|
RpcRequest: &requests.RpcRequest{},
|
||||||
|
}
|
||||||
|
|
||||||
|
req.TaskId = data.TaskId
|
||||||
|
req.Status = data.Status
|
||||||
|
req.Msg = data.Msg
|
||||||
|
req.Url = data.Url
|
||||||
|
req.Md5 = data.Md5
|
||||||
|
req.Ts = 1730357662
|
||||||
|
|
||||||
|
// sign=md5(ts+task_id+sign_key) 32位
|
||||||
|
// 生成 MD5 哈希
|
||||||
|
hash := md5.Sum([]byte(fmt.Sprintf("%d%s%s", req.Ts, req.TaskId, "xBPVBJ132asdUeJC3XjD7AnFWD2sbGH6pJC4654y89")))
|
||||||
|
|
||||||
|
// 将哈希结果转换为十六进制字符串
|
||||||
|
hashString := hex.EncodeToString(hash[:])
|
||||||
|
req.Sign = hashString
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/v1/packaging/task/callback")
|
||||||
|
req.Method = requests.POST
|
||||||
|
return req
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreatePackagingTaskCallbackResp() *PackagingTaskCallbackResp {
|
||||||
|
return &PackagingTaskCallbackResp{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
}
|
31
services/game/client.go
Normal file
31
services/game/client.go
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package game
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
VERSION = "2020-11-16"
|
||||||
|
)
|
||||||
|
|
||||||
|
var HOST = requests.Host{
|
||||||
|
Default: "game",
|
||||||
|
}
|
||||||
|
|
||||||
|
type Client struct {
|
||||||
|
sdk.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewClient() (client *Client, err error) {
|
||||||
|
client = new(Client)
|
||||||
|
err = client.Init()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetGameOsInfo 获取游戏系统信息
|
||||||
|
func (c *Client) GetGameOsInfo(req *GetGameOsInfoReq) (resp *GetGameOsInfoResp, err error) {
|
||||||
|
resp = CreateGetGameOsInfoResp()
|
||||||
|
err = c.DoAction(req, resp)
|
||||||
|
return
|
||||||
|
}
|
22
services/game/client_test.go
Normal file
22
services/game/client_test.go
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package game
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestGetGameOsInfo(t *testing.T) {
|
||||||
|
client, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
req := CreateGetGameOsInfoReq()
|
||||||
|
|
||||||
|
resp, err := client.GetGameOsInfo(req)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(resp.Code, resp.Msg, resp.Data.OsList, resp.Data.OsRelList2)
|
||||||
|
}
|
49
services/game/game.go
Normal file
49
services/game/game.go
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
package game
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
||||||
|
)
|
||||||
|
|
||||||
|
type GetGameOsInfoReq struct {
|
||||||
|
*requests.RpcRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetGameOsInfoResp struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
Code int `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Data Data `json:"data"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Data struct {
|
||||||
|
OsRelList2 []OsRelList2 `json:"os_rel_list2"`
|
||||||
|
OsList map[string]OsList `json:"os_list"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type OsRelList2 struct {
|
||||||
|
TwPlatID int `json:"tw_plat_id"`
|
||||||
|
TwOs int `json:"tw_os"`
|
||||||
|
Os int `json:"os"`
|
||||||
|
OsTwo int `json:"os_two"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type OsList struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
OsTwo map[string]interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateGetGameOsInfoReq() *GetGameOsInfoReq {
|
||||||
|
req := &GetGameOsInfoReq{
|
||||||
|
RpcRequest: &requests.RpcRequest{},
|
||||||
|
}
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/api/game/getGameOsInfo")
|
||||||
|
req.Method = requests.POST
|
||||||
|
return req
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateGetGameOsInfoResp() *GetGameOsInfoResp {
|
||||||
|
return &GetGameOsInfoResp{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
}
|
@ -29,3 +29,15 @@ func NewClientWithAccessKey(accesskey, secrect, source string) (client *Client,
|
|||||||
err = client.InitWithAccessKey(accesskey, secrect, source)
|
err = client.InitWithAccessKey(accesskey, secrect, source)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewClient() (client *Client, err error) {
|
||||||
|
client = new(Client)
|
||||||
|
err = client.Init()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Client) SubjectList(req *SubjectListRequest) (response *SubjectListResponse, err error) {
|
||||||
|
response = CreateSubjectListResponse()
|
||||||
|
err = c.DoAction(req, response)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
22
services/mkt/client_test.go
Normal file
22
services/mkt/client_test.go
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package mkt
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSubjectList(t *testing.T) {
|
||||||
|
client, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
req := CreateSubjectListRequest(0)
|
||||||
|
req.Port = "9090"
|
||||||
|
list, err := client.SubjectList(req)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(list.Status, list.Code, list.Msg, list.Data)
|
||||||
|
}
|
68
services/mkt/subject.go
Normal file
68
services/mkt/subject.go
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
package mkt
|
||||||
|
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
const appKey = "fc1f841#@de!!08"
|
||||||
|
|
||||||
|
type SubjectListRequest struct {
|
||||||
|
*requests.RpcRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubjectListResponse struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
Status bool `json:"status"`
|
||||||
|
Code int `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Data struct {
|
||||||
|
List map[int]Data `json:"list"`
|
||||||
|
} `json:"data"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Data struct {
|
||||||
|
Abbr string `json:"abbr"`
|
||||||
|
AbbrSign string `json:"abbr_sign"`
|
||||||
|
Id int `json:"id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
State int `json:"state"`
|
||||||
|
System string `json:"system"`
|
||||||
|
Type int `json:"type"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateSubjectListRequest 公司列表请求
|
||||||
|
func CreateSubjectListRequest(state int) (req *SubjectListRequest) {
|
||||||
|
ts := time.Now().Unix()
|
||||||
|
hash := md5.New()
|
||||||
|
hash.Write([]byte(fmt.Sprintf("%v%v", ts, appKey)))
|
||||||
|
hashBytes := hash.Sum(nil)
|
||||||
|
|
||||||
|
token := hex.EncodeToString(hashBytes)
|
||||||
|
|
||||||
|
req = &SubjectListRequest{
|
||||||
|
RpcRequest: &requests.RpcRequest{},
|
||||||
|
}
|
||||||
|
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, fmt.Sprintf("/api/subject/list"))
|
||||||
|
|
||||||
|
req.FormParams = map[string]string{
|
||||||
|
"token": token,
|
||||||
|
"ts": fmt.Sprintf("%v", ts),
|
||||||
|
"state": fmt.Sprintf("%v", state),
|
||||||
|
}
|
||||||
|
req.Method = requests.POST
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateSubjectListResponse 公司列表请求响应
|
||||||
|
func CreateSubjectListResponse() (response *SubjectListResponse) {
|
||||||
|
response = &SubjectListResponse{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
38
services/oss/ApkVersion_get.go
Normal file
38
services/oss/ApkVersion_get.go
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
package oss
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
||||||
|
)
|
||||||
|
|
||||||
|
type GetApkVersionRequest struct {
|
||||||
|
*requests.JsonRequest
|
||||||
|
Filepath string `position:"Json" field:"filepath"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetApkVersionResponse struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
Code int `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Data struct {
|
||||||
|
VersionCode string `json:"versionCode"`
|
||||||
|
VersionName string `json:"versionName"`
|
||||||
|
MinSdkVersion string `json:"minSdkVersion"`
|
||||||
|
TargetSdkVersion string `json:"targetSdkVersion"`
|
||||||
|
} `json:"data"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateGetApkVersionRequest() (req *GetApkVersionRequest) {
|
||||||
|
req = &GetApkVersionRequest{
|
||||||
|
JsonRequest: &requests.JsonRequest{},
|
||||||
|
}
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/api/apk/version")
|
||||||
|
req.Method = requests.POST
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateGetApkVersionResponse() *GetApkVersionResponse {
|
||||||
|
return &GetApkVersionResponse{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
}
|
@ -3,6 +3,8 @@ package oss
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/auth"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/auth/credentials"
|
||||||
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -24,6 +26,10 @@ func NewClient() (client *Client, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewClientWithSts() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func (c *Client) PutOss(req *PutOssRequest) (resp *PutOssResponse, err error) {
|
func (c *Client) PutOss(req *PutOssRequest) (resp *PutOssResponse, err error) {
|
||||||
if req.BucketName == "" {
|
if req.BucketName == "" {
|
||||||
err = errors.New("bucket name is empty")
|
err = errors.New("bucket name is empty")
|
||||||
@ -44,3 +50,16 @@ func (c *Client) DelOss(req *DelOssRequest) (resp *DelOssResponse, err error) {
|
|||||||
err = c.DoAction(req, resp)
|
err = c.DoAction(req, resp)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *Client) InitMultipartUpload(req *InitMultipartUploadRequest) (resp *InitMultipartUploadResponse, err error) {
|
||||||
|
resp = CreateInitMultipartUploadResponse()
|
||||||
|
err = c.DoAction(req, resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Client) GetApkVersion(req *GetApkVersionRequest) (resp *GetApkVersionResponse, err error) {
|
||||||
|
resp = CreateGetApkVersionResponse()
|
||||||
|
sign, err := auth.NewSignerWithCredential(credentials.NewStsTokenCredential("", "ccc", ""), nil)
|
||||||
|
err = c.DoActionWithSigner(req, resp, sign)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package oss
|
package oss
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
@ -39,3 +40,48 @@ func TestUpload_Del(t *testing.T) {
|
|||||||
}
|
}
|
||||||
t.Log(resp.Code)
|
t.Log(resp.Code)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCreateInitMultipartUpload(t *testing.T) {
|
||||||
|
req := CreateInitMultipartUploadRequest()
|
||||||
|
|
||||||
|
extInfo := map[string]any{"game_byname": "tech_test_tencent"}
|
||||||
|
bExtInfo, _ := json.Marshal(extInfo)
|
||||||
|
|
||||||
|
req.UploadType = "package"
|
||||||
|
req.TargetType = "oss"
|
||||||
|
req.TargetName = "image"
|
||||||
|
req.FileHash = "51c68615b8d21f9b72b02f48c400cb87"
|
||||||
|
req.Filepath = "q5-01.zip"
|
||||||
|
req.ExtInfo = string(bExtInfo)
|
||||||
|
client, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resp, err := client.InitMultipartUpload(req)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
r, err := json.Marshal(resp)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
t.Log(string(r))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_GetApkVersion(t *testing.T) {
|
||||||
|
req := CreateGetApkVersionRequest()
|
||||||
|
req.Filepath = "51c68615b8d21f9b72b02f48c400cb87.zip"
|
||||||
|
client, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resp, err := client.GetApkVersion(req)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
t.Log(resp.Data.VersionCode, resp.Data.VersionName)
|
||||||
|
}
|
||||||
|
64
services/oss/multipart_init.go
Normal file
64
services/oss/multipart_init.go
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
package oss
|
||||||
|
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
multipartUploadKeys = "b4471b940d98"
|
||||||
|
)
|
||||||
|
|
||||||
|
type InitMultipartUploadRequest struct {
|
||||||
|
*requests.JsonRequest
|
||||||
|
UploadType string `position:"Json" field:"upload_type"`
|
||||||
|
TargetType string `position:"Json" field:"target_type"`
|
||||||
|
TargetName string `position:"Json" field:"target_name"`
|
||||||
|
FileHash string `position:"Json" field:"file_hash"`
|
||||||
|
Filepath string `position:"Json" field:"filepath"`
|
||||||
|
ExtInfo string `position:"Json" field:"ext_info"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type InitMultipartUploadResponse struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
Code int `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Data struct {
|
||||||
|
FileUploaded bool `json:"file_uploaded"`
|
||||||
|
UploadId string `json:"upload_id,omitempty"`
|
||||||
|
Links []Link `json:"links,omitempty"`
|
||||||
|
Hash string `json:"hash,omitempty"`
|
||||||
|
Url string `json:"url,omitempty"`
|
||||||
|
Filepath string `json:"filepath,omitempty"`
|
||||||
|
FileName string `json:"filename,omitempty"`
|
||||||
|
} `json:"data"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Link struct {
|
||||||
|
Href string `json:"href"`
|
||||||
|
Rel string `json:"rel"`
|
||||||
|
Method string `json:"method"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateInitMultipartUploadRequest() (req *InitMultipartUploadRequest) {
|
||||||
|
ts := fmt.Sprintf("%d", time.Now().Unix())
|
||||||
|
m := md5.Sum([]byte(ts + multipartUploadKeys))
|
||||||
|
sign := hex.EncodeToString(m[:])
|
||||||
|
req = &InitMultipartUploadRequest{
|
||||||
|
JsonRequest: &requests.JsonRequest{},
|
||||||
|
}
|
||||||
|
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/api/upload/multipart/init?_ts="+ts+"&_sign="+sign)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateInitMultipartUploadResponse() (resp *InitMultipartUploadResponse) {
|
||||||
|
resp = &InitMultipartUploadResponse{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
return resp
|
||||||
|
}
|
@ -7,8 +7,8 @@ import (
|
|||||||
|
|
||||||
type DelOssRequest struct {
|
type DelOssRequest struct {
|
||||||
*requests.JsonRequest
|
*requests.JsonRequest
|
||||||
BucketName string `position:"Body" field:"bucket_name" default:"image"`
|
BucketName string `position:"Json" field:"bucket_name" default:"image"`
|
||||||
MediaUrl string `position:"Body" field:"url" default:"-"`
|
MediaUrl string `position:"Json" field:"url" default:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type DelOssResponse struct {
|
type DelOssResponse struct {
|
||||||
|
56
services/pay/client.go
Normal file
56
services/pay/client.go
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
package pay
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
VERSION = "2024-06-03"
|
||||||
|
)
|
||||||
|
|
||||||
|
var HOST requests.Host = requests.Host{
|
||||||
|
Default: "pay.api.gaore.com",
|
||||||
|
Func: func(s string) string {
|
||||||
|
var a = map[string]string{
|
||||||
|
requests.RELEASE: "pay.api.gaore.com",
|
||||||
|
requests.PRE: "pay.api.gaore.com",
|
||||||
|
requests.TEST: "pay.api.gaore.com",
|
||||||
|
}
|
||||||
|
return a[s]
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
type Client struct {
|
||||||
|
sdk.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewClient() (client *Client, err error) {
|
||||||
|
client = new(Client)
|
||||||
|
err = client.Init()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Client) ComplaintReply(req *ComplaintReplyRequest) (response *ComplaintReplyResponse, err error) {
|
||||||
|
response = CreateComplaintReplyResponse()
|
||||||
|
err = c.DoAction(req, response)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Client) ComplaintComplete(req *ComplaintCompleteRequest) (response *ComplaintCompleteResponse, err error) {
|
||||||
|
response = CreateComplaintCompleteResponse()
|
||||||
|
err = c.DoAction(req, response)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Client) ComplaintUpload(req *ComplaintUploadRequest) (response *ComplaintUploadResponse, err error) {
|
||||||
|
response = CreateComplaintUploadResponse()
|
||||||
|
err = c.DoAction(req, response)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Client) MerchantConfigDebug(req *merchantConfigDebugRequest) (response *merchantConfigDebugResponse, err error) {
|
||||||
|
response = CreateMerchantConfigDebugResponse()
|
||||||
|
err = c.DoAction(req, response)
|
||||||
|
return
|
||||||
|
}
|
28
services/pay/client_test.go
Normal file
28
services/pay/client_test.go
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package pay
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestClient_GetUserInfo(t *testing.T) {
|
||||||
|
|
||||||
|
c, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
req := CreateComplaintNotifyUrlRequest()
|
||||||
|
|
||||||
|
req.MchId = "3503"
|
||||||
|
req.NotifyUrl = "https://pay.uu89.com/api/complaint/wxNotify/3503"
|
||||||
|
req.Type = 1
|
||||||
|
|
||||||
|
resp, err := c.ComplaintNotifyUrl(req)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalln(err)
|
||||||
|
}
|
||||||
|
fmt.Println(resp.GetHttpContentString())
|
||||||
|
fmt.Println(resp.GetHttpHeaders())
|
||||||
|
}
|
34
services/pay/complaint_complete.go
Normal file
34
services/pay/complaint_complete.go
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package pay
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ComplaintCompleteRequest struct {
|
||||||
|
*requests.RpcRequest
|
||||||
|
MchId string `position:"Body" field:"mch_id" default:"" `
|
||||||
|
ComplaintId string `position:"Body" field:"complaint_id" default:"" `
|
||||||
|
}
|
||||||
|
|
||||||
|
type ComplaintCompleteResponse struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
Code int `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateComplaintCompleteRequest() (req *ComplaintCompleteRequest) {
|
||||||
|
req = &ComplaintCompleteRequest{
|
||||||
|
RpcRequest: &requests.RpcRequest{},
|
||||||
|
}
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/api/complaint/complete")
|
||||||
|
req.Method = requests.POST
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateComplaintCompleteResponse() (response *ComplaintCompleteResponse) {
|
||||||
|
response = &ComplaintCompleteResponse{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
36
services/pay/complaint_reply.go
Normal file
36
services/pay/complaint_reply.go
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
package pay
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ComplaintReplyRequest struct {
|
||||||
|
*requests.RpcRequest
|
||||||
|
MchId string `position:"Body" field:"mch_id" default:"" `
|
||||||
|
ComplaintId string `position:"Body" field:"complaint_id" default:"" `
|
||||||
|
Content string `position:"Body" field:"content" default:"" `
|
||||||
|
Images string `position:"Body" field:"images" default:"" `
|
||||||
|
}
|
||||||
|
|
||||||
|
type ComplaintReplyResponse struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
Code int `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateComplaintReplyRequest() (req *ComplaintReplyRequest) {
|
||||||
|
req = &ComplaintReplyRequest{
|
||||||
|
RpcRequest: &requests.RpcRequest{},
|
||||||
|
}
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/api/complaint/reply")
|
||||||
|
req.Method = requests.POST
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateComplaintReplyResponse() (response *ComplaintReplyResponse) {
|
||||||
|
response = &ComplaintReplyResponse{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
36
services/pay/complaint_upload.go
Normal file
36
services/pay/complaint_upload.go
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
package pay
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ComplaintUploadRequest struct {
|
||||||
|
*requests.RpcRequest
|
||||||
|
MchId string `position:"Body" field:"mch_id" default:"" `
|
||||||
|
ImageUrl string `position:"Body" field:"image_url" default:"" `
|
||||||
|
ComplaintId string `position:"Body" field:"complaint_id" default:" " `
|
||||||
|
}
|
||||||
|
|
||||||
|
type ComplaintUploadResponse struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
Code int `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Data map[string]string `json:"data"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateComplaintUploadRequest() (req *ComplaintUploadRequest) {
|
||||||
|
req = &ComplaintUploadRequest{
|
||||||
|
RpcRequest: &requests.RpcRequest{},
|
||||||
|
}
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/api/complaint/imageUpload")
|
||||||
|
req.Method = requests.POST
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateComplaintUploadResponse() (response *ComplaintUploadResponse) {
|
||||||
|
response = &ComplaintUploadResponse{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
33
services/pay/merchant_config_debug.go
Normal file
33
services/pay/merchant_config_debug.go
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package pay
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
||||||
|
)
|
||||||
|
|
||||||
|
type merchantConfigDebugRequest struct {
|
||||||
|
*requests.RpcRequest
|
||||||
|
MchId string `position:"Body" field:"mch_id" default:"" `
|
||||||
|
}
|
||||||
|
|
||||||
|
type merchantConfigDebugResponse struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
Code int `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateMerchantConfigDebugRequest() (req *merchantConfigDebugRequest) {
|
||||||
|
req = &merchantConfigDebugRequest{
|
||||||
|
RpcRequest: &requests.RpcRequest{},
|
||||||
|
}
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/api/complaint/configDebug")
|
||||||
|
req.Method = requests.POST
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateMerchantConfigDebugResponse() (response *merchantConfigDebugResponse) {
|
||||||
|
response = &merchantConfigDebugResponse{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
35
services/script/client.go
Normal file
35
services/script/client.go
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package script
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
VERSION = "2020-11-16"
|
||||||
|
)
|
||||||
|
|
||||||
|
var HOST = requests.Host{
|
||||||
|
Default: "script",
|
||||||
|
}
|
||||||
|
|
||||||
|
type Client struct {
|
||||||
|
sdk.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewClient() (client *Client, err error) {
|
||||||
|
client = new(Client)
|
||||||
|
err = client.Init()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// OpenGame 同步到游戏中心
|
||||||
|
func (c *Client) OpenGame(req *OpenGameReq) (resp *OpenGameResp, err error) {
|
||||||
|
resp = CreateOpenGameResp()
|
||||||
|
err = c.DoAction(req, resp)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
21
services/script/client_test.go
Normal file
21
services/script/client_test.go
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package script
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestOpenGame(t *testing.T) {
|
||||||
|
client, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
req := CreateOpenGameReq(7275)
|
||||||
|
|
||||||
|
resp, err := client.OpenGame(req)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(resp.Code, resp.Msg)
|
||||||
|
}
|
41
services/script/script.go
Normal file
41
services/script/script.go
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
package script
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
||||||
|
)
|
||||||
|
|
||||||
|
type OpenGameReq struct {
|
||||||
|
*requests.RpcRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
type OpenGameResp struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetHttpContentBytes 因为http://script.gaore.com/open_game.php?game_id=这个接口返回的不是json,反序列化会报错,所以返回一个固定的json
|
||||||
|
func (baseResponse *OpenGameResp) GetHttpContentBytes() []byte {
|
||||||
|
b, _ := json.Marshal(map[string]interface{}{"code": 200, "msg": "success"})
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateOpenGameReq 创建同步到游戏中心请求
|
||||||
|
func CreateOpenGameReq(gameId int) *OpenGameReq {
|
||||||
|
req := &OpenGameReq{
|
||||||
|
&requests.RpcRequest{},
|
||||||
|
}
|
||||||
|
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "open_game.php?game_id="+fmt.Sprintf("%v", gameId))
|
||||||
|
req.Method = requests.POST
|
||||||
|
|
||||||
|
return req
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateOpenGameResp 创建同步到游戏中心响应
|
||||||
|
func CreateOpenGameResp() *OpenGameResp {
|
||||||
|
return &OpenGameResp{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
}
|
41
services/stat/client.go
Normal file
41
services/stat/client.go
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
package stat
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
VERSION = "2020-11-16"
|
||||||
|
)
|
||||||
|
|
||||||
|
var HOST = requests.Host{
|
||||||
|
Default: "stat",
|
||||||
|
}
|
||||||
|
|
||||||
|
type Client struct {
|
||||||
|
sdk.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewClient() (client *Client, err error) {
|
||||||
|
client = new(Client)
|
||||||
|
err = client.Init()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// SyncGameServerList 同步开服数据
|
||||||
|
func (c *Client) SyncGameServerList(req *SyncGameServerListReq) (resp *SyncGameServerListResp, err error) {
|
||||||
|
resp = CreateSyncGameServerListResp()
|
||||||
|
err = c.DoAction(req, resp)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Client) SetUserNewGameAuth(req *SetUserNewGameAuthReq) (resp *SetUserNewGameAuthResp, err error) {
|
||||||
|
resp = CreateSetUserNewGameAuthResp()
|
||||||
|
err = c.DoAction(req, resp)
|
||||||
|
return
|
||||||
|
}
|
54
services/stat/client_test.go
Normal file
54
services/stat/client_test.go
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
package stat
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSyncGameServerList(t *testing.T) {
|
||||||
|
client, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
req := CreateSyncGameServerListReq("insertOrUpdate", []map[string]interface{}{
|
||||||
|
{
|
||||||
|
"id": 123564,
|
||||||
|
"channel_id": 12456,
|
||||||
|
"version_id": 1,
|
||||||
|
"game_id": 1,
|
||||||
|
"server_id": 1,
|
||||||
|
"game_sign": "test",
|
||||||
|
"name": "test",
|
||||||
|
"open_date": "2099-03-01",
|
||||||
|
"open_time": "12:00:00",
|
||||||
|
"remark": "",
|
||||||
|
"status": 1,
|
||||||
|
"if_tj": 1,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
resp, err := client.SyncGameServerList(req)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(resp.Code, resp.Msg, resp.Count)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_SetUserNewGameAuth(t *testing.T) {
|
||||||
|
client, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
req := CreateSetUserNewGameAuthReq(map[string]string{
|
||||||
|
"game_sign": "qwldy",
|
||||||
|
"game_id": "7275",
|
||||||
|
})
|
||||||
|
|
||||||
|
resp, err := client.SetUserNewGameAuth(req)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(resp.Code, resp.Msg, resp.Data.Result)
|
||||||
|
}
|
62
services/stat/game.go
Normal file
62
services/stat/game.go
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
package stat
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
||||||
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
|
||||||
|
)
|
||||||
|
|
||||||
|
type SyncGameServerListReq struct {
|
||||||
|
*requests.RpcRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
type SyncGameServerListResp struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
Code int `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Count int `json:"count"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateSyncGameServerListReq 创建同步开服数据请求
|
||||||
|
// opt: 更新 insertOrUpdate, 删除 del
|
||||||
|
//
|
||||||
|
// data: []map[string]interface{}{
|
||||||
|
// {
|
||||||
|
// "id": data.ID,
|
||||||
|
// "channel_id": data.ChannelID,
|
||||||
|
// "version_id": data.VersionID,
|
||||||
|
// "game_id": data.GameID,
|
||||||
|
// "server_id": data.ServerID,
|
||||||
|
// "game_sign": data.GameSign,
|
||||||
|
// "name": data.Name,
|
||||||
|
// "open_date": data.OpenDate.Format(constants.DateFormat),
|
||||||
|
// "open_time": data.OpenTime,
|
||||||
|
// "remark": data.Remark,
|
||||||
|
// "status": data.Status,
|
||||||
|
// "if_tj": data.IfTj,
|
||||||
|
// },
|
||||||
|
// }
|
||||||
|
func CreateSyncGameServerListReq(opt string, data []map[string]interface{}) *SyncGameServerListReq {
|
||||||
|
req := &SyncGameServerListReq{
|
||||||
|
&requests.RpcRequest{},
|
||||||
|
}
|
||||||
|
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/game/syncGameServerList")
|
||||||
|
req.Method = requests.POST
|
||||||
|
|
||||||
|
marshal, _ := json.Marshal(data)
|
||||||
|
|
||||||
|
req.FormParams = map[string]string{
|
||||||
|
"opt": opt,
|
||||||
|
"data": string(marshal),
|
||||||
|
}
|
||||||
|
|
||||||
|
return req
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateSyncGameServerListResp 创建同步开服数据响应
|
||||||
|
func CreateSyncGameServerListResp() *SyncGameServerListResp {
|
||||||
|
return &SyncGameServerListResp{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
}
|
59
services/stat/user.go
Normal file
59
services/stat/user.go
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
package stat
|
||||||
|
|
||||||
|
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 SetUserNewGameAuthReq struct {
|
||||||
|
*requests.RpcRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
type SetUserNewGameAuthResp struct {
|
||||||
|
*responses.BaseResponse
|
||||||
|
Code int `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Data Data `json:"data"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Data struct {
|
||||||
|
Result string `json:"result"`
|
||||||
|
}
|
||||||
|
|
||||||
|
const key = "gr_new_game"
|
||||||
|
|
||||||
|
// CreateSetUserNewGameAuthReq 设置用户新游戏授权
|
||||||
|
func CreateSetUserNewGameAuthReq(data map[string]string) *SetUserNewGameAuthReq {
|
||||||
|
req := &SetUserNewGameAuthReq{
|
||||||
|
&requests.RpcRequest{},
|
||||||
|
}
|
||||||
|
|
||||||
|
ts := time.Now().Unix()
|
||||||
|
hash := md5.New()
|
||||||
|
hash.Write([]byte(fmt.Sprintf("%v%v", ts, key)))
|
||||||
|
hashBytes := hash.Sum(nil)
|
||||||
|
|
||||||
|
token := hex.EncodeToString(hashBytes)
|
||||||
|
|
||||||
|
req.InitWithApiInfo(HOST, VERSION, "/user/setUserNewGameAuth")
|
||||||
|
req.Method = requests.POST
|
||||||
|
|
||||||
|
req.FormParams = data
|
||||||
|
if req.FormParams == nil {
|
||||||
|
req.FormParams = make(map[string]string)
|
||||||
|
}
|
||||||
|
req.FormParams["sign"] = token
|
||||||
|
req.FormParams["time"] = fmt.Sprintf("%v", ts)
|
||||||
|
return req
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateSetUserNewGameAuthResp 创建设置用户新游戏授权响应
|
||||||
|
func CreateSetUserNewGameAuthResp() *SetUserNewGameAuthResp {
|
||||||
|
return &SetUserNewGameAuthResp{
|
||||||
|
BaseResponse: &responses.BaseResponse{},
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user