package arena import ( "go_dreamfactory/comm" "go_dreamfactory/lego/sys/mgo" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" "go_dreamfactory/sys/db" "time" ) //参数校验 func (this *apiComp) InfoCheck(session comm.IUserSession, req *pb.ArenaInfoReq) (code pb.ErrorCode) { return } ///获取自己的排行榜信息 func (this *apiComp) Info(session comm.IUserSession, req *pb.ArenaInfoReq) (code pb.ErrorCode, data *pb.ErrorData) { var ( global *cfg.GameGlobalData info *pb.DBArenaUser user *pb.DBUser model *db.DBModel err error ) if code = this.InfoCheck(session, req); code != pb.ErrorCode_Success { return } if model, err = this.module.GetDBNodule(session, comm.TableUser, time.Hour); err != nil { code = pb.ErrorCode_DBError this.module.Errorln(err) return } user = &pb.DBUser{} if err = model.Get(session.GetUserId(), user); err != nil { code = pb.ErrorCode_DBError this.module.Errorln(err) return } if info, err = this.module.modelArena.queryPlayerInfo(session.GetUserId()); err != nil && err != mgo.MongodbNil { code = pb.ErrorCode_DBError return } if err == mgo.MongodbNil { global = this.module.ModuleTools.GetGlobalConf() info = &pb.DBArenaUser{ Uid: session.GetUserId(), Name: user.Name, Avatar: user.Avatar, Lv: user.Lv, Integral: global.ArenaInitiaIntegral, Streak: 0, Record: make([]*pb.DBArenaBattleRecord, 0), Lastrtickettime: 0, Isdef: false, Npc: make(map[int32]*pb.DBNpc), } if info.Dan, err = this.module.modelArena.computedan(info.Integral); err != nil { code = pb.ErrorCode_ConfigNoFound return } if err = this.module.modelArena.Add(session.GetUserId(), info); err != nil { this.module.Errorln(err) } } else { info.Lv = user.Lv this.module.modelArena.recoverTicket(session, info) if err = this.module.modelArena.updateArenaUserInfo(info); err != nil { code = pb.ErrorCode_DBError return } } session.SendMsg(string(this.module.GetType()), "info", &pb.ArenaInfoResp{Info: info}) return }