ecs/platform/gravity/define.go
2025-07-16 10:05:22 +08:00

86 lines
3.1 KiB
Go
Raw Permalink 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 gravity
import (
"github.com/oylshe1314/framework/util"
"strings"
)
const apiUri = "https://backend.gravity-engine.com/event_center/api"
const apiEventCollect = "/v1/event/collect/"
// 产品名称:逃脱计划(微信)
const wechatAppId = 11930427
const wechatBundleId = "wx057a904618b19710"
const wechatAppKey = "jpXjkmya45lfi6fzGyVvIL2wrPhx7grxYnbsmDJ9ZqgtC0TR8AQvcSdNWieecBtF"
const wechatAccessToken = "aQND0ibWsKq8oOLXbedTlxzFcek4qxpc"
const wechatAesKey = "YcuW6Y+1PoBgz+PNqP3tNA=="
// 产品名称:逃脱计划(TapTap)
const tapTapAppId = 16041238
const tapTapBundleId = "com.qmhd.ttjh.game_1"
const tapTapAppKey = "DQWb2gVXrrowl7qa0PmcYbtcfnSpn6fNtAljdjhyHJLxwihR8pyegzdkZCBOeu5a"
const tapTapAccessToken = "Xj9wf1yyeEtDbnjdBg5pGr8snbqivIcm"
const tapTapAesKey = "OQBXXNxQP6YzDXYrVuJOBQ=="
type Properties map[string]any
func (properties Properties) Add(name string, value any) {
if !strings.HasPrefix(name, "$") {
name = "$" + name
}
properties[name] = value
}
func (properties Properties) get(name string) any {
if !strings.HasPrefix(name, "$") {
name = "$" + name
}
return properties[name]
}
type EventType string
const EventTypeTrack EventType = "track"
const EventTypeProfile EventType = "Profile"
type EventName string
const EventNameCharge EventName = "$PayEvent"
type Event struct {
Type EventType `json:"type"` //事件类型可选值track、profile分别对应用户埋点事件、用户属性事件
Event EventName `json:"event"` //具体事件英文名称请参考引力后台-设置-元事件
Time int64 `json:"time"` //事件发生毫秒级时间戳,只接收相对服务器时间在前 10 天至后 1 小时之内的数据,超过范围的数据将不会入库
TimeFree bool `json:"time_free"` //默认为false、当为true的时候会取消对time参数的校验一般用于历史数据导入
Properties Properties `json:"properties"` //事件属性,具体需要参考 引力引擎后台--设置--元数据 中的内容
}
func NewEvent(tipe EventType, event EventName, properties Properties) *Event {
return &Event{Type: tipe, Event: event, Time: util.NowMilli(), Properties: properties}
}
type Events []*Event
func (events Events) Add(tipe EventType, event EventName, time int64, properties Properties) Events {
return append(events, &Event{
Type: tipe,
Event: event,
Time: time,
Properties: properties,
})
}
type MsgEventCollectReq struct {
ClientId string `json:"client_id"` //用户唯一 ID
ClientIp string `json:"client_ip,omitempty"` //如果有值则引力引擎会取该ip作为$ip字段强制替换
ClientUa string `json:"client_ua,omitempty"` //如果有值则引力引擎会取该ua作为$ua字段强制替换
EventList []*Event `json:"event_list"` //事件列表
}
type MsgEventCollectAck struct {
Code int `json:"code"` //如果收到返回参数code: 0则代表数据传输成功
Msg string `json:"msg"` //信息
}
type Reporter func(clientId, clientIp string, event *Event) error