From fac72b7014a0e8d39195abb6a06d65edb4e4b536 Mon Sep 17 00:00:00 2001 From: luoxun Date: Thu, 11 Jun 2026 14:41:34 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E7=99=BB=E5=BD=95=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E7=99=BB=E5=BD=95=E6=97=B6=E9=97=B4=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/big-data/get_user_login_log.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/big-data/get_user_login_log.go b/services/big-data/get_user_login_log.go index 2a5757b..19ecf6b 100644 --- a/services/big-data/get_user_login_log.go +++ b/services/big-data/get_user_login_log.go @@ -14,7 +14,7 @@ import ( // 说明:切片为空表示不限定该条件;标量字符串为空时不参与筛选 type GetUserLoginLogParam struct { Uid string `json:"uid"` - EventTime string `json:"event_time"` // 形如 "2026-06" + EventTime []string `json:"event_time"` // 区间 [开始, 结束] GameSign string `json:"game_sign"` ServerGroupId []string `json:"server_group_id"` GameId string `json:"game_id"` @@ -31,7 +31,7 @@ type GetUserLoginLogParam struct { type GetUserLoginLogRequest struct { *requests.JsonRequest Uid string `position:"Json" field:"uid"` - EventTime string `position:"Json" field:"event_time"` + EventTime []string `position:"Json" field:"event_time"` GameSign string `position:"Json" field:"game_sign"` ServerGroupId []string `position:"Json" field:"server_group_id"` GameId string `position:"Json" field:"game_id"` @@ -50,7 +50,7 @@ type GetUserLoginLogRequest struct { // - 标量字符串用 omitempty:空串时不出现在 JSON 中,避免被 DMS 当成真实筛选条件。 type getUserLoginLogBody struct { Uid string `json:"uid,omitempty"` - EventTime string `json:"event_time,omitempty"` + EventTime []string `json:"event_time"` GameSign string `json:"game_sign,omitempty"` ServerGroupId []string `json:"server_group_id"` GameId string `json:"game_id,omitempty"` @@ -67,7 +67,7 @@ type getUserLoginLogBody struct { func (request *GetUserLoginLogRequest) GetBodyReader() io.Reader { body := getUserLoginLogBody{ Uid: request.Uid, - EventTime: request.EventTime, + EventTime: emptyStrSlice(request.EventTime), GameSign: request.GameSign, ServerGroupId: emptyStrSlice(request.ServerGroupId), GameId: request.GameId, From 7097afb18c48b6e71173332eb9183ba9cb5ce2fb Mon Sep 17 00:00:00 2001 From: yuxh Date: Fri, 12 Jun 2026 15:33:16 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat(pay):=20=E6=96=B0=E5=A2=9E=E5=88=87?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=90=8D=E5=8D=95=E4=B8=AD=E8=BD=AC=E4=B8=8E?= =?UTF-8?q?=E6=B8=85=E7=BC=93=E5=AD=98=20SDK=20=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit game 服务新增 GetPaySwitchUser(按 user_name+game_id 读 db_center 切支付名单,返回 status+risk_level); asdk 服务新增 ClearPaySwitchCache(内网无签名,按 user_name+game_id 即时清切支付判定缓存)。 供 asdk/center 微信小游戏切支付功能调用。 --- services/asdk/client.go | 7 ++++++ services/asdk/pay_switch.go | 42 ++++++++++++++++++++++++++++++++++ services/game/client.go | 7 ++++++ services/game/pay_switch.go | 45 +++++++++++++++++++++++++++++++++++++ 4 files changed, 101 insertions(+) create mode 100644 services/asdk/pay_switch.go create mode 100644 services/game/pay_switch.go diff --git a/services/asdk/client.go b/services/asdk/client.go index 0129558..c378822 100644 --- a/services/asdk/client.go +++ b/services/asdk/client.go @@ -54,3 +54,10 @@ func (c *Client) Auth(req *AuthReq) (resp *AuthResp, err error) { err = c.DoAction(req, resp) return } + +// ClearPaySwitchCache 清切支付名单判定缓存(内网无签名接口,按 user_name + game_id 即时清 asdk 判定缓存) +func (c *Client) ClearPaySwitchCache(req *ClearPaySwitchCacheReq) (resp *ClearPaySwitchCacheResp, err error) { + resp = CreateClearPaySwitchCacheResp() + err = c.DoAction(req, resp) + return +} diff --git a/services/asdk/pay_switch.go b/services/asdk/pay_switch.go new file mode 100644 index 0000000..dc774bb --- /dev/null +++ b/services/asdk/pay_switch.go @@ -0,0 +1,42 @@ +package asdk + +import ( + "strconv" + + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests" + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses" +) + +// ClearPaySwitchCacheReq +// 清切支付名单判定缓存请求(内网无签名接口,按 user_name + game_id 即时清 asdk 判定缓存) +type ClearPaySwitchCacheReq struct { + *requests.RpcRequest +} + +type ClearPaySwitchCacheResp struct { + *responses.BaseResponse + Code int `json:"code"` + Msg string `json:"msg"` + Data struct{} `json:"data"` + TraceId string `json:"trace_id"` +} + +// CreateClearPaySwitchCacheReq 构造清缓存请求(user_name + game_id) +func CreateClearPaySwitchCacheReq(userName string, gameId int64) *ClearPaySwitchCacheReq { + req := &ClearPaySwitchCacheReq{ + RpcRequest: &requests.RpcRequest{}, + } + req.InitWithApiInfo(HOST, VERSION, "/api/vip/clear_pay_switch_cache") + req.Method = requests.POST + req.FormParams = map[string]string{ + "user_name": userName, + "game_id": strconv.FormatInt(gameId, 10), + } + return req +} + +func CreateClearPaySwitchCacheResp() *ClearPaySwitchCacheResp { + return &ClearPaySwitchCacheResp{ + BaseResponse: &responses.BaseResponse{}, + } +} diff --git a/services/game/client.go b/services/game/client.go index 74c3341..b651b72 100644 --- a/services/game/client.go +++ b/services/game/client.go @@ -205,3 +205,10 @@ func (c *Client) GetRole(req *GetRoleReq) (response *GetRoleResp, err error) { err = c.DoAction(req, response) return } + +// GetPaySwitchUser 微信小游戏切支付名单中转查询(按 user_name + game_id 读 db_center 名单,返回 status + risk_level) +func (c *Client) GetPaySwitchUser(req *GetPaySwitchUserReq) (resp *GetPaySwitchUserResp, err error) { + resp = CreateGetPaySwitchUserResp() + err = c.DoAction(req, resp) + return +} diff --git a/services/game/pay_switch.go b/services/game/pay_switch.go new file mode 100644 index 0000000..e827b01 --- /dev/null +++ b/services/game/pay_switch.go @@ -0,0 +1,45 @@ +package game + +import ( + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests" + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses" +) + +// GetPaySwitchUserReq +// 微信小游戏切支付名单中转查询请求(按 user_name + game_id 读 db_center.wd_pay_switch_user) +type GetPaySwitchUserReq struct { + *requests.RpcRequest + UserName string `position:"Body" field:"user_name"` // 账号 + GameId int64 `position:"Body" field:"game_id"` // 子游戏ID +} + +// GetPaySwitchUserRespData 中转返回的名单状态 +type GetPaySwitchUserRespData struct { + Status int64 `json:"status"` // 切支付开关 1开启 0关闭 + RiskLevel int64 `json:"risk_level"` // 风险档位 1高 2中 3低;0未设置/关闭 +} + +type GetPaySwitchUserResp struct { + *responses.BaseResponse + Code int `json:"code"` + Msg string `json:"msg"` + Data GetPaySwitchUserRespData `json:"data"` +} + +func CreateGetPaySwitchUserReq(userName string, gameId int64) *GetPaySwitchUserReq { + req := &GetPaySwitchUserReq{ + RpcRequest: &requests.RpcRequest{}, + } + req.UserName = userName + req.GameId = gameId + req.InitWithApiInfo(HOST, VERSION, "/api/pay/switchUser") + req.Method = requests.POST + return req +} + +func CreateGetPaySwitchUserResp() *GetPaySwitchUserResp { + resp := &GetPaySwitchUserResp{ + BaseResponse: &responses.BaseResponse{}, + } + return resp +}