sunty
2024-05-29 16b34c939d6790fe6ebe61f8f0e85fe80ee52224
db/repository.go
@@ -103,6 +103,20 @@
   return personStatusList, nil
}
// 查询小区档案表 (原查询任务属性)
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
}
// 查询人物年龄
func GetAgeById(id string) (int, error) {
   var db = DB
@@ -276,37 +290,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