package impl import ( "context" "122.51.31.227/go-course/go18/devcloud/audit/apps/event" "github.com/infraboard/mcube/v2/types" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo/options" ) // 存储 func (s *EventServiceImpl) SaveEvent(ctx context.Context, in *types.Set[*event.Event]) error { s.log.Debug().Msgf("events: %s", in) _, err := s.col.InsertMany(ctx, in.ToAny()) if err != nil { return err } return nil } func (s *EventServiceImpl) QueryEvent(ctx context.Context, in *event.QueryEventRequest) (*types.Set[*event.Event], error) { set := types.NewSet[*event.Event]() // 查询条件 filter := bson.M{} opt := options.Find() opt.SetLimit(int64(in.PageSize)) opt.SetSkip(in.ComputeOffset()) cursor, err := s.col.Find(ctx, filter, opt) if err != nil { return nil, err } for cursor.Next(ctx) { e := event.NewEvent() if err := cursor.Decode(e); err != nil { return nil, err } set.Add(e) } return set, nil }