From edcf4cd90fadfd8b8eaa8a0a78583f8c823dbcf4 Mon Sep 17 00:00:00 2001 From: huangqz Date: Tue, 18 Aug 2026 15:18:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(wx-work):=20=E6=96=B0=E5=A2=9E=E4=BC=81?= =?UTF-8?q?=E5=BE=AE=E5=AE=A2=E6=88=B7=E6=89=93=E6=A0=87=E7=AD=BE=E4=B8=89?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/wx-work/client.go | 30 +++++++++ services/wx-work/tag.go | 125 +++++++++++++++++++++++++++++++++++++ 2 files changed, 155 insertions(+) create mode 100644 services/wx-work/tag.go diff --git a/services/wx-work/client.go b/services/wx-work/client.go index c243cbe..5fc3913 100644 --- a/services/wx-work/client.go +++ b/services/wx-work/client.go @@ -42,3 +42,33 @@ func (c *Client) IsUserBind(req *IsUserBindReq) (resp *IsUserBindResp, err error } return } + +// AddGameSignTag 给企微客户添加来源游戏大类标签 +func (c *Client) AddGameSignTag(req *AddGameSignTagReq) (resp *AddGameSignTagResp, err error) { + resp = CreateAddGameSignTagResp() + err = c.DoAction(req, resp) + if err != nil { + return + } + return +} + +// AddGameIdTag 给企微客户添加来源子游戏标签 +func (c *Client) AddGameIdTag(req *AddGameIdTagReq) (resp *AddGameIdTagResp, err error) { + resp = CreateAddGameIdTagResp() + err = c.DoAction(req, resp) + if err != nil { + return + } + return +} + +// AddUserRegGameTag 按玩家注册的子游戏/根游戏给企微客户打标签 +func (c *Client) AddUserRegGameTag(req *AddUserRegGameTagReq) (resp *AddUserRegGameTagResp, err error) { + resp = CreateAddUserRegGameTagResp() + err = c.DoAction(req, resp) + if err != nil { + return + } + return +} diff --git a/services/wx-work/tag.go b/services/wx-work/tag.go new file mode 100644 index 0000000..2544e76 --- /dev/null +++ b/services/wx-work/tag.go @@ -0,0 +1,125 @@ +package wx_work + +import ( + "strconv" + + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests" + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses" +) + +// 打标签系列接口的响应约定:Code 为 0(common.Code.Success)表示成功, +// 非 0 时 Msg 为具体失败原因。三个接口均无 data 返回。 + +type AddGameSignTagReq struct { + *requests.RpcRequest +} + +type AddGameSignTagResp struct { + *responses.BaseResponse + Code int `json:"status_code"` + Msg string `json:"status_msg"` +} + +// CreateAddGameSignTagReq 添加来源游戏大类标签请求 +// +// company 公司主体,如 GR +// customerId 企微客户ID(external_userid) +// gameSign 游戏大类标识 +func CreateAddGameSignTagReq(company, customerId, gameSign string) *AddGameSignTagReq { + req := &AddGameSignTagReq{ + RpcRequest: &requests.RpcRequest{}, + } + + req.InitWithApiInfo(HOST, VERSION, "/v1/tag/add_game_sign_tag") + req.Method = requests.POST + req.FormParams = map[string]string{ + "company": company, + "customer_id": customerId, + "game_sign": gameSign, + } + return req +} + +// CreateAddGameSignTagResp 添加来源游戏大类标签响应 +func CreateAddGameSignTagResp() *AddGameSignTagResp { + return &AddGameSignTagResp{ + BaseResponse: &responses.BaseResponse{}, + } +} + +type AddGameIdTagReq struct { + *requests.RpcRequest +} + +type AddGameIdTagResp struct { + *responses.BaseResponse + Code int `json:"status_code"` + Msg string `json:"status_msg"` +} + +// CreateAddGameIdTagReq 添加来源子游戏标签请求 +// +// company 公司主体,如 GR +// customerId 企微客户ID(external_userid) +// gameId 子游戏ID +func CreateAddGameIdTagReq(company, customerId string, gameId int64) *AddGameIdTagReq { + req := &AddGameIdTagReq{ + RpcRequest: &requests.RpcRequest{}, + } + + req.InitWithApiInfo(HOST, VERSION, "/v1/tag/add_game_id_tag") + req.Method = requests.POST + req.FormParams = map[string]string{ + "company": company, + "customer_id": customerId, + "game_id": strconv.FormatInt(gameId, 10), + } + return req +} + +// CreateAddGameIdTagResp 添加来源子游戏标签响应 +func CreateAddGameIdTagResp() *AddGameIdTagResp { + return &AddGameIdTagResp{ + BaseResponse: &responses.BaseResponse{}, + } +} + +type AddUserRegGameTagReq struct { + *requests.RpcRequest +} + +type AddUserRegGameTagResp struct { + *responses.BaseResponse + Code int `json:"status_code"` + Msg string `json:"status_msg"` +} + +// CreateAddUserRegGameTagReq 按玩家注册的子游戏/根游戏打标签请求 +// +// company 公司主体,如 GR +// customerId 企微客户ID(external_userid) +// userName 贪玩账号名,服务端据此查注册的子游戏与根游戏 +// +// 一次调用打上根游戏、子游戏两个标签。其中一个取不到只在服务端记日志, +// 两个都取不到才返回失败。 +func CreateAddUserRegGameTagReq(company, customerId, userName string) *AddUserRegGameTagReq { + req := &AddUserRegGameTagReq{ + RpcRequest: &requests.RpcRequest{}, + } + + req.InitWithApiInfo(HOST, VERSION, "/v1/tag/add_user_reg_game_tag") + req.Method = requests.POST + req.FormParams = map[string]string{ + "company": company, + "customer_id": customerId, + "user_name": userName, + } + return req +} + +// CreateAddUserRegGameTagResp 按玩家注册的子游戏/根游戏打标签响应 +func CreateAddUserRegGameTagResp() *AddUserRegGameTagResp { + return &AddUserRegGameTagResp{ + BaseResponse: &responses.BaseResponse{}, + } +}