上传任务代码调整

This commit is contained in:
liwei1dao 2023-05-29 17:50:51 +08:00
parent 0bde395d6a
commit 1318e14db0
3 changed files with 144 additions and 6 deletions

View File

@ -508,8 +508,10 @@ type (
//埋点中心触发
TriggerBuried(uid string, burieds ...*BuriedParam)
//校验条件是否达成
CheckCondition(uid string, condiIds ...int32) (condIds []int32)
CheckCondition(uid string, condiIds ...int32) (condIds []int32, err error)
//激活条件
ActiveCondition(uid string, condiIds ...int32)
ActiveCondition(uid string, condiIds ...int32) (err error)
//校验的同时激活条件
CheckAndActiveCondition(uid string, condiIds ...int32) (condIds []int32, err error)
}
)

View File

@ -51,6 +51,25 @@ func (this *configureComp) getburiedtypedata(tt comm.TaskType) (result *cfg.Game
return
}
//读取条件任务id配置
func (this *configureComp) getburiedcondidata(cid int32) (result *cfg.GameBuriedCondiData, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(game_buriedcondi); err != nil {
this.module.Errorf("err:%v", err)
return
} else {
if result, ok = v.(*cfg.GameBuriedCondi).GetDataMap()[cid]; !ok {
err = comm.NewNotFoundConfErr(moduleName, game_buriedtype, cid)
this.module.Errorf("err:%v", err)
return
}
}
return
}
//动态更新配置
func (this *configureComp) updateconfigure() {
if v, err := this.GetConfigure(game_buriedcondi); err != nil {

View File

@ -58,15 +58,132 @@ func (this *Buried) OnInstallComp() {
}
//激活数据采集点
func (this *Buried) ActiveCondition(uid string, condiIds ...int32) {
func (this *Buried) ActiveCondition(uid string, condiIds ...int32) (err error) {
var (
model *buriedModel
conf *cfg.GameBuriedCondiData
bdatas map[int32]*pb.DBBuried
chanage []*pb.DBBuried //变化埋点
)
if model, err = this.modelBuried.getburiedModel(uid); err != nil {
this.Error("获取用户埋点数据模型对象失败!", log.Field{Key: "err", Value: err.Error()})
return
}
if bdatas, err = model.getUserBurieds(uid); err != nil {
return
}
chanage = make([]*pb.DBBuried, 0)
for _, v := range condiIds {
if conf, err = this.configure.getburiedcondidata(v); err != nil {
return
}
if bdata, ok := bdatas[conf.Type]; ok {
if conf.Rtype == rtype2 {
if item, ok := bdata.Items[v]; !ok {
bdata.Items[v] = &pb.DBBuriedItem{
Conid: v,
State: pb.BuriedItemState_Activated,
Value: 0,
Statistics: make([]string, 0),
Timestamp: time.Now().Unix(),
}
chanage = append(chanage, bdata)
} else {
item.Value = 0
item.Statistics = make([]string, 0)
item.Timestamp = time.Now().Unix()
item.State = pb.BuriedItemState_Activated
chanage = append(chanage, bdata)
}
}
}
}
if len(chanage) > 0 {
err = model.updateUserBurieds(uid, chanage)
}
return
}
//激活数据采集点
func (this *Buried) CheckCondition(uid string, condiIds ...int32) (condIds []int32) {
func (this *Buried) CheckCondition(uid string, condiIds ...int32) (condIds []int32, err error) {
var (
model *buriedModel
bdatas map[int32]*pb.DBBuried
conf *cfg.GameBuriedCondiData
)
if model, err = this.modelBuried.getburiedModel(uid); err != nil {
this.Error("获取用户埋点数据模型对象失败!", log.Field{Key: "err", Value: err.Error()})
return
}
if bdatas, err = model.getUserBurieds(uid); err != nil {
return
}
condIds = make([]int32, 0)
for _, v := range condiIds {
if conf, err = this.configure.getburiedcondidata(v); err != nil {
return
}
if bdata, ok := bdatas[conf.Type]; ok {
if data, ok := bdata.Items[v]; ok {
if data.Value >= conf.Value {
condIds = append(condIds, v)
}
}
}
}
return
}
//校验同时激活
func (this *Buried) CheckAndActiveCondition(uid string, condiIds ...int32) (condIds []int32, err error) {
var (
model *buriedModel
bdatas map[int32]*pb.DBBuried
conf *cfg.GameBuriedCondiData
chanage []*pb.DBBuried //变化埋点
)
if model, err = this.modelBuried.getburiedModel(uid); err != nil {
this.Error("获取用户埋点数据模型对象失败!", log.Field{Key: "err", Value: err.Error()})
return
}
if bdatas, err = model.getUserBurieds(uid); err != nil {
return
}
condIds = make([]int32, 0)
chanage = make([]*pb.DBBuried, 0)
for _, v := range condiIds {
if conf, err = this.configure.getburiedcondidata(v); err != nil {
return
}
if bdata, ok := bdatas[conf.Type]; ok {
if data, ok := bdata.Items[v]; ok {
if data.Value >= conf.Value {
condIds = append(condIds, v)
}
}
if conf.Rtype == rtype2 {
if item, ok := bdata.Items[v]; !ok {
bdata.Items[v] = &pb.DBBuriedItem{
Conid: v,
State: pb.BuriedItemState_Activated,
Value: 0,
Statistics: make([]string, 0),
Timestamp: time.Now().Unix(),
}
chanage = append(chanage, bdata)
} else {
item.Value = 0
item.Statistics = make([]string, 0)
item.Timestamp = time.Now().Unix()
item.State = pb.BuriedItemState_Activated
chanage = append(chanage, bdata)
}
}
}
}
if len(chanage) > 0 {
err = model.updateUserBurieds(uid, chanage)
}
return
}