From de37adb6dec5e9da70f9cc11b234176ee6fda986 Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期五, 24 五月 2024 21:04:39 +0800
Subject: [PATCH] 添加布控模块,合并person_status和snapshot_count_summary数据库等

---
 db/repository.go |  158 ++++++++++++++++++++++++++++++----------------------
 1 files changed, 90 insertions(+), 68 deletions(-)

diff --git a/db/repository.go b/db/repository.go
index 5cdc1d8..1353cf1 100644
--- a/db/repository.go
+++ b/db/repository.go
@@ -8,12 +8,8 @@
 
 // 鏌ヨ灏忓尯琛�
 func GetCommunityIDs() ([]string, error) {
-	db, err := ConnectDB()
-	if err != nil {
-		return nil, err
-	}
-
 	// 鏌ヨ鏁版嵁
+	var db = DB
 	var communityIDs []string
 	result := db.Table("domain_unit").Where("domainType = ?", 1).Pluck("id", &communityIDs)
 	if result.Error != nil {
@@ -23,13 +19,33 @@
 	return communityIDs, nil
 }
 
+// 鏌ヨ璁惧琛�
+func GetDeviceData() ([]Device, error) {
+	// 鏌ヨ鏁版嵁
+	var db = DB
+	var device []Device
+	result := db.Table("device").Where("communityID != ?", "").Find(&device)
+	if result.Error != nil {
+		return nil, result.Error
+	}
+
+	return device, nil
+}
+
 // 鏌ヨ鍏ㄩ儴鏁版嵁
-func GetAllData() ([]PersonnelStatusRule, error) {
-	db, err := ConnectDB()
-	if err != nil {
+func GetAllTaskData() ([]Task, error) {
+	var db = DB
+	var task []Task
+	if err := db.Find(&task).Error; err != nil {
 		return nil, err
 	}
 
+	return task, nil
+}
+
+// 鏌ヨ鍏ㄩ儴鏁版嵁
+func GetAllData() ([]PersonnelStatusRule, error) {
+	var db = DB
 	var rules []PersonnelStatusRule
 	if err := db.Find(&rules).Error; err != nil {
 		return nil, err
@@ -40,18 +56,14 @@
 
 // 鏌ヨ浣忔埛鏃堕棿鏁版嵁
 func GetResidentData(status, communityID string) ([]Resident, error) {
-	db, err := ConnectDB()
-	if err != nil {
-		return nil, err
-	}
-
 	var residents []Resident
-
+	//var db = DB.Debug()
+	var db = DB
 	// 鎵ц鏌ヨ
-	rows, err := db.Table("person_status").
-		Select("person_status.documentNumber", "person_status.communityID", "snapshot_count_summary.last_appearance_time", "snapshot_count_summary.created_at").
-		Joins("INNER JOIN snapshot_count_summary ON person_status.documentNumber = snapshot_count_summary.document_number AND person_status.communityID = snapshot_count_summary.community_id").
-		Where("person_status.status = ? AND person_status.communityID = ?", status, communityID).
+	rows, err := db.Table("snapshot_count_summary").
+		Select("document_number", "community_id", "last_appearance_time", "created_at").
+		Where("status = ? AND community_id = ?", status, communityID).
+		//Where("snapshot_count_summary.created_at is not null").
 		Rows()
 	if err != nil {
 		return nil, err
@@ -61,10 +73,12 @@
 	// 閬嶅巻鏌ヨ缁撴灉
 	for rows.Next() {
 		var resident Resident
-		err := rows.Scan(&resident.DocumentNumber, &resident.CommunityID, &resident.LastAppearanceTime, &resident.CreateAt)
+		err := rows.Scan(&resident.DocumentNumber, &resident.CommunityId, &resident.LastAppearanceTime, &resident.CreateAt)
 		if err != nil {
+			logger.Error("err: ", err)
 			return nil, err
 		}
+		//fmt.Println("resident111: ", resident)
 		residents = append(residents, resident)
 	}
 	if err := rows.Err(); err != nil {
@@ -76,11 +90,7 @@
 
 // 鏌ヨ浜虹墿灞炴��
 func GetDBPersonStatusData(id string) ([]PersonStatus, error) {
-	db, err := ConnectDB()
-	if err != nil {
-		return nil, err
-	}
-
+	var db = DB
 	// 鏌ヨ鏁版嵁
 	var personStatusList []PersonStatus
 	if err := db.Table("person_status").
@@ -93,37 +103,44 @@
 	return personStatusList, nil
 }
 
-// 鏍规嵁绀惧尯id鍜屼綇鎴峰睘鎬ф煡璇綇鎴锋。妗堢紪鍙�
-func GetDocNumberFromPersonStatus(id, status string) ([]string, error) {
-	db, err := ConnectDB()
-	if err != nil {
-		return nil, err
-	}
-
+// 鏌ヨ浜虹墿骞撮緞
+func GetAgeById(id string) (int, error) {
+	var db = DB
 	// 鏌ヨ鏁版嵁
-	var personStatusList []PersonStatus
-	if err := db.Table("person_status").
-		Select("documentNumber, status, frequentAddress").
-		Where("communityID = ? AND status = ?", id, status).
-		Find(&personStatusList).Error; err != nil {
-		return nil, err
+	var age int
+	if err := db.Table("dbtablepersons").
+		Select("age").
+		Where("id = ?", id).
+		Find(&age).Error; err != nil {
+		return 0, err
 	}
 
-	docNum := make([]string, 0)
-	for _, ps := range personStatusList {
-		docNum = append(docNum, ps.DocumentNumber)
-	}
-
-	return docNum, nil
+	return age, nil
 }
+
+//// 鏍规嵁绀惧尯id鍜屼綇鎴峰睘鎬ф煡璇綇鎴锋。妗堢紪鍙�
+//func GetDocNumberFromPersonStatus(id, status string) ([]string, error) {
+//	var db = DB
+//	// 鏌ヨ鏁版嵁
+//	var personStatusList []PersonStatus
+//	if err := db.Table("person_status").
+//		Select("documentNumber, status, frequentAddress").
+//		Where("communityID = ? AND status = ?", id, status).
+//		Find(&personStatusList).Error; err != nil {
+//		return nil, err
+//	}
+//
+//	docNum := make([]string, 0)
+//	for _, ps := range personStatusList {
+//		docNum = append(docNum, ps.DocumentNumber)
+//	}
+//
+//	return docNum, nil
+//}
 
 // 鏌ヨ浜虹墿韬唤灞炴�ц〃
 func GetLabelManageIdentity(IdentityType int) ([]LabelManage, error) {
-	db, err := ConnectDB()
-	if err != nil {
-		return nil, err
-	}
-
+	var db = DB
 	// 鏌ヨ鏁版嵁
 	var labelManageIdentity []LabelManage
 	if err := db.Table("label_manage").
@@ -136,13 +153,23 @@
 	return labelManageIdentity, nil
 }
 
+// 鏍规嵁dbtablepersons琛╥d鏌ヨ鐩爣妗f骞撮緞
+func QueryAgeById(id string) (int, error) {
+	var db = DB
+	var age int
+	err := db.Table("dbtablepersons").
+		Select("age").
+		Where("id = ?", id).
+		Scan(&age).Error
+	if err != nil {
+		return 0, err
+	}
+	return age, nil
+}
+
 // UpdatePersonInfo 鏇存柊鎴栨彃鍏ュ涓汉鍛樹俊鎭�
 func UpdateMoveInout(personsMoveInout []MoveInout) error {
-	// 鏁版嵁搴撹繛鎺ヤ俊鎭�
-	db, err := ConnectDB()
-	if err != nil {
-		return err
-	}
+	var db = DB
 	// 閬嶅巻浜哄憳淇℃伅
 	for _, personMoveInout := range personsMoveInout {
 
@@ -158,6 +185,7 @@
 
 		// 濡傛灉璁板綍瀛樺湪锛屽垯鏇存柊
 		if existingPerson.DocumentNumber != "" {
+			//fmt.Println("existingPerson.DocumentNumber: ", existingPerson.DocumentNumber)
 			if existingPerson.Status != "Verified" {
 				err := db.Model(&MoveInout{}).
 					Where("document_number = ? AND community_id = ?", personMoveInout.DocumentNumber, personMoveInout.CommunityID).
@@ -180,7 +208,9 @@
 			}
 		} else {
 			// 濡傛灉璁板綍涓嶅瓨鍦紝鍒欐彃鍏ユ柊璁板綍
-			err := db.Create(&personsMoveInout).Error
+			//fmt.Println("鎻掑叆璁板綍澶辫触")
+			//fmt.Println("data", &personMoveInout)
+			err := db.Create(&personMoveInout).Error
 			if err != nil {
 				return err
 			}
@@ -193,11 +223,7 @@
 
 // UpdatePersonInfo 鏇存柊鎴栨彃鍏ュ涓汉鍛樿韩浠戒俊鎭�
 func UpdateDBPersonLabel(personsIdentity []Identity) error {
-	// 鏁版嵁搴撹繛鎺ヤ俊鎭�
-	db, err := ConnectDB()
-	if err != nil {
-		return err
-	}
+	var db = DB
 	// 閬嶅巻浜哄憳淇℃伅
 	for _, personIdentity := range personsIdentity {
 
@@ -247,17 +273,13 @@
 
 // UpdatePersonInfo 鏇存柊鎴栨彃鍏ュ涓汉鍛樹俊鎭�
 func UpdatePersonInfo(persons []PersonStatus, communityID string) error {
-	// 鏁版嵁搴撹繛鎺ヤ俊鎭�
-	db, err := ConnectDB()
-	if err != nil {
-		return err
-	}
+	var db = DB
 	// 閬嶅巻浜哄憳淇℃伅
 	for _, person := range persons {
 
 		// 妫�鏌ヨ褰曟槸鍚﹀瓨鍦�
 		var existingPerson PersonStatus
-		err := db.Where("documentNumber = ? AND communityID = ?", person.DocumentNumber, communityID).First(&existingPerson).Error
+		err := db.Where("document_number = ? AND community_id = ?", person.DocumentNumber, communityID).First(&existingPerson).Error
 		if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
 			logger.Error("Query person error:", err, person.DocumentNumber, communityID)
 			//fmt.Println("asdasfasfasf")
@@ -268,10 +290,10 @@
 		// 濡傛灉璁板綍瀛樺湪锛屽垯鏇存柊
 		if existingPerson.DocumentNumber != "" {
 			err := db.Model(&PersonStatus{}).
-				Where("documentNumber = ? AND communityID = ?", person.DocumentNumber, communityID).
+				Where("document_number = ? AND community_id = ?", person.DocumentNumber, communityID).
 				Updates(map[string]interface{}{
-					"status":          person.Status,
-					"frequentAddress": person.FrequentAddress,
+					"status":           person.Status,
+					"frequent_address": person.FrequentAddress,
 				}).Error
 			if err != nil {
 				return err

--
Gitblit v1.8.0