| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- package controllers
- import (
- "context"
- "fwh-toolbox-server/database"
- "time"
- "go.mongodb.org/mongo-driver/bson"
- "go.mongodb.org/mongo-driver/bson/primitive"
- "go.mongodb.org/mongo-driver/mongo/options"
- )
- type Progress string // 'pending' | 'running' | 'error' | 'complete'
- type SiteAnalysisInfo struct {
- Id primitive.ObjectID `bson:"_id" json:"id"`
- Sn string `bson:"sn" json:"sn"`
- Description string `bson:"description" json:"description"`
- Item []string `bson:"item" json:"item"`
- Progress Progress `bson:"progress" json:"progress"`
- }
- type SiteAnalysisConfig struct {
- Id primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
- Sn string `bson:"sn" json:"sn"`
- Description string `bson:"description" json:"description"`
- Item []string `bson:"item" json:"item"`
- Progress Progress `bson:"progress" json:"progress"`
- TimePeriod [2]string `bson:"timePeriod" json:"timePeriod"`
- EnableEventAndAlarm bool `bson:"enableEventAndAlarm" json:"enableEventAndAlarm"`
- EnableCloudLog bool `bson:"enableCloudLog" json:"enableCloudLog"`
- EnableSiteLog bool `bson:"enableSiteLog" json:"enableSiteLog"`
- }
- // 从数据库获取站点分析列表
- func GetSiteAnalysisManageList() ([]SiteAnalysisInfo, error) {
- ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
- defer cancel()
- collection := database.GetCollection("SiteAnalysisConfig")
- cursor, err := collection.Find(ctx, bson.M{}, options.Find().SetProjection(bson.M{
- // 配置需要的字段
- "_id": 1, // (默认会返回)
- "sn": 1,
- "description": 1,
- "item": 1,
- "progress": 1,
- })) // 空条件,查全部
- if err != nil {
- return nil, err
- }
- defer cursor.Close(ctx)
- var configList []SiteAnalysisInfo
- for cursor.Next(ctx) {
- var cfg SiteAnalysisInfo
- if err := cursor.Decode(&cfg); err != nil {
- return nil, err
- }
- configList = append(configList, cfg)
- }
- return configList, nil
- }
- // 从数据库获取一条站点分析配置
- func GetSiteAnalysisConfig(id primitive.ObjectID) (*SitesMonitorConfig, error) {
- ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
- defer cancel()
- collection := database.GetCollection("SiteMonitorConfig")
- var cfg SitesMonitorConfig
- err := collection.FindOne(ctx, bson.M{"_id": id}).Decode(&cfg)
- if err != nil {
- return nil, err
- }
- return &cfg, nil
- }
- // 插入一条站点分析配置到数据库
- func InsertSiteAnalysisConfig(config SiteAnalysisConfig) error {
- ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
- defer cancel()
- collection := database.GetCollection("SiteMonitorConfig")
- // _, err := collection.InsertOne(ctx, config)
- filter := bson.M{"_id": config.Id} // 按用户名匹配
- update := bson.M{
- "$set": config, // 如果存在就更新所有字段
- }
- opts := options.Update().SetUpsert(true)
- _, err := collection.UpdateOne(ctx, filter, update, opts)
- if err != nil {
- return err
- }
- return nil
- }
- // 更新一条站点分析配置到数据库
- func UpdateSiteAnalysisConfig(id primitive.ObjectID, config SiteAnalysisConfig) error {
- ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
- defer cancel()
- collection := database.GetCollection("SiteMonitorConfig")
- // _, err := collection.InsertOne(ctx, config)
- filter := bson.M{"_id": id} // 按用户名匹配
- update := bson.M{
- "$set": config, // 如果存在就更新所有字段
- }
- opts := options.Update().SetUpsert(true)
- _, err := collection.UpdateOne(ctx, filter, update, opts)
- if err != nil {
- return err
- }
- return nil
- }
- // 删除一条站点分析配置
- func DeleteSiteAnalysisConfig(id primitive.ObjectID) error {
- ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
- defer cancel()
- filter := bson.M{"_id": id} // 删除条件
- collection := database.GetCollection("SiteMonitorConfig")
- _, err := collection.DeleteOne(ctx, filter)
- if err != nil {
- return err
- }
- return nil
- }
|