go_dreamfactory/modules/hero/api_lock.go
2023-11-16 18:09:41 +08:00

47 lines
1.2 KiB
Go

package hero
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/pb"
)
//参数校验
func (this *apiComp) LockCheck(session comm.IUserSession, req *pb.HeroLockReq) (errdata *pb.ErrorData) {
if req.Heroid == "" {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,
Title: pb.ErrorCode_ReqParameterError.ToString(),
}
}
return
}
/// 英雄锁定
func (this *apiComp) Lock(session comm.IUserSession, req *pb.HeroLockReq) (errdata *pb.ErrorData) {
var (
_hero *pb.DBHero
)
if errdata = this.LockCheck(session, req); errdata != nil {
return
}
if _hero, errdata = this.module.GetHeroByObjID(session.GetUserId(), req.Heroid); errdata != nil {
return
}
_hero.Block = !_hero.Block // 修改是否锁定状态
// 保存数据
if err := this.module.modelHero.ChangeList(session.GetUserId(), _hero.Id, map[string]interface{}{
"block": _hero.Block,
}); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
Message: err.Error(),
}
log.Errorf("update hero skill failed:%v", err)
return
}
session.SendMsg(string(this.module.GetType()), HeroLock, &pb.HeroAwakenResp{Hero: _hero})
return
}