package pagoda import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" "go_dreamfactory/utils" ) //参数校验 func (this *apiComp) GetRaceCheck(session comm.IUserSession, req *pb.PagodaGetRaceReq) (errdata *pb.ErrorData) { return } ///获取阵营爬塔信息 func (this *apiComp) GetRace(session comm.IUserSession, req *pb.PagodaGetRaceReq) (errdata *pb.ErrorData) { var ( bChange bool ) list, err := this.module.modelRacePagoda.getPagodaRaceList(session.GetUserId()) if err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } // 初始化每天挑战塔的层数 for k, v := range list.Race { if !utils.IsToday(v.Rtime) { list.Race[k].Rtime = configure.Now().Unix() list.Race[k].Defeat = 0 bChange = true } // 校验循环塔是否过期 if v.Endtime < configure.Now().Unix() { var cir int32 // 循环 c := this.module.configure.GetRaceCirculateConf() for pos, v := range c { if v == k { pos += 1 if pos >= len(c) { cir = c[0] } else { cir = c[pos] } break } } delete(list.Race, k) list.Race[cir] = &pb.RaceData{ Race: cir, Task: []int32{}, Rtime: configure.Now().Unix(), Defeat: 0, Endtime: this.module.GetSeasonData(), Curfloor: 0, } bChange = true } } if bChange { mapData := make(map[string]interface{}, 0) mapData["race"] = list.Race if err = this.module.modelRacePagoda.ModifyPagodaRaceDataByObjId(session.GetUserId(), mapData); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } } } session.SendMsg(string(this.module.GetType()), PagodaGetRaceResp, &pb.PagodaGetRaceResp{Race: list.Race}) return }