8
0
gaore-common-sdk-go/services/big-data/get_role_create_log.go

143 lines
5.7 KiB
Go
Raw Normal View History

2026-06-10 09:52:07 +08:00
package big_data
import (
"bytes"
"encoding/json"
"io"
"strings"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
// GetRoleCreateLogParam 角色创建日志查询参数
2026-06-10 14:38:42 +08:00
// 说明:等级区间用 *int64、金额区间用 *float64(金额带小数),未设置(nil)时不参与筛选;切片为空表示不限定该条件
2026-06-10 09:52:07 +08:00
type GetRoleCreateLogParam struct {
Uid string `json:"uid"`
EventTime []string `json:"event_time"` // 区间 [开始, 结束]
GameSign string `json:"game_sign"`
GameId string `json:"game_id"`
RoleName string `json:"role_name"`
RoleId string `json:"role_id"`
ServerName string `json:"server_name"`
ServerId string `json:"server_id"`
2026-06-10 09:52:07 +08:00
RoleLevelMin *int64 `json:"role_level_min"`
RoleLevelMax *int64 `json:"role_level_max"`
2026-06-10 14:38:42 +08:00
PayAmtAccMin *float64 `json:"pay_amt_acc_min"`
PayAmtAccMax *float64 `json:"pay_amt_acc_max"`
2026-06-10 09:52:07 +08:00
Page int `json:"page"`
PageSize int `json:"page_size"`
XDebug string `json:"x_debug"` // 测试环境调试头,正式调用可留空
}
// GetRoleCreateLogRequest 角色创建日志查询请求
type GetRoleCreateLogRequest struct {
*requests.JsonRequest
Uid string `position:"Json" field:"uid"`
EventTime []string `position:"Json" field:"event_time"`
GameSign string `position:"Json" field:"game_sign"`
GameId string `position:"Json" field:"game_id"`
RoleName string `position:"Json" field:"role_name"`
RoleId string `position:"Json" field:"role_id"`
ServerName string `position:"Json" field:"server_name"`
ServerId string `position:"Json" field:"server_id"`
2026-06-10 09:52:07 +08:00
RoleLevelMin *int64 `position:"Json" field:"role_level_min"`
RoleLevelMax *int64 `position:"Json" field:"role_level_max"`
2026-06-10 14:38:42 +08:00
PayAmtAccMin *float64 `position:"Json" field:"pay_amt_acc_min"`
PayAmtAccMax *float64 `position:"Json" field:"pay_amt_acc_max"`
2026-06-10 09:52:07 +08:00
Page int `position:"Json" field:"page"`
PageSize int `position:"Json" field:"page_size"`
Authorization string `position:"Header" field:"Authorization"`
XDebug string `position:"Header" field:"x-debug"`
}
// getRoleCreateLogBody 自定义请求体序列化结构,绕开 core 的反射序列化(JsonParams)
// - 数值字段 *int64 + omitempty未设置(nil)时该字段不出现在 JSON 中,避免 0 被 DMS 当成真实筛选条件;
// - event_time 切片统一为非 nil 空数组 []:避免 nil 被序列化成 null 触发 DMS 类型校验失败;
2026-06-10 09:52:07 +08:00
// - 标量字符串用 omitempty空串时不出现在 JSON 中。
type getRoleCreateLogBody struct {
Uid string `json:"uid,omitempty"`
EventTime []string `json:"event_time"`
GameSign string `json:"game_sign,omitempty"`
GameId string `json:"game_id,omitempty"`
RoleName string `json:"role_name,omitempty"`
RoleId string `json:"role_id,omitempty"`
ServerName string `json:"server_name,omitempty"`
ServerId string `json:"server_id,omitempty"`
2026-06-10 09:52:07 +08:00
RoleLevelMin *int64 `json:"role_level_min,omitempty"`
RoleLevelMax *int64 `json:"role_level_max,omitempty"`
2026-06-10 14:38:42 +08:00
PayAmtAccMin *float64 `json:"pay_amt_acc_min,omitempty"`
PayAmtAccMax *float64 `json:"pay_amt_acc_max,omitempty"`
2026-06-10 09:52:07 +08:00
Page int `json:"page"`
PageSize int `json:"page_size"`
}
// GetBodyReader 覆盖 JsonRequest 默认实现,使用自定义结构序列化 body。
// 鉴权头(Authorization / x-debug)仍由 core 的 InitParam 按 Header 字段设置,不受影响。
func (request *GetRoleCreateLogRequest) GetBodyReader() io.Reader {
body := getRoleCreateLogBody{
Uid: request.Uid,
EventTime: emptyStrSlice(request.EventTime),
GameSign: request.GameSign,
GameId: request.GameId,
RoleName: request.RoleName,
RoleId: request.RoleId,
ServerName: request.ServerName,
ServerId: request.ServerId,
2026-06-10 09:52:07 +08:00
RoleLevelMin: request.RoleLevelMin,
RoleLevelMax: request.RoleLevelMax,
PayAmtAccMin: request.PayAmtAccMin,
PayAmtAccMax: request.PayAmtAccMax,
Page: request.Page,
PageSize: request.PageSize,
}
b, err := json.Marshal(body)
if err != nil {
return strings.NewReader("")
}
return bytes.NewReader(b)
}
// GetRoleCreateLogResponse 角色创建日志查询响应返回不做处理data 原样透出)
type GetRoleCreateLogResponse struct {
*responses.BaseResponse
Code int `json:"code"`
Message string `json:"message"`
Data json.RawMessage `json:"data"`
}
// CreateGetRoleCreateLogRequest 创建角色创建日志查询请求
// token 为 GetToken 返回的 data.token直接放入 Authorization 头
func CreateGetRoleCreateLogRequest(token string, param GetRoleCreateLogParam) *GetRoleCreateLogRequest {
req := &GetRoleCreateLogRequest{
JsonRequest: &requests.JsonRequest{},
Uid: param.Uid,
EventTime: param.EventTime,
GameSign: param.GameSign,
GameId: param.GameId,
RoleName: param.RoleName,
RoleId: param.RoleId,
ServerName: param.ServerName,
ServerId: param.ServerId,
RoleLevelMin: param.RoleLevelMin,
RoleLevelMax: param.RoleLevelMax,
PayAmtAccMin: param.PayAmtAccMin,
PayAmtAccMax: param.PayAmtAccMax,
Page: param.Page,
PageSize: param.PageSize,
Authorization: token,
XDebug: param.XDebug,
}
req.InitWithApiInfo(HOST, VERSION, "/api/internal/v1/get_role_create_log")
req.Method = requests.POST
req.Scheme = requests.HTTPS
return req
}
// CreateGetRoleCreateLogResponse 创建角色创建日志查询响应
func CreateGetRoleCreateLogResponse() *GetRoleCreateLogResponse {
return &GetRoleCreateLogResponse{
BaseResponse: &responses.BaseResponse{},
}
}