8
0
gaore-common-sdk-go/services/stat/client_test.go
xuyang 0d08ac88b8 feat: stat 新增按游戏统计充值净额接口 GetGamePayAmount
对接 stat.gaore.com 的 /pay/getGamePayAmount:
- pay_channel.go:GetGamePayAmountReq/Resp/Param + 工厂函数(POST form,
  入参 tdate/tdate2/game_id/group_by_date),返回 game_id + pay_amount(单位元);
- client.go:新增 GetGamePayAmount 方法;
- client_test.go:新增 TestGetGamePayAmount。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 19:16:17 +08:00

381 lines
8.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package stat
import (
"encoding/json"
"fmt"
"testing"
"time"
)
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)
}
// TestClient_GetAgentList 查询代理列表单元测试
func TestClient_GetAgentList(t *testing.T) {
client, err := NewClient()
if err != nil {
panic(err)
}
req := CreateGetAgentListReq(map[string]string{
"agent_id": "4051,68017",
//"agent_id": "99",
})
resp, err := client.GetAgentList(req)
if err != nil {
panic(err)
}
fmt.Println(resp.Code, resp.Msg, resp.Data)
// 断言 resp.Code = 1且 resp.Data 不空为正常
if resp.Code != 1 || len(resp.Data.List) == 0 {
t.Errorf("GetAgentList test failed")
} else {
t.Log("GetAgentList test passed")
}
}
// TestClient_GetUserRoleRegPage 查询用户角色注册分页
func TestClient_GetUserRoleRegPage(t *testing.T) {
client, err := NewClient()
if err != nil {
panic(err)
}
req := CreateUserRoleRegPageReq(UserRoleRegParam{
Page: 1,
PageSize: 10,
RoleId: "",
RoleName: "温文波箐魔灵",
})
resp, err := client.GetUserRoleRegPage(req)
if err != nil {
panic(err)
}
fmt.Println(resp.Code, resp.Msg, resp.Data)
}
func TestClient_GetAnchorBySiteId(t *testing.T) {
client, err := NewClient()
if err != nil {
t.Fatal(err)
}
req := CreateGetAnchorBySiteIdReq(6434244)
resp, err := client.GetAnchorBySiteId(req)
if err != nil {
t.Fatal(err)
}
fmt.Println(resp.Code, resp.Msg, resp.Data.AnchorName)
}
func TestClient_GetAnchorByLiveCode(t *testing.T) {
client, err := NewClient()
if err != nil {
t.Fatal(err)
}
req := CreateGetAnchorByLiveCodeReq("梦无敌111")
resp, err := client.GetAnchorByLiveCode(req)
if err != nil {
t.Fatal(err)
}
fmt.Println(resp.Code, resp.Msg, resp.Data.AnchorName)
}
// 获取用户累计付费
func TestGetUserTotalPay(t *testing.T) {
client, err := NewClient()
if err != nil {
panic(err)
}
req := CreateGetUserTotalPayReq(GetUserTotalPayParam{
Where: "user_name = 'yoyo685757'",
Fields: []string{"user_name", "sum(total_pay_money) as total_pay_money", "last_pay_time"},
GroupBy: []string{"user_name"},
})
resp, err := client.GetUserTotalPay(req)
if err != nil {
panic(err)
}
fmt.Println(resp.Code, resp.Msg, resp.Data)
}
func TestGetGameServerCountData(t *testing.T) {
client, err := NewClient()
if err != nil {
panic(err)
}
req := CreateGetGameServerCountDataReq(&GetGameServerCountDataReq{
GameIds: []int64{3706},
ServerId: 203902,
RoleDates: []string{"2023-10-09", "2024-02-06"},
})
resp, err := client.GetGameServerCountData(req)
if err != nil {
panic(err)
}
fmt.Printf("%+v", resp.Data)
}
func TestClient_GetLiveCode(t *testing.T) {
client, err := NewClient()
if err != nil {
t.Fatal(err)
}
req := CreateGetLiveCodeReq("梦无敌111")
resp, err := client.GetLiveCode(req)
if err != nil {
t.Fatal(err)
}
t.Log(resp.Code, resp.Msg, resp.Data)
}
func TestClient_BindLiveCode(t *testing.T) {
client, err := NewClient()
if err != nil {
t.Fatal(err)
}
req := CreateBindLiveCodeReq(BindLiveCodeParam{
AnchorName: "梦无敌111",
BindTime: time.Now().Unix(),
GameId: 3706,
GameSign: "qwldy",
LiveCode: "梦无敌111",
LiveSiteId: 203902,
RegDate: "2023-10-09",
Uid: 123456,
UserName: "grtest1001",
})
resp, err := client.BindLiveCode(req)
if err != nil {
t.Fatal(err)
}
t.Log(resp.Code, resp.Msg)
}
func TestUserReg(t *testing.T) {
param := &UserRegParam{}
// DeviceInfo 字段
param.Network = "WiFi"
param.ScreenResolution = "1920x1080"
param.System = "Android 11"
param.Electric = "80"
param.ProcessorModel = "Snapdragon 888"
param.BaseBand = "qualcomm"
param.Model = "Xiaomi Mi 11"
param.Battery = "80"
param.Package = "com.game.test"
param.LongId = "device_long_id_123456"
param.Imei = "123456789012345"
param.Oaid = "oaid_1234567890"
param.Idfa = "idfa_1234567890"
param.Idfv = "idfv_1234567890"
param.AdDevice = "ad_device_info"
param.Os = "Android"
param.IP = "192.168.1.100"
param.Ua = "Mozilla/5.0..."
param.WxPlatform = "WeChat MiniProgram"
param.Adinfo = "ad_info_data"
// UserRegparamuest 特有字段
param.ChannelId = 1
param.GameId = 7275
param.LoginGameId = 7275
param.GameSign = "qwldy"
param.Uid = 123456
param.UserName = "test_user"
param.Openid = "123456"
param.ComeBackUser = 1
param.RegTime = time.Now().Unix()
param.Logined = 1
param.RegType = 1
param.LpReg = 0
param.MatchType = 1
param.AgentId = 100
param.SiteId = 1001
param.PkgAgentId = 100
param.PkgSiteId = 1001
param.FromAd = 0
param.FanCode = "FAN123456"
param.InvalidUuid = 0
req := CreateUserRegRequest(param)
client, err := NewClient()
if err != nil {
t.Fatal(err)
}
resp, err := client.UserReg(req)
if err != nil {
panic(err)
}
t.Log(resp.Code)
}
func TestUserLogin(t *testing.T) {
param := &UserLoginParam{}
// DeviceInfo 字段
param.Network = "WiFi"
param.ScreenResolution = "1920x1080"
param.System = "Android 11"
param.Electric = "80"
param.ProcessorModel = "Snapdragon 888"
param.BaseBand = "qualcomm"
param.Model = "Xiaomi Mi 11"
param.Battery = "80"
param.Package = "com.game.test"
param.LongId = "device_long_id_123456"
param.Imei = "123456789012345"
param.Oaid = "oaid_1234567890"
param.Idfa = "idfa_1234567890"
param.Idfv = "idfv_1234567890"
param.AdDevice = "ad_device_info"
param.Os = "Android"
param.IP = "192.168.1.100"
param.Ua = "Mozilla/5.0..."
param.WxPlatform = "WeChat MiniProgram"
param.Adinfo = "ad_info_data"
// UserRegparamuest 特有字段
param.ChannelId = 1
param.GameId = 7275
param.GameSign = "qwldy"
param.Uid = 123456
param.UserName = "test_user"
param.RegTime = time.Now().Unix()
param.OriginalImei = param.Imei
param.LoginTime = time.Now().Unix()
param.LoginAgentId = 100
param.LoginSiteId = 1001
param.PkgAgentId = 100
param.PkgSiteId = 1001
param.Version = "2.7.1"
b, err := json.Marshal(param)
if err != nil {
t.Fatal(err)
}
t.Log(string(b))
req := CreateUserLoginRequest(param)
client, err := NewClient()
if err != nil {
t.Fatal(err)
}
resp, err := client.UserLogin(req)
if err != nil {
t.Fatal(err)
}
t.Log(resp.Code, resp.Data)
}
func TestSetSiteKey(t *testing.T) {
client, err := NewClient()
if err != nil {
t.Log(err)
return
}
resp, err := client.SetSiteKey(CreateSetSiteKeyReq(SetSiteKeyParam{
AgentId: 1213123,
SiteId: 1231122,
GameId: 1,
AdSource: 1,
ConvertSourceType: "1",
Key: "1",
Token: "1",
}))
if err != nil {
t.Log(err)
return
}
_ = resp
}
func TestCallbackWeightUpdate(t *testing.T) {
client, err := NewClient()
if err != nil {
t.Log(err)
return
}
resp, err := client.CallbackWeightUpdate(CreateCallbackWeightUpdateReq())
if err != nil {
t.Log(err)
return
}
t.Log(resp)
}
// TestGetGamePayAmount 按游戏统计充值净额pay_amount单位元
func TestGetGamePayAmount(t *testing.T) {
client, err := NewClient()
if err != nil {
t.Fatal(err)
}
req := CreateGetGamePayAmountReq(GetGamePayAmountParam{
Tdate: "2026-05-01", // 开始日期
Tdate2: "2026-05-31", // 结束日期(含当天)
GameIds: []int64{3706}, // 游戏id(=switch_game_id),传 nil 则全部
GroupByDate: false, // 仅按游戏汇总true 则按日期+游戏拆分
})
resp, err := client.GetGamePayAmount(req)
if err != nil {
t.Fatal(err)
}
fmt.Println(resp.Code, resp.Msg)
for _, r := range resp.Data.List {
fmt.Printf("tdate=%s game_id=%d pay_amount=%.2f\n", r.Tdate, r.GameId, r.PayAmount)
}
// 成功码为 1
if resp.Code != 1 {
t.Errorf("GetGamePayAmount failed: code=%d msg=%s", resp.Code, resp.Msg)
}
}