From 70ac39123c8c6bc7e7ae0436ee57e62166cf190c Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 20 十二月 2024 02:59:08 +0800
Subject: [PATCH] 修复bug

---
 models/disappear.go |   37 ++++++++++++++++++++-----------------
 1 files changed, 20 insertions(+), 17 deletions(-)

diff --git a/models/disappear.go b/models/disappear.go
index 6cc5910..08ceda2 100644
--- a/models/disappear.go
+++ b/models/disappear.go
@@ -3,6 +3,7 @@
 import (
 	"errors"
 	"fmt"
+	"strconv"
 	"strings"
 	"time"
 
@@ -21,8 +22,8 @@
 	DisappearTime int    // 娑堝け鏃堕棿, 鍗曚綅灏忔椂
 	AlarmInterval int    // 鎶ヨ鏃堕棿闂撮殧, 鍗曚綅澶�
 	LastDirection string // 鏈�鍚庝竴娆℃姄鎷�
-	MaxAge        string // 骞撮緞
-	MinAge        string // 骞撮緞
+	MaxAge        int    // 骞撮緞
+	MinAge        int    // 骞撮緞
 	Task          *db.ModelTask
 }
 
@@ -55,8 +56,8 @@
 		if v.Alias == "age" {
 			if val, ok := v.Value.(string); ok {
 				ages := strings.Split(val, ",")
-				m.MinAge = ages[0]
-				m.MaxAge = ages[1]
+				m.MinAge, _ = strconv.Atoi(ages[0])
+				m.MaxAge, _ = strconv.Atoi(ages[1])
 			}
 		}
 
@@ -93,17 +94,17 @@
 	results := make([]*db.ModelTaskResults, 0)
 	var ageFilter, labelFilter, keyFilter, lastFilter []PersonInfo
 
-	if m.MinAge != "" {
+	if m.MinAge > 0 {
 		err := db.GetDB().Raw(`
 		SELECT
 			s.document_number,
 			s.community_id,
 			s.org_id,
 			p.person_name,
-			p.id_card ,
+			p.id_card,
 			s.last_appearance_time,
 			s.last_direction,
-			s.last_location
+			s.last_location 
 		FROM
 			snapshot_count_summary AS s
 			JOIN person AS p ON p.id = s.document_number 
@@ -113,11 +114,13 @@
 			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( ) >= ?
-		    AND TIMESTAMPDIFF(
+				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( ) <= ?
+			CURDATE( ) 
+			) <= ?
 		`, m.MinAge, m.MaxAge).Scan(&ageFilter).Error
 		if err != nil {
 			logger.Warnf(err.Error())
@@ -161,9 +164,9 @@
 	}
 
 	// 鍚堝苟涓�涓嬫潯浠�
-	if m.MinAge != "" && m.PersonLabel != "" {
+	if m.MinAge > 0 && m.PersonLabel != "" {
 		lastFilter = intersectPersonInfo(ageFilter, labelFilter)
-	} else if m.MinAge != "" {
+	} else if m.MinAge > 0 {
 		lastFilter = ageFilter
 	} else if m.PersonLabel != "" {
 		lastFilter = labelFilter
@@ -195,12 +198,12 @@
 		}
 
 		logger.Debugf("match key person result %d", len(keyFilter))
-	}
 
-	if len(lastFilter) > 0 {
-		lastFilter = intersectPersonInfo(lastFilter, keyFilter)
-	} else {
-		lastFilter = keyFilter
+		if len(lastFilter) > 0 {
+			lastFilter = intersectPersonInfo(lastFilter, keyFilter)
+		} else {
+			lastFilter = keyFilter
+		}
 	}
 
 	logger.Debugf("last result %d", len(lastFilter))

--
Gitblit v1.8.0