105 lines
2.7 KiB
Go
105 lines
2.7 KiB
Go
package parkour
|
|
|
|
import (
|
|
"go_dreamfactory/comm"
|
|
"go_dreamfactory/lego/sys/mgo"
|
|
"go_dreamfactory/pb"
|
|
"go_dreamfactory/utils"
|
|
)
|
|
|
|
//参数校验
|
|
func (this *apiComp) InfoCheck(session comm.IUserSession, req *pb.ParkourInfoReq) (errdata *pb.ErrorData) {
|
|
return
|
|
}
|
|
|
|
///匹配请求
|
|
func (this *apiComp) Info(session comm.IUserSession, req *pb.ParkourInfoReq) (errdata *pb.ErrorData) {
|
|
var (
|
|
info *pb.DBParkour
|
|
user *pb.DBUser
|
|
dragon *pb.DBDragon
|
|
dragons []*pb.DBDragon
|
|
update map[string]interface{} = make(map[string]interface{})
|
|
err error
|
|
)
|
|
|
|
if errdata = this.InfoCheck(session, req); errdata != nil {
|
|
return
|
|
}
|
|
user, err = this.module.ModuleUser.GetUser(session.GetUserId())
|
|
if err != nil {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_DBError,
|
|
Title: pb.ErrorCode_DBError.ToString(),
|
|
Message: err.Error(),
|
|
}
|
|
return
|
|
}
|
|
if info, err = this.module.parkourComp.queryinfo(session.GetUserId()); err != nil && err != mgo.MongodbNil {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_DBError,
|
|
Title: pb.ErrorCode_DBError.ToString(),
|
|
Message: err.Error(),
|
|
}
|
|
return
|
|
}
|
|
if info.Defmts == "" { //没有默认坐骑
|
|
if dragons, err = this.module.dragon.GetDragonList(session.GetUserId()); err != nil {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_DBError,
|
|
Title: pb.ErrorCode_DBError.ToString(),
|
|
Message: err.Error(),
|
|
}
|
|
return
|
|
}
|
|
if len(dragons) > 0 {
|
|
info.Defmts = dragons[0].Id
|
|
info.Property = dragons[0].Property
|
|
info.Mount = dragons[0].Dragonid
|
|
info.Mlv = dragons[0].Lv
|
|
|
|
update["defmts"] = info.Defmts
|
|
update["property"] = info.Property
|
|
update["mount"] = info.Mount
|
|
update["mlv"] = info.Mlv
|
|
}
|
|
} else {
|
|
if dragon, err = this.module.dragon.QueryDragonById(session.GetUserId(), info.Defmts); err != nil {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_DBError,
|
|
Title: pb.ErrorCode_DBError.ToString(),
|
|
Message: err.Error(),
|
|
}
|
|
return
|
|
}
|
|
info.Defmts = dragon.Id
|
|
info.Property = dragon.Property
|
|
info.Mount = dragon.Dragonid
|
|
info.Mlv = dragon.Lv
|
|
|
|
update["defmts"] = info.Defmts
|
|
update["property"] = info.Property
|
|
update["mount"] = info.Mount
|
|
update["mlv"] = info.Mlv
|
|
|
|
}
|
|
|
|
if !utils.IsSameWeek(info.Weektime) {
|
|
info.Weekintegral = 0
|
|
update["weekintegral"] = 0
|
|
}
|
|
|
|
info.User = comm.GetUserBaseInfo(user)
|
|
update["user"] = info.User
|
|
if err = this.module.parkourComp.Change(session.GetUserId(), update); err != nil {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_DBError,
|
|
Title: pb.ErrorCode_DBError.ToString(),
|
|
Message: err.Error(),
|
|
}
|
|
return
|
|
}
|
|
session.SendMsg(string(this.module.GetType()), "info", &pb.ParkourInfoResp{Info: info})
|
|
return
|
|
}
|