| | |
| | | "basic.com/dbapi.git" |
| | | "basic.com/pubsub/protomsg.git" |
| | | "github.com/knetic/govaluate" |
| | | "os" |
| | | "ruleprocess/logger" |
| | | "ruleprocess/ruleserver" |
| | | "strconv" |
| | | "time" |
| | | ) |
| | | |
| | | func Judge(result ruleserver.ResultMsg) { |
| | | func Judge(msg ruleserver.ResultMsg) { |
| | | // 装配成自己可以识别的数据 |
| | | label := new(Label) |
| | | label.DataFormatToLabel(result) |
| | | label.DataFormatToLabel(msg) |
| | | logger.Info("label的信息:", label.CameraName, label.DefenceLevel, label.Time) |
| | | if label.CameraName == "" { |
| | | logger.Error("无效数据,直接返回") |
| | |
| | | if result.(bool) { |
| | | logger.Info("通过规则,表达式为:", result) |
| | | // 推送服务器 |
| | | pushData(ruleGroup.Urls, result.(ruleserver.ResultMsg)) |
| | | os.Exit(1) |
| | | pushData(ruleGroup.Urls, msg) |
| | | //os.Exit(1) |
| | | } else { |
| | | logger.Info("没通过规则,表达式为:", result) |
| | | os.Exit(1) |
| | | //os.Exit(1) |
| | | } |
| | | } |
| | | } |
| | |
| | | // 是否符合时间规则 |
| | | func timeJudge(label *Label, groupRule protomsg.EventPush) string { |
| | | timeNow := time.Now().Format("2006-01-02 15:04:05") |
| | | logger.Info("标签过滤器起始时间为:",groupRule.TimeStart,groupRule.TimeEnd) |
| | | flag1 := isBefore(groupRule.TimeStart, timeNow) |
| | | flag2 := isBefore(timeNow, groupRule.TimeEnd) |
| | | if flag1 && flag2 { |
| | |
| | | // 调用目标服务器的插入接口 |
| | | func pushData(urls []*protomsg.PushUrl, data ruleserver.ResultMsg) { |
| | | for _, url := range urls { |
| | | Push(url.Url, data) |
| | | logger.Debug("看看推送地址:",url.Url) |
| | | Push("tcp://192.168.1.123:40012", data) |
| | | } |
| | | } |
| | | |