zhaoqingang
2025-02-08 d6e6969b042e801321798be568bd6c19e6356bc8
youhua
1个文件已修改
42 ■■■■ 已修改文件
models/nightAnalysis.go 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/nightAnalysis.go
@@ -7,9 +7,11 @@
    "errors"
    "fmt"
    "github.com/elastic/go-elasticsearch/v6"
    "model-engine/pkg/set"
    //"log"
    "model-engine/config"
    "model-engine/pkg/set"
    //"model-engine/pkg/set"
    "strconv"
    "strings"
    "time"
@@ -222,11 +224,11 @@
        person.PersonType = i.PersonType
        document_number_map[i.DocumentNumber] = person
    }
    records, err := queryEsLocation(db.GetEsClient(), m, document_number_list)
    records, err := queryEsNight(db.GetEsClient(), m, document_number_list)
    if err != nil {
        return err
    }
    domains, err := domainToLocation(records)
    domains, err := domainToNight(records)
    if err != nil {
        return err
    }
@@ -276,7 +278,7 @@
    return fmt.Sprintf("%s人员进出%d次", event, AppearCount)
}
func queryEsNight(esClient *elasticsearch.Client, locationModel *LocationModel, documentNumbers []string) ([]*LocationRecord, error) {
func queryEsNight(esClient *elasticsearch.Client, locationModel *nightModel, documentNumbers []string) ([]*nightRecord, error) {
    var buf bytes.Buffer
    nowTime := time.Now()
    startTime := nowTime.Add(-time.Duration(locationModel.Duration) * 24 * time.Hour)
@@ -443,7 +445,7 @@
    }
    // 解析聚合结果
    var records []*LocationRecord
    var records []*nightRecord
    if aggs, ok := result["aggregations"].(map[string]interface{}); ok {
        if orgBuckets, ok := aggs["orgs"].(map[string]interface{})["buckets"].([]interface{}); ok {
            for _, orgBucket := range orgBuckets {
@@ -471,7 +473,7 @@
                                                persons = append(persons, docNumBucket.(map[string]interface{})["key"].(string))
                                            }
                                        }
                                        record := &LocationRecord{
                                        record := &nightRecord{
                                            //PicDate:        timestamp,
                                            DocumentNumbers: persons,
                                            CommunityId:     communityId,
@@ -495,17 +497,17 @@
    return records, nil
}
//func domainToLocation(records []*LocationRecord) (map[string]*db.DomainUnit, error) {
//    if len(records) == 0 {
//        return nil, nil
//    }
//    domainIds := set.NewStringSet()
//    for _, record := range records {
//        domainIds.Add(record.CommunityId)
//    }
//    domains, err := service.GetUnitsMapByIds(domainIds.Elements())
//    if err != nil {
//        return nil, err
//    }
//    return domains, nil
//}
func domainToNight(records []*nightRecord) (map[string]*db.DomainUnit, error) {
    if len(records) == 0 {
        return nil, nil
    }
    domainIds := set.NewStringSet()
    for _, record := range records {
        domainIds.Add(record.CommunityId)
    }
    domains, err := service.GetUnitsMapByIds(domainIds.Elements())
    if err != nil {
        return nil, err
    }
    return domains, nil
}