go_dreamfactory/modules/hero/api_lock.go
2022-07-25 17:35:06 +08:00

48 lines
1.1 KiB
Go

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