diff --git a/report/data_buried.go b/report/data_buried.go index 2c05223..f502b54 100644 --- a/report/data_buried.go +++ b/report/data_buried.go @@ -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)) diff --git a/report/global_buried.go b/report/global_buried.go index 1ab5186..563d042 100644 --- a/report/global_buried.go +++ b/report/global_buried.go @@ -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))