diff --git a/dbproxy/svc/l_itemlog.go b/dbproxy/svc/l_itemlog.go index 39c47e7..fe41bee 100644 --- a/dbproxy/svc/l_itemlog.go +++ b/dbproxy/svc/l_itemlog.go @@ -151,7 +151,11 @@ func (svc *ItemLogSvc) Insert(req *model.InsertItemLogReq, res *bool) error { logger.Logger.Errorf("ItemLogSvc.Insert collection not found Platform:%v", req.Logs[0].Platform) return nil } - if err := clog.Insert(req.Logs); err != nil { + var docs []interface{} + for _, v := range req.Logs { + docs = append(docs, v) + } + if err := clog.Insert(docs...); err != nil { logger.Logger.Warn("ItemLogSvc.Insert error:", err) return err } diff --git a/model/itemdatalog.go b/model/itemdatalog.go index 20e5dbc..838c5b8 100644 --- a/model/itemdatalog.go +++ b/model/itemdatalog.go @@ -199,7 +199,7 @@ type InsertItemLogReq struct { Logs []*ItemLog } -func InsertItemLog(configItems map[string]map[int32]*server.DB_GameItem, param *AddItemParam, isOffline bool) error { +func InsertItemLog(configItems map[int32]*server.DB_GameItem, param *AddItemParam, isOffline bool) error { if rpcCli == nil { logger.Logger.Warnf("rpcCli is nil") return errors.New("rpcCli is nil") @@ -219,8 +219,8 @@ func InsertItemLog(configItems map[string]map[int32]*server.DB_GameItem, param * } // 日志 name := "" - if configItems != nil && configItems[param.Platform] != nil && configItems[param.Platform][v.ItemId] != nil { - name = configItems[param.Platform][v.ItemId].GetName() + if configItems != nil && configItems[v.ItemId] != nil { + name = configItems[v.ItemId].GetName() } log := NewItemLogEx(ItemParam{ Platform: param.Platform, diff --git a/srvdata/gameitem.go b/srvdata/gameitem.go index 86097ea..72af0e9 100644 --- a/srvdata/gameitem.go +++ b/srvdata/gameitem.go @@ -56,6 +56,19 @@ func (m *GameItem) Get(platform string, id int32) *server.DB_GameItem { return nil } +func (m *GameItem) GetItems(plt string) map[int32]*server.DB_GameItem { + ret := make(map[int32]*server.DB_GameItem) + for _, v := range m.Data { + ret[v.Id] = v + } + if v, ok := m.Items[plt]; ok { + for _, vv := range v { + ret[vv.Id] = vv + } + } + return ret +} + func (m *GameItem) GetArr(platform string) []*server.DB_GameItem { if len(m.AllItems[platform]) == 0 { for _, v := range m.Data { diff --git a/worldsrv/action_server.go b/worldsrv/action_server.go index 4e692cb..597758a 100644 --- a/worldsrv/action_server.go +++ b/worldsrv/action_server.go @@ -38,7 +38,7 @@ func init() { return &serverproto.GWPlayerLeave{} })) netlib.RegisterHandler(int(serverproto.SSPacketID_PACKET_GW_PLAYERLEAVE), netlib.HandlerWrapper(func(s *netlib.Session, packetid int, pack interface{}) error { - logger.Logger.Trace("receive GWPlayerLeave:", pack) + //logger.Logger.Trace("receive GWPlayerLeave:", pack) msg, ok := pack.(*serverproto.GWPlayerLeave) if !ok { return nil @@ -190,7 +190,7 @@ func init() { return &serverproto.GWPlayerLeave{} })) netlib.RegisterHandler(int(serverproto.SSPacketID_PACKET_GW_AUDIENCELEAVE), netlib.HandlerWrapper(func(s *netlib.Session, packetid int, pack interface{}) error { - logger.Logger.Trace("receive PACKET_GW_AUDIENCELEAVE GWPlayerLeave:", pack) + //logger.Logger.Trace("receive GWPlayerLeave:", pack) if msg, ok := pack.(*serverproto.GWPlayerLeave); ok { scene := SceneMgrSingleton.GetScene(int(msg.GetRoomId()), true) if scene != nil { diff --git a/worldsrv/bagmgr.go b/worldsrv/bagmgr.go index 1856f6d..9891255 100644 --- a/worldsrv/bagmgr.go +++ b/worldsrv/bagmgr.go @@ -558,7 +558,7 @@ func (this *BagMgr) AddItemsOffline(param *model.AddItemParam, callback func(err return err } // 保存日志 - if err := model.InsertItemLog(srvdata.GameItemMgr.Items, param, true); err != nil { + if err := model.InsertItemLog(srvdata.GameItemMgr.GetItems(param.Platform), param, true); err != nil { logger.Logger.Errorf("离线保存道具变更日志错误 %v", err) return err }