| | |
| | | |
| | | // 查询小区表 |
| | | 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 { |
| | |
| | | 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 |
| | |
| | | |
| | | // 查询住户时间数据 |
| | | 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 |
| | |
| | | // 遍历查询结果 |
| | | 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 { |
| | |
| | | |
| | | // 查询人物属性 |
| | | 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"). |
| | |
| | | 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"). |
| | |
| | | return labelManageIdentity, nil |
| | | } |
| | | |
| | | // 根据dbtablepersons表id查询目标档案年龄 |
| | | 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 { |
| | | |
| | |
| | | |
| | | // 如果记录存在,则更新 |
| | | 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). |
| | |
| | | } |
| | | } else { |
| | | // 如果记录不存在,则插入新记录 |
| | | err := db.Create(&personsMoveInout).Error |
| | | //fmt.Println("插入记录失败") |
| | | //fmt.Println("data", &personMoveInout) |
| | | err := db.Create(&personMoveInout).Error |
| | | if err != nil { |
| | | return err |
| | | } |
| | |
| | | |
| | | // UpdatePersonInfo 更新或插入多个人员身份信息 |
| | | func UpdateDBPersonLabel(personsIdentity []Identity) error { |
| | | // 数据库连接信息 |
| | | db, err := ConnectDB() |
| | | if err != nil { |
| | | return err |
| | | } |
| | | var db = DB |
| | | // 遍历人员信息 |
| | | for _, personIdentity := range personsIdentity { |
| | | |
| | |
| | | |
| | | // 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") |
| | |
| | | // 如果记录存在,则更新 |
| | | 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 |
| | | } |
| | | } else { |
| | | // 如果记录不存在,则插入新记录 |
| | | err := db.Create(&person).Error |
| | | if err != nil { |
| | | return err |
| | | } |
| | | } |
| | | |
| | | //else { |
| | | // // 如果记录不存在,则插入新记录 |
| | | // err := db.Create(&person).Error |
| | | // if err != nil { |
| | | // return err |
| | | // } |
| | | //} |
| | | } |
| | | |
| | | return nil |