package viking import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" "go_dreamfactory/utils" ) //参数校验 func (this *apiComp) SeasonRankCheck(session comm.IUserSession, req *pb.VikingSeasonRankReq) (errdata *pb.ErrorData) { if req.BoosType == 0 { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), } } return } func (this *apiComp) SeasonRank(session comm.IUserSession, req *pb.VikingSeasonRankReq) (errdata *pb.ErrorData) { var ( uids []string err error ranks []*pb.DBVSeasonRecord players []*pb.DBVikingSRank ) if errdata = this.SeasonRankCheck(session, req); errdata != nil { return // 参数校验失败直接返回 } if uids, err = this.module.modelsrank.querySRankUser(int(req.BoosType)); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } if ranks, err = this.module.modelsrank.queryPlayers(uids); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } players = make([]*pb.DBVikingSRank, len(ranks)) for i, v := range ranks { players[i] = &pb.DBVikingSRank{ Uinfo: v.Uinfo, Line: v.Data[req.BoosType].Line[v.Data[req.BoosType].Maxnandu], Difficulty: v.Data[req.BoosType].Maxnandu, Bosstype: req.BoosType, Huihe: v.Data[req.BoosType].Huihe[v.Data[req.BoosType].Maxnandu], } } session.SendMsg(string(this.module.GetType()), VikingSeasonRankReq, &pb.VikingSeasonRankResp{ Ranks: players, Etime: utils.WeekIntervalTime(configure.Now().Unix()), }) return }