package model import ( "errors" "time" "github.com/globalsign/mgo/bson" "mongo.games.com/goserver/core/logger" ) var ( ItemLogDBName = "log" ItemLogCollName = "log_itemlog" ) type ItemLog struct { LogId bson.ObjectId `bson:"_id"` Platform string //平台 SnId int32 //玩家id LogType int32 //记录类型 0.获取 1.消耗 ItemId int32 //道具id ItemName string //道具名称 Count int64 //个数 CreateTs int64 //记录时间 Remark string //备注 TypeId int32 // 变化类型 GameId int32 // 游戏id,游戏中获得时有值 GameFreeId int32 // 场次id,游戏中获得时有值 Cost []*ItemInfo // 消耗的道具 } func NewItemLog() *ItemLog { log := &ItemLog{LogId: bson.NewObjectId()} return log } type ItemParam struct { Platform string // 平台 SnId int32 // 玩家id LogType int32 // 记录类型 0.获取 1.消耗 ItemId int32 // 道具id ItemName string // 道具名称 Count int64 // 个数 Remark string // 备注 TypeId int32 // 变化类型 GameId int64 // 游戏id,游戏中获得时有值 GameFreeId int64 // 场次id,游戏中获得时有值 Cost []*ItemInfo // 消耗的道具 } func NewItemLogEx(param ItemParam) *ItemLog { itemLog := NewItemLog() itemLog.Platform = param.Platform itemLog.SnId = param.SnId itemLog.LogType = param.LogType itemLog.ItemId = param.ItemId itemLog.ItemName = param.ItemName itemLog.Count = param.Count itemLog.CreateTs = time.Now().Unix() itemLog.Remark = param.Remark itemLog.TypeId = param.TypeId itemLog.GameId = int32(param.GameId) itemLog.GameFreeId = int32(param.GameFreeId) itemLog.Cost = param.Cost return itemLog } type ItemCountParam struct { Platform string Snid int32 // 玩家id Id int32 // 道具id Tp int // 类型 0.获取 1.消耗 } func GetItemCount(param *ItemCountParam) (int64, error) { if rpcCli == nil { logger.Logger.Warnf("rpcCli is nil") return 0, errors.New("rpcCli is nil") } var ret int64 err := rpcCli.CallWithTimeout("ItemLogSvc.GetItemCount", param, &ret, time.Second*30) if err != nil { logger.Logger.Warnf("GetItemCount err:%v", err) return 0, err } return ret, err }