Commit f74e34e3c8405cbeca8e04cc549eb68cb58a3e5b
1 parent
329a4f25
fix: 批量删除装备
docker安装部署
Showing
15 changed files
with
64 additions
and
27 deletions
 
Show diff stats
.gitignore
Makefile
| ... | ... | @@ -10,6 +10,12 @@ WORKSPACE=. | 
| 10 | 10 | GEN_CLIENT=${WORKSPACE}/luban_examples/Tools/Luban.Client/Luban.Client.dll | 
| 11 | 11 | CONF_ROOT=${WORKSPACE}/DesignerConfigs | 
| 12 | 12 | |
| 13 | +# deploy | |
| 14 | +DEPLOYIP=192.168.0.100 | |
| 15 | +DEPLOYNAME=zhaolu | |
| 16 | +DEPLOYPASSWD=zhaolu | |
| 17 | +DEPLOYDIR=/Users/zhaolu/Documents/pro2d | |
| 18 | + | |
| 13 | 19 | test: | 
| 14 | 20 | go run cmd/test/main.go | 
| 15 | 21 | http: | 
| ... | ... | @@ -35,7 +41,7 @@ doc: | 
| 35 | 41 | proto: | 
| 36 | 42 | protoc -I./protos --go_out=./protos --go-grpc_out=./protos ./protos/*proto | 
| 37 | 43 | protoc-go-inject-tag -input=./pb/*.pb.go | 
| 38 | - python3 tools/generator.py | |
| 44 | + python tools/generator.py #python3 | |
| 39 | 45 | |
| 40 | 46 | excel: | 
| 41 | 47 | cd ${WORKSPACE}/DesignerConfigs && git pull && cd - | 
| ... | ... | @@ -55,6 +61,8 @@ pull: | 
| 55 | 61 | docker-build: | 
| 56 | 62 | # docker build -t my-tab -f /abc/defg/my-dockerfile /context-dir | 
| 57 | 63 | docker build -t pro2d -f docker/Dockerfile ./ --force-rm | 
| 64 | +docker-save: | |
| 65 | + docker save pro2d > docker/pro2d.tar | |
| 58 | 66 | |
| 59 | 67 | docker-http: | 
| 60 | 68 | docker rm -f http-pro2d | 
| ... | ... | @@ -64,11 +72,14 @@ docker-game: | 
| 64 | 72 | docker rm -f game-pro2d | 
| 65 | 73 | docker run --restart=always -d -p 8850:8850 --name game-pro2d pro2d ./game | 
| 66 | 74 | |
| 67 | -save: docker-build | |
| 68 | - docker save pro2d > docker/pro2d.tar | |
| 69 | - scp docker/* zhaolu@192.168.0.100:/Users/zhaolu/Documents/pro2d #passwd: zhaolu | |
| 75 | +deploy: | |
| 76 | + scp docker/* ${DEPLOYNAME}@${DEPLOYIP}:${DEPLOYDIR} #passwd: zhaolu | |
| 77 | + rm -f docker/pro2d.tar | |
| 78 | + ssh ${DEPLOYNAME}@${DEPLOYIP} "/Users/zhaolu/Documents/pro2d/restart.sh" | |
| 70 | 79 | |
| 80 | +deploy-to: docker-build docker-save | |
| 81 | + scp docker/* ${DEPLOYNAME}@${DEPLOYIP}:${DEPLOYDIR} #passwd: zhaolu | |
| 71 | 82 | rm -f docker/pro2d.tar | 
| 72 | - ssh zhaolu@192.168.0.100 "/Users/zhaolu/Documents/pro2d/restart.sh" | |
| 83 | + ssh ${DEPLOYNAME}@${DEPLOYIP} "${DEPLOYDIR}/restart.sh" | |
| 73 | 84 | |
| 74 | 85 | .PHONY: all build protos test cert plugin doc proto pull | 
| 75 | 86 | \ No newline at end of file | ... | ... | 
README.md
| ... | ... | @@ -46,14 +46,18 @@ | 
| 46 | 46 | ``` | 
| 47 | 47 | |
| 48 | 48 | ## 环境安装 | 
| 49 | +protoc二进制下载地址: https://github.com/protocolbuffers/protobuf/releases/tag/v21.0-rc2 | |
| 50 | +>win下载3.8版本。其他平台随意,没遇到问题。 | |
| 51 | + | |
| 49 | 52 | protoc-go-inject-tag: 目的是往protos文件中打入自定义标签 | 
| 50 | 53 | ```shell | 
| 51 | 54 | $ go get github.com/favadi/protoc-go-inject-tag | 
| 52 | 55 | ``` | 
| 53 | 56 | |
| 54 | -etcd | |
| 57 | +protoc-go & etcd | |
| 55 | 58 | ```shell | 
| 56 | 59 | $ go get go.etcd.io/etcd/client/v3 | 
| 60 | +$ go get google.golang.org/protobuf/cmd/protoc-gen-go | |
| 57 | 61 | $ go install google.golang.org/protobuf/cmd/protoc-gen-go | 
| 58 | 62 | $ go get google.golang.org/grpc/cmd/protoc-gen-go-grpc | 
| 59 | 63 | $ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc | ... | ... | 
cmd/gameserver/action/RoleAction.go
| ... | ... | @@ -4,6 +4,7 @@ package action | 
| 4 | 4 | import ( | 
| 5 | 5 | "fmt" | 
| 6 | 6 | "github.com/golang/protobuf/proto" | 
| 7 | + "go.mongodb.org/mongo-driver/bson" | |
| 7 | 8 | "pro2d/common" | 
| 8 | 9 | "pro2d/common/components" | 
| 9 | 10 | "pro2d/common/db/mongoproxy" | 
| ... | ... | @@ -161,12 +162,18 @@ func EquipmentDelRpc(role *models.RoleModel, msg components.IMessage) (int32, in | 
| 161 | 162 | logger.Error("loginRpc err: %v", err) | 
| 162 | 163 | return 1, nil | 
| 163 | 164 | } | 
| 164 | - | |
| 165 | - if err := mongoproxy.DelOne("equipment", "id", req.Id); err != nil { | |
| 165 | + filter := make(bson.D, 5) | |
| 166 | + for _, id := range req.Id { | |
| 167 | + filter = append(filter, bson.E{Key: "id", Value: id}) | |
| 168 | + } | |
| 169 | + if err := mongoproxy.DelMany("equipment", filter); err != nil { | |
| 166 | 170 | logger.Error(err.Error()) | 
| 167 | 171 | return 2, nil | 
| 168 | 172 | } | 
| 169 | - delete(role.Equipments, req.Id) | |
| 173 | + | |
| 174 | + for _, id := range req.Id { | |
| 175 | + delete(role.Equipments, id) | |
| 176 | + } | |
| 170 | 177 | |
| 171 | 178 | return 0, nil | 
| 172 | 179 | } | ... | ... | 
cmd/gameserver/main.go
| ... | ... | @@ -17,7 +17,7 @@ func main() { | 
| 17 | 17 | signal.Notify(stopChan, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL) | 
| 18 | 18 | |
| 19 | 19 | userChan := make(chan os.Signal) | 
| 20 | - signal.Notify(userChan, syscall.SIGUSR1, syscall.SIGUSR2) | |
| 20 | + signal.Notify(userChan, syscall.SIGQUIT) | |
| 21 | 21 | |
| 22 | 22 | common.GlobalSconf = common.GlobalConf.GameConf | 
| 23 | 23 | s, err1 := service.NewGameServer() | ... | ... | 
common/components/conn.go
common/db/mongoproxy/mongoplugin.go
| ... | ... | @@ -89,6 +89,11 @@ func DelOne(coll string, key string, value interface{}) error { | 
| 89 | 89 | return err | 
| 90 | 90 | } | 
| 91 | 91 | |
| 92 | +func DelMany(coll string, filter bson.D) error { | |
| 93 | + _, err := mongoDatabase.Collection(coll).DeleteMany(context.TODO(), filter, nil) | |
| 94 | + return err | |
| 95 | +} | |
| 96 | + | |
| 92 | 97 | func GetBsonD(key string, value interface{}) interface{} { | 
| 93 | 98 | return bson.D{{key, value}} | 
| 94 | 99 | } | ... | ... | 
docker/restart.sh
| ... | ... | @@ -15,7 +15,7 @@ require ( | 
| 15 | 15 | go.etcd.io/etcd/api/v3 v3.5.2 | 
| 16 | 16 | go.etcd.io/etcd/client/v3 v3.5.2 | 
| 17 | 17 | go.mongodb.org/mongo-driver v1.8.3 | 
| 18 | - google.golang.org/protobuf v1.27.1 | |
| 18 | + google.golang.org/protobuf v1.28.0 | |
| 19 | 19 | gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b | 
| 20 | 20 | ) | 
| 21 | 21 | |
| ... | ... | @@ -28,6 +28,7 @@ require ( | 
| 28 | 28 | github.com/aliyun/credentials-go v1.2.1 // indirect | 
| 29 | 29 | github.com/coreos/go-semver v0.3.0 // indirect | 
| 30 | 30 | github.com/coreos/go-systemd/v22 v22.3.2 // indirect | 
| 31 | + github.com/favadi/protoc-go-inject-tag v1.3.0 // indirect | |
| 31 | 32 | github.com/gin-contrib/sse v0.1.0 // indirect | 
| 32 | 33 | github.com/go-playground/locales v0.13.0 // indirect | 
| 33 | 34 | github.com/go-playground/universal-translator v0.17.0 // indirect | 
| ... | ... | @@ -60,6 +61,7 @@ require ( | 
| 60 | 61 | golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect | 
| 61 | 62 | google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c // indirect | 
| 62 | 63 | google.golang.org/grpc v1.38.0 // indirect | 
| 64 | + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0 // indirect | |
| 63 | 65 | gopkg.in/ini.v1 v1.66.4 // indirect | 
| 64 | 66 | gopkg.in/yaml.v2 v2.4.0 // indirect | 
| 65 | 67 | ) | ... | ... | 
| ... | ... | @@ -62,6 +62,8 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m | 
| 62 | 62 | github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= | 
| 63 | 63 | github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= | 
| 64 | 64 | github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= | 
| 65 | +github.com/favadi/protoc-go-inject-tag v1.3.0 h1:JPrmsmc/uBShG85uY5xGZIa5WJ0IaNZn6LZhQR9tIQE= | |
| 66 | +github.com/favadi/protoc-go-inject-tag v1.3.0/go.mod h1:SSkUBgfqw2IJ2p7NPNKWk0Idwxt/qIt2LQgFPUgRGtc= | |
| 65 | 67 | github.com/garyburd/redigo v1.6.3 h1:HCeeRluvAgMusMomi1+6Y5dmFOdYV/JzoRrrbFlkGIc= | 
| 66 | 68 | github.com/garyburd/redigo v1.6.3/go.mod h1:rTb6epsqigu3kYKBnaF028A7Tf/Aw5s0cqA47doKKqw= | 
| 67 | 69 | github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= | 
| ... | ... | @@ -354,6 +356,8 @@ google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM | 
| 354 | 356 | google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= | 
| 355 | 357 | google.golang.org/grpc v1.38.0 h1:/9BgsAsa5nWe26HqOlvlgJnqBuktYOLCgjCPqsa56W0= | 
| 356 | 358 | google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= | 
| 359 | +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0 h1:TLkBREm4nIsEcexnCjgQd5GQWaHcqMzwQV0TX9pq8S0= | |
| 360 | +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0/go.mod h1:DNq5QpG7LJqD2AamLZ7zvKE0DEpVl2BSEVjFycAAjRY= | |
| 357 | 361 | google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= | 
| 358 | 362 | google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= | 
| 359 | 363 | google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= | 
| ... | ... | @@ -365,8 +369,9 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD | 
| 365 | 369 | google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= | 
| 366 | 370 | google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= | 
| 367 | 371 | google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= | 
| 368 | -google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= | |
| 369 | 372 | google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= | 
| 373 | +google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= | |
| 374 | +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= | |
| 370 | 375 | gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= | 
| 371 | 376 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | 
| 372 | 377 | gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ... | ... | 
pb/account.pb.go
pb/game.pb.go
| 1 | 1 | // Code generated by protoc-gen-go. DO NOT EDIT. | 
| 2 | 2 | // versions: | 
| 3 | -// protoc-gen-go v1.26.0 | |
| 4 | -// protoc v3.17.3 | |
| 3 | +// protoc-gen-go v1.28.0 | |
| 4 | +// protoc v3.8.0 | |
| 5 | 5 | // source: game.proto | 
| 6 | 6 | |
| 7 | 7 | package pb | 
| ... | ... | @@ -820,7 +820,7 @@ type EquipmentDelReq struct { | 
| 820 | 820 | sizeCache protoimpl.SizeCache | 
| 821 | 821 | unknownFields protoimpl.UnknownFields | 
| 822 | 822 | |
| 823 | - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` | |
| 823 | + Id []string `protobuf:"bytes,1,rep,name=id,proto3" json:"id,omitempty"` | |
| 824 | 824 | } | 
| 825 | 825 | |
| 826 | 826 | func (x *EquipmentDelReq) Reset() { | 
| ... | ... | @@ -855,11 +855,11 @@ func (*EquipmentDelReq) Descriptor() ([]byte, []int) { | 
| 855 | 855 | return file_game_proto_rawDescGZIP(), []int{14} | 
| 856 | 856 | } | 
| 857 | 857 | |
| 858 | -func (x *EquipmentDelReq) GetId() string { | |
| 858 | +func (x *EquipmentDelReq) GetId() []string { | |
| 859 | 859 | if x != nil { | 
| 860 | 860 | return x.Id | 
| 861 | 861 | } | 
| 862 | - return "" | |
| 862 | + return nil | |
| 863 | 863 | } | 
| 864 | 864 | |
| 865 | 865 | //ResponseCmd EquipmentAddRsp | 
| ... | ... | @@ -983,7 +983,7 @@ var file_game_proto_rawDesc = []byte{ | 
| 983 | 983 | 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48, 0x65, | 
| 984 | 984 | 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x21, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, | 
| 985 | 985 | 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, | 
| 986 | - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3a, 0x0a, 0x0f, 0x45, | |
| 986 | + 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3a, 0x0a, 0x0f, 0x45, | |
| 987 | 987 | 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x52, 0x73, 0x70, 0x12, 0x27, | 
| 988 | 988 | 0x0a, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, | 
| 989 | 989 | 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, | ... | ... | 
pb/models.pb.go
pb/protocode.pb.go