go_dreamfactory/modules/hero/api_lock.go
2022-07-06 15:37:34 +08:00

51 lines
1.2 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) {
_hero, err := this.module.GetHero(session.GetUserId(), req.Heroid)
defer func() {
if code == pb.ErrorCode_Success {
session.SendMsg(string(this.module.GetType()), HeroLock, &pb.HeroAwakenResp{Hero: _hero})
}
}()
if err != pb.ErrorCode_Success {
code = pb.ErrorCode_HeroNoExist
return
}
code = this.LockCheck(session, req) // check
if code != pb.ErrorCode_Success {
return
}
_hero.Block = !_hero.Block // 修改是否锁定状态
_heroMap := map[string]interface{}{
"block": _hero.Block,
}
// 保存数据
err1 := this.module.modelHero.modifyHeroData(session.GetUserId(), _hero.Id, _heroMap)
if err1 != nil {
code = pb.ErrorCode_DBError
log.Errorf("update hero skill failed:%v", err1)
}
return
}