package services import ( "fwh-toolbox-server/domain" "fwh-toolbox-server/dto" "fwh-toolbox-server/repositories" "fwh-toolbox-server/taskQueue" "go.mongodb.org/mongo-driver/bson/primitive" ) // 从数据库获取站点分析列表 func GetSiteAnalysisManageList(page uint, size uint, sn *string, timePeriod *[2]string, progress *string, trigger *domain.Trigger) (*dto.ResPage[domain.SiteAnalysisInfo], error) { return repositories.GetSiteAnalysisManageList(page, size, sn, timePeriod, progress, trigger) } // 从数据库获取一条站点分析配置 func GetSiteAnalysisConfig(id primitive.ObjectID) (*domain.SiteAnalysisConfig, error) { return repositories.GetSiteAnalysisConfig(id) } // 插入一条站点分析配置到数据库 func InsertSiteAnalysisConfig(writeConfig domain.SiteAnalysisConfigWrite) error { id, err := repositories.InsertSiteAnalysisConfig(writeConfig, false) if err != nil { return err } taskQueue.EnqueueSiteAnalysisTask(domain.TaskSiteAnalysis{ Id: id, Sn: writeConfig.Sn, TimePeriod: writeConfig.TimePeriod, Options: domain.SiteAnalysisOptions{ EnableTimeline: writeConfig.Options.EnableTimeline, EnableRuntime: writeConfig.Options.EnableRuntime, }, }, false) return nil } // 更新一条站点分析配置到数据库 func UpdateSiteAnalysisConfig(id primitive.ObjectID, writeConfig domain.SiteAnalysisConfigWrite) error { err := repositories.UpdateSiteAnalysisConfig(id, writeConfig) if err != nil { return err } taskQueue.EnqueueSiteAnalysisTask(domain.TaskSiteAnalysis{ Id: writeConfig.Id, Sn: writeConfig.Sn, TimePeriod: writeConfig.TimePeriod, Options: domain.SiteAnalysisOptions{ EnableTimeline: writeConfig.Options.EnableTimeline, EnableRuntime: writeConfig.Options.EnableRuntime, }, }, false) return nil } // 更新一条站点分析配置到数据库 func UpdateSiteAnalysisDescription(id primitive.ObjectID, desc string) error { err := repositories.UpdateSiteAnalysisDescription(id, desc) if err != nil { return err } return nil } // 删除一条站点分析配置 func DeleteSiteAnalysisConfig(id primitive.ObjectID) error { err := repositories.DeleteSiteAnalysisConfig(id) if err != nil { return err } // TODO 需删除相关数据 return nil } // 从数据库获取站点分析数据 func GetSiteAnalysisData(id primitive.ObjectID) (*dto.SiteAnalysisDataInfo, error) { cfg, err := repositories.GetSiteAnalysisConfig(id) if err != nil { return nil, err } data := dto.SiteAnalysisDataInfo{ Id: cfg.Id, Sn: cfg.Sn, Progress: cfg.Progress, Data: cfg.Data, } return &data, nil }