ecs/servers/event/logic/event_manager.go
2025-07-16 10:05:22 +08:00

60 lines
1.3 KiB
Go

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
}