package task import ( "basic.com/valib/logger.git" "ruleModelEngine/cache" "ruleModelEngine/db" "time" ) func UnderageClimbingToRooftop(taskPerson db.TaskPerson) bool { if taskPerson.Floor == "" { return false } age, err := db.GetAgeById(taskPerson.DocumentNumber) if err != nil { logger.Error("GetAgeById: ", err) return false } floor, _ := extractFloorNumber(taskPerson.Floor) if age <= 16 && floor == cache.Device[taskPerson.CameraId].MaxBuildingFloor && taskPerson.TargetType == "body" { return true } return false } func UnderageEnteringCommercialBuilding(taskPerson db.TaskPerson) bool { age, err := db.GetAgeById(taskPerson.DocumentNumber) if err != nil { logger.Error("GetAgeById: ", err) return false } //floor, _ := extractFloorNumber(taskPerson.Floor) if age <= 16 && taskPerson.TargetType == "face" && cache.Device[taskPerson.CameraId].BuildingType == db.BuildingTypeMixedUse { return true } return false } func ClimbingFloorsIllegally(taskPerson db.TaskPerson, hours int, times int) bool { layout := "2006-01-02 15:04:05" picDate, err := time.Parse(layout, taskPerson.PicDate) startTime := picDate.Add(time.Duration(-hours) * time.Hour).Format(layout) floors, err := db.QueryCheckDataByDocumentNumber(taskPerson.DocumentNumber, startTime, taskPerson.PicDate) if err != nil { logger.Error("QueryCheckDataByDocumentNumber: ", err) return false } if floors >= times { return true } return false } func EnteringButNotLeaving(docNumber string, communityId string, cameraIds []string, days int) bool { total, err := db.QueryTimesByDocNumberDays(docNumber, communityId, cameraIds, days-1) if err != nil { logger.Error("QueryTimesByDocNumberDays err: ", err) } if total == 0 { return true } return false } func registeredAddressNotMatchActualResidence(taskPerson db.TaskPerson) bool { return false }