---
panlei
2019-07-18 408da8a1dffc3cc08e1e721e510931dcc9ca3073
ruleserver/readyDataForRule.go
@@ -17,11 +17,11 @@
var serverIp,serverPort,dbTablePersons string
type conf struct {
   PhotoUrl       string `yaml:"photoUrl"`
   Videopersons   string `yaml:"videoPersons"`
   Personaction   string `yaml:"personAction"`
   Serverip       string `yaml:"serverIp"`
   Serverport     string `yaml:"serverPort"`
   Dbtablepersons string `yaml:"dbTablePersons"`
   VideoPersons   string `yaml:"videoPersons"`
   PersonAction   string `yaml:"personAction"`
   ServerIp       string `yaml:"serverIp"`
   ServerPort     string `yaml:"serverPort"`
   DbTablePersons string `yaml:"dbTablePersons"`
}
func Init() {
   data, err := ioutil.ReadFile("./config/conf.yml")
@@ -32,14 +32,15 @@
   c := conf{}
   //把yaml形式的字符串解析成struct类型
   yaml.Unmarshal(data, &c)
   serverIp = c.Serverip
   serverPort = c.Serverport
   dbTablePersons = c.Dbtablepersons
   logger.Debug("配置文件的值为:",c)
   serverIp = c.ServerIp
   serverPort = c.ServerPort
   dbTablePersons = c.DbTablePersons
   localConfig, err1 := cache.GetServerInfo()
   if err1 != nil {
      logger.Error("查询本机信息失败!")
   }
   logger.Debug("本机信息:",localConfig)
   logger.Debug("本机信息和server信息:",localConfig,serverIp,serverPort)
   bigCache.Init(dbTablePersons,serverIp,serverPort,localConfig.ServerId)
}
@@ -171,21 +172,23 @@
         logger.Info("---------看看每个底库人员的信息:",baseinfo.Id,baseinfo.PersonName)
         var tableIds []string
         tableIds = append(tableIds,baseinfo.TableId) // 虽然是传入数组返回数组的接口,但我按单个的使用了
         table,err := esutil.Dbtablefosbyid(tableIds,dbTablePersons,serverIp,serverPort)
         if err != nil {
            logger.Error("根据id查询底库信息出错!")
         logger.Debug("看看四个参数:",tableIds,"dbtables",serverIp,serverPort)
         table,err := esutil.Dbtablefosbyid(tableIds,"dbtables",serverIp,serverPort)
         if err != nil || len(table) == 0{
            logger.Error("根据id查询底库信息出错!",err,"--返回值长度为:",len(table))
         }
         base := BaseInfo{TableId:baseinfo.TableId,TableName:table[0].TableName,BwType:table[0].BwType,CompareScore:float64(m[baseinfo.Id]),PersonId:baseinfo.Id,PersonName:baseinfo.PersonName,PersonPicUrl:baseinfo.PersonPicUrl,PhoneNum:baseinfo.PhoneNum,Sex:baseinfo.Sex,MonitorLevel:baseinfo.MonitorLevel,Content:""}
         arg.Liker = append(arg.Liker, &base)
      }
   }
   logger.Debug("liker的长度为:",len(arg.Liker))
   os.Exit(1)
}
// 人脸比对
func Compare(args *SdkDatas, groupRule *protomsg.GroupRule) {
   compareFlag := 0
   var tableIds []string
   var threshold float32
   var threshold float32 = 0.2
   // 看看是否有只配人脸比对算法但没有配对比库的规则,如果有,则比对对象为全部底库
   for j := 0; j < len(groupRule.Rules); j++ {
      if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" { // 配了人脸比对
@@ -220,8 +223,9 @@
               for _, areaMap := range sdkData.AreaMapList {
                  logger.Info("-------------人脸比对之前目标数量",len(areaMap.args))
                  // 拿区域中每个人脸特征值去对比,填充其liker
                  logger.Debug("----看看两个区域id是否一致:",groupRule.Rules[j].PolygonId,areaMap.areaId)
                  if groupRule.Rules[j].PolygonId == areaMap.areaId {
                     logger.Info("--------------看看compareFlag的值:",compareFlag)
                     logger.Info("--------------看看compareFlag的值和tableId:",compareFlag,tableIds)
                     for _, arg := range areaMap.args {
                        if compareFlag == 1 {
                           arg.fillLiker(nil,threshold)