package logic import ( "fmt" "github.com/oylshe1314/framework/client/db" "github.com/oylshe1314/framework/log" "github.com/oylshe1314/framework/server" "github.com/oylshe1314/framework/util" "reflect" ) type manager struct { server server.Server } func (this *manager) Logger() log.Logger { return this.server.Logger() } type EventManager struct { manager mongoClient db.MongoClient } func NewEventManager(svr server.Server, mongoClient db.MongoClient) *EventManager { return &EventManager{ manager: manager{ server: svr, }, mongoClient: mongoClient, } } func (this *EventManager) Init() (err error) { return nil } func (this *EventManager) Close() error { return nil } func (this *EventManager) tableName(eventLog any) string { var elt = reflect.TypeOf(eventLog) if elt.Kind() != reflect.Pointer { elt = elt.Elem() } return fmt.Sprint(util.LowerSnakeCase(elt.Name()), "_", util.TimeFormat("200601")) } func (this *EventManager) LogServerEvent(eventLog any) error { _, err := this.mongoClient.Collection(this.tableName(eventLog)).InsertOne(this.mongoClient.Context(), eventLog) return err } func (this *EventManager) LogPlayerEvent(eventLog any) error { _, err := this.mongoClient.Collection(this.tableName(eventLog)).InsertOne(this.mongoClient.Context(), eventLog) return err }