From 4b7fb684b349c22698a2b568549043098c31b977 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 20 十二月 2024 02:36:50 +0800
Subject: [PATCH] 修改参数获取
---
models/disappear.go | 25 ++++++++++++++++---------
db/db.go | 2 +-
2 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/db/db.go b/db/db.go
index cd0a598..1251033 100644
--- a/db/db.go
+++ b/db/db.go
@@ -194,7 +194,7 @@
ModelId: ModelIdDisappear,
Scope: "",
RuleArg: RuleArg{
- Alias: "age",
+ Alias: "lastDirection",
Name: "杩涘嚭鏂瑰悜",
Type: "input",
Must: false,
diff --git a/models/disappear.go b/models/disappear.go
index 05b403d..6cc5910 100644
--- a/models/disappear.go
+++ b/models/disappear.go
@@ -21,7 +21,8 @@
DisappearTime int // 娑堝け鏃堕棿, 鍗曚綅灏忔椂
AlarmInterval int // 鎶ヨ鏃堕棿闂撮殧, 鍗曚綅澶�
LastDirection string // 鏈�鍚庝竴娆℃姄鎷�
- PersonAge int // 骞撮緞
+ MaxAge string // 骞撮緞
+ MinAge string // 骞撮緞
Task *db.ModelTask
}
@@ -52,8 +53,10 @@
}
if v.Alias == "age" {
- if val, ok := v.Value.(float64); ok {
- m.PersonAge = int(val)
+ if val, ok := v.Value.(string); ok {
+ ages := strings.Split(val, ",")
+ m.MinAge = ages[0]
+ m.MaxAge = ages[1]
}
}
@@ -90,7 +93,7 @@
results := make([]*db.ModelTaskResults, 0)
var ageFilter, labelFilter, keyFilter, lastFilter []PersonInfo
- if m.PersonAge > 0 {
+ if m.MinAge != "" {
err := db.GetDB().Raw(`
SELECT
s.document_number,
@@ -110,14 +113,18 @@
AND TIMESTAMPDIFF(
YEAR,
STR_TO_DATE( CASE WHEN LENGTH( id_card ) = 18 THEN SUBSTRING( id_card, 7, 8 ) ELSE NULL END, '%Y%m%d' ),
- CURDATE( ) > ?
- `, m.PersonAge).Scan(&ageFilter).Error
+ CURDATE( ) >= ?
+ AND TIMESTAMPDIFF(
+ YEAR,
+ STR_TO_DATE( CASE WHEN LENGTH( id_card ) = 18 THEN SUBSTRING( id_card, 7, 8 ) ELSE NULL END, '%Y%m%d' ),
+ CURDATE( ) <= ?
+ `, m.MinAge, m.MaxAge).Scan(&ageFilter).Error
if err != nil {
logger.Warnf(err.Error())
}
if len(ageFilter) == 0 {
- return fmt.Errorf("no results found that match the age condition %d", m.PersonAge)
+ return fmt.Errorf("no results found that match the age condition %s - %s", m.MinAge, m.MaxAge)
}
logger.Debugf("match age result %d", len(ageFilter))
@@ -154,9 +161,9 @@
}
// 鍚堝苟涓�涓嬫潯浠�
- if m.PersonAge > 0 && m.PersonLabel != "" {
+ if m.MinAge != "" && m.PersonLabel != "" {
lastFilter = intersectPersonInfo(ageFilter, labelFilter)
- } else if m.PersonAge > 0 {
+ } else if m.MinAge != "" {
lastFilter = ageFilter
} else if m.PersonLabel != "" {
lastFilter = labelFilter
--
Gitblit v1.8.0