From 28c5cf41c5064579dd62f79fd40dc5990e9565b2 Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期一, 09 九月 2024 20:52:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
db/repository.go | 105 ++++++++++++++++++++++++++++++----------------------
1 files changed, 61 insertions(+), 44 deletions(-)
diff --git a/db/repository.go b/db/repository.go
index 221b906..ca159f7 100644
--- a/db/repository.go
+++ b/db/repository.go
@@ -4,6 +4,7 @@
"basic.com/valib/logger.git"
"errors"
"gorm.io/gorm"
+ "strconv"
)
// 鏌ヨ灏忓尯琛�
@@ -28,8 +29,18 @@
if result.Error != nil {
return nil, result.Error
}
-
return device, nil
+}
+
+func GetPublicHouseData() ([]PublicHouse, error) {
+ // 鏌ヨ鏁版嵁
+ var db = DB
+ var ph []PublicHouse
+ result := db.Table("public_house").Where("1 = 1").Find(&ph)
+ if result.Error != nil {
+ return nil, result.Error
+ }
+ return ph, nil
}
// 鏌ヨ鍏ㄩ儴鏁版嵁
@@ -89,17 +100,30 @@
}
// 鏌ヨ浜虹墿灞炴��
-func GetDBPersonStatusData(id string) ([]PersonStatus, error) {
+func GetDBPersonStatus(id, communityId string) string {
var db = DB
- // 鏌ヨ鏁版嵁
- var personStatusList []PersonStatus
- if err := db.Table("person_status").
- Select("documentNumber, status, frequentAddress").
- Where("communityID = ?", id).
- Find(&personStatusList).Error; err != nil {
- return nil, err
- }
+ // 鏌ヨ鏁版嵁
+ var personStatus string
+ db.Table("snapshot_count_summary").
+ Select("status").
+ Where("community_id = ? and document_number = ?", communityId, id).
+ Find(&personStatus)
+
+ return personStatus
+}
+
+// 鏌ヨ灏忓尯妗f琛� (鍘熸煡璇换鍔″睘鎬�)
+func QueryPersonStatusWithPagination(community_id string, timeThreshold int64) ([]*PersonStatus, error) {
+ var db = DB
+ var personStatusList []*PersonStatus
+ result := db.Select("document_number, status, frequent_address, last_appearance_time, last_appearance_status_time").
+ Where("community_id = ? AND last_appearance_time != last_appearance_status_time AND last_appearance_time > ?", community_id, timeThreshold).
+ Find(&personStatusList)
+ if result.Error != nil {
+ logger.Error(result.Error)
+ return nil, result.Error
+ }
return personStatusList, nil
}
@@ -107,7 +131,7 @@
func GetAgeById(id string) (int, error) {
var db = DB
// 鏌ヨ鏁版嵁
- var age int
+ var age string
if err := db.Table("dbtablepersons").
Select("age").
Where("id = ?", id).
@@ -115,7 +139,20 @@
return 0, err
}
- return age, nil
+ return strconv.Atoi(age)
+}
+
+// 鏌ヨ浜虹墿韬唤璇佸彿
+func GetIdCardById(id string) string {
+ var db = DB
+ // 鏌ヨ鏁版嵁
+ var idCard string
+ db.Table("dbtablepersons").
+ Select("idCard").
+ Where("id = ?", id).
+ Find(&idCard)
+
+ return idCard
}
//// 鏍规嵁绀惧尯id鍜屼綇鎴峰睘鎬ф煡璇綇鎴锋。妗堢紪鍙�
@@ -156,7 +193,7 @@
// 鏍规嵁dbtablepersons琛╥d鏌ヨ鐩爣妗f骞撮緞
func QueryAgeById(id string) (int, error) {
var db = DB
- var age int
+ var age string
err := db.Table("dbtablepersons").
Select("age").
Where("id = ?", id).
@@ -164,7 +201,8 @@
if err != nil {
return 0, err
}
- return age, nil
+
+ return strconv.Atoi(age)
}
// UpdatePersonInfo 鏇存柊鎴栨彃鍏ュ涓汉鍛樹俊鎭�
@@ -276,37 +314,16 @@
var db = DB
// 閬嶅巻浜哄憳淇℃伅
for _, person := range persons {
-
- // 妫�鏌ヨ褰曟槸鍚﹀瓨鍦�
- var existingPerson PersonStatus
- 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")
- continue
- //return err
+ err := db.Model(&PersonStatus{}).
+ Where("document_number = ? AND community_id = ?", person.DocumentNumber, communityID).
+ Updates(map[string]interface{}{
+ "status": person.Status,
+ "frequent_address": person.FrequentAddress,
+ "LastAppearanceStatusTime": person.LastAppearanceStatusTime,
+ }).Error
+ if err != nil {
+ return err
}
-
- // 濡傛灉璁板綍瀛樺湪锛屽垯鏇存柊
- if existingPerson.DocumentNumber != "" {
- err := db.Model(&PersonStatus{}).
- Where("document_number = ? AND community_id = ?", person.DocumentNumber, communityID).
- Updates(map[string]interface{}{
- "status": person.Status,
- "frequent_address": person.FrequentAddress,
- }).Error
- if err != nil {
- return err
- }
- }
- //else {
- // // 濡傛灉璁板綍涓嶅瓨鍦紝鍒欐彃鍏ユ柊璁板綍
- // err := db.Create(&person).Error
- // if err != nil {
- // return err
- // }
- //}
-
}
return nil
--
Gitblit v1.8.0