diff --git a/comm/imodule.go b/comm/imodule.go index 68f8e3c87..002aacf23 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -125,6 +125,7 @@ type ( CheckTujianHero(session IUserSession, heros []string) []bool // bingo设置玩家等级 BingoSetUserLv(session IUserSession, lv int32) error + BingoSetUserVipLv(session IUserSession, lv int32) error } //武器模块 IEquipment interface { diff --git a/modules/gm/api_cmd.go b/modules/gm/api_cmd.go index c3c739a74..fd2a59e20 100644 --- a/modules/gm/api_cmd.go +++ b/modules/gm/api_cmd.go @@ -38,6 +38,7 @@ import ( 21、bingo:allequip 21、bingo:chat,1 22、bingo:itemtype,1,1 // 获取某种类型所有道具(道具类型,数量) +18、bingo:viplv,50 */ //参数校验 func (this *apiComp) CmdCheck(session comm.IUserSession, req *pb.GMCmdReq) (code pb.ErrorCode) { diff --git a/modules/gm/module.go b/modules/gm/module.go index 9d611d356..e0e8ed45b 100644 --- a/modules/gm/module.go +++ b/modules/gm/module.go @@ -451,6 +451,24 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC log.Field{Key: "1", Value: datas[1]}, log.Field{Key: "2", Value: datas[2]}, ) + } else if len(datas) == 2 && (datas[0] == "viplv") { // 玩家等级 + module1, err := this.service.GetModule(comm.ModuleUser) + if err != nil { + return + } + num, err := strconv.Atoi(datas[1]) + if err != nil { + code = pb.ErrorCode_ReqParameterError + return + } + if err = module1.(comm.IUser).BingoSetUserVipLv(session, int32(num)); err == nil { + code = pb.ErrorCode_Success + } + this.Debug("使用bingo命令:uid = %s ", + log.Field{Key: "uid", Value: session.GetUserId()}, + log.Field{Key: "0", Value: datas[0]}, + log.Field{Key: "N", Value: int32(num)}, + ) } } } diff --git a/modules/user/module.go b/modules/user/module.go index 745977669..7a5589651 100644 --- a/modules/user/module.go +++ b/modules/user/module.go @@ -655,3 +655,24 @@ func (this *User) RecoverUserVit() { } } } + +func (this *User) BingoSetUserVipLv(session comm.IUserSession, lv int32) error { + if lv <= 0 { + return comm.NewCustomError(pb.ErrorCode_ReqParameterError) + } + update := map[string]interface{}{ + "vip": lv, + "vipexp": 0, + } + if err := this.modelUser.Change(session.GetUserId(), update); err == nil { + if err := session.SendMsg(string(this.GetType()), UserSubTypeLvChangedPush, + &pb.UserVipChangedPush{Uid: session.GetUserId(), VipExp: 0, VipLv: lv}); err != nil { + this.Error("Bingo玩家等级变化 UserVipChangedPush推送失败", + log.Field{Key: "uid", Value: session.GetUserId()}, + log.Field{Key: "vipexp", Value: 0}, + log.Field{Key: "viplv", Value: lv}, + ) + } + } + return nil +}