7
0

Compare commits

...

16 Commits

23 changed files with 729 additions and 12 deletions

31
services/game/client.go Normal file
View 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
}

View 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
View 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{},
}
}

View File

@ -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
}

View 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
View 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
}

View File

@ -0,0 +1,36 @@
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:"Body" 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"`
} `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{},
}
}

View File

@ -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
}

View File

@ -1,6 +1,7 @@
package oss package oss
import ( import (
"encoding/json"
"os" "os"
"testing" "testing"
) )
@ -39,3 +40,42 @@ func TestUpload_Del(t *testing.T) {
} }
t.Log(resp.Code) t.Log(resp.Code)
} }
func TestCreateInitMultipartUpload(t *testing.T) {
req := CreateInitMultipartUploadRequest()
req.Filepath = "test.jpg"
req.TargetType = "oss"
req.TargetName = "image"
req.FileHash = "51c68615b8d21f9b72b02f48c400cb87"
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 = "36c55c4c3a2f4c79e3917b989d580496.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)
}

View File

@ -0,0 +1,62 @@
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
Filepath string `position:"Body" field:"filepath"`
TargetType string `position:"Body" field:"target_type"`
TargetName string `position:"Body" field:"target_name"`
FileHash string `position:"Body" field:"file_hash"`
}
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
}

View File

@ -10,12 +10,12 @@ const (
) )
var HOST requests.Host = requests.Host{ var HOST requests.Host = requests.Host{
Default: "pay.uu89.com", Default: "pay.gaore.com",
Func: func(s string) string { Func: func(s string) string {
var a = map[string]string{ var a = map[string]string{
requests.RELEASE: "pay.uu89.com", requests.RELEASE: "pay.gaore.com",
requests.PRE: "pay.uu89.com", requests.PRE: "pay.gaore.com",
requests.TEST: "pay.uu89.com", requests.TEST: "pay.gaore.com",
} }
return a[s] return a[s]
}, },
@ -48,3 +48,9 @@ func (c *Client) ComplaintUpload(req *ComplaintUploadRequest) (response *Complai
err = c.DoAction(req, response) err = c.DoAction(req, response)
return return
} }
func (c *Client) ComplaintNotifyUrl(req *ComplaintNotifyUrlRequest) (response *ComplaintNotifyUrlResponse, err error) {
response = CreateComplaintNotifyUrlResponse()
err = c.DoAction(req, response)
return
}

View File

@ -13,12 +13,13 @@ func TestClient_GetUserInfo(t *testing.T) {
t.Error(err) t.Error(err)
} }
req := CreateComplaintUploadRequest() req := CreateComplaintNotifyUrlRequest()
req.MchId = "3503" req.MchId = "3503"
req.ImageUrl = "https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64" req.NotifyUrl = "https://pay.uu89.com/api/complaint/wxNotify/3503"
req.Type = 1
resp, err := c.ComplaintUpload(req) resp, err := c.ComplaintNotifyUrl(req)
if err != nil { if err != nil {
log.Fatalln(err) log.Fatalln(err)
} }

View File

@ -21,7 +21,7 @@ func CreateComplaintCompleteRequest() (req *ComplaintCompleteRequest) {
req = &ComplaintCompleteRequest{ req = &ComplaintCompleteRequest{
RpcRequest: &requests.RpcRequest{}, RpcRequest: &requests.RpcRequest{},
} }
req.InitWithApiInfo(HOST, VERSION, "/api/complaint/wxComplaintComplete") req.InitWithApiInfo(HOST, VERSION, "/api/complaint/complete")
req.Method = requests.POST req.Method = requests.POST
return return
} }

View File

@ -0,0 +1,35 @@
package pay
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type ComplaintNotifyUrlRequest struct {
*requests.RpcRequest
MchId string `position:"Body" field:"mch_id" default:"" `
NotifyUrl string `position:"Body" field:"notify_url" default:"" `
Type int `position:"Body" field:"type" default:""`
}
type ComplaintNotifyUrlResponse struct {
*responses.BaseResponse
Code int `json:"code"`
Msg string `json:"msg"`
}
func CreateComplaintNotifyUrlRequest() (req *ComplaintNotifyUrlRequest) {
req = &ComplaintNotifyUrlRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/complaint/createWxNotifyUrl")
req.Method = requests.POST
return
}
func CreateComplaintNotifyUrlResponse() (response *ComplaintNotifyUrlResponse) {
response = &ComplaintNotifyUrlResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

View File

@ -23,7 +23,7 @@ func CreateComplaintReplyRequest() (req *ComplaintReplyRequest) {
req = &ComplaintReplyRequest{ req = &ComplaintReplyRequest{
RpcRequest: &requests.RpcRequest{}, RpcRequest: &requests.RpcRequest{},
} }
req.InitWithApiInfo(HOST, VERSION, "/api/complaint/wxComplaintReply") req.InitWithApiInfo(HOST, VERSION, "/api/complaint/reply")
req.Method = requests.POST req.Method = requests.POST
return return
} }

View File

@ -7,8 +7,9 @@ import (
type ComplaintUploadRequest struct { type ComplaintUploadRequest struct {
*requests.RpcRequest *requests.RpcRequest
MchId string `position:"Body" field:"mch_id" default:"" ` MchId string `position:"Body" field:"mch_id" default:"" `
ImageUrl string `position:"Body" field:"image_url" default:"" ` ImageUrl string `position:"Body" field:"image_url" default:"" `
ComplaintId string `position:"Body" field:"complaint_id" default:" " `
} }
type ComplaintUploadResponse struct { type ComplaintUploadResponse struct {
@ -22,7 +23,7 @@ func CreateComplaintUploadRequest() (req *ComplaintUploadRequest) {
req = &ComplaintUploadRequest{ req = &ComplaintUploadRequest{
RpcRequest: &requests.RpcRequest{}, RpcRequest: &requests.RpcRequest{},
} }
req.InitWithApiInfo(HOST, VERSION, "/api/complaint/wxComplaintUpload") req.InitWithApiInfo(HOST, VERSION, "/api/complaint/imageUpload")
req.Method = requests.POST req.Method = requests.POST
return return
} }

35
services/script/client.go Normal file
View 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
}

View 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
View 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
View 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
}

View 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
View 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
View 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{},
}
}