82 lines
1.9 KiB
Go
82 lines
1.9 KiB
Go
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
|
|
}
|