From 22457148d8b640c70f891a77d6496bb6c357ecad Mon Sep 17 00:00:00 2001 From: zhaocy Date: Thu, 30 Jun 2022 15:24:55 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=88=9D=E5=A7=8B=E9=87=91?= =?UTF-8?q?=E5=B8=81=E5=92=8C=E5=8D=A1=E7=89=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/robot/hero.go | 7 ++++--- cmd/robot/robot.go | 41 +++++++++++++++++++------------------- cmd/robot/user.go | 5 +++-- go.mod | 1 + go.sum | 1 + modules/user/api_create.go | 17 +++++++++++----- modules/user/module.go | 2 ++ utils/strings.go | 24 ++++++++++++++++++++++ 8 files changed, 68 insertions(+), 30 deletions(-) diff --git a/cmd/robot/hero.go b/cmd/robot/hero.go index 0df8b2e32..862e42948 100644 --- a/cmd/robot/hero.go +++ b/cmd/robot/hero.go @@ -13,6 +13,7 @@ var ( //hero heroBuilders = []*builder{ { + desc: "英雄列表", mainType: string(comm.ModuleHero), subType: hero.HeroSubTypeList, req: &pb.HeroListReq{}, @@ -23,7 +24,7 @@ var ( fmt.Printf("%d- %v\n", (i + 1), v) } }, - // enabled: true, + enabled: true, }, { mainType: string(comm.ModuleHero), subType: hero.HeroSubTypeInfo, @@ -61,8 +62,8 @@ var ( ExpCardID: "62bd0b4eca37634b8230d4be", Amount: 1, }, - rsp: &pb.HeroStrengthenUplvResp{}, - enabled: true, + rsp: &pb.HeroStrengthenUplvResp{}, + // enabled: true, }, } ) diff --git a/cmd/robot/robot.go b/cmd/robot/robot.go index 2cd33221a..d3a9d073e 100644 --- a/cmd/robot/robot.go +++ b/cmd/robot/robot.go @@ -68,6 +68,7 @@ func (r *Robot) Run() { } type builder struct { + desc string mainType string subType string req proto.Message @@ -90,6 +91,7 @@ func (r *Robot) addBuilders(builders []*builder) { func (r *Robot) handleReq() { for _, b := range r.builders { if b.req != nil && !b.requested { + time.Sleep(time.Second * 1) b.requested = true b.start = time.Now() head := &pb.UserMessage{MainType: b.mainType, SubType: b.subType} @@ -113,7 +115,7 @@ func (r *Robot) handleRsp(msg *pb.UserMessage) { if b.print == nil { printReply(msg, b) } else { - fmt.Printf("===== rsp [%s.%s] =====\n", msg.MainType, msg.SubType) + fmt.Printf("===== %s [%s.%s] =====\n", b.desc, msg.MainType, msg.SubType) b.print(b.rsp) fmt.Println("==============================") } @@ -159,15 +161,14 @@ func (r *Robot) onUserLoaded() { r.RunNotify() //user r.RunUser() - + //hero + r.RunHero() //friend // r.RunFriend() //pack // r.RunPack() - //hero - r.RunHero() } //注册账号 @@ -198,21 +199,21 @@ func (r *Robot) AccountRegister(account string, sid int32) { fmt.Printf("account:%s 注册成功", regRsp.Account) //登录 - loginReg := &pb.UserLoginReq{ - Account: account, - Sid: sid, + var user_builders = []*builder{ + { + desc: "登录", + mainType: "user", + subType: "login", + req: &pb.UserLoginReq{ + Account: account, + Sid: sid, + }, + rsp: &pb.UserLoginResp{}, + enabled: true, + }, } - - head := &pb.UserMessage{ - MainType: "user", - SubType: "login", - Sec: r.BuildSecStr(), - } - err = r.SendToClient(head, loginReg) - if err != nil { - log.Fatal(err) - } - + r.addBuilders(user_builders) + r.handleReq() } } @@ -225,9 +226,9 @@ func printReply(msg *pb.UserMessage, builder *builder) { } else { tt = time.Since(builder.start) } - log.Printf("rsp [%v] [%s.%s] [%v:%v]", tt, m.ReqMainType, m.ReqSubType, int32(m.Code), m.Data) + log.Printf("rsp %s [%v] [%s.%s] [%v:%v]", builder.desc, tt, m.ReqMainType, m.ReqSubType, int32(m.Code), m.Data) } else { - log.Printf("rsp [%v] [%s.%s] [%v]", time.Since(builder.start), msg.MainType, msg.SubType, builder.rsp) + log.Printf("rsp %s [%v] [%s.%s] [%v]", builder.desc, time.Since(builder.start), msg.MainType, msg.SubType, builder.rsp) } } diff --git a/cmd/robot/user.go b/cmd/robot/user.go index 35a00148e..d50ed2fad 100644 --- a/cmd/robot/user.go +++ b/cmd/robot/user.go @@ -10,13 +10,14 @@ import ( var user_builders = []*builder{ { //create + desc: "创角", mainType: string(comm.ModuleUser), subType: user.UserSubTypeCreate, req: &pb.UserCreateReq{ //设置请求参数 NickName: "乐谷6301", }, - rsp: &pb.UserCreateRsp{}, - // enabled: true, + rsp: &pb.UserCreateRsp{}, + enabled: true, }, } diff --git a/go.mod b/go.mod index b1b0e2fe1..b9f0933ba 100644 --- a/go.mod +++ b/go.mod @@ -21,6 +21,7 @@ require ( github.com/rs/xid v1.3.0 github.com/satori/go.uuid v1.2.0 github.com/smallnest/rpcx v1.7.4 + github.com/spf13/cast v1.3.1 github.com/spf13/cobra v1.2.1 github.com/spf13/pflag v1.0.5 github.com/tidwall/gjson v1.14.1 diff --git a/go.sum b/go.sum index ed2f49db8..7d40d401e 100644 --- a/go.sum +++ b/go.sum @@ -623,6 +623,7 @@ github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.2.1 h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw= diff --git a/modules/user/api_create.go b/modules/user/api_create.go index 73ab8f5b8..f05962790 100644 --- a/modules/user/api_create.go +++ b/modules/user/api_create.go @@ -41,6 +41,11 @@ func (this *apiComp) Create(session comm.IUserSession, result map[string]interfa "name": req.NickName, } + //设置初始金币 + if val := this.module.configure.GetGlobalConf("init_gold"); val != "" { + update["gold"] = val + } + err := this.module.modelUser.Change(session.GetUserId(), update) if err != nil { code = pb.ErrorCode_DBError @@ -48,11 +53,13 @@ func (this *apiComp) Create(session comm.IUserSession, result map[string]interfa } //初始化英雄卡 - defaultHero := []int32{15001, 25001} //TODO 从配置中读取 - err = this.hero.CreateHero(session.GetUserId(), defaultHero...) - if err != nil { - code = pb.ErrorCode_HeroInitCreat - return + if val := this.module.configure.GetGlobalConf("init_hero"); val != "" { + defaultHero := utils.TrInt32(val) + err = this.hero.CreateHero(session.GetUserId(), defaultHero...) + if err != nil { + code = pb.ErrorCode_HeroInitCreat + return + } } return diff --git a/modules/user/module.go b/modules/user/module.go index 0aa16c2cc..eb61bf57e 100644 --- a/modules/user/module.go +++ b/modules/user/module.go @@ -18,6 +18,7 @@ type User struct { api *apiComp modelUser *ModelUser modelSession *ModelSession + configure *configureComp } func (this *User) GetType() core.M_Modules { @@ -35,6 +36,7 @@ func (this *User) OnInstallComp() { this.api = this.RegisterComp(new(apiComp)).(*apiComp) this.modelUser = this.RegisterComp(new(ModelUser)).(*ModelUser) this.modelSession = this.RegisterComp(new(ModelSession)).(*ModelSession) + this.configure = this.RegisterComp(new(configureComp)).(*configureComp) } //获取英雄列表 diff --git a/utils/strings.go b/utils/strings.go index c153704d4..a3b27cae1 100644 --- a/utils/strings.go +++ b/utils/strings.go @@ -1,9 +1,12 @@ package utils import ( + "strconv" "strings" "go_dreamfactory/lego/sys/log" + + "github.com/spf13/cast" ) func ParseP(p string) (string, string, bool) { @@ -34,3 +37,24 @@ func DeleteString(list []string, ele string) []string { } return result } + +//转换包含数字字符串数组 +//eg. "3,4,5" to []int32{3,4,5} +func TrInt32(val string) (nums []int32) { + strArr := strings.Split(val, ",") + if len(strArr) == 0 { + return + } + + for _, n := range strArr { + if IsNum(strings.TrimSpace(n)) { + nums = append(nums, cast.ToInt32(strings.TrimSpace(n))) + } + } + return +} + +func IsNum(s string) bool { + _, err := strconv.ParseFloat(s, 64) + return err == nil +}