60 lines
1.3 KiB
Go
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
|
|
}
|