写日志 封装接口
This commit is contained in:
parent
a36305f174
commit
0c4ece6630
17
comm/core.go
17
comm/core.go
@ -28,7 +28,7 @@ const (
|
||||
SM_PackModule core.M_Modules = "pack" //背包模块
|
||||
SM_MailModule core.M_Modules = "mail" //邮件模块
|
||||
SM_FriendModule core.M_Modules = "friend" //好友模块
|
||||
SM_LogModelMueule core.M_Modules = "model" //日志模块
|
||||
SM_LogModelModule core.M_Modules = "model" //日志模块
|
||||
)
|
||||
|
||||
//RPC服务接口定义处
|
||||
@ -55,6 +55,21 @@ type ISC_GateRouteComp interface {
|
||||
RegisterRoute(methodName string, comp reflect.Value, msg reflect.Type, fn reflect.Method)
|
||||
}
|
||||
|
||||
type Autogenerated struct {
|
||||
ID string `json:"_id"`
|
||||
UID string `json:"uid"`
|
||||
Act string `json:"act"` // insert update delete
|
||||
D []interface{}
|
||||
}
|
||||
|
||||
type LogHandleType string
|
||||
|
||||
const (
|
||||
LogHandleType_Insert LogHandleType = "insert"
|
||||
LogHandleType_Update LogHandleType = "update"
|
||||
LogHandleType_Delete LogHandleType = "delete"
|
||||
)
|
||||
|
||||
//用户会话
|
||||
type IUserSession interface {
|
||||
GetSessionId() string
|
||||
|
@ -18,7 +18,4 @@ type (
|
||||
///添加多个物品到背包 (可以加物品和减物品)
|
||||
AddItemsToUserPack(uId string, items map[int32]int32) (err error)
|
||||
}
|
||||
Imodel interface {
|
||||
AddModelLogs() (err error)
|
||||
}
|
||||
)
|
||||
|
@ -15,13 +15,10 @@ type (
|
||||
SendMsgToUser(mainType, subType string, msg proto.Message, user *pb.Cache_UserData) (err error)
|
||||
///向多个用户发送消息
|
||||
SendMsgToUsers(mainType, subType string, msg proto.Message, user ...*pb.Cache_UserData) (err error)
|
||||
|
||||
// 向db 写日志信息
|
||||
InsertModelLogs(table string, uID string, handle interface{}) (err error)
|
||||
DeleteModelLogs(table string, uID string, where interface{}) (err error)
|
||||
UpdateModelLogs(table string, uID string, where interface{}, handle interface{}) (err error)
|
||||
}
|
||||
)
|
||||
|
||||
type LogHandleType string
|
||||
|
||||
const (
|
||||
LogHandleType_Insert LogHandleType = "insert"
|
||||
LogHandleType_Update LogHandleType = "update"
|
||||
LogHandleType_Delete LogHandleType = "delete"
|
||||
)
|
||||
|
@ -1,11 +1,15 @@
|
||||
package modules
|
||||
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/base"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/core/cbase"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
"go_dreamfactory/lego/sys/mgo"
|
||||
"go_dreamfactory/sys/db"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
/*
|
||||
@ -13,8 +17,9 @@ import (
|
||||
*/
|
||||
type MComp_DBComp struct {
|
||||
cbase.ModuleCompBase
|
||||
S base.IRPCXService //rpc服务对象
|
||||
M core.IModule //当前业务模块
|
||||
S base.IRPCXService //rpc服务对象
|
||||
M core.IModule //当前业务模块
|
||||
|
||||
DB mgo.ISys
|
||||
}
|
||||
|
||||
@ -26,3 +31,62 @@ func (this *MComp_DBComp) Init(service core.IService, module core.IModule, comp
|
||||
this.DB = db.Mgo()
|
||||
return
|
||||
}
|
||||
func (this *MComp_DBComp) Start() (err error) {
|
||||
err = this.ModuleCompBase.Start()
|
||||
return
|
||||
}
|
||||
|
||||
func (this *MComp_DBComp) InsertModelLogs(table string, uID string, dbType comm.LogHandleType, where interface{}, target interface{}) (err error) {
|
||||
|
||||
data := &comm.Autogenerated{
|
||||
ID: primitive.NewObjectID().Hex(),
|
||||
UID: uID,
|
||||
Act: string(dbType),
|
||||
}
|
||||
data.D = append(data.D, table) // D[0]
|
||||
data.D = append(data.D, target) // D[1]
|
||||
|
||||
_, err = this.DB.InsertOne("model", data)
|
||||
if err != nil {
|
||||
log.Errorf("insert model db err %v", err)
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
func (this *MComp_DBComp) DeleteModelLogs(table string, uID string, dbType comm.LogHandleType, where interface{}, target interface{}) (err error) {
|
||||
|
||||
data := &comm.Autogenerated{
|
||||
ID: primitive.NewObjectID().Hex(),
|
||||
UID: uID,
|
||||
Act: string(dbType),
|
||||
}
|
||||
|
||||
data.D = append(data.D, table) // D[0]
|
||||
data.D = append(data.D, where) // D[1]
|
||||
|
||||
_, err = this.DB.InsertOne("model", data)
|
||||
if err != nil {
|
||||
log.Errorf("insert model db err %v", err)
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func (this *MComp_DBComp) UpdateModelLogs(table string, uID string, dbType comm.LogHandleType, where interface{}, target interface{}) (err error) {
|
||||
|
||||
data := &comm.Autogenerated{
|
||||
ID: primitive.NewObjectID().Hex(),
|
||||
UID: uID,
|
||||
Act: string(dbType),
|
||||
}
|
||||
data.D = append(data.D, table) // D[0]
|
||||
data.D = append(data.D, where) // D[1]
|
||||
data.D = append(data.D, target) // D[2]
|
||||
|
||||
_, err = this.DB.InsertOne("model", data)
|
||||
if err != nil {
|
||||
log.Errorf("insert model db err %v", err)
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
@ -3,11 +3,11 @@ package model
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/core/cbase"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
"go_dreamfactory/lego/sys/mgo"
|
||||
"go_dreamfactory/modules"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
"go.mongodb.org/mongo-driver/mongo/options"
|
||||
@ -21,12 +21,6 @@ type DB_Comp struct {
|
||||
cbase.ModuleCompBase
|
||||
mgo mgo.ISys
|
||||
}
|
||||
type Autogenerated struct {
|
||||
ID string `json:"_id"`
|
||||
UID string `json:"uid"`
|
||||
Act string `json:"act"` // insert update delete
|
||||
D []interface{}
|
||||
}
|
||||
|
||||
// type data struct {
|
||||
// Table string
|
||||
@ -44,12 +38,12 @@ const (
|
||||
)
|
||||
|
||||
type IModel interface {
|
||||
Model_UpdateDBBylog() (err error) // 读取日志并更新对应的表
|
||||
Model_InsertDBBylog(data *Autogenerated) (err error) // 插入日志
|
||||
Model_UpdateUserDataByUid(uid string) (err error) // 读取指定玩家信息到db中
|
||||
Model_UpdateDBByLog() (err error) // 读取日志并更新对应的表
|
||||
Model_InsertDBByLog(data *comm.Autogenerated) (err error) // 插入日志
|
||||
Model_UpdateUserDataByUid(uid string) (err error) // 读取指定玩家信息到db中
|
||||
}
|
||||
|
||||
func (this *DB_Comp) Model_UpdateDBBylog() (err error) {
|
||||
func (this *DB_Comp) Model_UpdateDBByLog() (err error) {
|
||||
|
||||
_delID := make([]string, 0) // 处理完成要删除的id
|
||||
_data, err := this.mgo.Find(DB_ModelTable, bson.M{}, options.Find().SetLimit(int64(WriteMaxNum)))
|
||||
@ -57,7 +51,7 @@ func (this *DB_Comp) Model_UpdateDBBylog() (err error) {
|
||||
return err
|
||||
}
|
||||
for _data.Next(context.TODO()) { // 处理删除逻辑
|
||||
data := &Autogenerated{}
|
||||
data := &comm.Autogenerated{}
|
||||
if err = _data.Decode(data); err == nil {
|
||||
_delID = append(_delID, data.ID)
|
||||
} else {
|
||||
@ -66,7 +60,7 @@ func (this *DB_Comp) Model_UpdateDBBylog() (err error) {
|
||||
}
|
||||
|
||||
log.Debugf("======= insert log : %+v =======", data)
|
||||
if data.Act == string(modules.LogHandleType_Insert) {
|
||||
if data.Act == string(comm.LogHandleType_Insert) {
|
||||
if len(data.D) < 2 { // 参数校验
|
||||
log.Errorf("parameter len _id : %s,uid : %s d.len:%v", data.ID, data.UID, len(data.D))
|
||||
return errors.New("parameter len err")
|
||||
@ -76,7 +70,7 @@ func (this *DB_Comp) Model_UpdateDBBylog() (err error) {
|
||||
if err != nil {
|
||||
log.Errorf("insert %s db err:%v", data.D[0].(core.SqlTable), err)
|
||||
}
|
||||
} else if data.Act == string(modules.LogHandleType_Delete) {
|
||||
} else if data.Act == string(comm.LogHandleType_Delete) {
|
||||
if len(data.D) < 2 { // 参数校验
|
||||
log.Errorf("parameter len _id : %s,uid : %s d.len:%v", data.ID, data.UID, len(data.D))
|
||||
return errors.New("parameter len err")
|
||||
@ -110,7 +104,7 @@ func (this *DB_Comp) Model_UpdateDBBylog() (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (this *DB_Comp) Model_InsertDBBylog(data *Autogenerated) (err error) {
|
||||
func (this *DB_Comp) Model_InsertDBByLog(data *comm.Autogenerated) (err error) {
|
||||
|
||||
_, err = this.mgo.InsertOne(DB_ModelTable, data)
|
||||
if err != nil {
|
||||
@ -127,7 +121,7 @@ func (this *DB_Comp) Model_UpdateUserDataByUid(uid string) (err error) {
|
||||
return err
|
||||
}
|
||||
for _data.Next(context.TODO()) { // 处理删除逻辑
|
||||
data := &Autogenerated{}
|
||||
data := &comm.Autogenerated{}
|
||||
if err = _data.Decode(data); err == nil {
|
||||
_delID = append(_delID, data.ID)
|
||||
} else {
|
||||
@ -136,17 +130,16 @@ func (this *DB_Comp) Model_UpdateUserDataByUid(uid string) (err error) {
|
||||
}
|
||||
|
||||
log.Debugf("======= insert log : %+v =======", data)
|
||||
if data.Act == string(modules.LogHandleType_Insert) {
|
||||
if data.Act == string(comm.LogHandleType_Insert) {
|
||||
if len(data.D) < 2 { // 参数校验
|
||||
log.Errorf("parameter len _id : %s,uid : %s d.len:%v", data.ID, data.UID, len(data.D))
|
||||
return errors.New("parameter len err")
|
||||
}
|
||||
query := data.D[1].([]interface{})
|
||||
_, err := this.mgo.InsertMany(data.D[0].(core.SqlTable), query)
|
||||
_, err := this.mgo.InsertMany(data.D[0].(core.SqlTable), data.D[1].([]interface{}))
|
||||
if err != nil {
|
||||
log.Errorf("insert %s db err:%v", data.D[0].(core.SqlTable), err)
|
||||
}
|
||||
} else if data.Act == string(modules.LogHandleType_Delete) {
|
||||
} else if data.Act == string(comm.LogHandleType_Delete) {
|
||||
if len(data.D) < 2 { // 参数校验
|
||||
log.Errorf("parameter len _id : %s,uid : %s d.len:%v", data.ID, data.UID, len(data.D))
|
||||
return errors.New("parameter len err")
|
||||
|
@ -29,7 +29,7 @@ func (this *DBService_Comp) run() {
|
||||
case v := <-this.task:
|
||||
this.Model_UpdateUserDataByUid(v)
|
||||
case <-time.After(time.Second):
|
||||
this.Model_UpdateDBBylog()
|
||||
this.Model_UpdateDBByLog()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ func (this *Model) Start() (err error) {
|
||||
}
|
||||
|
||||
func (this *Model) GetType() core.M_Modules {
|
||||
return comm.SM_LogModelMueule
|
||||
return comm.SM_LogModelModule
|
||||
}
|
||||
|
||||
func (this *Model) OnInstallComp() {
|
||||
|
Loading…
Reference in New Issue
Block a user