package buried import ( "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" ) const ( //创号后入录数据 rtype1 = 1 //接任务后入录数据 rtype2 = 2 ) const ( //覆盖 cover = 1 //累加 overlay = 2 //统计 statistics = 3 ) const ( eq = "eq" // == gt = "gt" // > gte = "gte" //>= lt = "lt" // < lte = "lte" // <= ne = "ne" // != ) //判断埋点数据的有效性 func checkburied(buried *pb.BuriedParam, bconf *cfg.GameBuriedTypeData, conf *cfg.GameBuriedCondiData) (efficient bool) { if !(len(buried.Filter) == len(conf.Filter) && len(bconf.Filter) == len(conf.Filter)) { log.Error("校验埋点错误!", log.Field{Key: "buried", Value: buried}, log.Field{Key: "conf", Value: conf}) return } for i, v := range conf.Filter { efficient = false value := buried.Filter[i] symbol := bconf.Filter[i] target := conf.Filter[i] switch symbol { case eq: //== if value == target { efficient = true } case gt: //> if value > target { efficient = true } case gte: //>= if value >= target { efficient = true } case lt: //< if value < target { efficient = true } case lte: //<= if value <= target { efficient = true } case ne: //!= if value != target { efficient = true } default: log.Error("校验埋点配置错误!", log.Field{Key: "不存在的比较符号", Value: v}, log.Field{Key: "buried", Value: buried}, log.Field{Key: "conf", Value: conf}) return } if !efficient { //校验不过 return } } efficient = true return }