Commit f74e34e3c8405cbeca8e04cc549eb68cb58a3e5b

Authored by zhangqijia
1 parent 329a4f25

fix: 批量删除装备

docker安装部署
.gitignore
1 1 .idea
  2 +.vscode
2 3 vendor
3 4 bin
4 5 protos
... ... @@ -13,4 +14,5 @@ logs
13 14 doc/draw.md
14 15  
15 16 luaban_examples
16   -*cache.meta
17 17 \ No newline at end of file
  18 +*cache.meta
  19 +*.DS_Store
18 20 \ No newline at end of file
... ...
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
... ... @@ -189,6 +189,7 @@ func (c *Connection) write() {
189 189 logger.Error("write Flush fail err: " + err.Error())
190 190 return
191 191 }
  192 + logger.Debug("write n: %d", n)
192 193 }
193 194 }
194 195  
... ...
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
1   -#!/bin/bash
  1 +#!/bin/sh
2 2  
3 3 /usr/local/bin/docker-compose -f /Users/zhaolu/Documents/pro2d/docker-compose.yml down
4 4 /usr/local/bin/docker load < /Users/zhaolu/Documents/pro2d/pro2d.tar
... ...
... ... @@ -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
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: account.proto
6 6  
7 7 package pb
... ...
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
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: models.proto
6 6  
7 7 package pb
... ...
pb/protocode.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: protocode.proto
6 6  
7 7 package pb
... ...
1   -Subproject commit 015742626c9deaa014003202fa6981a3fa9f9df9
  1 +Subproject commit e98782647286257179822cb039bbbff1c15d4c36
... ...