zhangzengfei
2024-12-18 39d53cf7a2080b49224dec6c395fc4ed2463a424
db/db.go
@@ -1,8 +1,11 @@
package db
import (
   "time"
   "github.com/elastic/go-elasticsearch/v6"
   "gorm.io/gorm"
   "model-engine/config"
   "model-engine/db/es"
   "model-engine/pkg/logger"
@@ -17,6 +20,9 @@
   if err := es.InitClient([]string{"http://" + config.EsInfo.Ip + ":" + config.EsInfo.Port}); err != nil {
      return err
   }
   InitDefaultData()
   return nil
}
@@ -50,3 +56,101 @@
   return nil
}
// InitDefaultData 初始化数据
func InitDefaultData() error {
   var models = []Model{
      {
         BaseModel: BaseModel{
            ID:        ModelIdGather,
            CreatedAt: time.Time{},
            UpdatedAt: time.Time{},
         },
         Name:        "疑似聚集",
         Description: "通用聚集模型",
         Version:     "v1.0.0",
         Enabled:     false,
      },
   }
   for i := range models {
      GetDB().Save(&models[i])
   }
   var rules = []ModelRule{
      {
         Id:      "bfbdba7f-ee39-41fb-b188-b4c114a51eaa",
         ModelId: ModelIdGather,
         Scope:   "",
         RuleArg: RuleArg{
            Alias:    "gatherPersons",
            Name:     "聚集人数",
            Type:     "input",
            Must:     true,
            Unit:     "人",
            Range:    "1,100",
            Value:    "2",
            ValType:  "int",
            Operator: ">=",
            Sort:     0,
         },
      },
      {
         Id:      "941bef84-ff7f-4460-b5dc-2ac6060304a4",
         ModelId: ModelIdGather,
         Scope:   "",
         RuleArg: RuleArg{
            Alias:    "appearInterval",
            Name:     "出现间隔",
            Type:     "input",
            Must:     true,
            Unit:     "秒",
            Range:    "1,7200",
            Value:    "60",
            ValType:  "int",
            Operator: ">=",
            Sort:     1,
         },
      },
      {
         Id:      "a9b50bae-2c40-40a1-9ebc-ac34850db964",
         ModelId: ModelIdGather,
         Scope:   "",
         RuleArg: RuleArg{
            Alias:    "threshold",
            Name:     "出现次数",
            Type:     "input",
            Must:     true,
            Unit:     "次",
            Range:    "1,60",
            Value:    "1",
            ValType:  "int",
            Operator: ">=",
            Sort:     2,
         },
      },
      {
         Id:      "aed7f95e-1ce6-4fa2-b1b3-aaf59ed86c50",
         ModelId: ModelIdGather,
         Scope:   "",
         RuleArg: RuleArg{
            Alias:    "daysWindow",
            Name:     "监控时间",
            Type:     "input",
            Must:     true,
            Unit:     "天内",
            Range:    "1,7",
            Value:    "1",
            ValType:  "int",
            Operator: "==",
            Sort:     2,
         },
      },
   }
   for i := range rules {
      GetDB().Save(&rules[i])
   }
   return nil
}