添加埋点名称

This commit is contained in:
kercylan98 2023-06-01 12:04:46 +08:00
parent 650b8d69b7
commit 6947524586
2 changed files with 16 additions and 2 deletions

View File

@ -6,8 +6,9 @@ import (
)
// NewDataBuried 创建一个数据埋点
func NewDataBuried[DataID comparable, Data any](hitLogic HitLogic[Data], options ...DataBuriedOption[DataID, Data]) *DataBuried[DataID, Data] {
func NewDataBuried[DataID comparable, Data any](name string, hitLogic HitLogic[Data], options ...DataBuriedOption[DataID, Data]) *DataBuried[DataID, Data] {
buried := &DataBuried[DataID, Data]{
name: name,
data: asynchronization.NewMap[DataID, Data](),
hitLogic: hitLogic,
}
@ -26,12 +27,18 @@ func NewDataBuried[DataID comparable, Data any](hitLogic HitLogic[Data], options
// DataBuried 数据埋点
// - 数据埋点通常用于统计不同类型的数据,例如用户数据、商城数据等
type DataBuried[DataID comparable, Data any] struct {
name string
data hash.Map[DataID, Data]
hitLogic HitLogic[Data]
getData func(DataID) Data
setData func(id DataID, data Data)
}
// GetName 获取名称
func (slf *DataBuried[DataID, Data]) GetName() string {
return slf.name
}
// Hit 命中数据埋点
func (slf *DataBuried[DataID, Data]) Hit(id DataID, data Data) {
slf.setData(id, slf.hitLogic(slf.getData(id), data))

View File

@ -1,8 +1,9 @@
package report
// NewGlobalBuried 创建一个全局埋点
func NewGlobalBuried[Data any](hitLogic HitLogic[Data], options ...GlobalBuriedOption[Data]) *GlobalBuried[Data] {
func NewGlobalBuried[Data any](name string, hitLogic HitLogic[Data], options ...GlobalBuriedOption[Data]) *GlobalBuried[Data] {
buried := &GlobalBuried[Data]{
name: name,
hitLogic: hitLogic,
}
buried.setData = func(data Data) {
@ -20,12 +21,18 @@ func NewGlobalBuried[Data any](hitLogic HitLogic[Data], options ...GlobalBuriedO
// GlobalBuried 全局埋点
// - 全局埋点适用于活跃用户数等统计
type GlobalBuried[Data any] struct {
name string
data Data
hitLogic HitLogic[Data]
getData func() Data
setData func(data Data)
}
// GetName 获取名称
func (slf *GlobalBuried[Data]) GetName() string {
return slf.name
}
// Hit 命中数据埋点
func (slf *GlobalBuried[Data]) Hit(data Data) {
slf.setData(slf.hitLogic(slf.getData(), data))