Browse Source

first commit

Jay 5 tháng trước cách đây
mục cha
commit
9c3aadaeae

BIN
.DS_Store


+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+**/.vscode/*.*

+ 1 - 1
README.md

@@ -1,3 +1,3 @@
 # go-service-pb
 
-go-service-pb
+go-service-pb 20

+ 92 - 0
go.mod

@@ -0,0 +1,92 @@
+module git.goio.dev/pb/go-service-pb
+
+go 1.24.1
+
+require (
+	github.com/zeromicro/go-zero v1.8.4
+	google.golang.org/grpc v1.71.0
+	google.golang.org/protobuf v1.36.5
+)
+
+require (
+	github.com/beorn7/perks v1.0.1 // indirect
+	github.com/cenkalti/backoff/v4 v4.3.0 // indirect
+	github.com/cespare/xxhash/v2 v2.3.0 // indirect
+	github.com/coreos/go-semver v0.3.1 // indirect
+	github.com/coreos/go-systemd/v22 v22.5.0 // indirect
+	github.com/davecgh/go-spew v1.1.1 // indirect
+	github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
+	github.com/emicklei/go-restful/v3 v3.11.0 // indirect
+	github.com/fatih/color v1.18.0 // indirect
+	github.com/go-logr/logr v1.4.2 // indirect
+	github.com/go-logr/stdr v1.2.2 // indirect
+	github.com/go-openapi/jsonpointer v0.19.6 // indirect
+	github.com/go-openapi/jsonreference v0.20.2 // indirect
+	github.com/go-openapi/swag v0.22.4 // indirect
+	github.com/gogo/protobuf v1.3.2 // indirect
+	github.com/golang/mock v1.6.0 // indirect
+	github.com/golang/protobuf v1.5.4 // indirect
+	github.com/google/gnostic-models v0.6.8 // indirect
+	github.com/google/go-cmp v0.6.0 // indirect
+	github.com/google/gofuzz v1.2.0 // indirect
+	github.com/google/uuid v1.6.0 // indirect
+	github.com/grafana/pyroscope-go v1.2.2 // indirect
+	github.com/grafana/pyroscope-go/godeltaprof v0.1.8 // indirect
+	github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
+	github.com/josharian/intern v1.0.0 // indirect
+	github.com/json-iterator/go v1.1.12 // indirect
+	github.com/klauspost/compress v1.17.11 // indirect
+	github.com/mailru/easyjson v0.7.7 // indirect
+	github.com/mattn/go-colorable v0.1.13 // indirect
+	github.com/mattn/go-isatty v0.0.20 // indirect
+	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
+	github.com/modern-go/reflect2 v1.0.2 // indirect
+	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
+	github.com/openzipkin/zipkin-go v0.4.3 // indirect
+	github.com/pelletier/go-toml/v2 v2.2.2 // indirect
+	github.com/prometheus/client_golang v1.21.1 // indirect
+	github.com/prometheus/client_model v0.6.1 // indirect
+	github.com/prometheus/common v0.62.0 // indirect
+	github.com/prometheus/procfs v0.15.1 // indirect
+	github.com/redis/go-redis/v9 v9.10.0 // indirect
+	github.com/spaolacci/murmur3 v1.1.0 // indirect
+	go.etcd.io/etcd/api/v3 v3.5.15 // indirect
+	go.etcd.io/etcd/client/pkg/v3 v3.5.15 // indirect
+	go.etcd.io/etcd/client/v3 v3.5.15 // indirect
+	go.opentelemetry.io/auto/sdk v1.1.0 // indirect
+	go.opentelemetry.io/otel v1.34.0 // indirect
+	go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.24.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 // indirect
+	go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.24.0 // indirect
+	go.opentelemetry.io/otel/exporters/zipkin v1.24.0 // indirect
+	go.opentelemetry.io/otel/metric v1.34.0 // indirect
+	go.opentelemetry.io/otel/sdk v1.34.0 // indirect
+	go.opentelemetry.io/otel/trace v1.34.0 // indirect
+	go.opentelemetry.io/proto/otlp v1.3.1 // indirect
+	go.uber.org/atomic v1.10.0 // indirect
+	go.uber.org/automaxprocs v1.6.0 // indirect
+	go.uber.org/multierr v1.9.0 // indirect
+	go.uber.org/zap v1.24.0 // indirect
+	golang.org/x/net v0.35.0 // indirect
+	golang.org/x/oauth2 v0.25.0 // indirect
+	golang.org/x/sys v0.30.0 // indirect
+	golang.org/x/term v0.29.0 // indirect
+	golang.org/x/text v0.22.0 // indirect
+	golang.org/x/time v0.10.0 // indirect
+	google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 // indirect
+	google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect
+	gopkg.in/inf.v0 v0.9.1 // indirect
+	gopkg.in/yaml.v2 v2.4.0 // indirect
+	gopkg.in/yaml.v3 v3.0.1 // indirect
+	k8s.io/api v0.29.3 // indirect
+	k8s.io/apimachinery v0.29.4 // indirect
+	k8s.io/client-go v0.29.3 // indirect
+	k8s.io/klog/v2 v2.110.1 // indirect
+	k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
+	k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
+	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
+	sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
+	sigs.k8s.io/yaml v1.3.0 // indirect
+)

+ 281 - 0
go.sum

@@ -0,0 +1,281 @@
+github.com/alicebob/miniredis/v2 v2.35.0 h1:QwLphYqCEAo1eu1TqPRN2jgVMPBweeQcR21jeqDCONI=
+github.com/alicebob/miniredis/v2 v2.35.0/go.mod h1:TcL7YfarKPGDAthEtl5NBeHZfeUQj6OXMm/+iu5cLMM=
+github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
+github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
+github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
+github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
+github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
+github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c=
+github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
+github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
+github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
+github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
+github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
+github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
+github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
+github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
+github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
+github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
+github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
+github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
+github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
+github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
+github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
+github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
+github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
+github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
+github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
+github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
+github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
+github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
+github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
+github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
+github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
+github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU=
+github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
+github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
+github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
+github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
+github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
+github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
+github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
+github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
+github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
+github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
+github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
+github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
+github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
+github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
+github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
+github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
+github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec=
+github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
+github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/grafana/pyroscope-go v1.2.2 h1:uvKCyZMD724RkaCEMrSTC38Yn7AnFe8S2wiAIYdDPCE=
+github.com/grafana/pyroscope-go v1.2.2/go.mod h1:zzT9QXQAp2Iz2ZdS216UiV8y9uXJYQiGE1q8v1FyhqU=
+github.com/grafana/pyroscope-go/godeltaprof v0.1.8 h1:iwOtYXeeVSAeYefJNaxDytgjKtUuKQbJqgAIjlnicKg=
+github.com/grafana/pyroscope-go/godeltaprof v0.1.8/go.mod h1:2+l7K7twW49Ct4wFluZD3tZ6e0SjanjcUUBPVD/UuGU=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k=
+github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw=
+github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI=
+github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
+github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
+github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
+github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
+github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
+github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
+github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
+github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
+github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
+github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
+github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
+github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
+github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
+github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
+github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
+github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
+github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
+github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
+github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
+github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
+github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
+github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
+github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4=
+github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o=
+github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
+github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
+github.com/openzipkin/zipkin-go v0.4.3 h1:9EGwpqkgnwdEIJ+Od7QVSEIH+ocmm5nPat0G7sjsSdg=
+github.com/openzipkin/zipkin-go v0.4.3/go.mod h1:M9wCJZFWCo2RiY+o1eBCEMe0Dp2S5LDHcMZmk3RmK7c=
+github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
+github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g=
+github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U=
+github.com/prometheus/client_golang v1.21.1 h1:DOvXXTqVzvkIewV/CDPFdejpMCGeMcbGCQ8YOmu+Ibk=
+github.com/prometheus/client_golang v1.21.1/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg=
+github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
+github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
+github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io=
+github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I=
+github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
+github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
+github.com/redis/go-redis/v9 v9.10.0 h1:FxwK3eV8p/CQa0Ch276C7u2d0eNC9kCmAYQ7mCXCzVs=
+github.com/redis/go-redis/v9 v9.10.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw=
+github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
+github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
+github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
+github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
+github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
+github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
+github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
+github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
+github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
+github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
+github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
+github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M=
+github.com/yuin/gopher-lua v1.1.1/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw=
+github.com/zeromicro/go-zero v1.8.4 h1:3s7kOoThCnkDoqCafsqSX58Y9osYTBIa5QEmomw07TE=
+github.com/zeromicro/go-zero v1.8.4/go.mod h1:eM5f6If/RF+jG1wSCmlvfXD2h2l23vJwETI8oDpjYt4=
+go.etcd.io/etcd/api/v3 v3.5.15 h1:3KpLJir1ZEBrYuV2v+Twaa/e2MdDCEZ/70H+lzEiwsk=
+go.etcd.io/etcd/api/v3 v3.5.15/go.mod h1:N9EhGzXq58WuMllgH9ZvnEr7SI9pS0k0+DHZezGp7jM=
+go.etcd.io/etcd/client/pkg/v3 v3.5.15 h1:fo0HpWz/KlHGMCC+YejpiCmyWDEuIpnTDzpJLB5fWlA=
+go.etcd.io/etcd/client/pkg/v3 v3.5.15/go.mod h1:mXDI4NAOwEiszrHCb0aqfAYNCrZP4e9hRca3d1YK8EU=
+go.etcd.io/etcd/client/v3 v3.5.15 h1:23M0eY4Fd/inNv1ZfU3AxrbbOdW79r9V9Rl62Nm6ip4=
+go.etcd.io/etcd/client/v3 v3.5.15/go.mod h1:CLSJxrYjvLtHsrPKsy7LmZEE+DK2ktfd2bN4RhBMwlU=
+go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
+go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
+go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=
+go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI=
+go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4=
+go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 h1:t6wl9SPayj+c7lEIFgm4ooDBZVb01IhLB4InpomhRw8=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0/go.mod h1:iSDOcsnSA5INXzZtwaBPrKp/lWu/V14Dd+llD0oI2EA=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.24.0 h1:Mw5xcxMwlqoJd97vwPxA8isEaIoxsta9/Q51+TTJLGE=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.24.0/go.mod h1:CQNu9bj7o7mC6U7+CA/schKEYakYXWr79ucDHTMGhCM=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 h1:Xw8U6u2f8DK2XAkGRFV7BBLENgnTGX9i4rQRxJf+/vs=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0/go.mod h1:6KW1Fm6R/s6Z3PGXwSJN2K4eT6wQB3vXX6CVnYX9NmM=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.24.0 h1:s0PHtIkN+3xrbDOpt2M8OTG92cWqUESvzh2MxiR5xY8=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.24.0/go.mod h1:hZlFbDbRt++MMPCCfSJfmhkGIWnX1h3XjkfxZUjLrIA=
+go.opentelemetry.io/otel/exporters/zipkin v1.24.0 h1:3evrL5poBuh1KF51D9gO/S+N/1msnm4DaBqs/rpXUqY=
+go.opentelemetry.io/otel/exporters/zipkin v1.24.0/go.mod h1:0EHgD8R0+8yRhUYJOGR8Hfg2dpiJQxDOszd5smVO9wM=
+go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ=
+go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE=
+go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A=
+go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU=
+go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk=
+go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w=
+go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=
+go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
+go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0=
+go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8=
+go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
+go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
+go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
+go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
+go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
+go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
+go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
+go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
+go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
+go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
+golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8=
+golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk=
+golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70=
+golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
+golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU=
+golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
+golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
+golang.org/x/time v0.10.0 h1:3usCWA8tQn0L8+hFJQNgzpWbd89begxN66o1Ojdn5L4=
+golang.org/x/time v0.10.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
+golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 h1:GVIKPyP/kLIyVOgOnTwFOrvQaQUzOzGMCxgFUOEmm24=
+google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422/go.mod h1:b6h1vNKhxaSoEI+5jc3PJUCustfli/mRab7295pY7rw=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50=
+google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg=
+google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec=
+google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
+google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+gopkg.in/h2non/gock.v1 v1.1.2 h1:jBbHXgGBK/AoPVfJh5x4r/WxIrElvbLel8TCZkkZJoY=
+gopkg.in/h2non/gock.v1 v1.1.2/go.mod h1:n7UGz/ckNChHiK05rDoiC4MYSunEC/lyaUm2WWaDva0=
+gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
+gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
+gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
+gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
+gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+k8s.io/api v0.29.3 h1:2ORfZ7+bGC3YJqGpV0KSDDEVf8hdGQ6A03/50vj8pmw=
+k8s.io/api v0.29.3/go.mod h1:y2yg2NTyHUUkIoTC+phinTnEa3KFM6RZ3szxt014a80=
+k8s.io/apimachinery v0.29.4 h1:RaFdJiDmuKs/8cm1M6Dh1Kvyh59YQFDcFuFTSmXes6Q=
+k8s.io/apimachinery v0.29.4/go.mod h1:i3FJVwhvSp/6n8Fl4K97PJEP8C+MM+aoDq4+ZJBf70Y=
+k8s.io/client-go v0.29.3 h1:R/zaZbEAxqComZ9FHeQwOh3Y1ZUs7FaHKZdQtIc2WZg=
+k8s.io/client-go v0.29.3/go.mod h1:tkDisCvgPfiRpxGnOORfkljmS+UrW+WtXAy2fTvXJB0=
+k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0=
+k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo=
+k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780=
+k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
+k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
+k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
+sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
+sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
+sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
+sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
+sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=

+ 63 - 0
pb/aes.go

@@ -0,0 +1,63 @@
+package pb
+
+const (
+	Authorization = "Authorization"
+	//配置参数KEY
+	ConfigAesEncryptParamKey   = "aesEncryptConfig"
+	ConfigApiLogEnableParamKey = "apiLogEnable"
+
+	//通用参数
+	HeaderXNlContentEncoding = "X-NL-Content-Encoding"     //返回给客户端的压缩标识
+	HeaderXNlProductCode     = "X-NL-Product-Code"         //产品
+	HeaderXNlCryptoKey       = "X-Nl-Crypto-Key"           //产品
+	HeaderXNlCryptoValue     = "J4zjl/1t7kSyktxbDvyYlw=="  //产品
+	HeaderXNlDevIp           = "X-NL-DEV-IP"               //测试IP
+	HeaderXNlDisabledEncrypt = "X-NL-DEV-DISABLED-ENCRYPT" //加密禁用
+
+	//内部参数
+	InnerHeaderResCompressMethod = "Res-Encrypt-CompressMethod"
+	InnerHeaderReqEncryptKey     = "Req-Encrypt-Key"
+	InnerHeaderReqEncryptIv      = "Req-Encrypt-Iv"
+	InnerHeaderResEncryptKey     = "Res-Encrypt-Key"
+	InnerHeaderResEncryptIv      = "Res-Encrypt-Iv"
+	InnerHeaderEncryptEnable     = "encryptEnable"
+	InnerHeaderAesDirectEnable   = "Aes-Direct-Enable"
+	InnerHeaderLogEnable         = "Log"
+	InnerHeaderCompressLength    = "X-NL-Compress-Length"
+	InnerHeaderJwtEncryptSecret  = "Req-Jwt-Encrypt-Secret"
+	AesIvLength                  = 16 //iv 长度
+)
+
+type AesConfig struct {
+	Enable         bool   `json:"enable"`
+	AesDirect      bool   `json:"aesDirect"`      //true 时直接用Aes加密解密,false 时用iv+(encryptData(timestamp+encryptData(content)))加密
+	Compress       string `json:"compress"`       // 空 or gzip 或者 br
+	CompressLength int64  `json:"compressLength"` // 压缩判断长度
+	Request        struct {
+		Key string `json:"key"`
+		Iv  string `json:"iv"`
+	} `json:"request"`
+	Response struct {
+		Key string `json:"key"`
+		Iv  string `json:"iv"`
+	} `json:"response"`
+}
+
+type (
+	EncryptConfig struct {
+		Key    []byte `json:"key"`
+		Iv     []byte `json:"iv"`
+		KeyStr string `json:"key_str"`
+		IvStr  string `json:"iv_str"`
+	}
+
+	ProductInfo struct {
+		Log                   bool `json:"log"`
+		EncryptEnable         bool
+		RequestEncryptConfig  *EncryptConfig
+		ResponseEncryptConfig *EncryptConfig
+		AesDirect             bool
+		CompressMethod        string
+		CompressLength        int64 // 压缩判断长度
+	}
+)

+ 53 - 0
pb/appevent/attr.go

@@ -0,0 +1,53 @@
+package appevent
+
+// 广告主APP 转化事件类型
+const (
+	// AppInstall 安装应用
+	AppInstall = "app_install"
+	// ViewContent 查看详情
+	ViewContent = "view_content"
+	// AchieveLevel 达到等级
+	AchieveLevel = "achieve_level"
+	// LaunchApp 打开应用
+	LaunchApp = "launch_app"
+	// Login 登录
+	Login = "login"
+	// Subscribe 订阅
+	Subscribe = "subscribe"
+	// Checkout 发起结账
+	Checkout = "checkout"
+	// Purchase 付费成功
+	Purchase = "purchase"
+	// SpendCredits 花费点数
+	SpendCredits = "spend_credits"
+	// AddToCart 加入购物车
+	AddToCart = "add_to_cart"
+	// AddToWishlist 加入心愿单
+	AddToWishlist = "add_to_wishlist"
+	// UnlockAchievement 解锁成就
+	UnlockAchievement = "unlock_achievement"
+	// StartTrial 开始试用
+	StartTrial = "start_trial"
+	// Rate 评价
+	Rate = "rate"
+	// PreCreditGranting 申请贷款
+	PreCreditGranting = "pre_credit_granting"
+	// CreditGranting 授信
+	CreditGranting = "credit_granting"
+	// Search 搜索
+	Search = "search"
+	// AddPaymentInfo 添加付款信息
+	AddPaymentInfo = "add_payment_info"
+	// CompleteTutorial 完成教程学习
+	CompleteTutorial = "complete_tutorial"
+	// Registration 注册
+	Registration = "registration"
+	// D2Retention 次留
+	D2Retention = "d2_retention"
+	// LoanIssued 放款
+	LoanIssued = "loan_issued"
+	// Contact 联系
+	Contact = "contact"
+	// Schedule 预约
+	Schedule = "schedule"
+)

+ 439 - 0
pb/client/gogameclient/go_game_client.go

@@ -0,0 +1,439 @@
+// Code generated by goctl. DO NOT EDIT.
+// goctl 1.8.5
+// Source: gorpc.proto
+
+package gogameclient
+
+import (
+	"context"
+
+	"git.goio.dev/pb/go-service-pb/pb/pb"
+
+	"github.com/zeromicro/go-zero/zrpc"
+	"google.golang.org/grpc"
+)
+
+type (
+	AccountDeviceListReq                       = pb.AccountDeviceListReq
+	AccountDeviceListResp                      = pb.AccountDeviceListResp
+	AccountDeviceVo                            = pb.AccountDeviceVo
+	AccountListReq                             = pb.AccountListReq
+	AccountListResp                            = pb.AccountListResp
+	AccountVo                                  = pb.AccountVo
+	AdGlobalConfigGetReq                       = pb.AdGlobalConfigGetReq
+	AdGlobalConfigVo                           = pb.AdGlobalConfigVo
+	AdPlanDetailListReq                        = pb.AdPlanDetailListReq
+	AdPlanDetailListResp                       = pb.AdPlanDetailListResp
+	AdPlanDetailVo                             = pb.AdPlanDetailVo
+	AdPlanListReq                              = pb.AdPlanListReq
+	AdPlanListResp                             = pb.AdPlanListResp
+	AdPlanVo                                   = pb.AdPlanVo
+	AnnouncePlanDetailListReq                  = pb.AnnouncePlanDetailListReq
+	AnnouncePlanDetailListResp                 = pb.AnnouncePlanDetailListResp
+	AnnouncePlanDetailVo                       = pb.AnnouncePlanDetailVo
+	AnnouncePlanListReq                        = pb.AnnouncePlanListReq
+	AnnouncePlanListResp                       = pb.AnnouncePlanListResp
+	AnnouncePlanVo                             = pb.AnnouncePlanVo
+	AreaParamListReq                           = pb.AreaParamListReq
+	AreaParamListResp                          = pb.AreaParamListResp
+	AreaParamVo                                = pb.AreaParamVo
+	BaseReq                                    = pb.BaseReq
+	CommonResult                               = pb.CommonResult
+	ConfigGetReq                               = pb.ConfigGetReq
+	DeleteIdResp                               = pb.DeleteIdResp
+	DeployConfigListReq                        = pb.DeployConfigListReq
+	DeployConfigListResp                       = pb.DeployConfigListResp
+	DeployConfigVo                             = pb.DeployConfigVo
+	DeviceListReq                              = pb.DeviceListReq
+	DeviceListRes                              = pb.DeviceListRes
+	DeviceVo                                   = pb.DeviceVo
+	DictGetReq                                 = pb.DictGetReq
+	DictListReq                                = pb.DictListReq
+	DictListResp                               = pb.DictListResp
+	DictVo                                     = pb.DictVo
+	Empty                                      = pb.Empty
+	GameCategoryListReq                        = pb.GameCategoryListReq
+	GameCategoryListRes                        = pb.GameCategoryListRes
+	GameCategoryReq                            = pb.GameCategoryReq
+	GameCategoryVo                             = pb.GameCategoryVo
+	GameCustomerAddResp                        = pb.GameCustomerAddResp
+	GameCustomerListReq                        = pb.GameCustomerListReq
+	GameCustomerListRes                        = pb.GameCustomerListRes
+	GameCustomerVo                             = pb.GameCustomerVo
+	GameListReq                                = pb.GameListReq
+	GameListRes                                = pb.GameListRes
+	GameRedisHScanByNameReq                    = pb.GameRedisHScanByNameReq
+	GameRedisHScanByNameResp                   = pb.GameRedisHScanByNameResp
+	GameReq                                    = pb.GameReq
+	GameVo                                     = pb.GameVo
+	GlobalParamGetReq                          = pb.GlobalParamGetReq
+	GlobalParamListReq                         = pb.GlobalParamListReq
+	GlobalParamListResp                        = pb.GlobalParamListResp
+	GlobalParamVo                              = pb.GlobalParamVo
+	I18NVo                                     = pb.I18NVo
+	Ids                                        = pb.Ids
+	Int64SelectController                      = pb.Int64SelectController
+	IntSelectController                        = pb.IntSelectController
+	JobBatchListReq                            = pb.JobBatchListReq
+	JobBatchListResp                           = pb.JobBatchListResp
+	JobBatchListWithTasksResp                  = pb.JobBatchListWithTasksResp
+	JobBatchVo                                 = pb.JobBatchVo
+	JobBatchWithTasksVo                        = pb.JobBatchWithTasksVo
+	JobTasksListReq                            = pb.JobTasksListReq
+	JobTasksListResp                           = pb.JobTasksListResp
+	JobTasksVo                                 = pb.JobTasksVo
+	MessagePushListReq                         = pb.MessagePushListReq
+	MessagePushListResp                        = pb.MessagePushListResp
+	MessagePushVo                              = pb.MessagePushVo
+	NationalLanguageListReq                    = pb.NationalLanguageListReq
+	NationalLanguageListResp                   = pb.NationalLanguageListResp
+	NationalLanguageVo                         = pb.NationalLanguageVo
+	OperationLogListReq                        = pb.OperationLogListReq
+	OperationLogListResp                       = pb.OperationLogListResp
+	OperationLogVo                             = pb.OperationLogVo
+	Page                                       = pb.Page
+	Page_OrderItem                             = pb.Page_OrderItem
+	ProductActionListReq                       = pb.ProductActionListReq
+	ProductActionListResp                      = pb.ProductActionListResp
+	ProductActionReq                           = pb.ProductActionReq
+	ProductActionVo                            = pb.ProductActionVo
+	ProductListReq                             = pb.ProductListReq
+	ProductListResp                            = pb.ProductListResp
+	ProductParamGetReq                         = pb.ProductParamGetReq
+	ProductParamListReq                        = pb.ProductParamListReq
+	ProductParamListResp                       = pb.ProductParamListResp
+	ProductParamVo                             = pb.ProductParamVo
+	ProductVo                                  = pb.ProductVo
+	RelGameRankListReq                         = pb.RelGameRankListReq
+	RelGameRankListRes                         = pb.RelGameRankListRes
+	RelGameRankReq                             = pb.RelGameRankReq
+	RelGameRankVo                              = pb.RelGameRankVo
+	RelGameVpnGroupListReq                     = pb.RelGameVpnGroupListReq
+	RelGameVpnGroupListRes                     = pb.RelGameVpnGroupListRes
+	RelGameVpnGroupReq                         = pb.RelGameVpnGroupReq
+	RelGameVpnGroupVo                          = pb.RelGameVpnGroupVo
+	Request                                    = pb.Request
+	Response                                   = pb.Response
+	ServiceSetsAddReq                          = pb.ServiceSetsAddReq
+	ServiceSetsDelReq                          = pb.ServiceSetsDelReq
+	ServiceSetsGetReq                          = pb.ServiceSetsGetReq
+	ServiceSetsListReq                         = pb.ServiceSetsListReq
+	ServiceSetsListResp                        = pb.ServiceSetsListResp
+	ServiceSetsUpdateReq                       = pb.ServiceSetsUpdateReq
+	ServiceSetsVo                              = pb.ServiceSetsVo
+	ServiceTypesAddReq                         = pb.ServiceTypesAddReq
+	ServiceTypesDelReq                         = pb.ServiceTypesDelReq
+	ServiceTypesGetReq                         = pb.ServiceTypesGetReq
+	ServiceTypesListReq                        = pb.ServiceTypesListReq
+	ServiceTypesListResp                       = pb.ServiceTypesListResp
+	ServiceTypesUpdateReq                      = pb.ServiceTypesUpdateReq
+	ServiceTypesVo                             = pb.ServiceTypesVo
+	SetTotalStatsReq                           = pb.SetTotalStatsReq
+	ShortDramaCheckNameReq                     = pb.ShortDramaCheckNameReq
+	ShortDramaCheckNameResp                    = pb.ShortDramaCheckNameResp
+	ShortDramaEpisodeBatchAddReq               = pb.ShortDramaEpisodeBatchAddReq
+	ShortDramaEpisodeBatchRefreshUpdateTimeReq = pb.ShortDramaEpisodeBatchRefreshUpdateTimeReq
+	ShortDramaEpisodeCountReq                  = pb.ShortDramaEpisodeCountReq
+	ShortDramaEpisodeCountResp                 = pb.ShortDramaEpisodeCountResp
+	ShortDramaEpisodeCountVo                   = pb.ShortDramaEpisodeCountVo
+	ShortDramaEpisodeGetReq                    = pb.ShortDramaEpisodeGetReq
+	ShortDramaEpisodeListReq                   = pb.ShortDramaEpisodeListReq
+	ShortDramaEpisodeListResp                  = pb.ShortDramaEpisodeListResp
+	ShortDramaEpisodeVo                        = pb.ShortDramaEpisodeVo
+	ShortDramaGetReq                           = pb.ShortDramaGetReq
+	ShortDramaLanguageListReq                  = pb.ShortDramaLanguageListReq
+	ShortDramaLanguageListResp                 = pb.ShortDramaLanguageListResp
+	ShortDramaLanguageVo                       = pb.ShortDramaLanguageVo
+	ShortDramaListReq                          = pb.ShortDramaListReq
+	ShortDramaListResp                         = pb.ShortDramaListResp
+	ShortDramaStatsPlaysTotalListReq           = pb.ShortDramaStatsPlaysTotalListReq
+	ShortDramaStatsPlaysTotalListResp          = pb.ShortDramaStatsPlaysTotalListResp
+	ShortDramaStatsPlaysTotalVo                = pb.ShortDramaStatsPlaysTotalVo
+	ShortDramaUpdateModifierReq                = pb.ShortDramaUpdateModifierReq
+	ShortDramaVo                               = pb.ShortDramaVo
+	StringSelectController                     = pb.StringSelectController
+	SysPermGetReq                              = pb.SysPermGetReq
+	SysPermListReq                             = pb.SysPermListReq
+	SysPermListResp                            = pb.SysPermListResp
+	SysPermRule                                = pb.SysPermRule
+	SysPermVo                                  = pb.SysPermVo
+	SysRoleGetReq                              = pb.SysRoleGetReq
+	SysRoleListReq                             = pb.SysRoleListReq
+	SysRoleListResp                            = pb.SysRoleListResp
+	SysRoleListWithPermsResp                   = pb.SysRoleListWithPermsResp
+	SysRolePermGetReq                          = pb.SysRolePermGetReq
+	SysRolePermListReq                         = pb.SysRolePermListReq
+	SysRolePermListResp                        = pb.SysRolePermListResp
+	SysRolePermVo                              = pb.SysRolePermVo
+	SysRoleVo                                  = pb.SysRoleVo
+	SysRoleWithPermIds                         = pb.SysRoleWithPermIds
+	SysRoleWithPerms                           = pb.SysRoleWithPerms
+	SysUserGetReq                              = pb.SysUserGetReq
+	SysUserListReq                             = pb.SysUserListReq
+	SysUserListResp                            = pb.SysUserListResp
+	SysUserListWithRolesAndPermsResp           = pb.SysUserListWithRolesAndPermsResp
+	SysUserPermGetReq                          = pb.SysUserPermGetReq
+	SysUserPermListReq                         = pb.SysUserPermListReq
+	SysUserPermListResp                        = pb.SysUserPermListResp
+	SysUserPermVo                              = pb.SysUserPermVo
+	SysUserRoleGetReq                          = pb.SysUserRoleGetReq
+	SysUserRoleListReq                         = pb.SysUserRoleListReq
+	SysUserRoleListResp                        = pb.SysUserRoleListResp
+	SysUserRoleVo                              = pb.SysUserRoleVo
+	SysUserVo                                  = pb.SysUserVo
+	SysUserWithRoleIdsAndPermRules             = pb.SysUserWithRoleIdsAndPermRules
+	SysUserWithRolesAndPerms                   = pb.SysUserWithRolesAndPerms
+	TimeRange                                  = pb.TimeRange
+	TipGetReq                                  = pb.TipGetReq
+	TipListReq                                 = pb.TipListReq
+	TipListResp                                = pb.TipListResp
+	TipVo                                      = pb.TipVo
+	TransactionOperation                       = pb.TransactionOperation
+	TransactionReq                             = pb.TransactionReq
+	UpgradePkgPlanDetailListReq                = pb.UpgradePkgPlanDetailListReq
+	UpgradePkgPlanDetailListResp               = pb.UpgradePkgPlanDetailListResp
+	UpgradePkgPlanDetailVo                     = pb.UpgradePkgPlanDetailVo
+	UpgradePkgPlanListReq                      = pb.UpgradePkgPlanListReq
+	UpgradePkgPlanListResp                     = pb.UpgradePkgPlanListResp
+	UpgradePkgPlanVo                           = pb.UpgradePkgPlanVo
+	UpgradeResPlanDetailListReq                = pb.UpgradeResPlanDetailListReq
+	UpgradeResPlanDetailListResp               = pb.UpgradeResPlanDetailListResp
+	UpgradeResPlanDetailVo                     = pb.UpgradeResPlanDetailVo
+	UpgradeResPlanListReq                      = pb.UpgradeResPlanListReq
+	UpgradeResPlanListResp                     = pb.UpgradeResPlanListResp
+	UpgradeResPlanVo                           = pb.UpgradeResPlanVo
+	UserAppConfigGetReq                        = pb.UserAppConfigGetReq
+	UserAppConfigListReq                       = pb.UserAppConfigListReq
+	UserAppConfigListRes                       = pb.UserAppConfigListRes
+	UserAppConfigVo                            = pb.UserAppConfigVo
+	VpnGroupAddReq                             = pb.VpnGroupAddReq
+	VpnGroupBatchAddReq                        = pb.VpnGroupBatchAddReq
+	VpnGroupBatchAddResp                       = pb.VpnGroupBatchAddResp
+	VpnGroupBatchDelReq                        = pb.VpnGroupBatchDelReq
+	VpnGroupBatchUpdateReq                     = pb.VpnGroupBatchUpdateReq
+	VpnGroupBatchUpdateResp                    = pb.VpnGroupBatchUpdateResp
+	VpnGroupExVo                               = pb.VpnGroupExVo
+	VpnGroupGetReq                             = pb.VpnGroupGetReq
+	VpnGroupListReq                            = pb.VpnGroupListReq
+	VpnGroupListResp                           = pb.VpnGroupListResp
+	VpnGroupTagListReq                         = pb.VpnGroupTagListReq
+	VpnGroupTagListResp                        = pb.VpnGroupTagListResp
+	VpnGroupTagVo                              = pb.VpnGroupTagVo
+	VpnGroupVo                                 = pb.VpnGroupVo
+	VpnLocationBatchAddReq                     = pb.VpnLocationBatchAddReq
+	VpnLocationBatchAddResp                    = pb.VpnLocationBatchAddResp
+	VpnLocationBatchDelReq                     = pb.VpnLocationBatchDelReq
+	VpnLocationBatchUpdateReq                  = pb.VpnLocationBatchUpdateReq
+	VpnLocationBatchUpdateResp                 = pb.VpnLocationBatchUpdateResp
+	VpnLocationExVo                            = pb.VpnLocationExVo
+	VpnLocationGetReq                          = pb.VpnLocationGetReq
+	VpnLocationListReq                         = pb.VpnLocationListReq
+	VpnLocationListResp                        = pb.VpnLocationListResp
+	VpnLocationServerCountReq                  = pb.VpnLocationServerCountReq
+	VpnLocationServerCountResp                 = pb.VpnLocationServerCountResp
+	VpnLocationServerCountVo                   = pb.VpnLocationServerCountVo
+	VpnLocationVo                              = pb.VpnLocationVo
+	VpnProbeTaskListReq                        = pb.VpnProbeTaskListReq
+	VpnProbeTaskListResp                       = pb.VpnProbeTaskListResp
+	VpnProbeTaskVo                             = pb.VpnProbeTaskVo
+	VpnServerAddReq                            = pb.VpnServerAddReq
+	VpnServerBatchAddReq                       = pb.VpnServerBatchAddReq
+	VpnServerBatchAddResp                      = pb.VpnServerBatchAddResp
+	VpnServerBatchDelReq                       = pb.VpnServerBatchDelReq
+	VpnServerBatchUpdateReq                    = pb.VpnServerBatchUpdateReq
+	VpnServerBatchUpdateResp                   = pb.VpnServerBatchUpdateResp
+	VpnServerExListResp                        = pb.VpnServerExListResp
+	VpnServerExVo                              = pb.VpnServerExVo
+	VpnServerListReq                           = pb.VpnServerListReq
+	VpnServerListResp                          = pb.VpnServerListResp
+	VpnServerLocationListReq                   = pb.VpnServerLocationListReq
+	VpnServerLocationListResp                  = pb.VpnServerLocationListResp
+	VpnServerLocationVo                        = pb.VpnServerLocationVo
+	VpnServerVo                                = pb.VpnServerVo
+	VpnTagBatchAddReq                          = pb.VpnTagBatchAddReq
+	VpnTagBatchAddResp                         = pb.VpnTagBatchAddResp
+	VpnTagBatchDelReq                          = pb.VpnTagBatchDelReq
+	VpnTagBatchUpdateReq                       = pb.VpnTagBatchUpdateReq
+	VpnTagBatchUpdateResp                      = pb.VpnTagBatchUpdateResp
+	VpnTagGetReq                               = pb.VpnTagGetReq
+	VpnTagListReq                              = pb.VpnTagListReq
+	VpnTagListResp                             = pb.VpnTagListResp
+	VpnTagVo                                   = pb.VpnTagVo
+
+	GoGameClient interface {
+		// 加速器游戏管理
+		GameAdd(ctx context.Context, in *GameVo, opts ...grpc.CallOption) (*GameVo, error)
+		GameUpdate(ctx context.Context, in *GameVo, opts ...grpc.CallOption) (*Empty, error)
+		GameDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		GameGet(ctx context.Context, in *GameReq, opts ...grpc.CallOption) (*GameVo, error)
+		GameList(ctx context.Context, in *GameListReq, opts ...grpc.CallOption) (*GameListRes, error)
+		GameAll(ctx context.Context, in *Request, opts ...grpc.CallOption) (*GameListRes, error)
+		GameRedisHScanByName(ctx context.Context, in *GameRedisHScanByNameReq, opts ...grpc.CallOption) (*GameRedisHScanByNameResp, error)
+		// 游戏榜单关联关系
+		RelGameRankAdd(ctx context.Context, in *RelGameRankVo, opts ...grpc.CallOption) (*RelGameRankVo, error)
+		RelGameRankUpdate(ctx context.Context, in *RelGameRankVo, opts ...grpc.CallOption) (*Empty, error)
+		RelGameRankDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		RelGameRankGet(ctx context.Context, in *RelGameRankReq, opts ...grpc.CallOption) (*RelGameRankVo, error)
+		RelGameRankList(ctx context.Context, in *RelGameRankListReq, opts ...grpc.CallOption) (*RelGameRankListRes, error)
+		// 游戏地域关联关系
+		RelGameVpnGroupAdd(ctx context.Context, in *RelGameVpnGroupVo, opts ...grpc.CallOption) (*RelGameVpnGroupVo, error)
+		RelGameVpnGroupUpdate(ctx context.Context, in *RelGameVpnGroupVo, opts ...grpc.CallOption) (*Empty, error)
+		RelGameVpnGroupDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		RelGameVpnGroupGet(ctx context.Context, in *RelGameVpnGroupReq, opts ...grpc.CallOption) (*RelGameVpnGroupVo, error)
+		RelGameVpnGroupList(ctx context.Context, in *RelGameVpnGroupListReq, opts ...grpc.CallOption) (*RelGameVpnGroupListRes, error)
+		// 用户提交游戏
+		GameCustomerList(ctx context.Context, in *GameCustomerListReq, opts ...grpc.CallOption) (*GameCustomerListRes, error)
+		GameCustomerAdd(ctx context.Context, in *GameCustomerVo, opts ...grpc.CallOption) (*GameCustomerAddResp, error)
+		GameCustomerDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		GameCategoryAdd(ctx context.Context, in *GameCategoryVo, opts ...grpc.CallOption) (*GameCategoryVo, error)
+		GameCategoryUpdate(ctx context.Context, in *GameCategoryVo, opts ...grpc.CallOption) (*Empty, error)
+		GameCategoryDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		GameCategoryGet(ctx context.Context, in *GameCategoryReq, opts ...grpc.CallOption) (*GameCategoryVo, error)
+		GameCategoryList(ctx context.Context, in *GameCategoryListReq, opts ...grpc.CallOption) (*GameCategoryListRes, error)
+		GameCategoryAll(ctx context.Context, in *Request, opts ...grpc.CallOption) (*GameCategoryListRes, error)
+	}
+
+	defaultGoGameClient struct {
+		cli zrpc.Client
+	}
+)
+
+func NewGoGameClient(cli zrpc.Client) GoGameClient {
+	return &defaultGoGameClient{
+		cli: cli,
+	}
+}
+
+// 加速器游戏管理
+func (m *defaultGoGameClient) GameAdd(ctx context.Context, in *GameVo, opts ...grpc.CallOption) (*GameVo, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) GameUpdate(ctx context.Context, in *GameVo, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) GameDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameDel(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) GameGet(ctx context.Context, in *GameReq, opts ...grpc.CallOption) (*GameVo, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameGet(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) GameList(ctx context.Context, in *GameListReq, opts ...grpc.CallOption) (*GameListRes, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameList(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) GameAll(ctx context.Context, in *Request, opts ...grpc.CallOption) (*GameListRes, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameAll(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) GameRedisHScanByName(ctx context.Context, in *GameRedisHScanByNameReq, opts ...grpc.CallOption) (*GameRedisHScanByNameResp, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameRedisHScanByName(ctx, in, opts...)
+}
+
+// 游戏榜单关联关系
+func (m *defaultGoGameClient) RelGameRankAdd(ctx context.Context, in *RelGameRankVo, opts ...grpc.CallOption) (*RelGameRankVo, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.RelGameRankAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) RelGameRankUpdate(ctx context.Context, in *RelGameRankVo, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.RelGameRankUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) RelGameRankDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.RelGameRankDel(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) RelGameRankGet(ctx context.Context, in *RelGameRankReq, opts ...grpc.CallOption) (*RelGameRankVo, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.RelGameRankGet(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) RelGameRankList(ctx context.Context, in *RelGameRankListReq, opts ...grpc.CallOption) (*RelGameRankListRes, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.RelGameRankList(ctx, in, opts...)
+}
+
+// 游戏地域关联关系
+func (m *defaultGoGameClient) RelGameVpnGroupAdd(ctx context.Context, in *RelGameVpnGroupVo, opts ...grpc.CallOption) (*RelGameVpnGroupVo, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.RelGameVpnGroupAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) RelGameVpnGroupUpdate(ctx context.Context, in *RelGameVpnGroupVo, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.RelGameVpnGroupUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) RelGameVpnGroupDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.RelGameVpnGroupDel(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) RelGameVpnGroupGet(ctx context.Context, in *RelGameVpnGroupReq, opts ...grpc.CallOption) (*RelGameVpnGroupVo, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.RelGameVpnGroupGet(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) RelGameVpnGroupList(ctx context.Context, in *RelGameVpnGroupListReq, opts ...grpc.CallOption) (*RelGameVpnGroupListRes, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.RelGameVpnGroupList(ctx, in, opts...)
+}
+
+// 用户提交游戏
+func (m *defaultGoGameClient) GameCustomerList(ctx context.Context, in *GameCustomerListReq, opts ...grpc.CallOption) (*GameCustomerListRes, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameCustomerList(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) GameCustomerAdd(ctx context.Context, in *GameCustomerVo, opts ...grpc.CallOption) (*GameCustomerAddResp, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameCustomerAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) GameCustomerDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameCustomerDel(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) GameCategoryAdd(ctx context.Context, in *GameCategoryVo, opts ...grpc.CallOption) (*GameCategoryVo, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameCategoryAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) GameCategoryUpdate(ctx context.Context, in *GameCategoryVo, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameCategoryUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) GameCategoryDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameCategoryDel(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) GameCategoryGet(ctx context.Context, in *GameCategoryReq, opts ...grpc.CallOption) (*GameCategoryVo, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameCategoryGet(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) GameCategoryList(ctx context.Context, in *GameCategoryListReq, opts ...grpc.CallOption) (*GameCategoryListRes, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameCategoryList(ctx, in, opts...)
+}
+
+func (m *defaultGoGameClient) GameCategoryAll(ctx context.Context, in *Request, opts ...grpc.CallOption) (*GameCategoryListRes, error) {
+	client := pb.NewGoGameClientClient(m.cli.Conn())
+	return client.GameCategoryAll(ctx, in, opts...)
+}

+ 1049 - 0
pb/client/gopmpclient/go_pmp_client.go

@@ -0,0 +1,1049 @@
+// Code generated by goctl. DO NOT EDIT.
+// goctl 1.8.5
+// Source: gorpc.proto
+
+package gopmpclient
+
+import (
+	"context"
+
+	"git.goio.dev/pb/go-service-pb/pb/pb"
+
+	"github.com/zeromicro/go-zero/zrpc"
+	"google.golang.org/grpc"
+)
+
+type (
+	AccountDeviceListReq                       = pb.AccountDeviceListReq
+	AccountDeviceListResp                      = pb.AccountDeviceListResp
+	AccountDeviceVo                            = pb.AccountDeviceVo
+	AccountListReq                             = pb.AccountListReq
+	AccountListResp                            = pb.AccountListResp
+	AccountVo                                  = pb.AccountVo
+	AdGlobalConfigGetReq                       = pb.AdGlobalConfigGetReq
+	AdGlobalConfigVo                           = pb.AdGlobalConfigVo
+	AdPlanDetailListReq                        = pb.AdPlanDetailListReq
+	AdPlanDetailListResp                       = pb.AdPlanDetailListResp
+	AdPlanDetailVo                             = pb.AdPlanDetailVo
+	AdPlanListReq                              = pb.AdPlanListReq
+	AdPlanListResp                             = pb.AdPlanListResp
+	AdPlanVo                                   = pb.AdPlanVo
+	AnnouncePlanDetailListReq                  = pb.AnnouncePlanDetailListReq
+	AnnouncePlanDetailListResp                 = pb.AnnouncePlanDetailListResp
+	AnnouncePlanDetailVo                       = pb.AnnouncePlanDetailVo
+	AnnouncePlanListReq                        = pb.AnnouncePlanListReq
+	AnnouncePlanListResp                       = pb.AnnouncePlanListResp
+	AnnouncePlanVo                             = pb.AnnouncePlanVo
+	AreaParamListReq                           = pb.AreaParamListReq
+	AreaParamListResp                          = pb.AreaParamListResp
+	AreaParamVo                                = pb.AreaParamVo
+	BaseReq                                    = pb.BaseReq
+	CommonResult                               = pb.CommonResult
+	ConfigGetReq                               = pb.ConfigGetReq
+	DeleteIdResp                               = pb.DeleteIdResp
+	DeployConfigListReq                        = pb.DeployConfigListReq
+	DeployConfigListResp                       = pb.DeployConfigListResp
+	DeployConfigVo                             = pb.DeployConfigVo
+	DeviceListReq                              = pb.DeviceListReq
+	DeviceListRes                              = pb.DeviceListRes
+	DeviceVo                                   = pb.DeviceVo
+	DictGetReq                                 = pb.DictGetReq
+	DictListReq                                = pb.DictListReq
+	DictListResp                               = pb.DictListResp
+	DictVo                                     = pb.DictVo
+	Empty                                      = pb.Empty
+	GameCategoryListReq                        = pb.GameCategoryListReq
+	GameCategoryListRes                        = pb.GameCategoryListRes
+	GameCategoryReq                            = pb.GameCategoryReq
+	GameCategoryVo                             = pb.GameCategoryVo
+	GameCustomerAddResp                        = pb.GameCustomerAddResp
+	GameCustomerListReq                        = pb.GameCustomerListReq
+	GameCustomerListRes                        = pb.GameCustomerListRes
+	GameCustomerVo                             = pb.GameCustomerVo
+	GameListReq                                = pb.GameListReq
+	GameListRes                                = pb.GameListRes
+	GameRedisHScanByNameReq                    = pb.GameRedisHScanByNameReq
+	GameRedisHScanByNameResp                   = pb.GameRedisHScanByNameResp
+	GameReq                                    = pb.GameReq
+	GameVo                                     = pb.GameVo
+	GlobalParamGetReq                          = pb.GlobalParamGetReq
+	GlobalParamListReq                         = pb.GlobalParamListReq
+	GlobalParamListResp                        = pb.GlobalParamListResp
+	GlobalParamVo                              = pb.GlobalParamVo
+	I18NVo                                     = pb.I18NVo
+	Ids                                        = pb.Ids
+	Int64SelectController                      = pb.Int64SelectController
+	IntSelectController                        = pb.IntSelectController
+	JobBatchListReq                            = pb.JobBatchListReq
+	JobBatchListResp                           = pb.JobBatchListResp
+	JobBatchListWithTasksResp                  = pb.JobBatchListWithTasksResp
+	JobBatchVo                                 = pb.JobBatchVo
+	JobBatchWithTasksVo                        = pb.JobBatchWithTasksVo
+	JobTasksListReq                            = pb.JobTasksListReq
+	JobTasksListResp                           = pb.JobTasksListResp
+	JobTasksVo                                 = pb.JobTasksVo
+	MessagePushListReq                         = pb.MessagePushListReq
+	MessagePushListResp                        = pb.MessagePushListResp
+	MessagePushVo                              = pb.MessagePushVo
+	NationalLanguageListReq                    = pb.NationalLanguageListReq
+	NationalLanguageListResp                   = pb.NationalLanguageListResp
+	NationalLanguageVo                         = pb.NationalLanguageVo
+	OperationLogListReq                        = pb.OperationLogListReq
+	OperationLogListResp                       = pb.OperationLogListResp
+	OperationLogVo                             = pb.OperationLogVo
+	Page                                       = pb.Page
+	Page_OrderItem                             = pb.Page_OrderItem
+	ProductActionListReq                       = pb.ProductActionListReq
+	ProductActionListResp                      = pb.ProductActionListResp
+	ProductActionReq                           = pb.ProductActionReq
+	ProductActionVo                            = pb.ProductActionVo
+	ProductListReq                             = pb.ProductListReq
+	ProductListResp                            = pb.ProductListResp
+	ProductParamGetReq                         = pb.ProductParamGetReq
+	ProductParamListReq                        = pb.ProductParamListReq
+	ProductParamListResp                       = pb.ProductParamListResp
+	ProductParamVo                             = pb.ProductParamVo
+	ProductVo                                  = pb.ProductVo
+	RelGameRankListReq                         = pb.RelGameRankListReq
+	RelGameRankListRes                         = pb.RelGameRankListRes
+	RelGameRankReq                             = pb.RelGameRankReq
+	RelGameRankVo                              = pb.RelGameRankVo
+	RelGameVpnGroupListReq                     = pb.RelGameVpnGroupListReq
+	RelGameVpnGroupListRes                     = pb.RelGameVpnGroupListRes
+	RelGameVpnGroupReq                         = pb.RelGameVpnGroupReq
+	RelGameVpnGroupVo                          = pb.RelGameVpnGroupVo
+	Request                                    = pb.Request
+	Response                                   = pb.Response
+	ServiceSetsAddReq                          = pb.ServiceSetsAddReq
+	ServiceSetsDelReq                          = pb.ServiceSetsDelReq
+	ServiceSetsGetReq                          = pb.ServiceSetsGetReq
+	ServiceSetsListReq                         = pb.ServiceSetsListReq
+	ServiceSetsListResp                        = pb.ServiceSetsListResp
+	ServiceSetsUpdateReq                       = pb.ServiceSetsUpdateReq
+	ServiceSetsVo                              = pb.ServiceSetsVo
+	ServiceTypesAddReq                         = pb.ServiceTypesAddReq
+	ServiceTypesDelReq                         = pb.ServiceTypesDelReq
+	ServiceTypesGetReq                         = pb.ServiceTypesGetReq
+	ServiceTypesListReq                        = pb.ServiceTypesListReq
+	ServiceTypesListResp                       = pb.ServiceTypesListResp
+	ServiceTypesUpdateReq                      = pb.ServiceTypesUpdateReq
+	ServiceTypesVo                             = pb.ServiceTypesVo
+	SetTotalStatsReq                           = pb.SetTotalStatsReq
+	ShortDramaCheckNameReq                     = pb.ShortDramaCheckNameReq
+	ShortDramaCheckNameResp                    = pb.ShortDramaCheckNameResp
+	ShortDramaEpisodeBatchAddReq               = pb.ShortDramaEpisodeBatchAddReq
+	ShortDramaEpisodeBatchRefreshUpdateTimeReq = pb.ShortDramaEpisodeBatchRefreshUpdateTimeReq
+	ShortDramaEpisodeCountReq                  = pb.ShortDramaEpisodeCountReq
+	ShortDramaEpisodeCountResp                 = pb.ShortDramaEpisodeCountResp
+	ShortDramaEpisodeCountVo                   = pb.ShortDramaEpisodeCountVo
+	ShortDramaEpisodeGetReq                    = pb.ShortDramaEpisodeGetReq
+	ShortDramaEpisodeListReq                   = pb.ShortDramaEpisodeListReq
+	ShortDramaEpisodeListResp                  = pb.ShortDramaEpisodeListResp
+	ShortDramaEpisodeVo                        = pb.ShortDramaEpisodeVo
+	ShortDramaGetReq                           = pb.ShortDramaGetReq
+	ShortDramaLanguageListReq                  = pb.ShortDramaLanguageListReq
+	ShortDramaLanguageListResp                 = pb.ShortDramaLanguageListResp
+	ShortDramaLanguageVo                       = pb.ShortDramaLanguageVo
+	ShortDramaListReq                          = pb.ShortDramaListReq
+	ShortDramaListResp                         = pb.ShortDramaListResp
+	ShortDramaStatsPlaysTotalListReq           = pb.ShortDramaStatsPlaysTotalListReq
+	ShortDramaStatsPlaysTotalListResp          = pb.ShortDramaStatsPlaysTotalListResp
+	ShortDramaStatsPlaysTotalVo                = pb.ShortDramaStatsPlaysTotalVo
+	ShortDramaUpdateModifierReq                = pb.ShortDramaUpdateModifierReq
+	ShortDramaVo                               = pb.ShortDramaVo
+	StringSelectController                     = pb.StringSelectController
+	SysPermGetReq                              = pb.SysPermGetReq
+	SysPermListReq                             = pb.SysPermListReq
+	SysPermListResp                            = pb.SysPermListResp
+	SysPermRule                                = pb.SysPermRule
+	SysPermVo                                  = pb.SysPermVo
+	SysRoleGetReq                              = pb.SysRoleGetReq
+	SysRoleListReq                             = pb.SysRoleListReq
+	SysRoleListResp                            = pb.SysRoleListResp
+	SysRoleListWithPermsResp                   = pb.SysRoleListWithPermsResp
+	SysRolePermGetReq                          = pb.SysRolePermGetReq
+	SysRolePermListReq                         = pb.SysRolePermListReq
+	SysRolePermListResp                        = pb.SysRolePermListResp
+	SysRolePermVo                              = pb.SysRolePermVo
+	SysRoleVo                                  = pb.SysRoleVo
+	SysRoleWithPermIds                         = pb.SysRoleWithPermIds
+	SysRoleWithPerms                           = pb.SysRoleWithPerms
+	SysUserGetReq                              = pb.SysUserGetReq
+	SysUserListReq                             = pb.SysUserListReq
+	SysUserListResp                            = pb.SysUserListResp
+	SysUserListWithRolesAndPermsResp           = pb.SysUserListWithRolesAndPermsResp
+	SysUserPermGetReq                          = pb.SysUserPermGetReq
+	SysUserPermListReq                         = pb.SysUserPermListReq
+	SysUserPermListResp                        = pb.SysUserPermListResp
+	SysUserPermVo                              = pb.SysUserPermVo
+	SysUserRoleGetReq                          = pb.SysUserRoleGetReq
+	SysUserRoleListReq                         = pb.SysUserRoleListReq
+	SysUserRoleListResp                        = pb.SysUserRoleListResp
+	SysUserRoleVo                              = pb.SysUserRoleVo
+	SysUserVo                                  = pb.SysUserVo
+	SysUserWithRoleIdsAndPermRules             = pb.SysUserWithRoleIdsAndPermRules
+	SysUserWithRolesAndPerms                   = pb.SysUserWithRolesAndPerms
+	TimeRange                                  = pb.TimeRange
+	TipGetReq                                  = pb.TipGetReq
+	TipListReq                                 = pb.TipListReq
+	TipListResp                                = pb.TipListResp
+	TipVo                                      = pb.TipVo
+	TransactionOperation                       = pb.TransactionOperation
+	TransactionReq                             = pb.TransactionReq
+	UpgradePkgPlanDetailListReq                = pb.UpgradePkgPlanDetailListReq
+	UpgradePkgPlanDetailListResp               = pb.UpgradePkgPlanDetailListResp
+	UpgradePkgPlanDetailVo                     = pb.UpgradePkgPlanDetailVo
+	UpgradePkgPlanListReq                      = pb.UpgradePkgPlanListReq
+	UpgradePkgPlanListResp                     = pb.UpgradePkgPlanListResp
+	UpgradePkgPlanVo                           = pb.UpgradePkgPlanVo
+	UpgradeResPlanDetailListReq                = pb.UpgradeResPlanDetailListReq
+	UpgradeResPlanDetailListResp               = pb.UpgradeResPlanDetailListResp
+	UpgradeResPlanDetailVo                     = pb.UpgradeResPlanDetailVo
+	UpgradeResPlanListReq                      = pb.UpgradeResPlanListReq
+	UpgradeResPlanListResp                     = pb.UpgradeResPlanListResp
+	UpgradeResPlanVo                           = pb.UpgradeResPlanVo
+	UserAppConfigGetReq                        = pb.UserAppConfigGetReq
+	UserAppConfigListReq                       = pb.UserAppConfigListReq
+	UserAppConfigListRes                       = pb.UserAppConfigListRes
+	UserAppConfigVo                            = pb.UserAppConfigVo
+	VpnGroupAddReq                             = pb.VpnGroupAddReq
+	VpnGroupBatchAddReq                        = pb.VpnGroupBatchAddReq
+	VpnGroupBatchAddResp                       = pb.VpnGroupBatchAddResp
+	VpnGroupBatchDelReq                        = pb.VpnGroupBatchDelReq
+	VpnGroupBatchUpdateReq                     = pb.VpnGroupBatchUpdateReq
+	VpnGroupBatchUpdateResp                    = pb.VpnGroupBatchUpdateResp
+	VpnGroupExVo                               = pb.VpnGroupExVo
+	VpnGroupGetReq                             = pb.VpnGroupGetReq
+	VpnGroupListReq                            = pb.VpnGroupListReq
+	VpnGroupListResp                           = pb.VpnGroupListResp
+	VpnGroupTagListReq                         = pb.VpnGroupTagListReq
+	VpnGroupTagListResp                        = pb.VpnGroupTagListResp
+	VpnGroupTagVo                              = pb.VpnGroupTagVo
+	VpnGroupVo                                 = pb.VpnGroupVo
+	VpnLocationBatchAddReq                     = pb.VpnLocationBatchAddReq
+	VpnLocationBatchAddResp                    = pb.VpnLocationBatchAddResp
+	VpnLocationBatchDelReq                     = pb.VpnLocationBatchDelReq
+	VpnLocationBatchUpdateReq                  = pb.VpnLocationBatchUpdateReq
+	VpnLocationBatchUpdateResp                 = pb.VpnLocationBatchUpdateResp
+	VpnLocationExVo                            = pb.VpnLocationExVo
+	VpnLocationGetReq                          = pb.VpnLocationGetReq
+	VpnLocationListReq                         = pb.VpnLocationListReq
+	VpnLocationListResp                        = pb.VpnLocationListResp
+	VpnLocationServerCountReq                  = pb.VpnLocationServerCountReq
+	VpnLocationServerCountResp                 = pb.VpnLocationServerCountResp
+	VpnLocationServerCountVo                   = pb.VpnLocationServerCountVo
+	VpnLocationVo                              = pb.VpnLocationVo
+	VpnProbeTaskListReq                        = pb.VpnProbeTaskListReq
+	VpnProbeTaskListResp                       = pb.VpnProbeTaskListResp
+	VpnProbeTaskVo                             = pb.VpnProbeTaskVo
+	VpnServerAddReq                            = pb.VpnServerAddReq
+	VpnServerBatchAddReq                       = pb.VpnServerBatchAddReq
+	VpnServerBatchAddResp                      = pb.VpnServerBatchAddResp
+	VpnServerBatchDelReq                       = pb.VpnServerBatchDelReq
+	VpnServerBatchUpdateReq                    = pb.VpnServerBatchUpdateReq
+	VpnServerBatchUpdateResp                   = pb.VpnServerBatchUpdateResp
+	VpnServerExListResp                        = pb.VpnServerExListResp
+	VpnServerExVo                              = pb.VpnServerExVo
+	VpnServerListReq                           = pb.VpnServerListReq
+	VpnServerListResp                          = pb.VpnServerListResp
+	VpnServerLocationListReq                   = pb.VpnServerLocationListReq
+	VpnServerLocationListResp                  = pb.VpnServerLocationListResp
+	VpnServerLocationVo                        = pb.VpnServerLocationVo
+	VpnServerVo                                = pb.VpnServerVo
+	VpnTagBatchAddReq                          = pb.VpnTagBatchAddReq
+	VpnTagBatchAddResp                         = pb.VpnTagBatchAddResp
+	VpnTagBatchDelReq                          = pb.VpnTagBatchDelReq
+	VpnTagBatchUpdateReq                       = pb.VpnTagBatchUpdateReq
+	VpnTagBatchUpdateResp                      = pb.VpnTagBatchUpdateResp
+	VpnTagGetReq                               = pb.VpnTagGetReq
+	VpnTagListReq                              = pb.VpnTagListReq
+	VpnTagListResp                             = pb.VpnTagListResp
+	VpnTagVo                                   = pb.VpnTagVo
+
+	GoPmpClient interface {
+		Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
+		// GlobalParamVo
+		GlobalParamAdd(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error)
+		GlobalParamUpdate(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error)
+		GlobalParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		GlobalParamGet(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error)
+		GlobalParamGetWithLang(ctx context.Context, in *GlobalParamGetReq, opts ...grpc.CallOption) (*GlobalParamVo, error)
+		GlobalParamList(ctx context.Context, in *GlobalParamListReq, opts ...grpc.CallOption) (*GlobalParamListResp, error)
+		// ProductVo
+		ProductAdd(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error)
+		ProductUpdate(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error)
+		ProductDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		ProductGet(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error)
+		ProductList(ctx context.Context, in *ProductListReq, opts ...grpc.CallOption) (*ProductListResp, error)
+		ProductAll(ctx context.Context, in *Request, opts ...grpc.CallOption) (*ProductListResp, error)
+		// ProductParamVo
+		ProductParamAdd(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error)
+		ProductParamUpdate(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error)
+		ProductParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		ProductParamGet(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error)
+		ProductParamGetWithLang(ctx context.Context, in *ProductParamGetReq, opts ...grpc.CallOption) (*ProductParamVo, error)
+		ProductParamList(ctx context.Context, in *ProductParamListReq, opts ...grpc.CallOption) (*ProductParamListResp, error)
+		// ProductAction 产品行为配置
+		ProductActionAdd(ctx context.Context, in *ProductActionVo, opts ...grpc.CallOption) (*ProductActionVo, error)
+		ProductActionUpdate(ctx context.Context, in *ProductActionVo, opts ...grpc.CallOption) (*ProductActionVo, error)
+		ProductActionDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		ProductActionGet(ctx context.Context, in *ProductActionReq, opts ...grpc.CallOption) (*ProductActionVo, error)
+		ProductActionList(ctx context.Context, in *ProductActionListReq, opts ...grpc.CallOption) (*ProductActionListResp, error)
+		// AreaParamVo
+		AreaParamAdd(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error)
+		AreaParamUpdate(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error)
+		AreaParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		AreaParamGet(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error)
+		AreaParamList(ctx context.Context, in *AreaParamListReq, opts ...grpc.CallOption) (*AreaParamListResp, error)
+		// NationalLanguage
+		NationalLanguageAdd(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error)
+		NationalLanguageUpdate(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error)
+		NationalLanguageDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		NationalLanguageGet(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error)
+		NationalLanguageList(ctx context.Context, in *NationalLanguageListReq, opts ...grpc.CallOption) (*NationalLanguageListResp, error)
+		// Tip
+		TipAdd(ctx context.Context, in *TipVo, opts ...grpc.CallOption) (*TipVo, error)
+		TipUpdate(ctx context.Context, in *TipVo, opts ...grpc.CallOption) (*TipVo, error)
+		TipDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		TipGet(ctx context.Context, in *TipGetReq, opts ...grpc.CallOption) (*TipVo, error)
+		TipList(ctx context.Context, in *TipListReq, opts ...grpc.CallOption) (*TipListResp, error)
+		// Dict
+		DictAdd(ctx context.Context, in *DictVo, opts ...grpc.CallOption) (*DictVo, error)
+		DictUpdate(ctx context.Context, in *DictVo, opts ...grpc.CallOption) (*DictVo, error)
+		DictDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		DictGet(ctx context.Context, in *DictGetReq, opts ...grpc.CallOption) (*DictVo, error)
+		DictList(ctx context.Context, in *DictListReq, opts ...grpc.CallOption) (*DictListResp, error)
+		// UpgradePkgPlan
+		UpgradePkgPlanAdd(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error)
+		UpgradePkgPlanUpdate(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error)
+		UpgradePkgPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		UpgradePkgPlanGet(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error)
+		UpgradePkgPlanList(ctx context.Context, in *UpgradePkgPlanListReq, opts ...grpc.CallOption) (*UpgradePkgPlanListResp, error)
+		// UpgradePkgPlanDetail
+		UpgradePkgPlanDetailAdd(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error)
+		UpgradePkgPlanDetailUpdate(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error)
+		UpgradePkgPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		UpgradePkgPlanDetailGet(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error)
+		UpgradePkgPlanDetailList(ctx context.Context, in *UpgradePkgPlanDetailListReq, opts ...grpc.CallOption) (*UpgradePkgPlanDetailListResp, error)
+		// UpgradeResPlan
+		UpgradeResPlanAdd(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error)
+		UpgradeResPlanUpdate(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error)
+		UpgradeResPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		UpgradeResPlanGet(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error)
+		UpgradeResPlanList(ctx context.Context, in *UpgradeResPlanListReq, opts ...grpc.CallOption) (*UpgradeResPlanListResp, error)
+		// UpgradeResPlanDetail
+		UpgradeResPlanDetailAdd(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error)
+		UpgradeResPlanDetailUpdate(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error)
+		UpgradeResPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		UpgradeResPlanDetailGet(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error)
+		UpgradeResPlanDetailList(ctx context.Context, in *UpgradeResPlanDetailListReq, opts ...grpc.CallOption) (*UpgradeResPlanDetailListResp, error)
+		// AdPlan
+		AdPlanAdd(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error)
+		AdPlanUpdate(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error)
+		AdPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		AdPlanGet(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error)
+		AdPlanList(ctx context.Context, in *AdPlanListReq, opts ...grpc.CallOption) (*AdPlanListResp, error)
+		// AdPlanDetail
+		AdPlanDetailAdd(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error)
+		AdPlanDetailUpdate(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error)
+		AdPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		AdPlanDetailGet(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error)
+		AdPlanDetailList(ctx context.Context, in *AdPlanDetailListReq, opts ...grpc.CallOption) (*AdPlanDetailListResp, error)
+		// AdGlobalConfig
+		AdGlobalConfigGet(ctx context.Context, in *AdGlobalConfigGetReq, opts ...grpc.CallOption) (*AdGlobalConfigVo, error)
+		AdGlobalConfigUpdate(ctx context.Context, in *AdGlobalConfigVo, opts ...grpc.CallOption) (*AdGlobalConfigVo, error)
+		// JobBatch
+		JobBatchAdd(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error)
+		JobBatchAddWithTasks(ctx context.Context, in *JobBatchWithTasksVo, opts ...grpc.CallOption) (*JobBatchWithTasksVo, error)
+		JobBatchUpdate(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error)
+		JobBatchDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		JobBatchGet(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error)
+		JobBatchGetWithTasks(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchWithTasksVo, error)
+		JobBatchList(ctx context.Context, in *JobBatchListReq, opts ...grpc.CallOption) (*JobBatchListResp, error)
+		JobBatchListWithTasks(ctx context.Context, in *JobBatchListReq, opts ...grpc.CallOption) (*JobBatchListWithTasksResp, error)
+		// JobTasks
+		JobTasksAdd(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error)
+		JobTasksUpdate(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error)
+		JobTasksDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		JobTasksGet(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error)
+		JobTasksList(ctx context.Context, in *JobTasksListReq, opts ...grpc.CallOption) (*JobTasksListResp, error)
+		// DeployConfig
+		DeployConfigAdd(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error)
+		DeployConfigUpdate(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error)
+		DeployConfigDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		DeployConfigGet(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error)
+		DeployConfigList(ctx context.Context, in *DeployConfigListReq, opts ...grpc.CallOption) (*DeployConfigListResp, error)
+		// OperationLog
+		OperationLogAdd(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error)
+		OperationLogUpdate(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error)
+		OperationLogGet(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error)
+		OperationLogList(ctx context.Context, in *OperationLogListReq, opts ...grpc.CallOption) (*OperationLogListResp, error)
+		// AnnouncePlan
+		AnnouncePlanAdd(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error)
+		AnnouncePlanUpdate(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error)
+		AnnouncePlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		AnnouncePlanGet(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error)
+		AnnouncePlanList(ctx context.Context, in *AnnouncePlanListReq, opts ...grpc.CallOption) (*AnnouncePlanListResp, error)
+		// AnnouncePlanDetail
+		AnnouncePlanDetailAdd(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error)
+		AnnouncePlanDetailUpdate(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error)
+		AnnouncePlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		AnnouncePlanDetailGet(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error)
+		AnnouncePlanDetailList(ctx context.Context, in *AnnouncePlanDetailListReq, opts ...grpc.CallOption) (*AnnouncePlanDetailListResp, error)
+		// ServiceTypes
+		ServiceTypesAdd(ctx context.Context, in *ServiceTypesAddReq, opts ...grpc.CallOption) (*ServiceTypesVo, error)
+		ServiceTypesUpdate(ctx context.Context, in *ServiceTypesUpdateReq, opts ...grpc.CallOption) (*ServiceTypesVo, error)
+		ServiceTypesDel(ctx context.Context, in *ServiceTypesDelReq, opts ...grpc.CallOption) (*Empty, error)
+		ServiceTypesGet(ctx context.Context, in *ServiceTypesGetReq, opts ...grpc.CallOption) (*ServiceTypesVo, error)
+		ServiceTypesList(ctx context.Context, in *ServiceTypesListReq, opts ...grpc.CallOption) (*ServiceTypesListResp, error)
+		// ServiceSets
+		ServiceSetsAdd(ctx context.Context, in *ServiceSetsAddReq, opts ...grpc.CallOption) (*ServiceSetsVo, error)
+		ServiceSetsUpdate(ctx context.Context, in *ServiceSetsUpdateReq, opts ...grpc.CallOption) (*ServiceSetsVo, error)
+		ServiceSetsDel(ctx context.Context, in *ServiceSetsDelReq, opts ...grpc.CallOption) (*Empty, error)
+		ServiceSetsGet(ctx context.Context, in *ServiceSetsGetReq, opts ...grpc.CallOption) (*ServiceSetsVo, error)
+		ServiceSetsList(ctx context.Context, in *ServiceSetsListReq, opts ...grpc.CallOption) (*ServiceSetsListResp, error)
+		// MessagePush
+		MessagePushAdd(ctx context.Context, in *MessagePushVo, opts ...grpc.CallOption) (*MessagePushVo, error)
+		MessagePushUpdate(ctx context.Context, in *MessagePushVo, opts ...grpc.CallOption) (*MessagePushVo, error)
+		MessagePushList(ctx context.Context, in *MessagePushListReq, opts ...grpc.CallOption) (*MessagePushListResp, error)
+	}
+
+	defaultGoPmpClient struct {
+		cli zrpc.Client
+	}
+)
+
+func NewGoPmpClient(cli zrpc.Client) GoPmpClient {
+	return &defaultGoPmpClient{
+		cli: cli,
+	}
+}
+
+func (m *defaultGoPmpClient) Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.Ping(ctx, in, opts...)
+}
+
+// GlobalParamVo
+func (m *defaultGoPmpClient) GlobalParamAdd(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.GlobalParamAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) GlobalParamUpdate(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.GlobalParamUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) GlobalParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.GlobalParamDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) GlobalParamGet(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.GlobalParamGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) GlobalParamGetWithLang(ctx context.Context, in *GlobalParamGetReq, opts ...grpc.CallOption) (*GlobalParamVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.GlobalParamGetWithLang(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) GlobalParamList(ctx context.Context, in *GlobalParamListReq, opts ...grpc.CallOption) (*GlobalParamListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.GlobalParamList(ctx, in, opts...)
+}
+
+// ProductVo
+func (m *defaultGoPmpClient) ProductAdd(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ProductUpdate(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ProductDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ProductGet(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ProductList(ctx context.Context, in *ProductListReq, opts ...grpc.CallOption) (*ProductListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductList(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ProductAll(ctx context.Context, in *Request, opts ...grpc.CallOption) (*ProductListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductAll(ctx, in, opts...)
+}
+
+// ProductParamVo
+func (m *defaultGoPmpClient) ProductParamAdd(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductParamAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ProductParamUpdate(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductParamUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ProductParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductParamDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ProductParamGet(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductParamGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ProductParamGetWithLang(ctx context.Context, in *ProductParamGetReq, opts ...grpc.CallOption) (*ProductParamVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductParamGetWithLang(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ProductParamList(ctx context.Context, in *ProductParamListReq, opts ...grpc.CallOption) (*ProductParamListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductParamList(ctx, in, opts...)
+}
+
+// ProductAction 产品行为配置
+func (m *defaultGoPmpClient) ProductActionAdd(ctx context.Context, in *ProductActionVo, opts ...grpc.CallOption) (*ProductActionVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductActionAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ProductActionUpdate(ctx context.Context, in *ProductActionVo, opts ...grpc.CallOption) (*ProductActionVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductActionUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ProductActionDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductActionDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ProductActionGet(ctx context.Context, in *ProductActionReq, opts ...grpc.CallOption) (*ProductActionVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductActionGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ProductActionList(ctx context.Context, in *ProductActionListReq, opts ...grpc.CallOption) (*ProductActionListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ProductActionList(ctx, in, opts...)
+}
+
+// AreaParamVo
+func (m *defaultGoPmpClient) AreaParamAdd(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AreaParamAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AreaParamUpdate(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AreaParamUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AreaParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AreaParamDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AreaParamGet(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AreaParamGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AreaParamList(ctx context.Context, in *AreaParamListReq, opts ...grpc.CallOption) (*AreaParamListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AreaParamList(ctx, in, opts...)
+}
+
+// NationalLanguage
+func (m *defaultGoPmpClient) NationalLanguageAdd(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.NationalLanguageAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) NationalLanguageUpdate(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.NationalLanguageUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) NationalLanguageDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.NationalLanguageDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) NationalLanguageGet(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.NationalLanguageGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) NationalLanguageList(ctx context.Context, in *NationalLanguageListReq, opts ...grpc.CallOption) (*NationalLanguageListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.NationalLanguageList(ctx, in, opts...)
+}
+
+// Tip
+func (m *defaultGoPmpClient) TipAdd(ctx context.Context, in *TipVo, opts ...grpc.CallOption) (*TipVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.TipAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) TipUpdate(ctx context.Context, in *TipVo, opts ...grpc.CallOption) (*TipVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.TipUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) TipDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.TipDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) TipGet(ctx context.Context, in *TipGetReq, opts ...grpc.CallOption) (*TipVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.TipGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) TipList(ctx context.Context, in *TipListReq, opts ...grpc.CallOption) (*TipListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.TipList(ctx, in, opts...)
+}
+
+// Dict
+func (m *defaultGoPmpClient) DictAdd(ctx context.Context, in *DictVo, opts ...grpc.CallOption) (*DictVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.DictAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) DictUpdate(ctx context.Context, in *DictVo, opts ...grpc.CallOption) (*DictVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.DictUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) DictDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.DictDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) DictGet(ctx context.Context, in *DictGetReq, opts ...grpc.CallOption) (*DictVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.DictGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) DictList(ctx context.Context, in *DictListReq, opts ...grpc.CallOption) (*DictListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.DictList(ctx, in, opts...)
+}
+
+// UpgradePkgPlan
+func (m *defaultGoPmpClient) UpgradePkgPlanAdd(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradePkgPlanAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradePkgPlanUpdate(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradePkgPlanUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradePkgPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradePkgPlanDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradePkgPlanGet(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradePkgPlanGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradePkgPlanList(ctx context.Context, in *UpgradePkgPlanListReq, opts ...grpc.CallOption) (*UpgradePkgPlanListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradePkgPlanList(ctx, in, opts...)
+}
+
+// UpgradePkgPlanDetail
+func (m *defaultGoPmpClient) UpgradePkgPlanDetailAdd(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradePkgPlanDetailAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradePkgPlanDetailUpdate(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradePkgPlanDetailUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradePkgPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradePkgPlanDetailDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradePkgPlanDetailGet(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradePkgPlanDetailGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradePkgPlanDetailList(ctx context.Context, in *UpgradePkgPlanDetailListReq, opts ...grpc.CallOption) (*UpgradePkgPlanDetailListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradePkgPlanDetailList(ctx, in, opts...)
+}
+
+// UpgradeResPlan
+func (m *defaultGoPmpClient) UpgradeResPlanAdd(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradeResPlanAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradeResPlanUpdate(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradeResPlanUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradeResPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradeResPlanDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradeResPlanGet(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradeResPlanGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradeResPlanList(ctx context.Context, in *UpgradeResPlanListReq, opts ...grpc.CallOption) (*UpgradeResPlanListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradeResPlanList(ctx, in, opts...)
+}
+
+// UpgradeResPlanDetail
+func (m *defaultGoPmpClient) UpgradeResPlanDetailAdd(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradeResPlanDetailAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradeResPlanDetailUpdate(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradeResPlanDetailUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradeResPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradeResPlanDetailDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradeResPlanDetailGet(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradeResPlanDetailGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) UpgradeResPlanDetailList(ctx context.Context, in *UpgradeResPlanDetailListReq, opts ...grpc.CallOption) (*UpgradeResPlanDetailListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.UpgradeResPlanDetailList(ctx, in, opts...)
+}
+
+// AdPlan
+func (m *defaultGoPmpClient) AdPlanAdd(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AdPlanAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AdPlanUpdate(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AdPlanUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AdPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AdPlanDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AdPlanGet(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AdPlanGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AdPlanList(ctx context.Context, in *AdPlanListReq, opts ...grpc.CallOption) (*AdPlanListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AdPlanList(ctx, in, opts...)
+}
+
+// AdPlanDetail
+func (m *defaultGoPmpClient) AdPlanDetailAdd(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AdPlanDetailAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AdPlanDetailUpdate(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AdPlanDetailUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AdPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AdPlanDetailDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AdPlanDetailGet(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AdPlanDetailGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AdPlanDetailList(ctx context.Context, in *AdPlanDetailListReq, opts ...grpc.CallOption) (*AdPlanDetailListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AdPlanDetailList(ctx, in, opts...)
+}
+
+// AdGlobalConfig
+func (m *defaultGoPmpClient) AdGlobalConfigGet(ctx context.Context, in *AdGlobalConfigGetReq, opts ...grpc.CallOption) (*AdGlobalConfigVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AdGlobalConfigGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AdGlobalConfigUpdate(ctx context.Context, in *AdGlobalConfigVo, opts ...grpc.CallOption) (*AdGlobalConfigVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AdGlobalConfigUpdate(ctx, in, opts...)
+}
+
+// JobBatch
+func (m *defaultGoPmpClient) JobBatchAdd(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.JobBatchAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) JobBatchAddWithTasks(ctx context.Context, in *JobBatchWithTasksVo, opts ...grpc.CallOption) (*JobBatchWithTasksVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.JobBatchAddWithTasks(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) JobBatchUpdate(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.JobBatchUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) JobBatchDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.JobBatchDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) JobBatchGet(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.JobBatchGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) JobBatchGetWithTasks(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchWithTasksVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.JobBatchGetWithTasks(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) JobBatchList(ctx context.Context, in *JobBatchListReq, opts ...grpc.CallOption) (*JobBatchListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.JobBatchList(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) JobBatchListWithTasks(ctx context.Context, in *JobBatchListReq, opts ...grpc.CallOption) (*JobBatchListWithTasksResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.JobBatchListWithTasks(ctx, in, opts...)
+}
+
+// JobTasks
+func (m *defaultGoPmpClient) JobTasksAdd(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.JobTasksAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) JobTasksUpdate(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.JobTasksUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) JobTasksDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.JobTasksDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) JobTasksGet(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.JobTasksGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) JobTasksList(ctx context.Context, in *JobTasksListReq, opts ...grpc.CallOption) (*JobTasksListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.JobTasksList(ctx, in, opts...)
+}
+
+// DeployConfig
+func (m *defaultGoPmpClient) DeployConfigAdd(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.DeployConfigAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) DeployConfigUpdate(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.DeployConfigUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) DeployConfigDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.DeployConfigDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) DeployConfigGet(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.DeployConfigGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) DeployConfigList(ctx context.Context, in *DeployConfigListReq, opts ...grpc.CallOption) (*DeployConfigListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.DeployConfigList(ctx, in, opts...)
+}
+
+// OperationLog
+func (m *defaultGoPmpClient) OperationLogAdd(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.OperationLogAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) OperationLogUpdate(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.OperationLogUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) OperationLogGet(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.OperationLogGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) OperationLogList(ctx context.Context, in *OperationLogListReq, opts ...grpc.CallOption) (*OperationLogListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.OperationLogList(ctx, in, opts...)
+}
+
+// AnnouncePlan
+func (m *defaultGoPmpClient) AnnouncePlanAdd(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AnnouncePlanAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AnnouncePlanUpdate(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AnnouncePlanUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AnnouncePlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AnnouncePlanDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AnnouncePlanGet(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AnnouncePlanGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AnnouncePlanList(ctx context.Context, in *AnnouncePlanListReq, opts ...grpc.CallOption) (*AnnouncePlanListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AnnouncePlanList(ctx, in, opts...)
+}
+
+// AnnouncePlanDetail
+func (m *defaultGoPmpClient) AnnouncePlanDetailAdd(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AnnouncePlanDetailAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AnnouncePlanDetailUpdate(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AnnouncePlanDetailUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AnnouncePlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AnnouncePlanDetailDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AnnouncePlanDetailGet(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AnnouncePlanDetailGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) AnnouncePlanDetailList(ctx context.Context, in *AnnouncePlanDetailListReq, opts ...grpc.CallOption) (*AnnouncePlanDetailListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.AnnouncePlanDetailList(ctx, in, opts...)
+}
+
+// ServiceTypes
+func (m *defaultGoPmpClient) ServiceTypesAdd(ctx context.Context, in *ServiceTypesAddReq, opts ...grpc.CallOption) (*ServiceTypesVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ServiceTypesAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ServiceTypesUpdate(ctx context.Context, in *ServiceTypesUpdateReq, opts ...grpc.CallOption) (*ServiceTypesVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ServiceTypesUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ServiceTypesDel(ctx context.Context, in *ServiceTypesDelReq, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ServiceTypesDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ServiceTypesGet(ctx context.Context, in *ServiceTypesGetReq, opts ...grpc.CallOption) (*ServiceTypesVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ServiceTypesGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ServiceTypesList(ctx context.Context, in *ServiceTypesListReq, opts ...grpc.CallOption) (*ServiceTypesListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ServiceTypesList(ctx, in, opts...)
+}
+
+// ServiceSets
+func (m *defaultGoPmpClient) ServiceSetsAdd(ctx context.Context, in *ServiceSetsAddReq, opts ...grpc.CallOption) (*ServiceSetsVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ServiceSetsAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ServiceSetsUpdate(ctx context.Context, in *ServiceSetsUpdateReq, opts ...grpc.CallOption) (*ServiceSetsVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ServiceSetsUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ServiceSetsDel(ctx context.Context, in *ServiceSetsDelReq, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ServiceSetsDel(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ServiceSetsGet(ctx context.Context, in *ServiceSetsGetReq, opts ...grpc.CallOption) (*ServiceSetsVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ServiceSetsGet(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) ServiceSetsList(ctx context.Context, in *ServiceSetsListReq, opts ...grpc.CallOption) (*ServiceSetsListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.ServiceSetsList(ctx, in, opts...)
+}
+
+// MessagePush
+func (m *defaultGoPmpClient) MessagePushAdd(ctx context.Context, in *MessagePushVo, opts ...grpc.CallOption) (*MessagePushVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.MessagePushAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) MessagePushUpdate(ctx context.Context, in *MessagePushVo, opts ...grpc.CallOption) (*MessagePushVo, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.MessagePushUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoPmpClient) MessagePushList(ctx context.Context, in *MessagePushListReq, opts ...grpc.CallOption) (*MessagePushListResp, error) {
+	client := pb.NewGoPmpClientClient(m.cli.Conn())
+	return client.MessagePushList(ctx, in, opts...)
+}

+ 395 - 0
pb/client/goshortdramaclient/go_short_drama_client.go

@@ -0,0 +1,395 @@
+// Code generated by goctl. DO NOT EDIT.
+// goctl 1.8.5
+// Source: gorpc.proto
+
+package goshortdramaclient
+
+import (
+	"context"
+
+	"git.goio.dev/pb/go-service-pb/pb/pb"
+
+	"github.com/zeromicro/go-zero/zrpc"
+	"google.golang.org/grpc"
+)
+
+type (
+	AccountDeviceListReq                       = pb.AccountDeviceListReq
+	AccountDeviceListResp                      = pb.AccountDeviceListResp
+	AccountDeviceVo                            = pb.AccountDeviceVo
+	AccountListReq                             = pb.AccountListReq
+	AccountListResp                            = pb.AccountListResp
+	AccountVo                                  = pb.AccountVo
+	AdGlobalConfigGetReq                       = pb.AdGlobalConfigGetReq
+	AdGlobalConfigVo                           = pb.AdGlobalConfigVo
+	AdPlanDetailListReq                        = pb.AdPlanDetailListReq
+	AdPlanDetailListResp                       = pb.AdPlanDetailListResp
+	AdPlanDetailVo                             = pb.AdPlanDetailVo
+	AdPlanListReq                              = pb.AdPlanListReq
+	AdPlanListResp                             = pb.AdPlanListResp
+	AdPlanVo                                   = pb.AdPlanVo
+	AnnouncePlanDetailListReq                  = pb.AnnouncePlanDetailListReq
+	AnnouncePlanDetailListResp                 = pb.AnnouncePlanDetailListResp
+	AnnouncePlanDetailVo                       = pb.AnnouncePlanDetailVo
+	AnnouncePlanListReq                        = pb.AnnouncePlanListReq
+	AnnouncePlanListResp                       = pb.AnnouncePlanListResp
+	AnnouncePlanVo                             = pb.AnnouncePlanVo
+	AreaParamListReq                           = pb.AreaParamListReq
+	AreaParamListResp                          = pb.AreaParamListResp
+	AreaParamVo                                = pb.AreaParamVo
+	BaseReq                                    = pb.BaseReq
+	CommonResult                               = pb.CommonResult
+	ConfigGetReq                               = pb.ConfigGetReq
+	DeleteIdResp                               = pb.DeleteIdResp
+	DeployConfigListReq                        = pb.DeployConfigListReq
+	DeployConfigListResp                       = pb.DeployConfigListResp
+	DeployConfigVo                             = pb.DeployConfigVo
+	DeviceListReq                              = pb.DeviceListReq
+	DeviceListRes                              = pb.DeviceListRes
+	DeviceVo                                   = pb.DeviceVo
+	DictGetReq                                 = pb.DictGetReq
+	DictListReq                                = pb.DictListReq
+	DictListResp                               = pb.DictListResp
+	DictVo                                     = pb.DictVo
+	Empty                                      = pb.Empty
+	GameCategoryListReq                        = pb.GameCategoryListReq
+	GameCategoryListRes                        = pb.GameCategoryListRes
+	GameCategoryReq                            = pb.GameCategoryReq
+	GameCategoryVo                             = pb.GameCategoryVo
+	GameCustomerAddResp                        = pb.GameCustomerAddResp
+	GameCustomerListReq                        = pb.GameCustomerListReq
+	GameCustomerListRes                        = pb.GameCustomerListRes
+	GameCustomerVo                             = pb.GameCustomerVo
+	GameListReq                                = pb.GameListReq
+	GameListRes                                = pb.GameListRes
+	GameRedisHScanByNameReq                    = pb.GameRedisHScanByNameReq
+	GameRedisHScanByNameResp                   = pb.GameRedisHScanByNameResp
+	GameReq                                    = pb.GameReq
+	GameVo                                     = pb.GameVo
+	GlobalParamGetReq                          = pb.GlobalParamGetReq
+	GlobalParamListReq                         = pb.GlobalParamListReq
+	GlobalParamListResp                        = pb.GlobalParamListResp
+	GlobalParamVo                              = pb.GlobalParamVo
+	I18NVo                                     = pb.I18NVo
+	Ids                                        = pb.Ids
+	Int64SelectController                      = pb.Int64SelectController
+	IntSelectController                        = pb.IntSelectController
+	JobBatchListReq                            = pb.JobBatchListReq
+	JobBatchListResp                           = pb.JobBatchListResp
+	JobBatchListWithTasksResp                  = pb.JobBatchListWithTasksResp
+	JobBatchVo                                 = pb.JobBatchVo
+	JobBatchWithTasksVo                        = pb.JobBatchWithTasksVo
+	JobTasksListReq                            = pb.JobTasksListReq
+	JobTasksListResp                           = pb.JobTasksListResp
+	JobTasksVo                                 = pb.JobTasksVo
+	MessagePushListReq                         = pb.MessagePushListReq
+	MessagePushListResp                        = pb.MessagePushListResp
+	MessagePushVo                              = pb.MessagePushVo
+	NationalLanguageListReq                    = pb.NationalLanguageListReq
+	NationalLanguageListResp                   = pb.NationalLanguageListResp
+	NationalLanguageVo                         = pb.NationalLanguageVo
+	OperationLogListReq                        = pb.OperationLogListReq
+	OperationLogListResp                       = pb.OperationLogListResp
+	OperationLogVo                             = pb.OperationLogVo
+	Page                                       = pb.Page
+	Page_OrderItem                             = pb.Page_OrderItem
+	ProductActionListReq                       = pb.ProductActionListReq
+	ProductActionListResp                      = pb.ProductActionListResp
+	ProductActionReq                           = pb.ProductActionReq
+	ProductActionVo                            = pb.ProductActionVo
+	ProductListReq                             = pb.ProductListReq
+	ProductListResp                            = pb.ProductListResp
+	ProductParamGetReq                         = pb.ProductParamGetReq
+	ProductParamListReq                        = pb.ProductParamListReq
+	ProductParamListResp                       = pb.ProductParamListResp
+	ProductParamVo                             = pb.ProductParamVo
+	ProductVo                                  = pb.ProductVo
+	RelGameRankListReq                         = pb.RelGameRankListReq
+	RelGameRankListRes                         = pb.RelGameRankListRes
+	RelGameRankReq                             = pb.RelGameRankReq
+	RelGameRankVo                              = pb.RelGameRankVo
+	RelGameVpnGroupListReq                     = pb.RelGameVpnGroupListReq
+	RelGameVpnGroupListRes                     = pb.RelGameVpnGroupListRes
+	RelGameVpnGroupReq                         = pb.RelGameVpnGroupReq
+	RelGameVpnGroupVo                          = pb.RelGameVpnGroupVo
+	Request                                    = pb.Request
+	Response                                   = pb.Response
+	ServiceSetsAddReq                          = pb.ServiceSetsAddReq
+	ServiceSetsDelReq                          = pb.ServiceSetsDelReq
+	ServiceSetsGetReq                          = pb.ServiceSetsGetReq
+	ServiceSetsListReq                         = pb.ServiceSetsListReq
+	ServiceSetsListResp                        = pb.ServiceSetsListResp
+	ServiceSetsUpdateReq                       = pb.ServiceSetsUpdateReq
+	ServiceSetsVo                              = pb.ServiceSetsVo
+	ServiceTypesAddReq                         = pb.ServiceTypesAddReq
+	ServiceTypesDelReq                         = pb.ServiceTypesDelReq
+	ServiceTypesGetReq                         = pb.ServiceTypesGetReq
+	ServiceTypesListReq                        = pb.ServiceTypesListReq
+	ServiceTypesListResp                       = pb.ServiceTypesListResp
+	ServiceTypesUpdateReq                      = pb.ServiceTypesUpdateReq
+	ServiceTypesVo                             = pb.ServiceTypesVo
+	SetTotalStatsReq                           = pb.SetTotalStatsReq
+	ShortDramaCheckNameReq                     = pb.ShortDramaCheckNameReq
+	ShortDramaCheckNameResp                    = pb.ShortDramaCheckNameResp
+	ShortDramaEpisodeBatchAddReq               = pb.ShortDramaEpisodeBatchAddReq
+	ShortDramaEpisodeBatchRefreshUpdateTimeReq = pb.ShortDramaEpisodeBatchRefreshUpdateTimeReq
+	ShortDramaEpisodeCountReq                  = pb.ShortDramaEpisodeCountReq
+	ShortDramaEpisodeCountResp                 = pb.ShortDramaEpisodeCountResp
+	ShortDramaEpisodeCountVo                   = pb.ShortDramaEpisodeCountVo
+	ShortDramaEpisodeGetReq                    = pb.ShortDramaEpisodeGetReq
+	ShortDramaEpisodeListReq                   = pb.ShortDramaEpisodeListReq
+	ShortDramaEpisodeListResp                  = pb.ShortDramaEpisodeListResp
+	ShortDramaEpisodeVo                        = pb.ShortDramaEpisodeVo
+	ShortDramaGetReq                           = pb.ShortDramaGetReq
+	ShortDramaLanguageListReq                  = pb.ShortDramaLanguageListReq
+	ShortDramaLanguageListResp                 = pb.ShortDramaLanguageListResp
+	ShortDramaLanguageVo                       = pb.ShortDramaLanguageVo
+	ShortDramaListReq                          = pb.ShortDramaListReq
+	ShortDramaListResp                         = pb.ShortDramaListResp
+	ShortDramaStatsPlaysTotalListReq           = pb.ShortDramaStatsPlaysTotalListReq
+	ShortDramaStatsPlaysTotalListResp          = pb.ShortDramaStatsPlaysTotalListResp
+	ShortDramaStatsPlaysTotalVo                = pb.ShortDramaStatsPlaysTotalVo
+	ShortDramaUpdateModifierReq                = pb.ShortDramaUpdateModifierReq
+	ShortDramaVo                               = pb.ShortDramaVo
+	StringSelectController                     = pb.StringSelectController
+	SysPermGetReq                              = pb.SysPermGetReq
+	SysPermListReq                             = pb.SysPermListReq
+	SysPermListResp                            = pb.SysPermListResp
+	SysPermRule                                = pb.SysPermRule
+	SysPermVo                                  = pb.SysPermVo
+	SysRoleGetReq                              = pb.SysRoleGetReq
+	SysRoleListReq                             = pb.SysRoleListReq
+	SysRoleListResp                            = pb.SysRoleListResp
+	SysRoleListWithPermsResp                   = pb.SysRoleListWithPermsResp
+	SysRolePermGetReq                          = pb.SysRolePermGetReq
+	SysRolePermListReq                         = pb.SysRolePermListReq
+	SysRolePermListResp                        = pb.SysRolePermListResp
+	SysRolePermVo                              = pb.SysRolePermVo
+	SysRoleVo                                  = pb.SysRoleVo
+	SysRoleWithPermIds                         = pb.SysRoleWithPermIds
+	SysRoleWithPerms                           = pb.SysRoleWithPerms
+	SysUserGetReq                              = pb.SysUserGetReq
+	SysUserListReq                             = pb.SysUserListReq
+	SysUserListResp                            = pb.SysUserListResp
+	SysUserListWithRolesAndPermsResp           = pb.SysUserListWithRolesAndPermsResp
+	SysUserPermGetReq                          = pb.SysUserPermGetReq
+	SysUserPermListReq                         = pb.SysUserPermListReq
+	SysUserPermListResp                        = pb.SysUserPermListResp
+	SysUserPermVo                              = pb.SysUserPermVo
+	SysUserRoleGetReq                          = pb.SysUserRoleGetReq
+	SysUserRoleListReq                         = pb.SysUserRoleListReq
+	SysUserRoleListResp                        = pb.SysUserRoleListResp
+	SysUserRoleVo                              = pb.SysUserRoleVo
+	SysUserVo                                  = pb.SysUserVo
+	SysUserWithRoleIdsAndPermRules             = pb.SysUserWithRoleIdsAndPermRules
+	SysUserWithRolesAndPerms                   = pb.SysUserWithRolesAndPerms
+	TimeRange                                  = pb.TimeRange
+	TipGetReq                                  = pb.TipGetReq
+	TipListReq                                 = pb.TipListReq
+	TipListResp                                = pb.TipListResp
+	TipVo                                      = pb.TipVo
+	TransactionOperation                       = pb.TransactionOperation
+	TransactionReq                             = pb.TransactionReq
+	UpgradePkgPlanDetailListReq                = pb.UpgradePkgPlanDetailListReq
+	UpgradePkgPlanDetailListResp               = pb.UpgradePkgPlanDetailListResp
+	UpgradePkgPlanDetailVo                     = pb.UpgradePkgPlanDetailVo
+	UpgradePkgPlanListReq                      = pb.UpgradePkgPlanListReq
+	UpgradePkgPlanListResp                     = pb.UpgradePkgPlanListResp
+	UpgradePkgPlanVo                           = pb.UpgradePkgPlanVo
+	UpgradeResPlanDetailListReq                = pb.UpgradeResPlanDetailListReq
+	UpgradeResPlanDetailListResp               = pb.UpgradeResPlanDetailListResp
+	UpgradeResPlanDetailVo                     = pb.UpgradeResPlanDetailVo
+	UpgradeResPlanListReq                      = pb.UpgradeResPlanListReq
+	UpgradeResPlanListResp                     = pb.UpgradeResPlanListResp
+	UpgradeResPlanVo                           = pb.UpgradeResPlanVo
+	UserAppConfigGetReq                        = pb.UserAppConfigGetReq
+	UserAppConfigListReq                       = pb.UserAppConfigListReq
+	UserAppConfigListRes                       = pb.UserAppConfigListRes
+	UserAppConfigVo                            = pb.UserAppConfigVo
+	VpnGroupAddReq                             = pb.VpnGroupAddReq
+	VpnGroupBatchAddReq                        = pb.VpnGroupBatchAddReq
+	VpnGroupBatchAddResp                       = pb.VpnGroupBatchAddResp
+	VpnGroupBatchDelReq                        = pb.VpnGroupBatchDelReq
+	VpnGroupBatchUpdateReq                     = pb.VpnGroupBatchUpdateReq
+	VpnGroupBatchUpdateResp                    = pb.VpnGroupBatchUpdateResp
+	VpnGroupExVo                               = pb.VpnGroupExVo
+	VpnGroupGetReq                             = pb.VpnGroupGetReq
+	VpnGroupListReq                            = pb.VpnGroupListReq
+	VpnGroupListResp                           = pb.VpnGroupListResp
+	VpnGroupTagListReq                         = pb.VpnGroupTagListReq
+	VpnGroupTagListResp                        = pb.VpnGroupTagListResp
+	VpnGroupTagVo                              = pb.VpnGroupTagVo
+	VpnGroupVo                                 = pb.VpnGroupVo
+	VpnLocationBatchAddReq                     = pb.VpnLocationBatchAddReq
+	VpnLocationBatchAddResp                    = pb.VpnLocationBatchAddResp
+	VpnLocationBatchDelReq                     = pb.VpnLocationBatchDelReq
+	VpnLocationBatchUpdateReq                  = pb.VpnLocationBatchUpdateReq
+	VpnLocationBatchUpdateResp                 = pb.VpnLocationBatchUpdateResp
+	VpnLocationExVo                            = pb.VpnLocationExVo
+	VpnLocationGetReq                          = pb.VpnLocationGetReq
+	VpnLocationListReq                         = pb.VpnLocationListReq
+	VpnLocationListResp                        = pb.VpnLocationListResp
+	VpnLocationServerCountReq                  = pb.VpnLocationServerCountReq
+	VpnLocationServerCountResp                 = pb.VpnLocationServerCountResp
+	VpnLocationServerCountVo                   = pb.VpnLocationServerCountVo
+	VpnLocationVo                              = pb.VpnLocationVo
+	VpnProbeTaskListReq                        = pb.VpnProbeTaskListReq
+	VpnProbeTaskListResp                       = pb.VpnProbeTaskListResp
+	VpnProbeTaskVo                             = pb.VpnProbeTaskVo
+	VpnServerAddReq                            = pb.VpnServerAddReq
+	VpnServerBatchAddReq                       = pb.VpnServerBatchAddReq
+	VpnServerBatchAddResp                      = pb.VpnServerBatchAddResp
+	VpnServerBatchDelReq                       = pb.VpnServerBatchDelReq
+	VpnServerBatchUpdateReq                    = pb.VpnServerBatchUpdateReq
+	VpnServerBatchUpdateResp                   = pb.VpnServerBatchUpdateResp
+	VpnServerExListResp                        = pb.VpnServerExListResp
+	VpnServerExVo                              = pb.VpnServerExVo
+	VpnServerListReq                           = pb.VpnServerListReq
+	VpnServerListResp                          = pb.VpnServerListResp
+	VpnServerLocationListReq                   = pb.VpnServerLocationListReq
+	VpnServerLocationListResp                  = pb.VpnServerLocationListResp
+	VpnServerLocationVo                        = pb.VpnServerLocationVo
+	VpnServerVo                                = pb.VpnServerVo
+	VpnTagBatchAddReq                          = pb.VpnTagBatchAddReq
+	VpnTagBatchAddResp                         = pb.VpnTagBatchAddResp
+	VpnTagBatchDelReq                          = pb.VpnTagBatchDelReq
+	VpnTagBatchUpdateReq                       = pb.VpnTagBatchUpdateReq
+	VpnTagBatchUpdateResp                      = pb.VpnTagBatchUpdateResp
+	VpnTagGetReq                               = pb.VpnTagGetReq
+	VpnTagListReq                              = pb.VpnTagListReq
+	VpnTagListResp                             = pb.VpnTagListResp
+	VpnTagVo                                   = pb.VpnTagVo
+
+	GoShortDramaClient interface {
+		// ShortDrama
+		ShortDramaAdd(ctx context.Context, in *ShortDramaVo, opts ...grpc.CallOption) (*ShortDramaVo, error)
+		ShortDramaUpdate(ctx context.Context, in *ShortDramaVo, opts ...grpc.CallOption) (*Empty, error)
+		ShortDramaDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		ShortDramaGet(ctx context.Context, in *ShortDramaGetReq, opts ...grpc.CallOption) (*ShortDramaVo, error)
+		ShortDramaList(ctx context.Context, in *ShortDramaListReq, opts ...grpc.CallOption) (*ShortDramaListResp, error)
+		ShortDramaUpdateModifier(ctx context.Context, in *ShortDramaUpdateModifierReq, opts ...grpc.CallOption) (*Empty, error)
+		// ShortDramaLanguage
+		ShortDramaLanguageList(ctx context.Context, in *ShortDramaLanguageListReq, opts ...grpc.CallOption) (*ShortDramaLanguageListResp, error)
+		// ShortDramaEpisode
+		ShortDramaEpisodeAdd(ctx context.Context, in *ShortDramaEpisodeVo, opts ...grpc.CallOption) (*ShortDramaEpisodeVo, error)
+		ShortDramaEpisodeBatchAdd(ctx context.Context, in *ShortDramaEpisodeBatchAddReq, opts ...grpc.CallOption) (*Empty, error)
+		ShortDramaEpisodeUpdate(ctx context.Context, in *ShortDramaEpisodeVo, opts ...grpc.CallOption) (*Empty, error)
+		ShortDramaEpisodeDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		ShortDramaEpisodeGet(ctx context.Context, in *ShortDramaEpisodeGetReq, opts ...grpc.CallOption) (*ShortDramaEpisodeVo, error)
+		ShortDramaEpisodeList(ctx context.Context, in *ShortDramaEpisodeListReq, opts ...grpc.CallOption) (*ShortDramaEpisodeListResp, error)
+		ShortDramaEpisodeBatchRefreshUpdateTime(ctx context.Context, in *ShortDramaEpisodeBatchRefreshUpdateTimeReq, opts ...grpc.CallOption) (*Empty, error)
+		// ShortDramaEpisodeCount
+		ShortDramaEpisodeCount(ctx context.Context, in *ShortDramaEpisodeCountReq, opts ...grpc.CallOption) (*ShortDramaEpisodeCountResp, error)
+		ShortDramaCheckName(ctx context.Context, in *ShortDramaCheckNameReq, opts ...grpc.CallOption) (*ShortDramaCheckNameResp, error)
+		// ShortDramaStats
+		SetTotalStats(ctx context.Context, in *SetTotalStatsReq, opts ...grpc.CallOption) (*Empty, error)
+		// ShortDramaStatsPlaysTotal
+		ShortDramaStatsPlaysTotalList(ctx context.Context, in *ShortDramaStatsPlaysTotalListReq, opts ...grpc.CallOption) (*ShortDramaStatsPlaysTotalListResp, error)
+	}
+
+	defaultGoShortDramaClient struct {
+		cli zrpc.Client
+	}
+)
+
+func NewGoShortDramaClient(cli zrpc.Client) GoShortDramaClient {
+	return &defaultGoShortDramaClient{
+		cli: cli,
+	}
+}
+
+// ShortDrama
+func (m *defaultGoShortDramaClient) ShortDramaAdd(ctx context.Context, in *ShortDramaVo, opts ...grpc.CallOption) (*ShortDramaVo, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoShortDramaClient) ShortDramaUpdate(ctx context.Context, in *ShortDramaVo, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoShortDramaClient) ShortDramaDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaDel(ctx, in, opts...)
+}
+
+func (m *defaultGoShortDramaClient) ShortDramaGet(ctx context.Context, in *ShortDramaGetReq, opts ...grpc.CallOption) (*ShortDramaVo, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaGet(ctx, in, opts...)
+}
+
+func (m *defaultGoShortDramaClient) ShortDramaList(ctx context.Context, in *ShortDramaListReq, opts ...grpc.CallOption) (*ShortDramaListResp, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaList(ctx, in, opts...)
+}
+
+func (m *defaultGoShortDramaClient) ShortDramaUpdateModifier(ctx context.Context, in *ShortDramaUpdateModifierReq, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaUpdateModifier(ctx, in, opts...)
+}
+
+// ShortDramaLanguage
+func (m *defaultGoShortDramaClient) ShortDramaLanguageList(ctx context.Context, in *ShortDramaLanguageListReq, opts ...grpc.CallOption) (*ShortDramaLanguageListResp, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaLanguageList(ctx, in, opts...)
+}
+
+// ShortDramaEpisode
+func (m *defaultGoShortDramaClient) ShortDramaEpisodeAdd(ctx context.Context, in *ShortDramaEpisodeVo, opts ...grpc.CallOption) (*ShortDramaEpisodeVo, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaEpisodeAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoShortDramaClient) ShortDramaEpisodeBatchAdd(ctx context.Context, in *ShortDramaEpisodeBatchAddReq, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaEpisodeBatchAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoShortDramaClient) ShortDramaEpisodeUpdate(ctx context.Context, in *ShortDramaEpisodeVo, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaEpisodeUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoShortDramaClient) ShortDramaEpisodeDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaEpisodeDel(ctx, in, opts...)
+}
+
+func (m *defaultGoShortDramaClient) ShortDramaEpisodeGet(ctx context.Context, in *ShortDramaEpisodeGetReq, opts ...grpc.CallOption) (*ShortDramaEpisodeVo, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaEpisodeGet(ctx, in, opts...)
+}
+
+func (m *defaultGoShortDramaClient) ShortDramaEpisodeList(ctx context.Context, in *ShortDramaEpisodeListReq, opts ...grpc.CallOption) (*ShortDramaEpisodeListResp, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaEpisodeList(ctx, in, opts...)
+}
+
+func (m *defaultGoShortDramaClient) ShortDramaEpisodeBatchRefreshUpdateTime(ctx context.Context, in *ShortDramaEpisodeBatchRefreshUpdateTimeReq, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaEpisodeBatchRefreshUpdateTime(ctx, in, opts...)
+}
+
+// ShortDramaEpisodeCount
+func (m *defaultGoShortDramaClient) ShortDramaEpisodeCount(ctx context.Context, in *ShortDramaEpisodeCountReq, opts ...grpc.CallOption) (*ShortDramaEpisodeCountResp, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaEpisodeCount(ctx, in, opts...)
+}
+
+func (m *defaultGoShortDramaClient) ShortDramaCheckName(ctx context.Context, in *ShortDramaCheckNameReq, opts ...grpc.CallOption) (*ShortDramaCheckNameResp, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaCheckName(ctx, in, opts...)
+}
+
+// ShortDramaStats
+func (m *defaultGoShortDramaClient) SetTotalStats(ctx context.Context, in *SetTotalStatsReq, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.SetTotalStats(ctx, in, opts...)
+}
+
+// ShortDramaStatsPlaysTotal
+func (m *defaultGoShortDramaClient) ShortDramaStatsPlaysTotalList(ctx context.Context, in *ShortDramaStatsPlaysTotalListReq, opts ...grpc.CallOption) (*ShortDramaStatsPlaysTotalListResp, error) {
+	client := pb.NewGoShortDramaClientClient(m.cli.Conn())
+	return client.ShortDramaStatsPlaysTotalList(ctx, in, opts...)
+}

+ 521 - 0
pb/client/gosysclient/go_sys_client.go

@@ -0,0 +1,521 @@
+// Code generated by goctl. DO NOT EDIT.
+// goctl 1.8.5
+// Source: gorpc.proto
+
+package gosysclient
+
+import (
+	"context"
+
+	"git.goio.dev/pb/go-service-pb/pb/pb"
+
+	"github.com/zeromicro/go-zero/zrpc"
+	"google.golang.org/grpc"
+)
+
+type (
+	AccountDeviceListReq                       = pb.AccountDeviceListReq
+	AccountDeviceListResp                      = pb.AccountDeviceListResp
+	AccountDeviceVo                            = pb.AccountDeviceVo
+	AccountListReq                             = pb.AccountListReq
+	AccountListResp                            = pb.AccountListResp
+	AccountVo                                  = pb.AccountVo
+	AdGlobalConfigGetReq                       = pb.AdGlobalConfigGetReq
+	AdGlobalConfigVo                           = pb.AdGlobalConfigVo
+	AdPlanDetailListReq                        = pb.AdPlanDetailListReq
+	AdPlanDetailListResp                       = pb.AdPlanDetailListResp
+	AdPlanDetailVo                             = pb.AdPlanDetailVo
+	AdPlanListReq                              = pb.AdPlanListReq
+	AdPlanListResp                             = pb.AdPlanListResp
+	AdPlanVo                                   = pb.AdPlanVo
+	AnnouncePlanDetailListReq                  = pb.AnnouncePlanDetailListReq
+	AnnouncePlanDetailListResp                 = pb.AnnouncePlanDetailListResp
+	AnnouncePlanDetailVo                       = pb.AnnouncePlanDetailVo
+	AnnouncePlanListReq                        = pb.AnnouncePlanListReq
+	AnnouncePlanListResp                       = pb.AnnouncePlanListResp
+	AnnouncePlanVo                             = pb.AnnouncePlanVo
+	AreaParamListReq                           = pb.AreaParamListReq
+	AreaParamListResp                          = pb.AreaParamListResp
+	AreaParamVo                                = pb.AreaParamVo
+	BaseReq                                    = pb.BaseReq
+	CommonResult                               = pb.CommonResult
+	ConfigGetReq                               = pb.ConfigGetReq
+	DeleteIdResp                               = pb.DeleteIdResp
+	DeployConfigListReq                        = pb.DeployConfigListReq
+	DeployConfigListResp                       = pb.DeployConfigListResp
+	DeployConfigVo                             = pb.DeployConfigVo
+	DeviceListReq                              = pb.DeviceListReq
+	DeviceListRes                              = pb.DeviceListRes
+	DeviceVo                                   = pb.DeviceVo
+	DictGetReq                                 = pb.DictGetReq
+	DictListReq                                = pb.DictListReq
+	DictListResp                               = pb.DictListResp
+	DictVo                                     = pb.DictVo
+	Empty                                      = pb.Empty
+	GameCategoryListReq                        = pb.GameCategoryListReq
+	GameCategoryListRes                        = pb.GameCategoryListRes
+	GameCategoryReq                            = pb.GameCategoryReq
+	GameCategoryVo                             = pb.GameCategoryVo
+	GameCustomerAddResp                        = pb.GameCustomerAddResp
+	GameCustomerListReq                        = pb.GameCustomerListReq
+	GameCustomerListRes                        = pb.GameCustomerListRes
+	GameCustomerVo                             = pb.GameCustomerVo
+	GameListReq                                = pb.GameListReq
+	GameListRes                                = pb.GameListRes
+	GameRedisHScanByNameReq                    = pb.GameRedisHScanByNameReq
+	GameRedisHScanByNameResp                   = pb.GameRedisHScanByNameResp
+	GameReq                                    = pb.GameReq
+	GameVo                                     = pb.GameVo
+	GlobalParamGetReq                          = pb.GlobalParamGetReq
+	GlobalParamListReq                         = pb.GlobalParamListReq
+	GlobalParamListResp                        = pb.GlobalParamListResp
+	GlobalParamVo                              = pb.GlobalParamVo
+	I18NVo                                     = pb.I18NVo
+	Ids                                        = pb.Ids
+	Int64SelectController                      = pb.Int64SelectController
+	IntSelectController                        = pb.IntSelectController
+	JobBatchListReq                            = pb.JobBatchListReq
+	JobBatchListResp                           = pb.JobBatchListResp
+	JobBatchListWithTasksResp                  = pb.JobBatchListWithTasksResp
+	JobBatchVo                                 = pb.JobBatchVo
+	JobBatchWithTasksVo                        = pb.JobBatchWithTasksVo
+	JobTasksListReq                            = pb.JobTasksListReq
+	JobTasksListResp                           = pb.JobTasksListResp
+	JobTasksVo                                 = pb.JobTasksVo
+	MessagePushListReq                         = pb.MessagePushListReq
+	MessagePushListResp                        = pb.MessagePushListResp
+	MessagePushVo                              = pb.MessagePushVo
+	NationalLanguageListReq                    = pb.NationalLanguageListReq
+	NationalLanguageListResp                   = pb.NationalLanguageListResp
+	NationalLanguageVo                         = pb.NationalLanguageVo
+	OperationLogListReq                        = pb.OperationLogListReq
+	OperationLogListResp                       = pb.OperationLogListResp
+	OperationLogVo                             = pb.OperationLogVo
+	Page                                       = pb.Page
+	Page_OrderItem                             = pb.Page_OrderItem
+	ProductActionListReq                       = pb.ProductActionListReq
+	ProductActionListResp                      = pb.ProductActionListResp
+	ProductActionReq                           = pb.ProductActionReq
+	ProductActionVo                            = pb.ProductActionVo
+	ProductListReq                             = pb.ProductListReq
+	ProductListResp                            = pb.ProductListResp
+	ProductParamGetReq                         = pb.ProductParamGetReq
+	ProductParamListReq                        = pb.ProductParamListReq
+	ProductParamListResp                       = pb.ProductParamListResp
+	ProductParamVo                             = pb.ProductParamVo
+	ProductVo                                  = pb.ProductVo
+	RelGameRankListReq                         = pb.RelGameRankListReq
+	RelGameRankListRes                         = pb.RelGameRankListRes
+	RelGameRankReq                             = pb.RelGameRankReq
+	RelGameRankVo                              = pb.RelGameRankVo
+	RelGameVpnGroupListReq                     = pb.RelGameVpnGroupListReq
+	RelGameVpnGroupListRes                     = pb.RelGameVpnGroupListRes
+	RelGameVpnGroupReq                         = pb.RelGameVpnGroupReq
+	RelGameVpnGroupVo                          = pb.RelGameVpnGroupVo
+	Request                                    = pb.Request
+	Response                                   = pb.Response
+	ServiceSetsAddReq                          = pb.ServiceSetsAddReq
+	ServiceSetsDelReq                          = pb.ServiceSetsDelReq
+	ServiceSetsGetReq                          = pb.ServiceSetsGetReq
+	ServiceSetsListReq                         = pb.ServiceSetsListReq
+	ServiceSetsListResp                        = pb.ServiceSetsListResp
+	ServiceSetsUpdateReq                       = pb.ServiceSetsUpdateReq
+	ServiceSetsVo                              = pb.ServiceSetsVo
+	ServiceTypesAddReq                         = pb.ServiceTypesAddReq
+	ServiceTypesDelReq                         = pb.ServiceTypesDelReq
+	ServiceTypesGetReq                         = pb.ServiceTypesGetReq
+	ServiceTypesListReq                        = pb.ServiceTypesListReq
+	ServiceTypesListResp                       = pb.ServiceTypesListResp
+	ServiceTypesUpdateReq                      = pb.ServiceTypesUpdateReq
+	ServiceTypesVo                             = pb.ServiceTypesVo
+	SetTotalStatsReq                           = pb.SetTotalStatsReq
+	ShortDramaCheckNameReq                     = pb.ShortDramaCheckNameReq
+	ShortDramaCheckNameResp                    = pb.ShortDramaCheckNameResp
+	ShortDramaEpisodeBatchAddReq               = pb.ShortDramaEpisodeBatchAddReq
+	ShortDramaEpisodeBatchRefreshUpdateTimeReq = pb.ShortDramaEpisodeBatchRefreshUpdateTimeReq
+	ShortDramaEpisodeCountReq                  = pb.ShortDramaEpisodeCountReq
+	ShortDramaEpisodeCountResp                 = pb.ShortDramaEpisodeCountResp
+	ShortDramaEpisodeCountVo                   = pb.ShortDramaEpisodeCountVo
+	ShortDramaEpisodeGetReq                    = pb.ShortDramaEpisodeGetReq
+	ShortDramaEpisodeListReq                   = pb.ShortDramaEpisodeListReq
+	ShortDramaEpisodeListResp                  = pb.ShortDramaEpisodeListResp
+	ShortDramaEpisodeVo                        = pb.ShortDramaEpisodeVo
+	ShortDramaGetReq                           = pb.ShortDramaGetReq
+	ShortDramaLanguageListReq                  = pb.ShortDramaLanguageListReq
+	ShortDramaLanguageListResp                 = pb.ShortDramaLanguageListResp
+	ShortDramaLanguageVo                       = pb.ShortDramaLanguageVo
+	ShortDramaListReq                          = pb.ShortDramaListReq
+	ShortDramaListResp                         = pb.ShortDramaListResp
+	ShortDramaStatsPlaysTotalListReq           = pb.ShortDramaStatsPlaysTotalListReq
+	ShortDramaStatsPlaysTotalListResp          = pb.ShortDramaStatsPlaysTotalListResp
+	ShortDramaStatsPlaysTotalVo                = pb.ShortDramaStatsPlaysTotalVo
+	ShortDramaUpdateModifierReq                = pb.ShortDramaUpdateModifierReq
+	ShortDramaVo                               = pb.ShortDramaVo
+	StringSelectController                     = pb.StringSelectController
+	SysPermGetReq                              = pb.SysPermGetReq
+	SysPermListReq                             = pb.SysPermListReq
+	SysPermListResp                            = pb.SysPermListResp
+	SysPermRule                                = pb.SysPermRule
+	SysPermVo                                  = pb.SysPermVo
+	SysRoleGetReq                              = pb.SysRoleGetReq
+	SysRoleListReq                             = pb.SysRoleListReq
+	SysRoleListResp                            = pb.SysRoleListResp
+	SysRoleListWithPermsResp                   = pb.SysRoleListWithPermsResp
+	SysRolePermGetReq                          = pb.SysRolePermGetReq
+	SysRolePermListReq                         = pb.SysRolePermListReq
+	SysRolePermListResp                        = pb.SysRolePermListResp
+	SysRolePermVo                              = pb.SysRolePermVo
+	SysRoleVo                                  = pb.SysRoleVo
+	SysRoleWithPermIds                         = pb.SysRoleWithPermIds
+	SysRoleWithPerms                           = pb.SysRoleWithPerms
+	SysUserGetReq                              = pb.SysUserGetReq
+	SysUserListReq                             = pb.SysUserListReq
+	SysUserListResp                            = pb.SysUserListResp
+	SysUserListWithRolesAndPermsResp           = pb.SysUserListWithRolesAndPermsResp
+	SysUserPermGetReq                          = pb.SysUserPermGetReq
+	SysUserPermListReq                         = pb.SysUserPermListReq
+	SysUserPermListResp                        = pb.SysUserPermListResp
+	SysUserPermVo                              = pb.SysUserPermVo
+	SysUserRoleGetReq                          = pb.SysUserRoleGetReq
+	SysUserRoleListReq                         = pb.SysUserRoleListReq
+	SysUserRoleListResp                        = pb.SysUserRoleListResp
+	SysUserRoleVo                              = pb.SysUserRoleVo
+	SysUserVo                                  = pb.SysUserVo
+	SysUserWithRoleIdsAndPermRules             = pb.SysUserWithRoleIdsAndPermRules
+	SysUserWithRolesAndPerms                   = pb.SysUserWithRolesAndPerms
+	TimeRange                                  = pb.TimeRange
+	TipGetReq                                  = pb.TipGetReq
+	TipListReq                                 = pb.TipListReq
+	TipListResp                                = pb.TipListResp
+	TipVo                                      = pb.TipVo
+	TransactionOperation                       = pb.TransactionOperation
+	TransactionReq                             = pb.TransactionReq
+	UpgradePkgPlanDetailListReq                = pb.UpgradePkgPlanDetailListReq
+	UpgradePkgPlanDetailListResp               = pb.UpgradePkgPlanDetailListResp
+	UpgradePkgPlanDetailVo                     = pb.UpgradePkgPlanDetailVo
+	UpgradePkgPlanListReq                      = pb.UpgradePkgPlanListReq
+	UpgradePkgPlanListResp                     = pb.UpgradePkgPlanListResp
+	UpgradePkgPlanVo                           = pb.UpgradePkgPlanVo
+	UpgradeResPlanDetailListReq                = pb.UpgradeResPlanDetailListReq
+	UpgradeResPlanDetailListResp               = pb.UpgradeResPlanDetailListResp
+	UpgradeResPlanDetailVo                     = pb.UpgradeResPlanDetailVo
+	UpgradeResPlanListReq                      = pb.UpgradeResPlanListReq
+	UpgradeResPlanListResp                     = pb.UpgradeResPlanListResp
+	UpgradeResPlanVo                           = pb.UpgradeResPlanVo
+	UserAppConfigGetReq                        = pb.UserAppConfigGetReq
+	UserAppConfigListReq                       = pb.UserAppConfigListReq
+	UserAppConfigListRes                       = pb.UserAppConfigListRes
+	UserAppConfigVo                            = pb.UserAppConfigVo
+	VpnGroupAddReq                             = pb.VpnGroupAddReq
+	VpnGroupBatchAddReq                        = pb.VpnGroupBatchAddReq
+	VpnGroupBatchAddResp                       = pb.VpnGroupBatchAddResp
+	VpnGroupBatchDelReq                        = pb.VpnGroupBatchDelReq
+	VpnGroupBatchUpdateReq                     = pb.VpnGroupBatchUpdateReq
+	VpnGroupBatchUpdateResp                    = pb.VpnGroupBatchUpdateResp
+	VpnGroupExVo                               = pb.VpnGroupExVo
+	VpnGroupGetReq                             = pb.VpnGroupGetReq
+	VpnGroupListReq                            = pb.VpnGroupListReq
+	VpnGroupListResp                           = pb.VpnGroupListResp
+	VpnGroupTagListReq                         = pb.VpnGroupTagListReq
+	VpnGroupTagListResp                        = pb.VpnGroupTagListResp
+	VpnGroupTagVo                              = pb.VpnGroupTagVo
+	VpnGroupVo                                 = pb.VpnGroupVo
+	VpnLocationBatchAddReq                     = pb.VpnLocationBatchAddReq
+	VpnLocationBatchAddResp                    = pb.VpnLocationBatchAddResp
+	VpnLocationBatchDelReq                     = pb.VpnLocationBatchDelReq
+	VpnLocationBatchUpdateReq                  = pb.VpnLocationBatchUpdateReq
+	VpnLocationBatchUpdateResp                 = pb.VpnLocationBatchUpdateResp
+	VpnLocationExVo                            = pb.VpnLocationExVo
+	VpnLocationGetReq                          = pb.VpnLocationGetReq
+	VpnLocationListReq                         = pb.VpnLocationListReq
+	VpnLocationListResp                        = pb.VpnLocationListResp
+	VpnLocationServerCountReq                  = pb.VpnLocationServerCountReq
+	VpnLocationServerCountResp                 = pb.VpnLocationServerCountResp
+	VpnLocationServerCountVo                   = pb.VpnLocationServerCountVo
+	VpnLocationVo                              = pb.VpnLocationVo
+	VpnProbeTaskListReq                        = pb.VpnProbeTaskListReq
+	VpnProbeTaskListResp                       = pb.VpnProbeTaskListResp
+	VpnProbeTaskVo                             = pb.VpnProbeTaskVo
+	VpnServerAddReq                            = pb.VpnServerAddReq
+	VpnServerBatchAddReq                       = pb.VpnServerBatchAddReq
+	VpnServerBatchAddResp                      = pb.VpnServerBatchAddResp
+	VpnServerBatchDelReq                       = pb.VpnServerBatchDelReq
+	VpnServerBatchUpdateReq                    = pb.VpnServerBatchUpdateReq
+	VpnServerBatchUpdateResp                   = pb.VpnServerBatchUpdateResp
+	VpnServerExListResp                        = pb.VpnServerExListResp
+	VpnServerExVo                              = pb.VpnServerExVo
+	VpnServerListReq                           = pb.VpnServerListReq
+	VpnServerListResp                          = pb.VpnServerListResp
+	VpnServerLocationListReq                   = pb.VpnServerLocationListReq
+	VpnServerLocationListResp                  = pb.VpnServerLocationListResp
+	VpnServerLocationVo                        = pb.VpnServerLocationVo
+	VpnServerVo                                = pb.VpnServerVo
+	VpnTagBatchAddReq                          = pb.VpnTagBatchAddReq
+	VpnTagBatchAddResp                         = pb.VpnTagBatchAddResp
+	VpnTagBatchDelReq                          = pb.VpnTagBatchDelReq
+	VpnTagBatchUpdateReq                       = pb.VpnTagBatchUpdateReq
+	VpnTagBatchUpdateResp                      = pb.VpnTagBatchUpdateResp
+	VpnTagGetReq                               = pb.VpnTagGetReq
+	VpnTagListReq                              = pb.VpnTagListReq
+	VpnTagListResp                             = pb.VpnTagListResp
+	VpnTagVo                                   = pb.VpnTagVo
+
+	GoSysClient interface {
+		Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
+		// 用户管理
+		SysUserAdd(ctx context.Context, in *SysUserVo, opts ...grpc.CallOption) (*SysUserVo, error)
+		SysUserUpdate(ctx context.Context, in *SysUserVo, opts ...grpc.CallOption) (*SysUserVo, error)
+		SysUserDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		SysUserGet(ctx context.Context, in *SysUserGetReq, opts ...grpc.CallOption) (*SysUserVo, error)
+		SysUserList(ctx context.Context, in *SysUserListReq, opts ...grpc.CallOption) (*SysUserListResp, error)
+		SysUserAddWithRolesAndPerms(ctx context.Context, in *SysUserWithRoleIdsAndPermRules, opts ...grpc.CallOption) (*SysUserWithRolesAndPerms, error)
+		SysUserUpdateWithRolesAndPerms(ctx context.Context, in *SysUserWithRoleIdsAndPermRules, opts ...grpc.CallOption) (*SysUserWithRolesAndPerms, error)
+		SysUserGetWithRolesAndPerms(ctx context.Context, in *SysUserGetReq, opts ...grpc.CallOption) (*SysUserWithRolesAndPerms, error)
+		SysUserListWithRolesAndPerms(ctx context.Context, in *SysUserListReq, opts ...grpc.CallOption) (*SysUserListWithRolesAndPermsResp, error)
+		// 角色管理
+		SysRoleAdd(ctx context.Context, in *SysRoleVo, opts ...grpc.CallOption) (*SysRoleVo, error)
+		SysRoleUpdate(ctx context.Context, in *SysRoleVo, opts ...grpc.CallOption) (*SysRoleVo, error)
+		SysRoleDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		SysRoleGet(ctx context.Context, in *SysRoleGetReq, opts ...grpc.CallOption) (*SysRoleVo, error)
+		SysRoleList(ctx context.Context, in *SysRoleListReq, opts ...grpc.CallOption) (*SysRoleListResp, error)
+		SysRoleAddWithPerms(ctx context.Context, in *SysRoleWithPermIds, opts ...grpc.CallOption) (*SysRoleWithPerms, error)
+		SysRoleUpdateWithPerms(ctx context.Context, in *SysRoleWithPermIds, opts ...grpc.CallOption) (*SysRoleWithPerms, error)
+		SysRoleGetWithPerms(ctx context.Context, in *SysRoleGetReq, opts ...grpc.CallOption) (*SysRoleWithPerms, error)
+		SysRoleListWithPerms(ctx context.Context, in *SysRoleListReq, opts ...grpc.CallOption) (*SysRoleListWithPermsResp, error)
+		// 权限管理
+		SysPermAdd(ctx context.Context, in *SysPermVo, opts ...grpc.CallOption) (*SysPermVo, error)
+		SysPermUpdate(ctx context.Context, in *SysPermVo, opts ...grpc.CallOption) (*SysPermVo, error)
+		SysPermDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		SysPermGet(ctx context.Context, in *SysPermGetReq, opts ...grpc.CallOption) (*SysPermVo, error)
+		SysPermList(ctx context.Context, in *SysPermListReq, opts ...grpc.CallOption) (*SysPermListResp, error)
+		// 用户角色管理
+		SysUserRoleAdd(ctx context.Context, in *SysUserRoleVo, opts ...grpc.CallOption) (*SysUserRoleVo, error)
+		SysUserRoleUpdate(ctx context.Context, in *SysUserRoleVo, opts ...grpc.CallOption) (*SysUserRoleVo, error)
+		SysUserRoleDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		SysUserRoleGet(ctx context.Context, in *SysUserRoleGetReq, opts ...grpc.CallOption) (*SysUserRoleVo, error)
+		SysUserRoleList(ctx context.Context, in *SysUserRoleListReq, opts ...grpc.CallOption) (*SysUserRoleListResp, error)
+		// 角色权限管理
+		SysRolePermAdd(ctx context.Context, in *SysRolePermVo, opts ...grpc.CallOption) (*SysRolePermVo, error)
+		SysRolePermUpdate(ctx context.Context, in *SysRolePermVo, opts ...grpc.CallOption) (*SysRolePermVo, error)
+		SysRolePermDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		SysRolePermGet(ctx context.Context, in *SysRolePermGetReq, opts ...grpc.CallOption) (*SysRolePermVo, error)
+		SysRolePermList(ctx context.Context, in *SysRolePermListReq, opts ...grpc.CallOption) (*SysRolePermListResp, error)
+		// 用户权限管理
+		SysUserPermAdd(ctx context.Context, in *SysUserPermVo, opts ...grpc.CallOption) (*SysUserPermVo, error)
+		SysUserPermUpdate(ctx context.Context, in *SysUserPermVo, opts ...grpc.CallOption) (*SysUserPermVo, error)
+		SysUserPermDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		SysUserPermGet(ctx context.Context, in *SysUserPermGetReq, opts ...grpc.CallOption) (*SysUserPermVo, error)
+		SysUserPermList(ctx context.Context, in *SysUserPermListReq, opts ...grpc.CallOption) (*SysUserPermListResp, error)
+	}
+
+	defaultGoSysClient struct {
+		cli zrpc.Client
+	}
+)
+
+func NewGoSysClient(cli zrpc.Client) GoSysClient {
+	return &defaultGoSysClient{
+		cli: cli,
+	}
+}
+
+func (m *defaultGoSysClient) Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.Ping(ctx, in, opts...)
+}
+
+// 用户管理
+func (m *defaultGoSysClient) SysUserAdd(ctx context.Context, in *SysUserVo, opts ...grpc.CallOption) (*SysUserVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserUpdate(ctx context.Context, in *SysUserVo, opts ...grpc.CallOption) (*SysUserVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserDelete(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserGet(ctx context.Context, in *SysUserGetReq, opts ...grpc.CallOption) (*SysUserVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserGet(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserList(ctx context.Context, in *SysUserListReq, opts ...grpc.CallOption) (*SysUserListResp, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserList(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserAddWithRolesAndPerms(ctx context.Context, in *SysUserWithRoleIdsAndPermRules, opts ...grpc.CallOption) (*SysUserWithRolesAndPerms, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserAddWithRolesAndPerms(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserUpdateWithRolesAndPerms(ctx context.Context, in *SysUserWithRoleIdsAndPermRules, opts ...grpc.CallOption) (*SysUserWithRolesAndPerms, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserUpdateWithRolesAndPerms(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserGetWithRolesAndPerms(ctx context.Context, in *SysUserGetReq, opts ...grpc.CallOption) (*SysUserWithRolesAndPerms, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserGetWithRolesAndPerms(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserListWithRolesAndPerms(ctx context.Context, in *SysUserListReq, opts ...grpc.CallOption) (*SysUserListWithRolesAndPermsResp, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserListWithRolesAndPerms(ctx, in, opts...)
+}
+
+// 角色管理
+func (m *defaultGoSysClient) SysRoleAdd(ctx context.Context, in *SysRoleVo, opts ...grpc.CallOption) (*SysRoleVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysRoleAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysRoleUpdate(ctx context.Context, in *SysRoleVo, opts ...grpc.CallOption) (*SysRoleVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysRoleUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysRoleDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysRoleDelete(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysRoleGet(ctx context.Context, in *SysRoleGetReq, opts ...grpc.CallOption) (*SysRoleVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysRoleGet(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysRoleList(ctx context.Context, in *SysRoleListReq, opts ...grpc.CallOption) (*SysRoleListResp, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysRoleList(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysRoleAddWithPerms(ctx context.Context, in *SysRoleWithPermIds, opts ...grpc.CallOption) (*SysRoleWithPerms, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysRoleAddWithPerms(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysRoleUpdateWithPerms(ctx context.Context, in *SysRoleWithPermIds, opts ...grpc.CallOption) (*SysRoleWithPerms, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysRoleUpdateWithPerms(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysRoleGetWithPerms(ctx context.Context, in *SysRoleGetReq, opts ...grpc.CallOption) (*SysRoleWithPerms, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysRoleGetWithPerms(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysRoleListWithPerms(ctx context.Context, in *SysRoleListReq, opts ...grpc.CallOption) (*SysRoleListWithPermsResp, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysRoleListWithPerms(ctx, in, opts...)
+}
+
+// 权限管理
+func (m *defaultGoSysClient) SysPermAdd(ctx context.Context, in *SysPermVo, opts ...grpc.CallOption) (*SysPermVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysPermAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysPermUpdate(ctx context.Context, in *SysPermVo, opts ...grpc.CallOption) (*SysPermVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysPermUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysPermDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysPermDelete(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysPermGet(ctx context.Context, in *SysPermGetReq, opts ...grpc.CallOption) (*SysPermVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysPermGet(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysPermList(ctx context.Context, in *SysPermListReq, opts ...grpc.CallOption) (*SysPermListResp, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysPermList(ctx, in, opts...)
+}
+
+// 用户角色管理
+func (m *defaultGoSysClient) SysUserRoleAdd(ctx context.Context, in *SysUserRoleVo, opts ...grpc.CallOption) (*SysUserRoleVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserRoleAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserRoleUpdate(ctx context.Context, in *SysUserRoleVo, opts ...grpc.CallOption) (*SysUserRoleVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserRoleUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserRoleDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserRoleDelete(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserRoleGet(ctx context.Context, in *SysUserRoleGetReq, opts ...grpc.CallOption) (*SysUserRoleVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserRoleGet(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserRoleList(ctx context.Context, in *SysUserRoleListReq, opts ...grpc.CallOption) (*SysUserRoleListResp, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserRoleList(ctx, in, opts...)
+}
+
+// 角色权限管理
+func (m *defaultGoSysClient) SysRolePermAdd(ctx context.Context, in *SysRolePermVo, opts ...grpc.CallOption) (*SysRolePermVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysRolePermAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysRolePermUpdate(ctx context.Context, in *SysRolePermVo, opts ...grpc.CallOption) (*SysRolePermVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysRolePermUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysRolePermDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysRolePermDelete(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysRolePermGet(ctx context.Context, in *SysRolePermGetReq, opts ...grpc.CallOption) (*SysRolePermVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysRolePermGet(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysRolePermList(ctx context.Context, in *SysRolePermListReq, opts ...grpc.CallOption) (*SysRolePermListResp, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysRolePermList(ctx, in, opts...)
+}
+
+// 用户权限管理
+func (m *defaultGoSysClient) SysUserPermAdd(ctx context.Context, in *SysUserPermVo, opts ...grpc.CallOption) (*SysUserPermVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserPermAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserPermUpdate(ctx context.Context, in *SysUserPermVo, opts ...grpc.CallOption) (*SysUserPermVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserPermUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserPermDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserPermDelete(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserPermGet(ctx context.Context, in *SysUserPermGetReq, opts ...grpc.CallOption) (*SysUserPermVo, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserPermGet(ctx, in, opts...)
+}
+
+func (m *defaultGoSysClient) SysUserPermList(ctx context.Context, in *SysUserPermListReq, opts ...grpc.CallOption) (*SysUserPermListResp, error) {
+	client := pb.NewGoSysClientClient(m.cli.Conn())
+	return client.SysUserPermList(ctx, in, opts...)
+}

+ 409 - 0
pb/client/gouserclient/go_user_client.go

@@ -0,0 +1,409 @@
+// Code generated by goctl. DO NOT EDIT.
+// goctl 1.8.5
+// Source: gorpc.proto
+
+package gouserclient
+
+import (
+	"context"
+
+	"git.goio.dev/pb/go-service-pb/pb/pb"
+
+	"github.com/zeromicro/go-zero/zrpc"
+	"google.golang.org/grpc"
+)
+
+type (
+	AccountDeviceListReq                       = pb.AccountDeviceListReq
+	AccountDeviceListResp                      = pb.AccountDeviceListResp
+	AccountDeviceVo                            = pb.AccountDeviceVo
+	AccountListReq                             = pb.AccountListReq
+	AccountListResp                            = pb.AccountListResp
+	AccountVo                                  = pb.AccountVo
+	AdGlobalConfigGetReq                       = pb.AdGlobalConfigGetReq
+	AdGlobalConfigVo                           = pb.AdGlobalConfigVo
+	AdPlanDetailListReq                        = pb.AdPlanDetailListReq
+	AdPlanDetailListResp                       = pb.AdPlanDetailListResp
+	AdPlanDetailVo                             = pb.AdPlanDetailVo
+	AdPlanListReq                              = pb.AdPlanListReq
+	AdPlanListResp                             = pb.AdPlanListResp
+	AdPlanVo                                   = pb.AdPlanVo
+	AnnouncePlanDetailListReq                  = pb.AnnouncePlanDetailListReq
+	AnnouncePlanDetailListResp                 = pb.AnnouncePlanDetailListResp
+	AnnouncePlanDetailVo                       = pb.AnnouncePlanDetailVo
+	AnnouncePlanListReq                        = pb.AnnouncePlanListReq
+	AnnouncePlanListResp                       = pb.AnnouncePlanListResp
+	AnnouncePlanVo                             = pb.AnnouncePlanVo
+	AreaParamListReq                           = pb.AreaParamListReq
+	AreaParamListResp                          = pb.AreaParamListResp
+	AreaParamVo                                = pb.AreaParamVo
+	BaseReq                                    = pb.BaseReq
+	CommonResult                               = pb.CommonResult
+	ConfigGetReq                               = pb.ConfigGetReq
+	DeleteIdResp                               = pb.DeleteIdResp
+	DeployConfigListReq                        = pb.DeployConfigListReq
+	DeployConfigListResp                       = pb.DeployConfigListResp
+	DeployConfigVo                             = pb.DeployConfigVo
+	DeviceListReq                              = pb.DeviceListReq
+	DeviceListRes                              = pb.DeviceListRes
+	DeviceVo                                   = pb.DeviceVo
+	DictGetReq                                 = pb.DictGetReq
+	DictListReq                                = pb.DictListReq
+	DictListResp                               = pb.DictListResp
+	DictVo                                     = pb.DictVo
+	Empty                                      = pb.Empty
+	GameCategoryListReq                        = pb.GameCategoryListReq
+	GameCategoryListRes                        = pb.GameCategoryListRes
+	GameCategoryReq                            = pb.GameCategoryReq
+	GameCategoryVo                             = pb.GameCategoryVo
+	GameCustomerAddResp                        = pb.GameCustomerAddResp
+	GameCustomerListReq                        = pb.GameCustomerListReq
+	GameCustomerListRes                        = pb.GameCustomerListRes
+	GameCustomerVo                             = pb.GameCustomerVo
+	GameListReq                                = pb.GameListReq
+	GameListRes                                = pb.GameListRes
+	GameRedisHScanByNameReq                    = pb.GameRedisHScanByNameReq
+	GameRedisHScanByNameResp                   = pb.GameRedisHScanByNameResp
+	GameReq                                    = pb.GameReq
+	GameVo                                     = pb.GameVo
+	GlobalParamGetReq                          = pb.GlobalParamGetReq
+	GlobalParamListReq                         = pb.GlobalParamListReq
+	GlobalParamListResp                        = pb.GlobalParamListResp
+	GlobalParamVo                              = pb.GlobalParamVo
+	I18NVo                                     = pb.I18NVo
+	Ids                                        = pb.Ids
+	Int64SelectController                      = pb.Int64SelectController
+	IntSelectController                        = pb.IntSelectController
+	JobBatchListReq                            = pb.JobBatchListReq
+	JobBatchListResp                           = pb.JobBatchListResp
+	JobBatchListWithTasksResp                  = pb.JobBatchListWithTasksResp
+	JobBatchVo                                 = pb.JobBatchVo
+	JobBatchWithTasksVo                        = pb.JobBatchWithTasksVo
+	JobTasksListReq                            = pb.JobTasksListReq
+	JobTasksListResp                           = pb.JobTasksListResp
+	JobTasksVo                                 = pb.JobTasksVo
+	MessagePushListReq                         = pb.MessagePushListReq
+	MessagePushListResp                        = pb.MessagePushListResp
+	MessagePushVo                              = pb.MessagePushVo
+	NationalLanguageListReq                    = pb.NationalLanguageListReq
+	NationalLanguageListResp                   = pb.NationalLanguageListResp
+	NationalLanguageVo                         = pb.NationalLanguageVo
+	OperationLogListReq                        = pb.OperationLogListReq
+	OperationLogListResp                       = pb.OperationLogListResp
+	OperationLogVo                             = pb.OperationLogVo
+	Page                                       = pb.Page
+	Page_OrderItem                             = pb.Page_OrderItem
+	ProductActionListReq                       = pb.ProductActionListReq
+	ProductActionListResp                      = pb.ProductActionListResp
+	ProductActionReq                           = pb.ProductActionReq
+	ProductActionVo                            = pb.ProductActionVo
+	ProductListReq                             = pb.ProductListReq
+	ProductListResp                            = pb.ProductListResp
+	ProductParamGetReq                         = pb.ProductParamGetReq
+	ProductParamListReq                        = pb.ProductParamListReq
+	ProductParamListResp                       = pb.ProductParamListResp
+	ProductParamVo                             = pb.ProductParamVo
+	ProductVo                                  = pb.ProductVo
+	RelGameRankListReq                         = pb.RelGameRankListReq
+	RelGameRankListRes                         = pb.RelGameRankListRes
+	RelGameRankReq                             = pb.RelGameRankReq
+	RelGameRankVo                              = pb.RelGameRankVo
+	RelGameVpnGroupListReq                     = pb.RelGameVpnGroupListReq
+	RelGameVpnGroupListRes                     = pb.RelGameVpnGroupListRes
+	RelGameVpnGroupReq                         = pb.RelGameVpnGroupReq
+	RelGameVpnGroupVo                          = pb.RelGameVpnGroupVo
+	Request                                    = pb.Request
+	Response                                   = pb.Response
+	ServiceSetsAddReq                          = pb.ServiceSetsAddReq
+	ServiceSetsDelReq                          = pb.ServiceSetsDelReq
+	ServiceSetsGetReq                          = pb.ServiceSetsGetReq
+	ServiceSetsListReq                         = pb.ServiceSetsListReq
+	ServiceSetsListResp                        = pb.ServiceSetsListResp
+	ServiceSetsUpdateReq                       = pb.ServiceSetsUpdateReq
+	ServiceSetsVo                              = pb.ServiceSetsVo
+	ServiceTypesAddReq                         = pb.ServiceTypesAddReq
+	ServiceTypesDelReq                         = pb.ServiceTypesDelReq
+	ServiceTypesGetReq                         = pb.ServiceTypesGetReq
+	ServiceTypesListReq                        = pb.ServiceTypesListReq
+	ServiceTypesListResp                       = pb.ServiceTypesListResp
+	ServiceTypesUpdateReq                      = pb.ServiceTypesUpdateReq
+	ServiceTypesVo                             = pb.ServiceTypesVo
+	SetTotalStatsReq                           = pb.SetTotalStatsReq
+	ShortDramaCheckNameReq                     = pb.ShortDramaCheckNameReq
+	ShortDramaCheckNameResp                    = pb.ShortDramaCheckNameResp
+	ShortDramaEpisodeBatchAddReq               = pb.ShortDramaEpisodeBatchAddReq
+	ShortDramaEpisodeBatchRefreshUpdateTimeReq = pb.ShortDramaEpisodeBatchRefreshUpdateTimeReq
+	ShortDramaEpisodeCountReq                  = pb.ShortDramaEpisodeCountReq
+	ShortDramaEpisodeCountResp                 = pb.ShortDramaEpisodeCountResp
+	ShortDramaEpisodeCountVo                   = pb.ShortDramaEpisodeCountVo
+	ShortDramaEpisodeGetReq                    = pb.ShortDramaEpisodeGetReq
+	ShortDramaEpisodeListReq                   = pb.ShortDramaEpisodeListReq
+	ShortDramaEpisodeListResp                  = pb.ShortDramaEpisodeListResp
+	ShortDramaEpisodeVo                        = pb.ShortDramaEpisodeVo
+	ShortDramaGetReq                           = pb.ShortDramaGetReq
+	ShortDramaLanguageListReq                  = pb.ShortDramaLanguageListReq
+	ShortDramaLanguageListResp                 = pb.ShortDramaLanguageListResp
+	ShortDramaLanguageVo                       = pb.ShortDramaLanguageVo
+	ShortDramaListReq                          = pb.ShortDramaListReq
+	ShortDramaListResp                         = pb.ShortDramaListResp
+	ShortDramaStatsPlaysTotalListReq           = pb.ShortDramaStatsPlaysTotalListReq
+	ShortDramaStatsPlaysTotalListResp          = pb.ShortDramaStatsPlaysTotalListResp
+	ShortDramaStatsPlaysTotalVo                = pb.ShortDramaStatsPlaysTotalVo
+	ShortDramaUpdateModifierReq                = pb.ShortDramaUpdateModifierReq
+	ShortDramaVo                               = pb.ShortDramaVo
+	StringSelectController                     = pb.StringSelectController
+	SysPermGetReq                              = pb.SysPermGetReq
+	SysPermListReq                             = pb.SysPermListReq
+	SysPermListResp                            = pb.SysPermListResp
+	SysPermRule                                = pb.SysPermRule
+	SysPermVo                                  = pb.SysPermVo
+	SysRoleGetReq                              = pb.SysRoleGetReq
+	SysRoleListReq                             = pb.SysRoleListReq
+	SysRoleListResp                            = pb.SysRoleListResp
+	SysRoleListWithPermsResp                   = pb.SysRoleListWithPermsResp
+	SysRolePermGetReq                          = pb.SysRolePermGetReq
+	SysRolePermListReq                         = pb.SysRolePermListReq
+	SysRolePermListResp                        = pb.SysRolePermListResp
+	SysRolePermVo                              = pb.SysRolePermVo
+	SysRoleVo                                  = pb.SysRoleVo
+	SysRoleWithPermIds                         = pb.SysRoleWithPermIds
+	SysRoleWithPerms                           = pb.SysRoleWithPerms
+	SysUserGetReq                              = pb.SysUserGetReq
+	SysUserListReq                             = pb.SysUserListReq
+	SysUserListResp                            = pb.SysUserListResp
+	SysUserListWithRolesAndPermsResp           = pb.SysUserListWithRolesAndPermsResp
+	SysUserPermGetReq                          = pb.SysUserPermGetReq
+	SysUserPermListReq                         = pb.SysUserPermListReq
+	SysUserPermListResp                        = pb.SysUserPermListResp
+	SysUserPermVo                              = pb.SysUserPermVo
+	SysUserRoleGetReq                          = pb.SysUserRoleGetReq
+	SysUserRoleListReq                         = pb.SysUserRoleListReq
+	SysUserRoleListResp                        = pb.SysUserRoleListResp
+	SysUserRoleVo                              = pb.SysUserRoleVo
+	SysUserVo                                  = pb.SysUserVo
+	SysUserWithRoleIdsAndPermRules             = pb.SysUserWithRoleIdsAndPermRules
+	SysUserWithRolesAndPerms                   = pb.SysUserWithRolesAndPerms
+	TimeRange                                  = pb.TimeRange
+	TipGetReq                                  = pb.TipGetReq
+	TipListReq                                 = pb.TipListReq
+	TipListResp                                = pb.TipListResp
+	TipVo                                      = pb.TipVo
+	TransactionOperation                       = pb.TransactionOperation
+	TransactionReq                             = pb.TransactionReq
+	UpgradePkgPlanDetailListReq                = pb.UpgradePkgPlanDetailListReq
+	UpgradePkgPlanDetailListResp               = pb.UpgradePkgPlanDetailListResp
+	UpgradePkgPlanDetailVo                     = pb.UpgradePkgPlanDetailVo
+	UpgradePkgPlanListReq                      = pb.UpgradePkgPlanListReq
+	UpgradePkgPlanListResp                     = pb.UpgradePkgPlanListResp
+	UpgradePkgPlanVo                           = pb.UpgradePkgPlanVo
+	UpgradeResPlanDetailListReq                = pb.UpgradeResPlanDetailListReq
+	UpgradeResPlanDetailListResp               = pb.UpgradeResPlanDetailListResp
+	UpgradeResPlanDetailVo                     = pb.UpgradeResPlanDetailVo
+	UpgradeResPlanListReq                      = pb.UpgradeResPlanListReq
+	UpgradeResPlanListResp                     = pb.UpgradeResPlanListResp
+	UpgradeResPlanVo                           = pb.UpgradeResPlanVo
+	UserAppConfigGetReq                        = pb.UserAppConfigGetReq
+	UserAppConfigListReq                       = pb.UserAppConfigListReq
+	UserAppConfigListRes                       = pb.UserAppConfigListRes
+	UserAppConfigVo                            = pb.UserAppConfigVo
+	VpnGroupAddReq                             = pb.VpnGroupAddReq
+	VpnGroupBatchAddReq                        = pb.VpnGroupBatchAddReq
+	VpnGroupBatchAddResp                       = pb.VpnGroupBatchAddResp
+	VpnGroupBatchDelReq                        = pb.VpnGroupBatchDelReq
+	VpnGroupBatchUpdateReq                     = pb.VpnGroupBatchUpdateReq
+	VpnGroupBatchUpdateResp                    = pb.VpnGroupBatchUpdateResp
+	VpnGroupExVo                               = pb.VpnGroupExVo
+	VpnGroupGetReq                             = pb.VpnGroupGetReq
+	VpnGroupListReq                            = pb.VpnGroupListReq
+	VpnGroupListResp                           = pb.VpnGroupListResp
+	VpnGroupTagListReq                         = pb.VpnGroupTagListReq
+	VpnGroupTagListResp                        = pb.VpnGroupTagListResp
+	VpnGroupTagVo                              = pb.VpnGroupTagVo
+	VpnGroupVo                                 = pb.VpnGroupVo
+	VpnLocationBatchAddReq                     = pb.VpnLocationBatchAddReq
+	VpnLocationBatchAddResp                    = pb.VpnLocationBatchAddResp
+	VpnLocationBatchDelReq                     = pb.VpnLocationBatchDelReq
+	VpnLocationBatchUpdateReq                  = pb.VpnLocationBatchUpdateReq
+	VpnLocationBatchUpdateResp                 = pb.VpnLocationBatchUpdateResp
+	VpnLocationExVo                            = pb.VpnLocationExVo
+	VpnLocationGetReq                          = pb.VpnLocationGetReq
+	VpnLocationListReq                         = pb.VpnLocationListReq
+	VpnLocationListResp                        = pb.VpnLocationListResp
+	VpnLocationServerCountReq                  = pb.VpnLocationServerCountReq
+	VpnLocationServerCountResp                 = pb.VpnLocationServerCountResp
+	VpnLocationServerCountVo                   = pb.VpnLocationServerCountVo
+	VpnLocationVo                              = pb.VpnLocationVo
+	VpnProbeTaskListReq                        = pb.VpnProbeTaskListReq
+	VpnProbeTaskListResp                       = pb.VpnProbeTaskListResp
+	VpnProbeTaskVo                             = pb.VpnProbeTaskVo
+	VpnServerAddReq                            = pb.VpnServerAddReq
+	VpnServerBatchAddReq                       = pb.VpnServerBatchAddReq
+	VpnServerBatchAddResp                      = pb.VpnServerBatchAddResp
+	VpnServerBatchDelReq                       = pb.VpnServerBatchDelReq
+	VpnServerBatchUpdateReq                    = pb.VpnServerBatchUpdateReq
+	VpnServerBatchUpdateResp                   = pb.VpnServerBatchUpdateResp
+	VpnServerExListResp                        = pb.VpnServerExListResp
+	VpnServerExVo                              = pb.VpnServerExVo
+	VpnServerListReq                           = pb.VpnServerListReq
+	VpnServerListResp                          = pb.VpnServerListResp
+	VpnServerLocationListReq                   = pb.VpnServerLocationListReq
+	VpnServerLocationListResp                  = pb.VpnServerLocationListResp
+	VpnServerLocationVo                        = pb.VpnServerLocationVo
+	VpnServerVo                                = pb.VpnServerVo
+	VpnTagBatchAddReq                          = pb.VpnTagBatchAddReq
+	VpnTagBatchAddResp                         = pb.VpnTagBatchAddResp
+	VpnTagBatchDelReq                          = pb.VpnTagBatchDelReq
+	VpnTagBatchUpdateReq                       = pb.VpnTagBatchUpdateReq
+	VpnTagBatchUpdateResp                      = pb.VpnTagBatchUpdateResp
+	VpnTagGetReq                               = pb.VpnTagGetReq
+	VpnTagListReq                              = pb.VpnTagListReq
+	VpnTagListResp                             = pb.VpnTagListResp
+	VpnTagVo                                   = pb.VpnTagVo
+
+	GoUserClient interface {
+		Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
+		// 用户app配置管理(ring)
+		UserAppConfigAdd(ctx context.Context, in *UserAppConfigVo, opts ...grpc.CallOption) (*UserAppConfigVo, error)
+		UserAppConfigUpdate(ctx context.Context, in *UserAppConfigVo, opts ...grpc.CallOption) (*UserAppConfigVo, error)
+		UserAppConfigDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		UserAppConfigGet(ctx context.Context, in *UserAppConfigGetReq, opts ...grpc.CallOption) (*UserAppConfigVo, error)
+		UserAppConfigList(ctx context.Context, in *UserAppConfigListReq, opts ...grpc.CallOption) (*UserAppConfigListRes, error)
+		// 设备管理
+		DeviceAdd(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error)
+		DeviceUpdate(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error)
+		DeviceDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		DeviceGet(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error)
+		DeviceList(ctx context.Context, in *DeviceListReq, opts ...grpc.CallOption) (*DeviceListRes, error)
+		// Account
+		AccountAdd(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error)
+		AccountUpdate(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error)
+		AccountDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		AccountGet(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error)
+		AccountList(ctx context.Context, in *AccountListReq, opts ...grpc.CallOption) (*AccountListResp, error)
+		// AccountDevice
+		AccountDeviceAdd(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error)
+		AccountDeviceUpdate(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error)
+		AccountDeviceDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		AccountDeviceGet(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error)
+		AccountDeviceList(ctx context.Context, in *AccountDeviceListReq, opts ...grpc.CallOption) (*AccountDeviceListResp, error)
+	}
+
+	defaultGoUserClient struct {
+		cli zrpc.Client
+	}
+)
+
+func NewGoUserClient(cli zrpc.Client) GoUserClient {
+	return &defaultGoUserClient{
+		cli: cli,
+	}
+}
+
+func (m *defaultGoUserClient) Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.Ping(ctx, in, opts...)
+}
+
+// 用户app配置管理(ring)
+func (m *defaultGoUserClient) UserAppConfigAdd(ctx context.Context, in *UserAppConfigVo, opts ...grpc.CallOption) (*UserAppConfigVo, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.UserAppConfigAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) UserAppConfigUpdate(ctx context.Context, in *UserAppConfigVo, opts ...grpc.CallOption) (*UserAppConfigVo, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.UserAppConfigUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) UserAppConfigDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.UserAppConfigDel(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) UserAppConfigGet(ctx context.Context, in *UserAppConfigGetReq, opts ...grpc.CallOption) (*UserAppConfigVo, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.UserAppConfigGet(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) UserAppConfigList(ctx context.Context, in *UserAppConfigListReq, opts ...grpc.CallOption) (*UserAppConfigListRes, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.UserAppConfigList(ctx, in, opts...)
+}
+
+// 设备管理
+func (m *defaultGoUserClient) DeviceAdd(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.DeviceAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) DeviceUpdate(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.DeviceUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) DeviceDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.DeviceDel(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) DeviceGet(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.DeviceGet(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) DeviceList(ctx context.Context, in *DeviceListReq, opts ...grpc.CallOption) (*DeviceListRes, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.DeviceList(ctx, in, opts...)
+}
+
+// Account
+func (m *defaultGoUserClient) AccountAdd(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.AccountAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) AccountUpdate(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.AccountUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) AccountDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.AccountDel(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) AccountGet(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.AccountGet(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) AccountList(ctx context.Context, in *AccountListReq, opts ...grpc.CallOption) (*AccountListResp, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.AccountList(ctx, in, opts...)
+}
+
+// AccountDevice
+func (m *defaultGoUserClient) AccountDeviceAdd(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.AccountDeviceAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) AccountDeviceUpdate(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.AccountDeviceUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) AccountDeviceDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.AccountDeviceDel(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) AccountDeviceGet(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.AccountDeviceGet(ctx, in, opts...)
+}
+
+func (m *defaultGoUserClient) AccountDeviceList(ctx context.Context, in *AccountDeviceListReq, opts ...grpc.CallOption) (*AccountDeviceListResp, error) {
+	client := pb.NewGoUserClientClient(m.cli.Conn())
+	return client.AccountDeviceList(ctx, in, opts...)
+}

+ 563 - 0
pb/client/govpnclient/go_vpn_client.go

@@ -0,0 +1,563 @@
+// Code generated by goctl. DO NOT EDIT.
+// goctl 1.8.5
+// Source: gorpc.proto
+
+package govpnclient
+
+import (
+	"context"
+
+	"git.goio.dev/pb/go-service-pb/pb/pb"
+
+	"github.com/zeromicro/go-zero/zrpc"
+	"google.golang.org/grpc"
+)
+
+type (
+	AccountDeviceListReq                       = pb.AccountDeviceListReq
+	AccountDeviceListResp                      = pb.AccountDeviceListResp
+	AccountDeviceVo                            = pb.AccountDeviceVo
+	AccountListReq                             = pb.AccountListReq
+	AccountListResp                            = pb.AccountListResp
+	AccountVo                                  = pb.AccountVo
+	AdGlobalConfigGetReq                       = pb.AdGlobalConfigGetReq
+	AdGlobalConfigVo                           = pb.AdGlobalConfigVo
+	AdPlanDetailListReq                        = pb.AdPlanDetailListReq
+	AdPlanDetailListResp                       = pb.AdPlanDetailListResp
+	AdPlanDetailVo                             = pb.AdPlanDetailVo
+	AdPlanListReq                              = pb.AdPlanListReq
+	AdPlanListResp                             = pb.AdPlanListResp
+	AdPlanVo                                   = pb.AdPlanVo
+	AnnouncePlanDetailListReq                  = pb.AnnouncePlanDetailListReq
+	AnnouncePlanDetailListResp                 = pb.AnnouncePlanDetailListResp
+	AnnouncePlanDetailVo                       = pb.AnnouncePlanDetailVo
+	AnnouncePlanListReq                        = pb.AnnouncePlanListReq
+	AnnouncePlanListResp                       = pb.AnnouncePlanListResp
+	AnnouncePlanVo                             = pb.AnnouncePlanVo
+	AreaParamListReq                           = pb.AreaParamListReq
+	AreaParamListResp                          = pb.AreaParamListResp
+	AreaParamVo                                = pb.AreaParamVo
+	BaseReq                                    = pb.BaseReq
+	CommonResult                               = pb.CommonResult
+	ConfigGetReq                               = pb.ConfigGetReq
+	DeleteIdResp                               = pb.DeleteIdResp
+	DeployConfigListReq                        = pb.DeployConfigListReq
+	DeployConfigListResp                       = pb.DeployConfigListResp
+	DeployConfigVo                             = pb.DeployConfigVo
+	DeviceListReq                              = pb.DeviceListReq
+	DeviceListRes                              = pb.DeviceListRes
+	DeviceVo                                   = pb.DeviceVo
+	DictGetReq                                 = pb.DictGetReq
+	DictListReq                                = pb.DictListReq
+	DictListResp                               = pb.DictListResp
+	DictVo                                     = pb.DictVo
+	Empty                                      = pb.Empty
+	GameCategoryListReq                        = pb.GameCategoryListReq
+	GameCategoryListRes                        = pb.GameCategoryListRes
+	GameCategoryReq                            = pb.GameCategoryReq
+	GameCategoryVo                             = pb.GameCategoryVo
+	GameCustomerAddResp                        = pb.GameCustomerAddResp
+	GameCustomerListReq                        = pb.GameCustomerListReq
+	GameCustomerListRes                        = pb.GameCustomerListRes
+	GameCustomerVo                             = pb.GameCustomerVo
+	GameListReq                                = pb.GameListReq
+	GameListRes                                = pb.GameListRes
+	GameRedisHScanByNameReq                    = pb.GameRedisHScanByNameReq
+	GameRedisHScanByNameResp                   = pb.GameRedisHScanByNameResp
+	GameReq                                    = pb.GameReq
+	GameVo                                     = pb.GameVo
+	GlobalParamGetReq                          = pb.GlobalParamGetReq
+	GlobalParamListReq                         = pb.GlobalParamListReq
+	GlobalParamListResp                        = pb.GlobalParamListResp
+	GlobalParamVo                              = pb.GlobalParamVo
+	I18NVo                                     = pb.I18NVo
+	Ids                                        = pb.Ids
+	Int64SelectController                      = pb.Int64SelectController
+	IntSelectController                        = pb.IntSelectController
+	JobBatchListReq                            = pb.JobBatchListReq
+	JobBatchListResp                           = pb.JobBatchListResp
+	JobBatchListWithTasksResp                  = pb.JobBatchListWithTasksResp
+	JobBatchVo                                 = pb.JobBatchVo
+	JobBatchWithTasksVo                        = pb.JobBatchWithTasksVo
+	JobTasksListReq                            = pb.JobTasksListReq
+	JobTasksListResp                           = pb.JobTasksListResp
+	JobTasksVo                                 = pb.JobTasksVo
+	MessagePushListReq                         = pb.MessagePushListReq
+	MessagePushListResp                        = pb.MessagePushListResp
+	MessagePushVo                              = pb.MessagePushVo
+	NationalLanguageListReq                    = pb.NationalLanguageListReq
+	NationalLanguageListResp                   = pb.NationalLanguageListResp
+	NationalLanguageVo                         = pb.NationalLanguageVo
+	OperationLogListReq                        = pb.OperationLogListReq
+	OperationLogListResp                       = pb.OperationLogListResp
+	OperationLogVo                             = pb.OperationLogVo
+	Page                                       = pb.Page
+	Page_OrderItem                             = pb.Page_OrderItem
+	ProductActionListReq                       = pb.ProductActionListReq
+	ProductActionListResp                      = pb.ProductActionListResp
+	ProductActionReq                           = pb.ProductActionReq
+	ProductActionVo                            = pb.ProductActionVo
+	ProductListReq                             = pb.ProductListReq
+	ProductListResp                            = pb.ProductListResp
+	ProductParamGetReq                         = pb.ProductParamGetReq
+	ProductParamListReq                        = pb.ProductParamListReq
+	ProductParamListResp                       = pb.ProductParamListResp
+	ProductParamVo                             = pb.ProductParamVo
+	ProductVo                                  = pb.ProductVo
+	RelGameRankListReq                         = pb.RelGameRankListReq
+	RelGameRankListRes                         = pb.RelGameRankListRes
+	RelGameRankReq                             = pb.RelGameRankReq
+	RelGameRankVo                              = pb.RelGameRankVo
+	RelGameVpnGroupListReq                     = pb.RelGameVpnGroupListReq
+	RelGameVpnGroupListRes                     = pb.RelGameVpnGroupListRes
+	RelGameVpnGroupReq                         = pb.RelGameVpnGroupReq
+	RelGameVpnGroupVo                          = pb.RelGameVpnGroupVo
+	Request                                    = pb.Request
+	Response                                   = pb.Response
+	ServiceSetsAddReq                          = pb.ServiceSetsAddReq
+	ServiceSetsDelReq                          = pb.ServiceSetsDelReq
+	ServiceSetsGetReq                          = pb.ServiceSetsGetReq
+	ServiceSetsListReq                         = pb.ServiceSetsListReq
+	ServiceSetsListResp                        = pb.ServiceSetsListResp
+	ServiceSetsUpdateReq                       = pb.ServiceSetsUpdateReq
+	ServiceSetsVo                              = pb.ServiceSetsVo
+	ServiceTypesAddReq                         = pb.ServiceTypesAddReq
+	ServiceTypesDelReq                         = pb.ServiceTypesDelReq
+	ServiceTypesGetReq                         = pb.ServiceTypesGetReq
+	ServiceTypesListReq                        = pb.ServiceTypesListReq
+	ServiceTypesListResp                       = pb.ServiceTypesListResp
+	ServiceTypesUpdateReq                      = pb.ServiceTypesUpdateReq
+	ServiceTypesVo                             = pb.ServiceTypesVo
+	SetTotalStatsReq                           = pb.SetTotalStatsReq
+	ShortDramaCheckNameReq                     = pb.ShortDramaCheckNameReq
+	ShortDramaCheckNameResp                    = pb.ShortDramaCheckNameResp
+	ShortDramaEpisodeBatchAddReq               = pb.ShortDramaEpisodeBatchAddReq
+	ShortDramaEpisodeBatchRefreshUpdateTimeReq = pb.ShortDramaEpisodeBatchRefreshUpdateTimeReq
+	ShortDramaEpisodeCountReq                  = pb.ShortDramaEpisodeCountReq
+	ShortDramaEpisodeCountResp                 = pb.ShortDramaEpisodeCountResp
+	ShortDramaEpisodeCountVo                   = pb.ShortDramaEpisodeCountVo
+	ShortDramaEpisodeGetReq                    = pb.ShortDramaEpisodeGetReq
+	ShortDramaEpisodeListReq                   = pb.ShortDramaEpisodeListReq
+	ShortDramaEpisodeListResp                  = pb.ShortDramaEpisodeListResp
+	ShortDramaEpisodeVo                        = pb.ShortDramaEpisodeVo
+	ShortDramaGetReq                           = pb.ShortDramaGetReq
+	ShortDramaLanguageListReq                  = pb.ShortDramaLanguageListReq
+	ShortDramaLanguageListResp                 = pb.ShortDramaLanguageListResp
+	ShortDramaLanguageVo                       = pb.ShortDramaLanguageVo
+	ShortDramaListReq                          = pb.ShortDramaListReq
+	ShortDramaListResp                         = pb.ShortDramaListResp
+	ShortDramaStatsPlaysTotalListReq           = pb.ShortDramaStatsPlaysTotalListReq
+	ShortDramaStatsPlaysTotalListResp          = pb.ShortDramaStatsPlaysTotalListResp
+	ShortDramaStatsPlaysTotalVo                = pb.ShortDramaStatsPlaysTotalVo
+	ShortDramaUpdateModifierReq                = pb.ShortDramaUpdateModifierReq
+	ShortDramaVo                               = pb.ShortDramaVo
+	StringSelectController                     = pb.StringSelectController
+	SysPermGetReq                              = pb.SysPermGetReq
+	SysPermListReq                             = pb.SysPermListReq
+	SysPermListResp                            = pb.SysPermListResp
+	SysPermRule                                = pb.SysPermRule
+	SysPermVo                                  = pb.SysPermVo
+	SysRoleGetReq                              = pb.SysRoleGetReq
+	SysRoleListReq                             = pb.SysRoleListReq
+	SysRoleListResp                            = pb.SysRoleListResp
+	SysRoleListWithPermsResp                   = pb.SysRoleListWithPermsResp
+	SysRolePermGetReq                          = pb.SysRolePermGetReq
+	SysRolePermListReq                         = pb.SysRolePermListReq
+	SysRolePermListResp                        = pb.SysRolePermListResp
+	SysRolePermVo                              = pb.SysRolePermVo
+	SysRoleVo                                  = pb.SysRoleVo
+	SysRoleWithPermIds                         = pb.SysRoleWithPermIds
+	SysRoleWithPerms                           = pb.SysRoleWithPerms
+	SysUserGetReq                              = pb.SysUserGetReq
+	SysUserListReq                             = pb.SysUserListReq
+	SysUserListResp                            = pb.SysUserListResp
+	SysUserListWithRolesAndPermsResp           = pb.SysUserListWithRolesAndPermsResp
+	SysUserPermGetReq                          = pb.SysUserPermGetReq
+	SysUserPermListReq                         = pb.SysUserPermListReq
+	SysUserPermListResp                        = pb.SysUserPermListResp
+	SysUserPermVo                              = pb.SysUserPermVo
+	SysUserRoleGetReq                          = pb.SysUserRoleGetReq
+	SysUserRoleListReq                         = pb.SysUserRoleListReq
+	SysUserRoleListResp                        = pb.SysUserRoleListResp
+	SysUserRoleVo                              = pb.SysUserRoleVo
+	SysUserVo                                  = pb.SysUserVo
+	SysUserWithRoleIdsAndPermRules             = pb.SysUserWithRoleIdsAndPermRules
+	SysUserWithRolesAndPerms                   = pb.SysUserWithRolesAndPerms
+	TimeRange                                  = pb.TimeRange
+	TipGetReq                                  = pb.TipGetReq
+	TipListReq                                 = pb.TipListReq
+	TipListResp                                = pb.TipListResp
+	TipVo                                      = pb.TipVo
+	TransactionOperation                       = pb.TransactionOperation
+	TransactionReq                             = pb.TransactionReq
+	UpgradePkgPlanDetailListReq                = pb.UpgradePkgPlanDetailListReq
+	UpgradePkgPlanDetailListResp               = pb.UpgradePkgPlanDetailListResp
+	UpgradePkgPlanDetailVo                     = pb.UpgradePkgPlanDetailVo
+	UpgradePkgPlanListReq                      = pb.UpgradePkgPlanListReq
+	UpgradePkgPlanListResp                     = pb.UpgradePkgPlanListResp
+	UpgradePkgPlanVo                           = pb.UpgradePkgPlanVo
+	UpgradeResPlanDetailListReq                = pb.UpgradeResPlanDetailListReq
+	UpgradeResPlanDetailListResp               = pb.UpgradeResPlanDetailListResp
+	UpgradeResPlanDetailVo                     = pb.UpgradeResPlanDetailVo
+	UpgradeResPlanListReq                      = pb.UpgradeResPlanListReq
+	UpgradeResPlanListResp                     = pb.UpgradeResPlanListResp
+	UpgradeResPlanVo                           = pb.UpgradeResPlanVo
+	UserAppConfigGetReq                        = pb.UserAppConfigGetReq
+	UserAppConfigListReq                       = pb.UserAppConfigListReq
+	UserAppConfigListRes                       = pb.UserAppConfigListRes
+	UserAppConfigVo                            = pb.UserAppConfigVo
+	VpnGroupAddReq                             = pb.VpnGroupAddReq
+	VpnGroupBatchAddReq                        = pb.VpnGroupBatchAddReq
+	VpnGroupBatchAddResp                       = pb.VpnGroupBatchAddResp
+	VpnGroupBatchDelReq                        = pb.VpnGroupBatchDelReq
+	VpnGroupBatchUpdateReq                     = pb.VpnGroupBatchUpdateReq
+	VpnGroupBatchUpdateResp                    = pb.VpnGroupBatchUpdateResp
+	VpnGroupExVo                               = pb.VpnGroupExVo
+	VpnGroupGetReq                             = pb.VpnGroupGetReq
+	VpnGroupListReq                            = pb.VpnGroupListReq
+	VpnGroupListResp                           = pb.VpnGroupListResp
+	VpnGroupTagListReq                         = pb.VpnGroupTagListReq
+	VpnGroupTagListResp                        = pb.VpnGroupTagListResp
+	VpnGroupTagVo                              = pb.VpnGroupTagVo
+	VpnGroupVo                                 = pb.VpnGroupVo
+	VpnLocationBatchAddReq                     = pb.VpnLocationBatchAddReq
+	VpnLocationBatchAddResp                    = pb.VpnLocationBatchAddResp
+	VpnLocationBatchDelReq                     = pb.VpnLocationBatchDelReq
+	VpnLocationBatchUpdateReq                  = pb.VpnLocationBatchUpdateReq
+	VpnLocationBatchUpdateResp                 = pb.VpnLocationBatchUpdateResp
+	VpnLocationExVo                            = pb.VpnLocationExVo
+	VpnLocationGetReq                          = pb.VpnLocationGetReq
+	VpnLocationListReq                         = pb.VpnLocationListReq
+	VpnLocationListResp                        = pb.VpnLocationListResp
+	VpnLocationServerCountReq                  = pb.VpnLocationServerCountReq
+	VpnLocationServerCountResp                 = pb.VpnLocationServerCountResp
+	VpnLocationServerCountVo                   = pb.VpnLocationServerCountVo
+	VpnLocationVo                              = pb.VpnLocationVo
+	VpnProbeTaskListReq                        = pb.VpnProbeTaskListReq
+	VpnProbeTaskListResp                       = pb.VpnProbeTaskListResp
+	VpnProbeTaskVo                             = pb.VpnProbeTaskVo
+	VpnServerAddReq                            = pb.VpnServerAddReq
+	VpnServerBatchAddReq                       = pb.VpnServerBatchAddReq
+	VpnServerBatchAddResp                      = pb.VpnServerBatchAddResp
+	VpnServerBatchDelReq                       = pb.VpnServerBatchDelReq
+	VpnServerBatchUpdateReq                    = pb.VpnServerBatchUpdateReq
+	VpnServerBatchUpdateResp                   = pb.VpnServerBatchUpdateResp
+	VpnServerExListResp                        = pb.VpnServerExListResp
+	VpnServerExVo                              = pb.VpnServerExVo
+	VpnServerListReq                           = pb.VpnServerListReq
+	VpnServerListResp                          = pb.VpnServerListResp
+	VpnServerLocationListReq                   = pb.VpnServerLocationListReq
+	VpnServerLocationListResp                  = pb.VpnServerLocationListResp
+	VpnServerLocationVo                        = pb.VpnServerLocationVo
+	VpnServerVo                                = pb.VpnServerVo
+	VpnTagBatchAddReq                          = pb.VpnTagBatchAddReq
+	VpnTagBatchAddResp                         = pb.VpnTagBatchAddResp
+	VpnTagBatchDelReq                          = pb.VpnTagBatchDelReq
+	VpnTagBatchUpdateReq                       = pb.VpnTagBatchUpdateReq
+	VpnTagBatchUpdateResp                      = pb.VpnTagBatchUpdateResp
+	VpnTagGetReq                               = pb.VpnTagGetReq
+	VpnTagListReq                              = pb.VpnTagListReq
+	VpnTagListResp                             = pb.VpnTagListResp
+	VpnTagVo                                   = pb.VpnTagVo
+
+	GoVpnClient interface {
+		Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
+		// 表的事务操作
+		Transaction(ctx context.Context, in *TransactionReq, opts ...grpc.CallOption) (*Empty, error)
+		// VpnTag
+		VpnTagAdd(ctx context.Context, in *VpnTagVo, opts ...grpc.CallOption) (*VpnTagVo, error)
+		VpnTagUpdate(ctx context.Context, in *VpnTagVo, opts ...grpc.CallOption) (*VpnTagVo, error)
+		VpnTagDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		VpnTagGet(ctx context.Context, in *VpnTagGetReq, opts ...grpc.CallOption) (*VpnTagVo, error)
+		VpnTagList(ctx context.Context, in *VpnTagListReq, opts ...grpc.CallOption) (*VpnTagListResp, error)
+		VpnTagBatchAdd(ctx context.Context, in *VpnTagBatchAddReq, opts ...grpc.CallOption) (*VpnTagBatchAddResp, error)
+		VpnTagBatchUpdate(ctx context.Context, in *VpnTagBatchUpdateReq, opts ...grpc.CallOption) (*VpnTagBatchUpdateResp, error)
+		// VpnGroup
+		VpnGroupAdd(ctx context.Context, in *VpnGroupAddReq, opts ...grpc.CallOption) (*VpnGroupVo, error)
+		VpnGroupUpdate(ctx context.Context, in *VpnGroupAddReq, opts ...grpc.CallOption) (*Empty, error)
+		VpnGroupDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		VpnGroupGet(ctx context.Context, in *VpnGroupGetReq, opts ...grpc.CallOption) (*VpnGroupVo, error)
+		VpnGroupList(ctx context.Context, in *VpnGroupListReq, opts ...grpc.CallOption) (*VpnGroupListResp, error)
+		VpnGroupBatchAdd(ctx context.Context, in *VpnGroupBatchAddReq, opts ...grpc.CallOption) (*VpnGroupBatchAddResp, error)
+		VpnGroupBatchUpdate(ctx context.Context, in *VpnGroupBatchUpdateReq, opts ...grpc.CallOption) (*VpnGroupBatchUpdateResp, error)
+		// VpnGroupTag
+		VpnGroupTagAdd(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error)
+		VpnGroupTagUpdate(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error)
+		VpnGroupTagDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		VpnGroupTagGet(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error)
+		VpnGroupTagList(ctx context.Context, in *VpnGroupTagListReq, opts ...grpc.CallOption) (*VpnGroupTagListResp, error)
+		// VpnLocation
+		VpnLocationAdd(ctx context.Context, in *VpnLocationVo, opts ...grpc.CallOption) (*VpnLocationVo, error)
+		VpnLocationUpdate(ctx context.Context, in *VpnLocationVo, opts ...grpc.CallOption) (*Empty, error)
+		VpnLocationDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		VpnLocationGet(ctx context.Context, in *VpnLocationGetReq, opts ...grpc.CallOption) (*VpnLocationVo, error)
+		VpnLocationList(ctx context.Context, in *VpnLocationListReq, opts ...grpc.CallOption) (*VpnLocationListResp, error)
+		VpnLocationBatchAdd(ctx context.Context, in *VpnLocationBatchAddReq, opts ...grpc.CallOption) (*VpnLocationBatchAddResp, error)
+		VpnLocationBatchUpdate(ctx context.Context, in *VpnLocationBatchUpdateReq, opts ...grpc.CallOption) (*VpnLocationBatchUpdateResp, error)
+		// VpnServer
+		VpnServerAdd(ctx context.Context, in *VpnServerAddReq, opts ...grpc.CallOption) (*VpnServerAddReq, error)
+		VpnServerUpdate(ctx context.Context, in *VpnServerAddReq, opts ...grpc.CallOption) (*VpnServerAddReq, error)
+		VpnServerDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		VpnServerGet(ctx context.Context, in *VpnServerVo, opts ...grpc.CallOption) (*VpnServerVo, error)
+		VpnServerList(ctx context.Context, in *VpnServerListReq, opts ...grpc.CallOption) (*VpnServerListResp, error)
+		VpnServerExList(ctx context.Context, in *VpnServerListReq, opts ...grpc.CallOption) (*VpnServerExListResp, error)
+		VpnServerBatchAdd(ctx context.Context, in *VpnServerBatchAddReq, opts ...grpc.CallOption) (*VpnServerBatchAddResp, error)
+		VpnServerBatchUpdate(ctx context.Context, in *VpnServerBatchUpdateReq, opts ...grpc.CallOption) (*VpnServerBatchUpdateResp, error)
+		// VpnServerLocation
+		VpnServerLocationAdd(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*VpnServerLocationVo, error)
+		VpnServerLocationUpdate(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*Empty, error)
+		VpnServerLocationDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+		VpnServerLocationGet(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*VpnServerLocationVo, error)
+		VpnServerLocationList(ctx context.Context, in *VpnServerLocationListReq, opts ...grpc.CallOption) (*VpnServerLocationListResp, error)
+		// VpnLocationServerCount
+		VpnLocationServerCount(ctx context.Context, in *VpnLocationServerCountReq, opts ...grpc.CallOption) (*VpnLocationServerCountResp, error)
+		// VpnProbeTask
+		VpnProbeTaskAdd(ctx context.Context, in *VpnProbeTaskVo, opts ...grpc.CallOption) (*VpnProbeTaskVo, error)
+		VpnProbeTaskUpdate(ctx context.Context, in *VpnProbeTaskVo, opts ...grpc.CallOption) (*Empty, error)
+		VpnProbeTaskList(ctx context.Context, in *VpnProbeTaskListReq, opts ...grpc.CallOption) (*VpnProbeTaskListResp, error)
+	}
+
+	defaultGoVpnClient struct {
+		cli zrpc.Client
+	}
+)
+
+func NewGoVpnClient(cli zrpc.Client) GoVpnClient {
+	return &defaultGoVpnClient{
+		cli: cli,
+	}
+}
+
+func (m *defaultGoVpnClient) Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.Ping(ctx, in, opts...)
+}
+
+// 表的事务操作
+func (m *defaultGoVpnClient) Transaction(ctx context.Context, in *TransactionReq, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.Transaction(ctx, in, opts...)
+}
+
+// VpnTag
+func (m *defaultGoVpnClient) VpnTagAdd(ctx context.Context, in *VpnTagVo, opts ...grpc.CallOption) (*VpnTagVo, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnTagAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnTagUpdate(ctx context.Context, in *VpnTagVo, opts ...grpc.CallOption) (*VpnTagVo, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnTagUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnTagDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnTagDel(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnTagGet(ctx context.Context, in *VpnTagGetReq, opts ...grpc.CallOption) (*VpnTagVo, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnTagGet(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnTagList(ctx context.Context, in *VpnTagListReq, opts ...grpc.CallOption) (*VpnTagListResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnTagList(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnTagBatchAdd(ctx context.Context, in *VpnTagBatchAddReq, opts ...grpc.CallOption) (*VpnTagBatchAddResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnTagBatchAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnTagBatchUpdate(ctx context.Context, in *VpnTagBatchUpdateReq, opts ...grpc.CallOption) (*VpnTagBatchUpdateResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnTagBatchUpdate(ctx, in, opts...)
+}
+
+// VpnGroup
+func (m *defaultGoVpnClient) VpnGroupAdd(ctx context.Context, in *VpnGroupAddReq, opts ...grpc.CallOption) (*VpnGroupVo, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnGroupAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnGroupUpdate(ctx context.Context, in *VpnGroupAddReq, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnGroupUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnGroupDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnGroupDel(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnGroupGet(ctx context.Context, in *VpnGroupGetReq, opts ...grpc.CallOption) (*VpnGroupVo, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnGroupGet(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnGroupList(ctx context.Context, in *VpnGroupListReq, opts ...grpc.CallOption) (*VpnGroupListResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnGroupList(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnGroupBatchAdd(ctx context.Context, in *VpnGroupBatchAddReq, opts ...grpc.CallOption) (*VpnGroupBatchAddResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnGroupBatchAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnGroupBatchUpdate(ctx context.Context, in *VpnGroupBatchUpdateReq, opts ...grpc.CallOption) (*VpnGroupBatchUpdateResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnGroupBatchUpdate(ctx, in, opts...)
+}
+
+// VpnGroupTag
+func (m *defaultGoVpnClient) VpnGroupTagAdd(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnGroupTagAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnGroupTagUpdate(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnGroupTagUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnGroupTagDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnGroupTagDel(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnGroupTagGet(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnGroupTagGet(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnGroupTagList(ctx context.Context, in *VpnGroupTagListReq, opts ...grpc.CallOption) (*VpnGroupTagListResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnGroupTagList(ctx, in, opts...)
+}
+
+// VpnLocation
+func (m *defaultGoVpnClient) VpnLocationAdd(ctx context.Context, in *VpnLocationVo, opts ...grpc.CallOption) (*VpnLocationVo, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnLocationAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnLocationUpdate(ctx context.Context, in *VpnLocationVo, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnLocationUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnLocationDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnLocationDel(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnLocationGet(ctx context.Context, in *VpnLocationGetReq, opts ...grpc.CallOption) (*VpnLocationVo, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnLocationGet(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnLocationList(ctx context.Context, in *VpnLocationListReq, opts ...grpc.CallOption) (*VpnLocationListResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnLocationList(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnLocationBatchAdd(ctx context.Context, in *VpnLocationBatchAddReq, opts ...grpc.CallOption) (*VpnLocationBatchAddResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnLocationBatchAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnLocationBatchUpdate(ctx context.Context, in *VpnLocationBatchUpdateReq, opts ...grpc.CallOption) (*VpnLocationBatchUpdateResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnLocationBatchUpdate(ctx, in, opts...)
+}
+
+// VpnServer
+func (m *defaultGoVpnClient) VpnServerAdd(ctx context.Context, in *VpnServerAddReq, opts ...grpc.CallOption) (*VpnServerAddReq, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnServerAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnServerUpdate(ctx context.Context, in *VpnServerAddReq, opts ...grpc.CallOption) (*VpnServerAddReq, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnServerUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnServerDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnServerDel(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnServerGet(ctx context.Context, in *VpnServerVo, opts ...grpc.CallOption) (*VpnServerVo, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnServerGet(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnServerList(ctx context.Context, in *VpnServerListReq, opts ...grpc.CallOption) (*VpnServerListResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnServerList(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnServerExList(ctx context.Context, in *VpnServerListReq, opts ...grpc.CallOption) (*VpnServerExListResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnServerExList(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnServerBatchAdd(ctx context.Context, in *VpnServerBatchAddReq, opts ...grpc.CallOption) (*VpnServerBatchAddResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnServerBatchAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnServerBatchUpdate(ctx context.Context, in *VpnServerBatchUpdateReq, opts ...grpc.CallOption) (*VpnServerBatchUpdateResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnServerBatchUpdate(ctx, in, opts...)
+}
+
+// VpnServerLocation
+func (m *defaultGoVpnClient) VpnServerLocationAdd(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*VpnServerLocationVo, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnServerLocationAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnServerLocationUpdate(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnServerLocationUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnServerLocationDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnServerLocationDel(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnServerLocationGet(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*VpnServerLocationVo, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnServerLocationGet(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnServerLocationList(ctx context.Context, in *VpnServerLocationListReq, opts ...grpc.CallOption) (*VpnServerLocationListResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnServerLocationList(ctx, in, opts...)
+}
+
+// VpnLocationServerCount
+func (m *defaultGoVpnClient) VpnLocationServerCount(ctx context.Context, in *VpnLocationServerCountReq, opts ...grpc.CallOption) (*VpnLocationServerCountResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnLocationServerCount(ctx, in, opts...)
+}
+
+// VpnProbeTask
+func (m *defaultGoVpnClient) VpnProbeTaskAdd(ctx context.Context, in *VpnProbeTaskVo, opts ...grpc.CallOption) (*VpnProbeTaskVo, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnProbeTaskAdd(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnProbeTaskUpdate(ctx context.Context, in *VpnProbeTaskVo, opts ...grpc.CallOption) (*Empty, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnProbeTaskUpdate(ctx, in, opts...)
+}
+
+func (m *defaultGoVpnClient) VpnProbeTaskList(ctx context.Context, in *VpnProbeTaskListReq, opts ...grpc.CallOption) (*VpnProbeTaskListResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnProbeTaskList(ctx, in, opts...)
+}

+ 86 - 0
pb/common.proto

@@ -0,0 +1,86 @@
+syntax = "proto3";
+
+package gorpc;
+option go_package = "git.goio.dev/pb/go-service-pb/client";
+
+import "pb/constant.proto";
+
+// 根据需要增加状态
+enum CommonResultCode {
+  Success = 0;
+}
+
+enum Status {
+  UnknownStatus = 0;
+  StatusValid = 1;
+  StatusInValid = 2;
+}
+
+enum BoolInt {
+  BoolIntUnknown = 0;
+  BoolIntTrue = 1;
+  BoolIntFalse = 2;
+}
+
+message Empty {}
+
+message Int64SelectController {
+  repeated int64 values = 1;
+  bool exclude = 2;
+}
+
+message IntSelectController {
+  repeated int32 values = 1;
+  bool exclude = 2;
+}
+
+message StringSelectController {
+  repeated string values = 1;
+  bool exclude = 2;
+}
+
+message Page {
+  message OrderItem {
+    string column = 1;
+    bool asc = 2;
+    bool isFunc = 3;
+  }
+
+  int64 pageNo = 1;
+  int64 pageSize = 2;
+  int64 startTime = 3;
+  int64 endTime = 4;
+  repeated OrderItem sortBy = 5;
+
+  bool ignoreTotal = 6; // 忽略总条数
+
+  bool ignoreStat = 7; // 忽略总条数
+  bool ignoreList = 8; // 忽略列表
+  repeated int64 ids = 9;
+  repeated string groupBy = 10;
+}
+
+message CommonResult {
+  CommonResultCode code = 1;
+  string msg = 2;
+}
+
+message BaseReq {
+  int64 timeZoneOffset = 1;
+  string lan = 2;
+}
+
+message DeleteIdResp { repeated int64 failedIds = 1; }
+message Ids { repeated int64 ids = 1; }
+
+message Request {}
+
+message Response { string msg = 1; }
+
+message TransactionOperation {
+  string table = 1;   // 表名
+  string operate = 2; // delete,insert,update
+  string data = 3;    // json格式
+}
+
+message TransactionReq { repeated TransactionOperation transactions = 1; }

+ 21 - 0
pb/constant.proto

@@ -0,0 +1,21 @@
+syntax = "proto3";
+
+package gorpc;
+option go_package = "git.goio.dev/pb/go-service-pb/client";
+
+enum RegisterMode {
+  RegisterModeUnknown = 0;
+  RegisterModeGuest = 1;
+  RegisterModeApp = 2;
+  RegisterModeWeb = 3;
+  RegisterModePc = 4;
+  RegisterModeInvalid = 9999;
+}
+
+// enum Provider {
+//   ProviderUnknown = 0;
+//   ProviderGoogle = 1;
+//   ProviderApple = 2;
+//   ProviderMeta = 3;
+//   ProviderGithub = 4;
+// }

+ 12 - 0
pb/constant/ad/adevent/ad_event.go

@@ -0,0 +1,12 @@
+package adevent
+
+// 广告事件定义
+const (
+	AdEventAdReqStart    = "ad_req_start"
+	AdEventAdReqSuccess  = "ad_req_success"
+	AdEventAdReqShow     = "ad_show"
+	AdEventAdShowSuccess = "ad_show_success"
+	AdEventAdClick       = "ad_click"
+	AdEventAdClose       = "ad_close"
+	AdEventAdError       = "ad_error"
+)

+ 10 - 0
pb/constant/ad/adtype/ad_types.go

@@ -0,0 +1,10 @@
+package adtype
+
+// app_open/rewarded_video/interstitial/banner/native
+const (
+	AdTypeAppOpen       = "app_open"
+	AdTypeRewardedVideo = "reward"
+	AdTypeInterstitial  = "interstitial"
+	AdTypeBanner        = "banner"
+	AdTypeNative        = "native"
+)

+ 17 - 0
pb/constant/api.go

@@ -0,0 +1,17 @@
+package constant
+
+// 清除缓存 etcd key
+const (
+	SpeedTopClearLocalCacheSignal = "speedtop:clearLocalCacheSignal"
+	SpeedTopClearRedisCacheSignal = "speedtop:clearRedisCacheSignal"
+)
+
+const (
+	FkeyClearLocalCacheSignal = "fkey:clearLocalCacheSignal"
+	FkeyClearRedisCacheSignal = "fkey:clearRedisCacheSignal"
+)
+
+const (
+	RingPlusClearLocalCacheSignal = "ringplus:clearLocalCacheSignal"
+	RingPlusClearRedisCacheSignal = "ringplus:clearRedisCacheSignal"
+)

+ 48 - 0
pb/constant/constant.go

@@ -0,0 +1,48 @@
+package constant
+
+const (
+	ClearLocalCacheSignalEtcdKey = "clear_local_cache"
+	ClearRedisCacheSignalEtcdKey = "clear_redis_cache"
+)
+
+// 字典表中datatype的定义值
+const (
+	DICT_DATATYPE_GAMERANK = "game_rank"
+)
+
+const RedisPrefixGame = "GameMap"
+
+type Provider string
+
+const (
+	ProviderUnknown Provider = "unknown"
+	ProviderNormal  Provider = "normal"
+	ProviderGoogle  Provider = "google"
+	ProviderApple   Provider = "apple"
+	ProviderMeta    Provider = "meta"
+	ProviderGithub  Provider = "github"
+)
+
+const (
+	UpgradeApp    = 1
+	UpgradeRes    = 2
+	UpgradeIgnore = 0
+)
+
+const (
+	// 10000
+	ProviderCheckCode = 10000 //检测三方账号登录中状态
+)
+
+// 短剧状态常量定义
+const (
+	ShortDramaStatusOffline  = 1 // 下架
+	ShortDramaStatusUpcoming = 2 // 即将上线
+	ShortDramaStatusOnline   = 3 // 正常
+)
+
+// 剧集类型常量定义
+const (
+	ShortDramaEpisodeTypeMain    = 20 //正片
+	ShortDramaEpisodeTypeTrailer = 1  //预告片
+)

+ 16 - 0
pb/constant/platform.go

@@ -0,0 +1,16 @@
+package constant
+
+const (
+	GoogleIDEmpty = "00000000-0000-0000-0000-000000000000"
+
+	//platform
+	PlatformMobileIos      = "mobile-ios"
+	PlatformMobileAndroid  = "mobile-android"
+	PlatformDesktopWindows = "desktop-windows"
+	PlatformDesktopMacOs   = "desktop-macos"
+
+	//channel
+	ChannelApple     = "apple"
+	ChannelGoogle    = "google"
+	ChannelUniversal = "universal"
+)

+ 6 - 0
pb/constant/starrocks.go

@@ -0,0 +1,6 @@
+package constant
+
+const (
+	MysqlUser = "starrocks_user"
+	MysqlPass = "SR_Password123!"
+)

+ 78 - 0
pb/constant/topic.go

@@ -0,0 +1,78 @@
+package constant
+
+const (
+	FkTopicGameBoostOds                      = "fkey_topic_game_boost_ods"
+	FkTopicGameBoostOdsUserinfo              = "fkey_topic_game_boost_ods_userinfo"
+	FkTopicGameBoostOdsAccessDomains         = "fkey_topic_game_boost_ods_access_domains"
+	FkTopicGameBoostOdsTraffic               = "fkey_topic_game_boost_ods_traffic"
+	FkTopicGameBoostOdsRoutingNodes          = "fkey_topic_game_boost_ods_routing_nodes"
+	FkTopicGameBoostOdsPerformanceMetrics    = "fkey_topic_game_boost_ods_performance_metrics"
+	FkTopicGameBoostOdsRating                = "fkey_topic_game_boost_ods_rating"
+	FkTopicGameBoostOdsCoreConnection        = "fkey_topic_game_boost_ods_core_connection"
+	FKTopicGameBoostOdsCoreConnectionHistory = "fkey_topic_game_boost_ods_core_connection_history"
+	FkTopicGameCustomerOds                   = "fkey_topic_game_customer_ods"
+	FkTopicUserActiveOds                     = "fkey_topic_user_active_ods"
+	FkTopicUserBehaviorOds                   = "fkey_topic_user_behavior_ods"
+	FKTopicDisconnectDomainOds               = "fkey_topic_disconnect_domain_ods"    // FK disconnect domain topic
+	FKTopicFireBaseOds                       = "fkey_topic_firebase_ods"             // FK Firebase topic
+	FKTopicFireBaseTaskResultOds             = "fkey_topic_firebase_task_result_ods" // FK Firebase task result topic
+	FKTopicPeekLogOds                        = "fkey_topic_peek_log_ods"             // FK Peek log topic
+	FKTopicBoostResultOds                    = "fkey_topic_boost_result_ods"         // FK Boost result topic
+	FKTopicAdLogOds                          = "fkey_topic_ad_log_ods"               // FK Ad log topic
+	FKTopicUserUploadLogOds                  = "fkey_topic_user_upload_log_ods"
+)
+
+const (
+	STTopicUserActiveOds              = "speedtop_topic_user_active_ods"
+	STTopicUserBehaviorOds            = "speedtop_topic_user_behavior_ods"
+	STTopicBoostOds                   = "speedtop_topic_boost_ods"
+	STTopicBoostOdsUserinfo           = "speedtop_topic_boost_ods_userinfo"
+	STTopicBoostOdsAllowVpnApp        = "speedtop_topic_boost_ods_allow_vpn_app"
+	STTopicBoostOdsPerformanceMetrics = "speedtop_topic_boost_ods_performance_metrics"
+	STTopicBoostOdsReconnection       = "speedtop_topic_boost_ods_reconnection"
+	STTopicBoostOdsConnection         = "speedtop_topic_boost_ods_connection"
+	STTopicBoostOdsConnectionHistory  = "speedtop_topic_boost_ods_connection_history"
+	STTopicBoostOdsReconnectionRecord = "speedtop_topic_boost_ods_reconnection_record"
+	STTopicBoostOdsRoutingNodes       = "speedtop_topic_boost_ods_routing_nodes"
+	STTopicSpeedTestOds               = "speedtop_topic_speed_test_ods"
+	STTopicDisconnectDomainOds        = "speedtop_topic_disconnect_domain_ods"
+	STTopicFireBaseOds                = "speedtop_topic_firebase_ods"             // SpeedTop Firebase topic
+	STTopicFireBaseTaskResultOds      = "speedtop_topic_firebase_task_result_ods" // SpeedTop Firebase task result topic
+	STTopicPeekLogOds                 = "speedtop_topic_peek_log_ods"             // SpeedTop Peek log topic
+	STTopicBoostResultOds             = "speedtop_topic_boost_result_ods"         // SpeedTop Boost result topic
+	STTopicAdLogOds                   = "speedtop_topic_ad_log_ods"               // SpeedTop Ad log topic
+	STTopicUserUploadLogOds           = "speedtop_topic_user_upload_log_ods"
+)
+
+const (
+	RingTopicUserActiveOds         = "ringplus_topic_user_active_ods"
+	RingTopicUserBehaviorOds       = "ringplus_topic_user_behavior_ods"
+	RingTopicAccessLogOds          = "ringplus_topic_access_log_ods"
+	RingTopicProbeAnalysisLogOds   = "ringplus_topic_probe_analysis_log_ods"
+	RingTopicDownLogOds            = "ringplus_topic_down_log_ods"
+	RingTopicUpgradeResLogOds      = "ringplus_topic_upgrade_log_res_ods"
+	RingTopicDisconnectDomainOds   = "ringplus_topic_disconnect_domain_ods"    // RingPlus disconnect domain topic
+	RingTopicApiLogOds             = "ringplus_topic_api_log_ods"              // RingPlus API log topic
+	RingTopicAPiLogOdsResult       = "ringplus_topic_api_log_ods_result"       // RingPlus API log result topic
+	RingTopicFireBaseOds           = "ringplus_topic_firebase_ods"             // RingPlus Firebase topic
+	RingTopicFireBaseTaskResultOds = "ringplus_topic_firebase_task_result_ods" // RingPlus Firebase task result topic
+	RingTopicUserUploadLogOds      = "ringplus_topic_user_upload_log_ods"
+	RingTopicIssueLogOds           = "ringplus_topic_issue_log_ods"
+)
+
+const (
+	ZDTopicUserActiveOds              = "zipdrama_topic_user_active_ods"
+	ZDTopicIssueOds                   = "zipdrama_topic_issue_ods"                      // ZipDrama issue topic
+	ZDTopicAppErrOds                  = "zipdrama_topic_app_err_ods"                    // ZipDrama app err topic
+	ZDTopicBizErrOds                  = "zipdrama_topic_biz_err_ods"                    // ZipDrama biz err topic
+	ZDTopicLauncherResultOds          = "zipdrama_topic_launcher_result_ods"            // ZipDrama launcher result topic
+	ZDTopicDramaCollectionResultOds   = "zipdrama_topic_drama_collection_result_ods"    // ZipDrama drama collection result topic
+	ZDTopicDramaShareResultOds        = "zipdrama_topic_drama_share_result_ods"         // ZipDrama drama share result topic
+	ZDTopicDramaStartPlayEventOds     = "zipdrama_topic_drama_start_play_event_ods"     // ZipDrama drama start play event topic
+	ZDTopicDramaEpisodePlayedEventOds = "zipdrama_topic_drama_episode_played_event_ods" // ZipDrama drama episode played event topic
+	ZDTopicDanmakuOds                 = "zipdrama_topic_danmaku_ods"                    // ZipDrama danmaku topic
+	ZDTopicDanmakuReviewOds           = "zipdrama_topic_review_ods"                     // ZipDrama danmaku review topic
+	ZDTopicDanmakuReviewResultOds     = "zipdrama_topic_review_result_ods"              // ZipDrama danmaku review result topic
+	ZDTopicUserUploadLogOds           = "zipdrama_topic_user_upload_log_ods"
+	ZDTopicDownloadOds                = "zipdrama_topic_download_ods"
+)

+ 69 - 0
pb/constant/user.go

@@ -0,0 +1,69 @@
+package constant
+
+// 用户JWTToken里的key信息
+const (
+	UserMemberLevelKey = "memberLevel"
+	UserUserNameKey    = "username"
+	UserUuid           = "userUuid"
+	UserDeviceIdKey    = "deviceId"
+	UserCountryKey     = "country"
+	UserAccountKey     = "accountKey"
+	UserAccountPwdKey  = "accountPassword"
+	UserCreateTimeKey  = "createTime"
+	UserIpKey          = "userIp"
+	UserStatus         = "userStatus"
+	UserActiveStatus   = "userActiveStatus"
+	UserRegistModeKey  = "UserRegistModeKey"
+	UserProviderKey    = "UserProviderKey"
+)
+
+// 白名单用户
+const (
+	WhitelistNormalUser = 1
+	WhitelistUser       = 2
+)
+
+// 测试用户
+const (
+	TestNormalUser = 1
+	TestUser       = 2
+)
+
+// 会员类型,游客 1,普通会员 2
+const (
+	UserMemberVisitorLevel0 = 1
+	UserMemberAccountLevel  = 2
+)
+
+type UserLevel int64
+
+// 用户等级
+const (
+	UserUnknown       UserLevel = 0    // 未知
+	UserLevelTrial    UserLevel = 1    // 试用 1
+	UserLevelFree     UserLevel = 2    // 免费 2
+	UserLevelMember   UserLevel = 3    // 会员 3
+	UserLevelInternal UserLevel = 9999 // 内部 9999
+)
+
+const (
+	AccountActivate   = 1
+	AccountUnActivate = 2
+)
+
+const (
+	SubscribeTypeSubscribe = 1 //订阅
+	SubscribeTypeCheckout  = 2 //结算
+	SubscribeTypeAuthCode  = 5 //授权码的方式
+	SubscribeTypeDirect    = 8 //直接授权
+)
+
+// 支付渠道: alipay-支付宝,wechat-微信,appstore-苹果支付,googleplay-谷歌支付,agent,portal-其他
+const (
+	PayChannelAlipay     = "alipay"
+	PayChannelWechat     = "wechat"
+	PayChannelAppstore   = "appstore"
+	PayChannelGooglePlay = "googleplay"
+	PayChannelAgent      = "agent"  // 代理商
+	PayChannelPortal     = "portal" //如:官网调用
+)

+ 167 - 0
pb/game.proto

@@ -0,0 +1,167 @@
+syntax = "proto3";
+
+package gorpc;
+option go_package = "git.goio.dev/pb/go-service-pb/client";
+
+
+import "pb/common.proto";
+
+message GameVo {
+  int64 id = 1;
+  string name = 2;
+  string pkg = 3;
+  string categories = 4;
+  string icon = 5;
+  string internal_icon = 6;
+  string source_icon = 7;
+  int64 status = 8;
+  int64 state = 9;
+  int64 enableRating = 10;
+  int64 gameUpdateTime = 11;
+  int64 gameBoostCount = 12;
+  string gameBoostCountryCount = 13;
+  int64 createTime = 14;
+  int64 updateTime = 15;
+}
+
+message GameReq { GameVo vo = 1; }
+message GameListReq {
+  Page page = 1;
+  repeated string pkgs = 2;
+  GameVo vo = 3;
+}
+message GameListRes {
+  int64 total = 1;
+  repeated GameVo list = 2;
+}
+
+message RelGameRankVo {
+  int64 id = 1;
+  int64 gameId = 2;
+  int64 rankId = 3;
+  int64 weight = 4;
+  int64 createTime = 5;
+  int64 updateTime = 6;
+}
+
+message RelGameRankReq { RelGameRankVo vo = 1; }
+message RelGameRankListReq {
+  Page page = 1;
+  RelGameRankVo vo = 2;
+}
+message RelGameRankListRes {
+  int64 total = 1;
+  repeated RelGameRankVo list = 2;
+}
+
+message RelGameVpnGroupVo {
+  int64 id = 1;
+  int64 gameId = 2;
+  string productCode = 3;
+  int64 vpnGroupId = 4;
+  int64 status = 5;
+  int64 createTime = 6;
+  int64 updateTime = 7;
+}
+
+message RelGameVpnGroupReq { RelGameVpnGroupVo vo = 1; }
+message RelGameVpnGroupListReq {
+  repeated int64 gameIds = 1;
+  RelGameVpnGroupVo vo = 2;
+}
+message RelGameVpnGroupListRes {
+  int64 total = 1;
+  repeated RelGameVpnGroupVo list = 2;
+}
+
+message GameRedisHScanByNameReq {
+  string name = 1;
+  int64 cursor =2;
+  int64 count =3;
+}
+
+message GameRedisHScanByNameResp {
+  repeated int64 ids = 1;
+  int64 cursor =2;
+}
+
+message GameCustomerVo {
+  int64 id = 1;
+  string name = 2;
+  string pkg = 3;
+  string icon = 4;
+  int64 createTime = 5;
+  int64 updateTime = 6;
+}
+
+message GameCustomerListReq {
+  Page page = 1;
+  repeated string pkgs = 2;
+  GameCustomerVo vo = 3;
+}
+message GameCustomerListRes {
+  int64 total = 1;
+  repeated GameCustomerVo list = 2;
+}
+
+message GameCustomerAddResp {
+  GameCustomerVo vo =1;
+  bool ExistBoost =2;
+}
+
+message GameCategoryVo {
+  int64 id = 1;
+  string code =2;
+  string name = 3;
+  string described = 4;
+  int64 createTime = 5;
+  int64 updateTime = 6;
+}
+
+message GameCategoryReq { GameCategoryVo vo = 1; }
+message GameCategoryListReq {
+  Page page = 1;
+  GameCategoryVo vo = 3;
+}
+message GameCategoryListRes {
+  int64 total = 1;
+  repeated GameCategoryVo list = 2;
+}
+
+service GoGameClient {
+  // 加速器游戏管理
+  rpc GameAdd(GameVo) returns (GameVo);
+  rpc GameUpdate(GameVo) returns (Empty);
+  rpc GameDel(Ids) returns (Empty);
+  rpc GameGet(GameReq) returns (GameVo);
+  rpc GameList(GameListReq) returns (GameListRes);
+  rpc GameAll(Request) returns (GameListRes);
+  rpc GameRedisHScanByName(GameRedisHScanByNameReq) returns (GameRedisHScanByNameResp);
+
+  // 游戏榜单关联关系
+  rpc RelGameRankAdd(RelGameRankVo) returns (RelGameRankVo);
+  rpc RelGameRankUpdate(RelGameRankVo) returns (Empty);
+  rpc RelGameRankDel(Ids) returns (Empty);
+  rpc RelGameRankGet(RelGameRankReq) returns (RelGameRankVo);
+  rpc RelGameRankList(RelGameRankListReq) returns (RelGameRankListRes);
+
+  // 游戏地域关联关系
+  rpc RelGameVpnGroupAdd(RelGameVpnGroupVo) returns (RelGameVpnGroupVo);
+  rpc RelGameVpnGroupUpdate(RelGameVpnGroupVo) returns (Empty);
+  rpc RelGameVpnGroupDel(Ids) returns (Empty);
+  rpc RelGameVpnGroupGet(RelGameVpnGroupReq) returns (RelGameVpnGroupVo);
+  rpc RelGameVpnGroupList(RelGameVpnGroupListReq) returns (RelGameVpnGroupListRes);
+
+  // 用户提交游戏
+  rpc GameCustomerList(GameCustomerListReq) returns (GameCustomerListRes);
+  rpc GameCustomerAdd(GameCustomerVo) returns (GameCustomerAddResp);
+  rpc GameCustomerDel(Ids) returns (Empty);
+
+  rpc GameCategoryAdd(GameCategoryVo) returns (GameCategoryVo);
+  rpc GameCategoryUpdate(GameCategoryVo) returns (Empty);
+  rpc GameCategoryDel(Ids) returns (Empty);
+  rpc GameCategoryGet(GameCategoryReq) returns (GameCategoryVo);
+  rpc GameCategoryList(GameCategoryListReq) returns (GameCategoryListRes);
+  rpc GameCategoryAll(Request) returns (GameCategoryListRes);
+
+}

+ 2331 - 0
pb/gorpc.proto

@@ -0,0 +1,2331 @@
+syntax = "proto3";
+
+package gorpc;
+option go_package = "./pb";
+
+
+
+enum RegisterMode {
+  RegisterModeUnknown = 0;
+  RegisterModeGuest = 1;
+  RegisterModeApp = 2;
+  RegisterModeWeb = 3;
+  RegisterModePc = 4;
+  RegisterModeInvalid = 9999;
+}
+
+// enum Provider {
+//   ProviderUnknown = 0;
+//   ProviderGoogle = 1;
+//   ProviderApple = 2;
+//   ProviderMeta = 3;
+//   ProviderGithub = 4;
+// }
+
+
+
+// 根据需要增加状态
+enum CommonResultCode {
+  Success = 0;
+}
+
+enum Status {
+  UnknownStatus = 0;
+  StatusValid = 1;
+  StatusInValid = 2;
+}
+
+enum BoolInt {
+  BoolIntUnknown = 0;
+  BoolIntTrue = 1;
+  BoolIntFalse = 2;
+}
+
+message Empty {}
+
+message Int64SelectController {
+  repeated int64 values = 1;
+  bool exclude = 2;
+}
+
+message IntSelectController {
+  repeated int32 values = 1;
+  bool exclude = 2;
+}
+
+message StringSelectController {
+  repeated string values = 1;
+  bool exclude = 2;
+}
+
+message Page {
+  message OrderItem {
+    string column = 1;
+    bool asc = 2;
+    bool isFunc = 3;
+  }
+
+  int64 pageNo = 1;
+  int64 pageSize = 2;
+  int64 startTime = 3;
+  int64 endTime = 4;
+  repeated OrderItem sortBy = 5;
+
+  bool ignoreTotal = 6; // 忽略总条数
+
+  bool ignoreStat = 7; // 忽略总条数
+  bool ignoreList = 8; // 忽略列表
+  repeated int64 ids = 9;
+  repeated string groupBy = 10;
+}
+
+message CommonResult {
+  CommonResultCode code = 1;
+  string msg = 2;
+}
+
+message BaseReq {
+  int64 timeZoneOffset = 1;
+  string lan = 2;
+}
+
+message DeleteIdResp { repeated int64 failedIds = 1; }
+message Ids { repeated int64 ids = 1; }
+
+message Request {}
+
+message Response { string msg = 1; }
+
+message TransactionOperation {
+  string table = 1;   // 表名
+  string operate = 2; // delete,insert,update
+  string data = 3;    // json格式
+}
+
+message TransactionReq { repeated TransactionOperation transactions = 1; }
+
+
+
+
+message GameVo {
+  int64 id = 1;
+  string name = 2;
+  string pkg = 3;
+  string categories = 4;
+  string icon = 5;
+  string internal_icon = 6;
+  string source_icon = 7;
+  int64 status = 8;
+  int64 state = 9;
+  int64 enableRating = 10;
+  int64 gameUpdateTime = 11;
+  int64 gameBoostCount = 12;
+  string gameBoostCountryCount = 13;
+  int64 createTime = 14;
+  int64 updateTime = 15;
+}
+
+message GameReq { GameVo vo = 1; }
+message GameListReq {
+  Page page = 1;
+  repeated string pkgs = 2;
+  GameVo vo = 3;
+}
+message GameListRes {
+  int64 total = 1;
+  repeated GameVo list = 2;
+}
+
+message RelGameRankVo {
+  int64 id = 1;
+  int64 gameId = 2;
+  int64 rankId = 3;
+  int64 weight = 4;
+  int64 createTime = 5;
+  int64 updateTime = 6;
+}
+
+message RelGameRankReq { RelGameRankVo vo = 1; }
+message RelGameRankListReq {
+  Page page = 1;
+  RelGameRankVo vo = 2;
+}
+message RelGameRankListRes {
+  int64 total = 1;
+  repeated RelGameRankVo list = 2;
+}
+
+message RelGameVpnGroupVo {
+  int64 id = 1;
+  int64 gameId = 2;
+  string productCode = 3;
+  int64 vpnGroupId = 4;
+  int64 status = 5;
+  int64 createTime = 6;
+  int64 updateTime = 7;
+}
+
+message RelGameVpnGroupReq { RelGameVpnGroupVo vo = 1; }
+message RelGameVpnGroupListReq {
+  repeated int64 gameIds = 1;
+  RelGameVpnGroupVo vo = 2;
+}
+message RelGameVpnGroupListRes {
+  int64 total = 1;
+  repeated RelGameVpnGroupVo list = 2;
+}
+
+message GameRedisHScanByNameReq {
+  string name = 1;
+  int64 cursor =2;
+  int64 count =3;
+}
+
+message GameRedisHScanByNameResp {
+  repeated int64 ids = 1;
+  int64 cursor =2;
+}
+
+message GameCustomerVo {
+  int64 id = 1;
+  string name = 2;
+  string pkg = 3;
+  string icon = 4;
+  int64 createTime = 5;
+  int64 updateTime = 6;
+}
+
+message GameCustomerListReq {
+  Page page = 1;
+  repeated string pkgs = 2;
+  GameCustomerVo vo = 3;
+}
+message GameCustomerListRes {
+  int64 total = 1;
+  repeated GameCustomerVo list = 2;
+}
+
+message GameCustomerAddResp {
+  GameCustomerVo vo =1;
+  bool ExistBoost =2;
+}
+
+message GameCategoryVo {
+  int64 id = 1;
+  string code =2;
+  string name = 3;
+  string described = 4;
+  int64 createTime = 5;
+  int64 updateTime = 6;
+}
+
+message GameCategoryReq { GameCategoryVo vo = 1; }
+message GameCategoryListReq {
+  Page page = 1;
+  GameCategoryVo vo = 3;
+}
+message GameCategoryListRes {
+  int64 total = 1;
+  repeated GameCategoryVo list = 2;
+}
+
+service GoGameClient {
+  // 加速器游戏管理
+  rpc GameAdd(GameVo) returns (GameVo);
+  rpc GameUpdate(GameVo) returns (Empty);
+  rpc GameDel(Ids) returns (Empty);
+  rpc GameGet(GameReq) returns (GameVo);
+  rpc GameList(GameListReq) returns (GameListRes);
+  rpc GameAll(Request) returns (GameListRes);
+  rpc GameRedisHScanByName(GameRedisHScanByNameReq) returns (GameRedisHScanByNameResp);
+
+  // 游戏榜单关联关系
+  rpc RelGameRankAdd(RelGameRankVo) returns (RelGameRankVo);
+  rpc RelGameRankUpdate(RelGameRankVo) returns (Empty);
+  rpc RelGameRankDel(Ids) returns (Empty);
+  rpc RelGameRankGet(RelGameRankReq) returns (RelGameRankVo);
+  rpc RelGameRankList(RelGameRankListReq) returns (RelGameRankListRes);
+
+  // 游戏地域关联关系
+  rpc RelGameVpnGroupAdd(RelGameVpnGroupVo) returns (RelGameVpnGroupVo);
+  rpc RelGameVpnGroupUpdate(RelGameVpnGroupVo) returns (Empty);
+  rpc RelGameVpnGroupDel(Ids) returns (Empty);
+  rpc RelGameVpnGroupGet(RelGameVpnGroupReq) returns (RelGameVpnGroupVo);
+  rpc RelGameVpnGroupList(RelGameVpnGroupListReq) returns (RelGameVpnGroupListRes);
+
+  // 用户提交游戏
+  rpc GameCustomerList(GameCustomerListReq) returns (GameCustomerListRes);
+  rpc GameCustomerAdd(GameCustomerVo) returns (GameCustomerAddResp);
+  rpc GameCustomerDel(Ids) returns (Empty);
+
+  rpc GameCategoryAdd(GameCategoryVo) returns (GameCategoryVo);
+  rpc GameCategoryUpdate(GameCategoryVo) returns (Empty);
+  rpc GameCategoryDel(Ids) returns (Empty);
+  rpc GameCategoryGet(GameCategoryReq) returns (GameCategoryVo);
+  rpc GameCategoryList(GameCategoryListReq) returns (GameCategoryListRes);
+  rpc GameCategoryAll(Request) returns (GameCategoryListRes);
+
+}
+
+
+
+message I18nVo {
+  string code = 1;
+  string value = 2;
+}
+
+message ConfigGetReq {
+  int64 id = 1;    // ID
+  string code = 2; // 类型标识
+}
+
+// GlobalParam
+message GlobalParamVo {
+  int64 id = 1;
+  string paramKey = 2;
+  string paramValue = 3;
+  string valueType = 4;
+  float minValue = 5;
+  float maxValue = 6;
+  string name = 7;
+  BoolInt editable = 8;
+  BoolInt nullable = 9;
+  BoolInt hidden = 10;
+  BoolInt mutiLang = 11;
+  int64 sort = 12;
+  string remark = 13;
+  BoolInt apiExport = 14;
+  string apiExportName = 15;
+  int64 createTime = 16;
+  int64 updateTime = 17;
+  // valueType 为 string、text、json、string[], 且 mutiLang 为 true
+  // 时,需要同时干查询/修改/插入多语言数据
+  repeated I18nVo i18ns = 18;
+}
+
+message GlobalParamGetReq {
+  GlobalParamVo vo = 1;
+  string lang = 2;
+}
+
+message GlobalParamListReq {
+  Page page = 1;
+  GlobalParamVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+};
+
+message GlobalParamListResp {
+  int64 total = 1;
+  repeated GlobalParamVo list = 2;
+};
+// end GlobalParam
+
+// Product
+message ProductVo {
+  int64 id = 1;
+  string code = 2;
+  string name = 3;
+  string domain = 4;
+  Status status = 5;
+  string langs = 6;
+  string defaultLang = 7;
+  string remark = 8;
+  int64 createTime = 9;
+  int64 updateTime = 10;
+}
+
+message ProductListReq {
+  Page page = 1;
+  ProductVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message ProductListResp {
+  int64 total = 1;
+  repeated ProductVo list = 2;
+}
+// end Product
+
+// ProductParam
+message ProductParamVo {
+  int64 id = 1;
+  string productCode = 2;
+  string paramKey = 3;
+  string paramValue = 4;
+  string valueType = 5;
+  float minValue = 6;
+  float maxValue = 7;
+  string name = 8;
+  BoolInt editable = 9;
+  BoolInt nullable = 10;
+  BoolInt hidden = 11;
+  BoolInt mutiLang = 12;
+  int64 sort = 13;
+  string remark = 14;
+  BoolInt apiExport = 15;
+  string apiExportName = 16;
+  int64 createTime = 17;
+  int64 updateTime = 18;
+  // valueType 为 string、text、json、string[], 且 mutiLang 为 true
+  // 时,需要同时干查询/修改/插入多语言数据
+  repeated I18nVo i18ns = 19;
+}
+
+message ProductParamGetReq {
+  ProductParamVo vo = 1;
+  string lang = 2;
+}
+
+message ProductParamListReq {
+  Page page = 1;
+  ProductParamVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+};
+
+message ProductParamListResp {
+  int64 total = 1;
+  repeated ProductParamVo list = 2;
+};
+// end ProductParam
+
+// ProductAction
+message ProductActionVo {
+  int64 id = 1;
+  string productCode = 2;
+  string imgUrl = 3;
+  string actionType = 4;
+  string actionData = 5;
+  string title = 6;
+  Status status = 7;
+  int64 createTime = 8;
+  int64 updateTime = 9;
+  int64 sort = 10;
+}
+
+message ProductActionReq { ProductActionVo vo = 1; }
+message ProductActionListReq {
+  Page page = 1;
+  ProductActionVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+message ProductActionListResp {
+  int64 total = 1;
+  repeated ProductActionVo list = 2;
+}
+// end ProductAction
+
+// AreaParam
+message AreaParamVo {
+  int64 id = 1;
+  string productCode = 2;
+  string name = 3;
+  string areas = 4;
+  string paramValue = 5;
+  Status status = 6;
+  int64 sort = 7;
+  string remark = 8;
+  int64 createTime = 9;
+  int64 updateTime = 10;
+  string version = 11;
+}
+
+message AreaParamListReq {
+  Page page = 1;
+  AreaParamVo vo = 2;
+  repeated string productCodes = 3; // 产品code
+  repeated int64 excludeIds = 4;    // 排除的ID
+}
+
+message AreaParamListResp {
+  int64 total = 1;
+  repeated AreaParamVo list = 2;
+}
+// end AreaParam
+
+// NationalLanguage
+message NationalLanguageVo {
+  int64 id = 1;
+  string tbName = 2;
+  int64 tbRowId = 3;
+  string tbFieldName = 4;
+  string lan = 5;
+  string value = 6;
+  Status status = 7;
+  int64 updateTime = 8;
+  int64 createTime = 9;
+}
+
+message NationalLanguageListReq {
+  Page page = 1;
+  NationalLanguageVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+}
+
+message NationalLanguageListResp {
+  int64 total = 1;
+  repeated NationalLanguageVo list = 2;
+}
+// end NationalLanguage
+
+// Tip
+message TipVo {
+  int64 id = 1;
+  string productCode = 2;
+  string paramKey = 3;
+  string paramValue = 4;
+  string code = 5;
+  int64 showType = 6;
+  int64 sort = 7;
+  string remark = 8;
+  int64 createTime = 9;
+  int64 updateTime = 10;
+  repeated I18nVo i18ns = 11;
+}
+
+message TipGetReq {
+  TipVo vo = 1;
+  string lang = 2;
+}
+
+message TipListReq {
+  Page page = 1;
+  TipVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4; // 排除的ID
+}
+
+message TipListResp {
+  int64 total = 1;
+  repeated TipVo list = 2;
+}
+// end Tip
+
+// Dict
+message DictVo {
+  int64 id = 1;
+  string productCode = 2;
+  int64 parentId = 3;
+  string dataType = 4;
+  string name = 5;
+  string payload = 6;
+  int64 sort = 7;
+  Status status = 8;
+  string remark = 9;
+  int64 createTime = 10;
+  int64 updateTime = 11;
+  string payloadJson = 12;
+}
+
+message DictGetReq { DictVo vo = 1; }
+
+message DictListReq {
+  Page page = 1;
+  DictVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message DictListResp {
+  int64 total = 1;
+  repeated DictVo list = 2;
+}
+// end Dict
+
+// message UpgradeResVo {
+//   int64 id = 1;
+//   string title = 2;
+//   string path = 3;
+//   string fileMd5 = 4;
+//   string filePath = 5;
+//   string metadataId = 6;
+//   string createdAt = 7;
+//   string runtimeVersion = 8;
+//   int64 runtimeVersionCode = 9;
+//   string appVersionName = 10;
+//   int64 appVersionCode = 11;
+//   Status status = 12;
+//   string remark = 13;
+//   int64 createTime = 14;
+//   int64 updateTime = 15;
+//   int64 resSize = 16;
+// }
+
+// message UpgradeResConfigVo {
+//   int64 id = 1;
+//   int64 productId = 2;
+//   string platform = 3;
+//   string channel = 4;
+//   int64 resId = 5;
+//   int64 isForceUpdate = 6;
+//   string forceIntro = 7;
+//   string areaConfigs = 8;
+//   string versionConfigs = 9;
+//   int64 interval = 10;
+//   int64 upgradeRate = 11;
+//   string intro = 12;
+//   string apis = 13;
+//   Status status = 14;
+//   string remark = 15;
+//   string userIds = 16;
+//   int64 createTime = 17;
+//   int64 updateTime = 18;
+//   string forceVersionConfigs = 19;
+//   string forceAreaConfigs = 20;
+//   string runtimeVersionConfigs = 21;
+//   string title = 22;
+//   int64 isSilent = 23;
+// }
+
+// message UpgradePkgVo {
+//   int64 id = 1;
+//   int64 productId = 2;
+//   string platform = 3;
+//   string channel = 4;
+//   int64 versionCode = 5;
+//   string versionName = 6;
+//   string fileMd5 = 7;
+//   string areaConfigs = 8;
+//   string versionConfigs = 9;
+//   int64 interval = 10;
+//   int64 upgradeRate = 11;
+//   string intro = 12;
+//   string appStoreUrl = 13;
+//   string url = 14;
+//   string onlineUrls = 15;
+//   string userIds = 16;
+//   int64 isForceUpdate = 17;
+//   string forceIntro = 18;
+//   string forceVersionConfigs = 19;
+//   Status status = 20;
+//   string remark = 21;
+//   int64 createTime = 22;
+//   int64 updateTime = 23;
+//   string title = 24;
+//   string forceAreaConfigs = 25;
+// }
+
+// message UpgradeResConfigGetReq {
+//   Page page = 1;
+//   int64 id = 2;
+// }
+
+// message UpgradeResConfigListReq {
+//   Page page = 1;
+//   UpgradeResConfigVo vo = 2;
+// }
+
+// message UpgradeResConfigListResp {
+//   int64 total = 1;
+//   repeated UpgradeResConfigVo list = 2;
+// }
+
+// message UpgradePkgGetReq { UpgradePkgVo vo = 1; }
+
+// message UpgradePkgListReq {
+//   Page page = 1;
+//   UpgradePkgVo vo = 2;
+// }
+
+// message UpgradePkgListResp {
+//   int64 total = 1;
+//   repeated UpgradePkgVo list = 2;
+// }
+
+// message UpgradeResGetReq { UpgradeResVo vo = 1; }
+
+// message UpgradeResListReq {
+//   Page page = 1;
+//   UpgradeResVo vo = 2;
+// }
+// message UpgradeResListResp {
+//   int64 total = 1;
+//   repeated UpgradeResVo list = 2;
+// }
+
+// message ResourceDelReq {
+//   repeated int64 ids = 1;
+//   string fileMd5 = 2;
+// }
+
+// UpgradePkgPlan
+message UpgradePkgPlanVo {
+  int64 id = 1;
+  string productCode = 2; // 产品code
+  string areas = 3;       // 地区列表
+  int64 sort = 4;
+  Status status = 5; // 状态
+  string remark = 6;
+  int64 createTime = 7;
+  int64 updateTime = 8;
+}
+
+message UpgradePkgPlanListReq {
+  Page page = 1;
+  UpgradePkgPlanVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message UpgradePkgPlanListResp {
+  int64 total = 1;
+  repeated UpgradePkgPlanVo list = 2;
+}
+// end UpgradePkgPlan
+
+// UpgradePkgPlanDetail
+message UpgradePkgPlanDetailVo {
+  int64 id = 1;
+  int64 planId = 2;                     // 方案ID
+  string platform = 3;                  // 平台
+  string channel = 4;                   // 渠道
+  string name = 5;                      // 名称
+  int64 ver = 6;                        // 版本号
+  string url = 7;                       // 商店地址
+  string websiteUrl = 8;                // 官网地址
+  string directUrl = 9;                 // 直接下载地址
+  string md5 = 10;                      // MD5
+  string info = 11;                     // 更新信息
+  string testUpgradePolicyConfig = 12;  // 测试更新策略配置
+  string upgradePolicyConfig = 13;      // 更新策略配置
+  string forceUpgradePolicyConfig = 14; // 强制更新策略
+  Status status = 15;                   // 状态
+  string remark = 16;
+  int64 createTime = 17;
+  int64 updateTime = 18;
+}
+
+message UpgradePkgPlanDetailListReq {
+  Page page = 1;
+  UpgradePkgPlanDetailVo vo = 2;
+  repeated int64 planIds = 3;
+}
+
+message UpgradePkgPlanDetailListResp {
+  int64 total = 1;
+  repeated UpgradePkgPlanDetailVo list = 2;
+}
+// end UpgradePkgPlanDetail
+
+// UpgradeResPlan
+message UpgradeResPlanVo {
+  int64 id = 1;
+  string productCode = 2; // 产品code
+  string areas = 3;       // 地区列表
+  int64 sort = 4;
+  Status status = 5; // 状态
+  string remark = 6;
+  int64 createTime = 7;
+  int64 updateTime = 8;
+}
+
+message UpgradeResPlanListReq {
+  Page page = 1;
+  UpgradeResPlanVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message UpgradeResPlanListResp {
+  int64 total = 1;
+  repeated UpgradeResPlanVo list = 2;
+}
+// end UpgradeResPlan
+
+// UpgradeResPlanDetail
+message UpgradeResPlanDetailVo {
+  int64 id = 1;                         // ID
+  int64 planId = 2;                     // 方案ID
+  string platform = 3;                  // 平台
+  string channel = 4;                   // 渠道
+  string name = 5;                      // 名称
+  int64 ver = 6;                        // 资源版本号
+  string url = 7;                       // 资源地址
+  string info = 8;                      // 更新信息
+  string md5 = 9;                       // 资源 md5值
+  int64 size = 10;                      // 资源大小
+  string testUpgradePolicyConfig = 11;  // 测试更新策略配置
+  string upgradePolicyConfig = 12;      // 更新策略配置
+  string forceUpgradePolicyConfig = 13; // 强制更新策略
+  Status status = 14;                   // 状态,1=正常,2=冻结
+  string remark = 15;                   // 备注
+  int64 createTime = 16;                // 创建时间秒
+  int64 updateTime = 17;                // 修改时间秒
+}
+
+message UpgradeResPlanDetailListReq {
+  Page page = 1;
+  UpgradeResPlanDetailVo vo = 2;
+  repeated int64 planIds = 3;
+}
+
+message UpgradeResPlanDetailListResp {
+  int64 total = 1;
+  repeated UpgradeResPlanDetailVo list = 2;
+}
+// end UpgradeResPlanDetail
+
+// AdPlan
+message AdPlanVo {
+  int64 id = 1;
+  string productCode = 2; // 产品code
+  string areas = 3;       // 地区列表
+  string config = 4;      // 配置
+  int64 sort = 5;
+  Status status = 6; // 状态
+  string remark = 7;
+  int64 createTime = 8;
+  int64 updateTime = 9;
+}
+
+message AdPlanListReq {
+  Page page = 1;
+  AdPlanVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message AdPlanListResp {
+  int64 total = 1;
+  repeated AdPlanVo list = 2;
+}
+// end AdPlan
+
+// AdPlanDetail
+message AdPlanDetailVo {
+  int64 id = 1;
+  int64 planId = 2;            // 方案ID
+  string adPlatform = 3;       // 平台
+  string adType = 4;           // 广告类型
+  string adSlot = 5;           // 广告位置
+  string adDatas = 6;          // 广告资源
+  string testPolicyConfig = 7; // 策略配置
+  string policyConfig = 8;     // 策略配置
+  int64 sort = 9;              // 排序
+  Status status = 10;          // 0未知,1正常,2暂停
+  string remark = 11;
+  int64 createTime = 12;
+  int64 updateTime = 13;
+  string version = 14;
+}
+
+message AdPlanDetailListReq {
+  Page page = 1;
+  AdPlanDetailVo vo = 2;
+  repeated int64 planIds = 3;
+}
+
+message AdPlanDetailListResp {
+  int64 total = 1;
+  repeated AdPlanDetailVo list = 2;
+}
+// end AdPlanDetail
+
+// AdGlobalConfig
+message AdGlobalConfigVo {
+  int64 id = 1;
+  string productCode = 2;     // 产品code
+  string platforms = 3;       // 按平台分类的广告配置JSON
+  string remark = 4;          // 备注
+  int64 createTime = 5;       // 创建时间
+  int64 updateTime = 6;       // 更新时间
+}
+
+message AdGlobalConfigGetReq {
+  string productCode = 1;     // 产品代码
+}
+// end AdGlobalConfig
+
+// JobBatch
+message JobBatchVo {
+  int64 id = 1;          // ID
+  string name = 2;       // 作业名称
+  string type = 3;       // 作业类型
+  string initParams = 4; // 作业初始化参数
+  string contextData =
+      5; // 上下文数据,可用于存储此次批量作业的任务过程中产生的通用的中间数据
+  string beginHandler = 6; // 预处理函数/URL
+  string afterHandler = 7; // 后处理函数/URL
+  int64 concurrency = 8;   // 并发控制数
+  string retryPolicy = 9;  // 子任务重试策略
+  int64 startedTime = 10;  // 批量作业开始时间
+  int64 finishedTime = 11; // 批量作业完成时间
+  string result = 12;      // 批量作业返回结果
+  string status = 13;      // 批量作业完成状态
+  string remark = 14;      // 备注
+  int64 createAt = 15;     // 创建者ID
+  int64 updateAt = 16;     // 更新者ID
+  int64 createTime = 17;   // 创建时间
+  int64 updateTime = 18;   // 更新时间
+}
+
+message JobBatchWithTasksVo {
+  JobBatchVo jobBatch = 1;
+  repeated JobTasksVo jobTasks = 2;
+}
+
+message TimeRange {
+  int64 start = 1;
+  int64 end = 2;
+}
+
+message JobBatchListReq {
+  Page page = 1;
+  JobBatchVo vo = 2;
+  TimeRange startedTimeRange = 3;
+  TimeRange finishedTimeRange = 4;
+  repeated string statuses = 5;
+  repeated int64 excludeIds = 6;
+}
+
+message JobBatchListResp {
+  int64 total = 1;
+  repeated JobBatchVo list = 2;
+}
+
+message JobBatchListWithTasksResp {
+  int64 total = 1;
+  repeated JobBatchWithTasksVo list = 2;
+}
+// end JobBatch
+
+// JobTasks
+message JobTasksVo {
+  int64 id = 1;          // 任务id
+  int64 batchId = 2;     // 批量作业Id
+  string name = 3;       // 任务名称
+  string initParams = 4; // 任务初始化配置及数据
+  string runtimeData =
+      5; // 任务运行时数据,用于临时存储任务过程中各个关键节点的中间数据
+  string externalRefs = 6; // 外部系统引用,用于记录与外部系统交互产生的关联标识
+  int64 startedTime = 7;   // 任务开始时间
+  int64 finishedTime = 8;  // 任务结束时间
+  int64 retryCount = 9;    // 当前已重试次数
+  string result = 10;      // 任务执行结果
+  string status = 11;      // 任务状态
+  string remark = 12;      // 备注
+  int64 createAt = 13;     // 创建者ID
+  int64 updateAt = 14;     // 更新者ID
+  int64 createTime = 15;   // 创建时间
+  int64 updateTime = 16;   // 更新时间
+}
+
+message JobTasksListReq {
+  Page page = 1;
+  JobTasksVo vo = 2;
+  TimeRange startedTimeRange = 3;
+  TimeRange finishedTimeRange = 4;
+  repeated string statuses = 5;
+  repeated int64 excludeIds = 6;
+}
+
+message JobTasksListResp {
+  int64 total = 1;
+  repeated JobTasksVo list = 2;
+}
+// end JobTasks
+
+// DeployConfig
+message DeployConfigVo {
+  int64 id = 1;         // ID
+  string name = 2;      // 名称
+  string type = 3;      // 类型
+  string data = 4;      // 数据
+  Status status = 5;    // 状态
+  string remark = 6;    // 备注
+  int64 createTime = 7; // 创建时间
+  int64 updateTime = 8; // 更新时间
+}
+
+message DeployConfigListReq {
+  Page page = 1;
+  DeployConfigVo vo = 2;
+  repeated int64 excludeIds = 3;
+}
+
+message DeployConfigListResp {
+  int64 total = 1;
+  repeated DeployConfigVo list = 2;
+}
+// end DeployConfig
+
+// OperationLog
+message OperationLogVo {
+  int64 id = 1;
+  int64 sysUserId = 2;
+  string productCode = 3;
+  string model = 4;
+  string action = 5;
+  string details = 6;
+  string result = 7;
+  int64 updateTime = 8;
+  int64 createTime = 9;
+}
+
+message OperationLogListReq {
+  Page page = 1;
+  OperationLogVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message OperationLogListResp {
+  int64 total = 1;
+  repeated OperationLogVo list = 2;
+}
+// end OperationLog
+
+// AnnouncePlan
+message AnnouncePlanVo {
+  int64 id = 1;
+  string productCode = 2; // 产品code
+  string areas = 3;       // 地区列表
+  int64 sort = 4;
+  Status status = 5; // 状态
+  string remark = 6;
+  int64 createTime = 7;
+  int64 updateTime = 8;
+}
+
+message AnnouncePlanListReq {
+  Page page = 1;
+  AnnouncePlanVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message AnnouncePlanListResp {
+  int64 total = 1;
+  repeated AnnouncePlanVo list = 2;
+}
+// end AnnouncePlan
+
+// AnnouncePlanDetail
+message AnnouncePlanDetailVo {
+  int64 id = 1;
+  int64 planId = 2;         // 方案ID
+  string platforms = 3;     // 平台
+  string channels = 4;      // 渠道
+  string icon = 5;          // 图标
+  string title = 6;         // 标题
+  string content = 7;       // 内容
+  string url = 8;           // 商店地址
+  string buttonText = 9;    // 按钮文本
+  int64 closeable = 10;     // 是否可关闭
+  int64 sort = 11;          // 排序
+  string policyConfig = 12; // 更新策略配置
+  Status status = 13;       // 状态
+  string remark = 14;
+  int64 createTime = 15;
+  int64 updateTime = 16;
+}
+
+message AnnouncePlanDetailListReq {
+  Page page = 1;
+  AnnouncePlanDetailVo vo = 2;
+  repeated int64 planIds = 3;
+}
+
+message AnnouncePlanDetailListResp {
+  int64 total = 1;
+  repeated AnnouncePlanDetailVo list = 2;
+}
+// end AnnouncePlanDetail
+
+// ServiceTypes
+message ServiceTypesVo {
+  int64 id = 1;
+  string productCode = 2;
+  string name = 3;
+  int64 userLevel = 4;
+  int64 deviceLimit = 5;  // 可选字段,Go中是 *int64
+  int64 sort = 6;
+  string config = 7;
+  Status status = 8;
+  string remark = 9;
+  int64 createTime = 10;
+  int64 updateTime = 11;
+}
+
+message ServiceTypesGetReq {
+  int64 id = 1;
+}
+
+message ServiceTypesListReq {
+  Page page = 1;
+  ServiceTypesVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message ServiceTypesListResp {
+  int64 total = 1;
+  repeated ServiceTypesVo list = 2;
+}
+
+message ServiceTypesAddReq {
+  ServiceTypesVo vo = 1;
+}
+
+message ServiceTypesUpdateReq {
+  ServiceTypesVo vo = 1;
+}
+
+message ServiceTypesDelReq {
+  int64 id = 1;
+}
+// end ServiceTypes
+
+// ServiceSets
+message ServiceSetsVo {
+  int64 id = 1;
+  string productCode = 2;
+  int64 serviceTypeId = 3;
+  string name = 4;
+  int64 licenseDays = 5;
+  string channel = 6;
+  string channelItemId = 7;
+  int64 refPortalServiceSetId = 8;  // Go中是 sql.int64,转换为 int64
+  string appleChannelItemId = 9;
+  string googleChannelItemId = 10;
+  string title = 11;
+  string subTitle = 12;
+  string introduce = 13;
+  float orgPrice = 14;
+  float price = 15;
+  BoolInt display = 16;
+  BoolInt isDefault = 17;
+  BoolInt recommend = 18;
+  BoolInt hidden = 19;
+  int64 sort = 20;
+  Status status = 21;
+  string remark = 22;
+  int64 createTime = 23;
+  int64 updateTime = 24;
+}
+
+message ServiceSetsGetReq {
+  int64 id = 1;
+}
+
+message ServiceSetsListReq {
+  Page page = 1;
+  ServiceSetsVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 serviceTypeIds = 4;
+  repeated int64 excludeIds = 5;
+}
+
+message ServiceSetsListResp {
+  int64 total = 1;
+  repeated ServiceSetsVo list = 2;
+}
+
+message ServiceSetsAddReq {
+  ServiceSetsVo vo = 1;
+}
+
+message ServiceSetsUpdateReq {
+  ServiceSetsVo vo = 1;
+}
+
+message ServiceSetsDelReq {
+  int64 id = 1;
+}
+// end ServiceSets
+
+message MessagePushVo {
+  int64 id = 1;
+  string status = 2;
+  int64 operator = 3;
+  string module = 4;
+  string title = 5;
+  string message = 6;
+  string imgUrl = 7;
+  string data = 8;
+  string productCode = 9;
+  int64 areaParam = 10;
+  repeated string topics = 11;
+  repeated string firebaseTokens = 12;
+  int64 publishTime = 13;
+  int64 createTime = 14;
+  int64 updateTime = 15;
+}
+
+message MessagePushListReq {
+  Page page = 1;
+  MessagePushVo vo = 2;
+}
+
+message MessagePushListResp {
+  int64 total = 1;
+  repeated MessagePushVo list = 2;
+}
+
+// 基础服务: 产品管理,产品配置,升级配置、更新资源管理,资源版本管理,全局配置
+service GoPmpClient {
+  rpc Ping(Request) returns (Response);
+
+  // GlobalParamVo
+  rpc GlobalParamAdd(GlobalParamVo) returns (GlobalParamVo);
+  rpc GlobalParamUpdate(GlobalParamVo) returns (GlobalParamVo);
+  rpc GlobalParamDel(Ids) returns (Empty);
+  rpc GlobalParamGet(GlobalParamVo) returns (GlobalParamVo); // 兼容旧接口,新版本代码中请不要调用
+  rpc GlobalParamGetWithLang(GlobalParamGetReq) returns (GlobalParamVo);
+  rpc GlobalParamList(GlobalParamListReq) returns (GlobalParamListResp);
+
+  // ProductVo
+  rpc ProductAdd(ProductVo) returns (ProductVo);
+  rpc ProductUpdate(ProductVo) returns (ProductVo);
+  rpc ProductDel(Ids) returns (Empty);
+  rpc ProductGet(ProductVo) returns (ProductVo);
+  rpc ProductList(ProductListReq) returns (ProductListResp);
+  rpc ProductAll(Request) returns (ProductListResp);
+
+  // ProductParamVo
+  rpc ProductParamAdd(ProductParamVo) returns (ProductParamVo);
+  rpc ProductParamUpdate(ProductParamVo) returns (ProductParamVo);
+  rpc ProductParamDel(Ids) returns (Empty);
+  rpc ProductParamGet(ProductParamVo) returns (ProductParamVo); // 兼容旧接口,新版本代码中请不要调用
+  rpc ProductParamGetWithLang(ProductParamGetReq) returns (ProductParamVo);
+  rpc ProductParamList(ProductParamListReq) returns (ProductParamListResp);
+
+  // ProductAction 产品行为配置
+  rpc ProductActionAdd(ProductActionVo) returns (ProductActionVo);
+  rpc ProductActionUpdate(ProductActionVo) returns (ProductActionVo);
+  rpc ProductActionDel(Ids) returns (Empty);
+  rpc ProductActionGet(ProductActionReq) returns (ProductActionVo);
+  rpc ProductActionList(ProductActionListReq) returns (ProductActionListResp);
+
+  // AreaParamVo
+  rpc AreaParamAdd(AreaParamVo) returns (AreaParamVo);
+  rpc AreaParamUpdate(AreaParamVo) returns (AreaParamVo);
+  rpc AreaParamDel(Ids) returns (Empty);
+  rpc AreaParamGet(AreaParamVo) returns (AreaParamVo);
+  rpc AreaParamList(AreaParamListReq) returns (AreaParamListResp);
+
+  // NationalLanguage
+  rpc NationalLanguageAdd(NationalLanguageVo) returns (NationalLanguageVo);
+  rpc NationalLanguageUpdate(NationalLanguageVo) returns (NationalLanguageVo);
+  rpc NationalLanguageDel(Ids) returns (Empty);
+  rpc NationalLanguageGet(NationalLanguageVo) returns (NationalLanguageVo);
+  rpc NationalLanguageList(NationalLanguageListReq)
+      returns (NationalLanguageListResp);
+
+  // Tip
+  rpc TipAdd(TipVo) returns (TipVo);
+  rpc TipUpdate(TipVo) returns (TipVo);
+  rpc TipDel(Ids) returns (Empty);
+  rpc TipGet(TipGetReq) returns (TipVo);
+  rpc TipList(TipListReq) returns (TipListResp);
+
+  // Dict
+  rpc DictAdd(DictVo) returns (DictVo);
+  rpc DictUpdate(DictVo) returns (DictVo);
+  rpc DictDel(Ids) returns (Empty);
+  rpc DictGet(DictGetReq) returns (DictVo);
+  rpc DictList(DictListReq) returns (DictListResp);
+
+  // // UpgradeRes 热更新代码资源管理
+  // rpc UpgradeResAdd(UpgradeResVo) returns (UpgradeResVo);
+  // rpc UpgradeResUpdate(UpgradeResVo) returns (Empty);
+  // rpc UpgradeResDel(ResourceDelReq) returns (Empty);
+  // rpc UpgradeResGet(UpgradeResGetReq) returns (UpgradeResVo);
+  // rpc UpgradeResList(UpgradeResListReq) returns (UpgradeResListResp);
+
+  // // UpgradePkg app 包更新管理
+  // rpc UpgradePkgAdd(UpgradePkgVo) returns (UpgradePkgVo);
+  // rpc UpgradePkgUpdate(UpgradePkgVo) returns (Empty);
+  // rpc UpgradePkgDel(Ids) returns (Empty);
+  // rpc UpgradePkgGet(UpgradePkgGetReq) returns (UpgradePkgVo);
+  // rpc UpgradePkgList(UpgradePkgListReq) returns (UpgradePkgListResp);
+
+  // // UpgradeResConfig
+  // 热更新【代码资源】配置管理,控制哪些版本地区的用户可以更新 rpc
+  // UpgradeResConfigAdd(UpgradeResConfigVo) returns (UpgradeResConfigVo); rpc
+  // UpgradeResConfigUpdate(UpgradeResConfigVo) returns (Empty); rpc
+  // UpgradeResConfigDel(Ids) returns (Empty); rpc
+  // UpgradeResConfigGet(UpgradeResConfigGetReq) returns (UpgradeResConfigVo);
+  // rpc UpgradeResConfigList(UpgradeResConfigListReq)
+  //     returns (UpgradeResConfigListResp);
+
+  // UpgradePkgPlan
+  rpc UpgradePkgPlanAdd(UpgradePkgPlanVo) returns (UpgradePkgPlanVo);
+  rpc UpgradePkgPlanUpdate(UpgradePkgPlanVo) returns (UpgradePkgPlanVo);
+  rpc UpgradePkgPlanDel(Ids) returns (Empty);
+  rpc UpgradePkgPlanGet(UpgradePkgPlanVo) returns (UpgradePkgPlanVo);
+  rpc UpgradePkgPlanList(UpgradePkgPlanListReq)
+      returns (UpgradePkgPlanListResp);
+
+  // UpgradePkgPlanDetail
+  rpc UpgradePkgPlanDetailAdd(UpgradePkgPlanDetailVo)
+      returns (UpgradePkgPlanDetailVo);
+  rpc UpgradePkgPlanDetailUpdate(UpgradePkgPlanDetailVo)
+      returns (UpgradePkgPlanDetailVo);
+  rpc UpgradePkgPlanDetailDel(Ids) returns (Empty);
+  rpc UpgradePkgPlanDetailGet(UpgradePkgPlanDetailVo)
+      returns (UpgradePkgPlanDetailVo);
+  rpc UpgradePkgPlanDetailList(UpgradePkgPlanDetailListReq)
+      returns (UpgradePkgPlanDetailListResp);
+
+  // UpgradeResPlan
+  rpc UpgradeResPlanAdd(UpgradeResPlanVo) returns (UpgradeResPlanVo);
+  rpc UpgradeResPlanUpdate(UpgradeResPlanVo) returns (UpgradeResPlanVo);
+  rpc UpgradeResPlanDel(Ids) returns (Empty);
+  rpc UpgradeResPlanGet(UpgradeResPlanVo) returns (UpgradeResPlanVo);
+  rpc UpgradeResPlanList(UpgradeResPlanListReq)
+      returns (UpgradeResPlanListResp);
+
+  // UpgradeResPlanDetail
+  rpc UpgradeResPlanDetailAdd(UpgradeResPlanDetailVo)
+      returns (UpgradeResPlanDetailVo);
+  rpc UpgradeResPlanDetailUpdate(UpgradeResPlanDetailVo)
+      returns (UpgradeResPlanDetailVo);
+  rpc UpgradeResPlanDetailDel(Ids) returns (Empty);
+  rpc UpgradeResPlanDetailGet(UpgradeResPlanDetailVo)
+      returns (UpgradeResPlanDetailVo);
+  rpc UpgradeResPlanDetailList(UpgradeResPlanDetailListReq)
+      returns (UpgradeResPlanDetailListResp);
+
+  // AdPlan
+  rpc AdPlanAdd(AdPlanVo) returns (AdPlanVo);
+  rpc AdPlanUpdate(AdPlanVo) returns (AdPlanVo);
+  rpc AdPlanDel(Ids) returns (Empty);
+  rpc AdPlanGet(AdPlanVo) returns (AdPlanVo);
+  rpc AdPlanList(AdPlanListReq) returns (AdPlanListResp);
+
+  // AdPlanDetail
+  rpc AdPlanDetailAdd(AdPlanDetailVo) returns (AdPlanDetailVo);
+  rpc AdPlanDetailUpdate(AdPlanDetailVo) returns (AdPlanDetailVo);
+  rpc AdPlanDetailDel(Ids) returns (Empty);
+  rpc AdPlanDetailGet(AdPlanDetailVo) returns (AdPlanDetailVo);
+  rpc AdPlanDetailList(AdPlanDetailListReq) returns (AdPlanDetailListResp);
+
+  // AdGlobalConfig
+  rpc AdGlobalConfigGet(AdGlobalConfigGetReq) returns (AdGlobalConfigVo);
+  rpc AdGlobalConfigUpdate(AdGlobalConfigVo) returns (AdGlobalConfigVo);
+
+  // JobBatch
+  rpc JobBatchAdd(JobBatchVo) returns (JobBatchVo);
+  rpc JobBatchAddWithTasks(JobBatchWithTasksVo) returns (JobBatchWithTasksVo);
+  rpc JobBatchUpdate(JobBatchVo) returns (JobBatchVo);
+  rpc JobBatchDel(Ids) returns (Empty);
+  rpc JobBatchGet(JobBatchVo) returns (JobBatchVo);
+  rpc JobBatchGetWithTasks(JobBatchVo) returns (JobBatchWithTasksVo);
+  rpc JobBatchList(JobBatchListReq) returns (JobBatchListResp);
+  rpc JobBatchListWithTasks(JobBatchListReq)
+      returns (JobBatchListWithTasksResp);
+
+  // JobTasks
+  rpc JobTasksAdd(JobTasksVo) returns (JobTasksVo);
+  rpc JobTasksUpdate(JobTasksVo) returns (JobTasksVo);
+  rpc JobTasksDel(Ids) returns (Empty);
+  rpc JobTasksGet(JobTasksVo) returns (JobTasksVo);
+  rpc JobTasksList(JobTasksListReq) returns (JobTasksListResp);
+
+  // DeployConfig
+  rpc DeployConfigAdd(DeployConfigVo) returns (DeployConfigVo);
+  rpc DeployConfigUpdate(DeployConfigVo) returns (DeployConfigVo);
+  rpc DeployConfigDel(Ids) returns (Empty);
+  rpc DeployConfigGet(DeployConfigVo) returns (DeployConfigVo);
+  rpc DeployConfigList(DeployConfigListReq) returns (DeployConfigListResp);
+
+  // OperationLog
+  rpc OperationLogAdd(OperationLogVo) returns (OperationLogVo);
+  rpc OperationLogUpdate(OperationLogVo) returns (OperationLogVo);
+  rpc OperationLogGet(OperationLogVo) returns (OperationLogVo);
+  rpc OperationLogList(OperationLogListReq) returns (OperationLogListResp);
+
+  // AnnouncePlan
+  rpc AnnouncePlanAdd(AnnouncePlanVo) returns (AnnouncePlanVo);
+  rpc AnnouncePlanUpdate(AnnouncePlanVo) returns (AnnouncePlanVo);
+  rpc AnnouncePlanDel(Ids) returns (Empty);
+  rpc AnnouncePlanGet(AnnouncePlanVo) returns (AnnouncePlanVo);
+  rpc AnnouncePlanList(AnnouncePlanListReq) returns (AnnouncePlanListResp);
+
+  // AnnouncePlanDetail
+  rpc AnnouncePlanDetailAdd(AnnouncePlanDetailVo)
+      returns (AnnouncePlanDetailVo);
+  rpc AnnouncePlanDetailUpdate(AnnouncePlanDetailVo)
+      returns (AnnouncePlanDetailVo);
+  rpc AnnouncePlanDetailDel(Ids) returns (Empty);
+  rpc AnnouncePlanDetailGet(AnnouncePlanDetailVo)
+      returns (AnnouncePlanDetailVo);
+  rpc AnnouncePlanDetailList(AnnouncePlanDetailListReq)
+      returns (AnnouncePlanDetailListResp);
+
+  // ServiceTypes
+  rpc ServiceTypesAdd(ServiceTypesAddReq) returns (ServiceTypesVo);
+  rpc ServiceTypesUpdate(ServiceTypesUpdateReq) returns (ServiceTypesVo);
+  rpc ServiceTypesDel(ServiceTypesDelReq) returns (Empty);
+  rpc ServiceTypesGet(ServiceTypesGetReq) returns (ServiceTypesVo);
+  rpc ServiceTypesList(ServiceTypesListReq) returns (ServiceTypesListResp);
+
+  // ServiceSets
+  rpc ServiceSetsAdd(ServiceSetsAddReq) returns (ServiceSetsVo);
+  rpc ServiceSetsUpdate(ServiceSetsUpdateReq) returns (ServiceSetsVo);
+  rpc ServiceSetsDel(ServiceSetsDelReq) returns (Empty);
+  rpc ServiceSetsGet(ServiceSetsGetReq) returns (ServiceSetsVo);
+  rpc ServiceSetsList(ServiceSetsListReq) returns (ServiceSetsListResp);
+
+  // MessagePush
+  rpc MessagePushAdd(MessagePushVo) returns (MessagePushVo);
+  rpc MessagePushUpdate(MessagePushVo) returns (MessagePushVo);
+  rpc MessagePushList(MessagePushListReq) returns (MessagePushListResp);
+}
+
+
+
+
+
+message ShortDramaEpisodeVo {
+  int64 id = 1;
+  int64 dramaId = 2;
+  int64 type = 3;
+  string name = 4;
+  int64 sort = 5;
+  string videos = 6;
+  string subtitles = 7;
+  Status status = 8;
+  int64 createTime = 9;
+  int64 updateTime = 10;
+  string danmakuUrl = 11;
+}
+
+message ShortDramaEpisodeGetReq { ShortDramaEpisodeVo vo = 1; }
+message ShortDramaEpisodeListReq {
+  Page page = 1;
+  ShortDramaEpisodeVo vo = 2;
+  repeated int64 dramaIds = 3;
+}
+message ShortDramaEpisodeListResp {
+  int64 total = 1;
+  repeated ShortDramaEpisodeVo list = 2;
+}
+
+message ShortDramaEpisodeBatchAddReq {
+  int64 dramaId = 1;
+  repeated ShortDramaEpisodeVo episodes = 2;
+}
+
+message ShortDramaEpisodeBatchRefreshUpdateTimeReq {
+  int64 dramaId = 1;
+}
+
+message ShortDramaLanguageVo {
+  int64 id = 1;
+  int64 dramaId = 2;
+  string lang = 3;
+  string title = 4;
+  string description = 5;
+  string covers = 6;
+  string coverDominantColor = 7;
+  int64 createTime = 8;
+  int64 updateTime = 9;
+}
+
+message ShortDramaVo {
+  int64 id = 1;
+  string productCodes = 2;
+  string title = 3;
+  string description = 4;
+  string covers = 5;
+  string coverDominantColor = 6;
+  string type = 7;
+  string tags = 8;
+  string releaseRegions = 9;
+  int64 releaseDate = 10;
+  int64 totalEpisodes = 11;
+  int64 completedStatus = 12;
+  string copyrightSupplier = 13;
+  string copyrightDoc = 14;
+  int64 copyrightPurchaseDate = 15;
+  int64 copyrightExpireDate = 16;
+  int64 status = 17;
+  int64 createTime = 18;
+  int64 updateTime = 19;
+  string ghostCutId = 20;
+  int64 recommend = 21;
+  string otherConfig = 22;
+  repeated ShortDramaLanguageVo shortDramaLanguages = 23;
+  int64 mainEpisodeCount = 24;
+  int64 trailerEpisodeCount = 25;
+  int64 copyrightId = 26;
+  int64 creator = 27;
+  int64 modifier = 28;
+}
+
+message ShortDramaGetReq { ShortDramaVo vo = 1; string productCode = 2; string countryCode = 3; string lang = 4;}
+message ShortDramaListReq {
+  Page page = 1;
+  ShortDramaVo vo = 2;
+  repeated int64 excludeIds = 3;
+  string productCode = 4;
+  string countryCode = 5;
+  string lang = 6;
+}
+message ShortDramaListResp {
+  int64 total = 1;
+  repeated ShortDramaVo list = 2;
+}
+
+message ShortDramaLanguageListReq {
+  Page page = 1;
+  ShortDramaLanguageVo vo = 2;
+  
+}
+message ShortDramaLanguageListResp {
+  int64 total = 1;
+  repeated ShortDramaLanguageVo list = 2;
+}
+
+message ShortDramaEpisodeCountVo {
+  int64 dramaId = 1;
+  int64 episodeCount = 2;
+}
+
+message ShortDramaEpisodeCountReq {
+  Page page = 1;
+  Status status = 2;
+  int64 type = 3;
+  repeated int64 dramaIds = 4;
+}
+
+message ShortDramaEpisodeCountResp {
+  int64 total = 1;
+  repeated ShortDramaEpisodeCountVo list = 2;
+}
+
+message ShortDramaCheckNameReq {
+  string title = 1; // 短剧名称
+  int64 id = 2; // 编辑时排除当前短剧ID
+}
+
+message ShortDramaCheckNameResp {
+  bool exists = 1; // 是否存在
+}
+
+message ShortDramaUpdateModifierReq {
+  int64 id = 1;
+  int64 modifier = 2;
+}
+
+message SetTotalStatsReq {
+  int64 dramaId = 1;
+  string country = 2;
+  int64 todayPlayCount = 3;
+  int64 weeklyPlayCount = 4;
+  int64 monthlyPlayCount = 5;
+}
+
+message ShortDramaStatsPlaysTotalVo {
+  int64 id = 1;
+  int64 dramaId = 2;
+  string country = 3;
+  int64 todayPlayCount = 4;
+  int64 weeklyPlayCount = 5;
+  int64 monthlyPlayCount = 6;
+  int64 createTime = 7;
+  int64 updateTime = 8;
+}
+
+message ShortDramaStatsPlaysTotalListReq {
+  Page page = 1;
+  string country = 2; // 国家代码
+}
+
+message ShortDramaStatsPlaysTotalListResp {
+  int64 total = 1;
+  repeated ShortDramaStatsPlaysTotalVo list = 2;
+}
+
+service GoShortDramaClient {
+  // ShortDrama
+  rpc ShortDramaAdd(ShortDramaVo) returns (ShortDramaVo);
+  rpc ShortDramaUpdate(ShortDramaVo) returns (Empty);
+  rpc ShortDramaDel(Ids) returns (Empty);
+  rpc ShortDramaGet(ShortDramaGetReq) returns (ShortDramaVo);
+  rpc ShortDramaList(ShortDramaListReq) returns (ShortDramaListResp);
+  rpc ShortDramaUpdateModifier(ShortDramaUpdateModifierReq) returns (Empty);
+
+  // ShortDramaLanguage
+  rpc ShortDramaLanguageList(ShortDramaLanguageListReq) returns (ShortDramaLanguageListResp);
+
+  // ShortDramaEpisode
+  rpc ShortDramaEpisodeAdd(ShortDramaEpisodeVo) returns (ShortDramaEpisodeVo);
+  rpc ShortDramaEpisodeBatchAdd(ShortDramaEpisodeBatchAddReq) returns (Empty);
+  rpc ShortDramaEpisodeUpdate(ShortDramaEpisodeVo) returns (Empty);
+  rpc ShortDramaEpisodeDel(Ids) returns (Empty);
+  rpc ShortDramaEpisodeGet(ShortDramaEpisodeGetReq) returns (ShortDramaEpisodeVo);
+  rpc ShortDramaEpisodeList(ShortDramaEpisodeListReq) returns (ShortDramaEpisodeListResp);
+  rpc ShortDramaEpisodeBatchRefreshUpdateTime(ShortDramaEpisodeBatchRefreshUpdateTimeReq) returns (Empty);
+
+  // ShortDramaEpisodeCount
+  rpc ShortDramaEpisodeCount(ShortDramaEpisodeCountReq) returns (ShortDramaEpisodeCountResp);
+
+  rpc ShortDramaCheckName(ShortDramaCheckNameReq) returns (ShortDramaCheckNameResp);
+
+  // ShortDramaStats
+  rpc SetTotalStats(SetTotalStatsReq) returns (Empty);
+
+  // ShortDramaStatsPlaysTotal
+  rpc ShortDramaStatsPlaysTotalList(ShortDramaStatsPlaysTotalListReq) returns (ShortDramaStatsPlaysTotalListResp);
+}
+
+
+// 根据需要增加状态
+
+
+message SysUserVo {
+  int64 id = 1;             // ID
+  string username = 2;      // 登录名
+  string password = 3;      // 登录密码
+  string nickname = 4;      // 昵称
+  string avatar = 5;        // 头像
+  string email = 6;         // 邮箱
+  string phone = 7;         // 手机号
+  string remark = 8;        // 备注
+  BoolInt isSuperAdmin = 9; // 是否为超级管理员 1是 2否
+  int64 permsLevel = 10;    // 权限等级 值越大 权限越小
+  Status status = 11;       // 状态 1正常 2冻结
+  int64 createTime = 12;    // 创建时间
+  int64 updateTime = 13;    // 修改时间
+}
+
+message SysRoleVo {
+  int64 id = 1;           // ID
+  string productCode = 2; // 所属产品
+  string name = 3;        // 角色名
+  string remark = 4;      // 备注
+  Status status = 5;      // 状态 1启用 2禁用
+  int64 createTime = 6;   // 创建时间
+  int64 updateTime = 7;   // 修改时间
+  int64 permsLevel = 8;   // 权限等级 值越大 权限越小
+}
+
+message SysPermVo {
+  int64 id = 1;         // ID
+  string name = 2;      // 权限名
+  string code = 3;      // 权限code
+  string remark = 4;    // 备注
+  Status status = 5;    // 状态 1启用 2禁用
+  int64 createTime = 6; // 创建时间
+  int64 updateTime = 7; // 修改时间
+}
+
+message SysUserRoleVo {
+  int64 id = 1;         // ID
+  int64 userId = 2;     // 用户ID
+  int64 roleId = 3;     // 角色ID
+  int64 createTime = 4; // 创建时间
+  int64 updateTime = 5; // 修改时间
+}
+
+message SysRolePermVo {
+  int64 id = 1;         // ID
+  int64 roleId = 2;     // 角色ID
+  int64 permId = 3;     // 权限ID
+  int64 createTime = 4; // 创建时间
+  int64 updateTime = 5; // 修改时间
+}
+
+message SysUserPermVo {
+  int64 id = 1;         // ID
+  int64 userId = 2;     // 用户ID
+  int64 permId = 3;     // 权限ID
+  string effect = 4;    // 权限控制策略 ALLOW允许 DENY拒绝
+  int64 createTime = 5; // 创建时间
+  int64 updateTime = 6; // 修改时间
+}
+
+message SysPermRule {
+  int64 permId = 1;
+  string effect = 2; // ALLOW允许 DENY拒绝
+}
+
+message SysUserWithRoleIdsAndPermRules {
+  SysUserVo user = 1;                 // 用户信息
+  repeated int64 roleIds = 2;         // 角色
+  repeated SysPermRule permRules = 3; // 权限
+}
+
+message SysUserWithRolesAndPerms {
+  SysUserVo user = 1;           // 用户信息
+  repeated SysRoleVo roles = 2; // 角色
+  repeated SysPermVo perms = 3; // 权限
+}
+
+message SysUserGetReq { SysUserVo vo = 1; }
+
+message SysUserListReq {
+  Page page = 1;
+  SysUserVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+}
+
+message SysUserListResp {
+  int64 total = 1;
+  repeated SysUserVo list = 2;
+}
+
+message SysUserListWithRolesAndPermsResp {
+  int64 total = 1;
+  repeated SysUserWithRolesAndPerms list = 2;
+}
+
+message SysRoleWithPermIds {
+  SysRoleVo role = 1;
+  repeated int64 permIds = 2;
+}
+
+message SysRoleWithPerms {
+  SysRoleVo role = 1;
+  repeated SysPermVo perms = 2;
+}
+
+message SysRoleGetReq { SysRoleVo vo = 1; }
+
+message SysRoleListReq {
+  Page page = 1;
+  SysRoleVo vo = 2;
+  repeated string productCodes = 3; // 所属产品
+  repeated int64 excludeIds = 4;    // 排除的ID
+}
+
+message SysRoleListResp {
+  int64 total = 1;
+  repeated SysRoleVo list = 2;
+}
+
+message SysRoleListWithPermsResp {
+  int64 total = 1;
+  repeated SysRoleWithPerms list = 2;
+}
+
+message SysPermGetReq { SysPermVo vo = 1; }
+
+message SysPermListReq {
+  Page page = 1;
+  SysPermVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+}
+
+message SysPermListResp {
+  int64 total = 1;
+  repeated SysPermVo list = 2;
+}
+
+message SysUserRoleGetReq { SysUserRoleVo vo = 1; }
+
+message SysUserRoleListReq {
+  Page page = 1;
+  SysUserRoleVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+}
+
+message SysUserRoleListResp {
+  int64 total = 1;
+  repeated SysUserRoleVo list = 2;
+}
+
+message SysRolePermGetReq { SysRolePermVo vo = 1; }
+
+message SysRolePermListReq {
+  Page page = 1;
+  SysRolePermVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+}
+
+message SysRolePermListResp {
+  int64 total = 1;
+  repeated SysRolePermVo list = 2;
+}
+
+message SysUserPermGetReq { SysUserPermVo vo = 1; }
+
+message SysUserPermListReq {
+  Page page = 1;
+  SysUserPermVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+}
+
+message SysUserPermListResp {
+  int64 total = 1;
+  repeated SysUserPermVo list = 2;
+}
+
+service GoSysClient {
+  rpc Ping(Request) returns (Response);
+
+  // 用户管理
+  rpc SysUserAdd(SysUserVo) returns (SysUserVo);
+  rpc SysUserUpdate(SysUserVo) returns (SysUserVo);
+  rpc SysUserDelete(Ids) returns (Empty);
+  rpc SysUserGet(SysUserGetReq) returns (SysUserVo);
+  rpc SysUserList(SysUserListReq) returns (SysUserListResp);
+  rpc SysUserAddWithRolesAndPerms(SysUserWithRoleIdsAndPermRules)
+      returns (SysUserWithRolesAndPerms);
+  rpc SysUserUpdateWithRolesAndPerms(SysUserWithRoleIdsAndPermRules)
+      returns (SysUserWithRolesAndPerms);
+  rpc SysUserGetWithRolesAndPerms(SysUserGetReq)
+      returns (SysUserWithRolesAndPerms);
+  rpc SysUserListWithRolesAndPerms(SysUserListReq)
+      returns (SysUserListWithRolesAndPermsResp);
+
+  // 角色管理
+  rpc SysRoleAdd(SysRoleVo) returns (SysRoleVo);
+  rpc SysRoleUpdate(SysRoleVo) returns (SysRoleVo);
+  rpc SysRoleDelete(Ids) returns (Empty);
+  rpc SysRoleGet(SysRoleGetReq) returns (SysRoleVo);
+  rpc SysRoleList(SysRoleListReq) returns (SysRoleListResp);
+  rpc SysRoleAddWithPerms(SysRoleWithPermIds) returns (SysRoleWithPerms);
+  rpc SysRoleUpdateWithPerms(SysRoleWithPermIds) returns (SysRoleWithPerms);
+  rpc SysRoleGetWithPerms(SysRoleGetReq) returns (SysRoleWithPerms);
+  rpc SysRoleListWithPerms(SysRoleListReq) returns (SysRoleListWithPermsResp);
+
+  // 权限管理
+  rpc SysPermAdd(SysPermVo) returns (SysPermVo);
+  rpc SysPermUpdate(SysPermVo) returns (SysPermVo);
+  rpc SysPermDelete(Ids) returns (Empty);
+  rpc SysPermGet(SysPermGetReq) returns (SysPermVo);
+  rpc SysPermList(SysPermListReq) returns (SysPermListResp);
+
+  // 用户角色管理
+  rpc SysUserRoleAdd(SysUserRoleVo) returns (SysUserRoleVo);
+  rpc SysUserRoleUpdate(SysUserRoleVo) returns (SysUserRoleVo);
+  rpc SysUserRoleDelete(Ids) returns (Empty);
+  rpc SysUserRoleGet(SysUserRoleGetReq) returns (SysUserRoleVo);
+  rpc SysUserRoleList(SysUserRoleListReq) returns (SysUserRoleListResp);
+
+  // 角色权限管理
+  rpc SysRolePermAdd(SysRolePermVo) returns (SysRolePermVo);
+  rpc SysRolePermUpdate(SysRolePermVo) returns (SysRolePermVo);
+  rpc SysRolePermDelete(Ids) returns (Empty);
+  rpc SysRolePermGet(SysRolePermGetReq) returns (SysRolePermVo);
+  rpc SysRolePermList(SysRolePermListReq) returns (SysRolePermListResp);
+
+  // 用户权限管理
+  rpc SysUserPermAdd(SysUserPermVo) returns (SysUserPermVo);
+  rpc SysUserPermUpdate(SysUserPermVo) returns (SysUserPermVo);
+  rpc SysUserPermDelete(Ids) returns (Empty);
+  rpc SysUserPermGet(SysUserPermGetReq) returns (SysUserPermVo);
+  rpc SysUserPermList(SysUserPermListReq) returns (SysUserPermListResp);
+}
+
+
+
+// Account
+message AccountVo {
+  int64 id = 1;                 // 主键ID
+  string userUuid = 2;          // 用户UUID
+  string productCode = 3;       // 产品ID
+  string username = 4;          // 用户名
+  string password = 5;          // 密码
+  string accountKey = 6;        // 账号KEY
+  string accountPassword = 7;   // 账号密码
+  int64 accountType = 8;        // 账号类型
+  int64 registMode = 9;         // 注册方式
+  string provider = 10;         // 授权登录标识
+  BoolInt whitelistUser = 11;   // 白名单用户
+  BoolInt activated = 12;       // 是否激活
+  string config = 13;           // 配置
+  Status status = 14;           // 状态
+  string avatar = 15;           // 头像
+  string area = 16;             // 指定地区
+  string remark = 17;           // 备注
+  string deviceId = 18;         // 设备ID
+  string platform = 19;         // 平台
+  string channel = 20;          // 渠道
+  string deviceModel = 21;      // 设备型号
+  string deviceOs = 22;         // 设备系统
+  int64 timezone = 23;          // 时区
+  string lang = 24;             // 语言
+  string ip = 25;               // IP
+  string country = 26;          // 国家
+  string province = 27;         // 省份
+  string city = 28;             // 城市
+  string isp = 29;              // ISP
+  int64 appVer = 30;            // 产品版本号
+  int64 appRuntimeCode = 31;    // 产品运行码
+  int64 createTime = 32;        // 创建时间
+  int64 updateTime = 33;        // 更新时间
+  string version = 34;          // 数据版本
+  string sessionId = 35;        // 登录凭证
+  int64 sessionCreateTime = 36; // 凭证创建时间
+}
+
+message AccountListReq {
+  Page page = 1;
+  AccountVo vo = 2;
+  repeated string productCodes = 3; // 产品code
+  repeated int64 excludeIds = 4;    // 排除的ID
+}
+
+message AccountListResp {
+  int64 total = 1;
+  repeated AccountVo list = 2;
+}
+
+// AccountDevice
+message AccountDeviceVo {
+  int64 id = 1;
+  int64 accountId = 2;         // 用户ID
+  int64 deviceId = 3;          // 设备ID
+  string sessionId = 4;        // 登录凭证
+  int64 sessionCreateTime = 5; // 凭证创建时间
+  int64 updateTime = 6;
+  int64 createTime = 7;
+}
+
+message AccountDeviceListReq {
+  Page page = 1;
+  AccountDeviceVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+}
+
+message AccountDeviceListResp {
+  int64 total = 1;
+  repeated AccountDeviceVo list = 2;
+}
+
+message DeviceVo {
+  int64 id = 1;
+  string userUuid = 2;
+  string productCode = 3;
+  string deviceId = 4;
+  string accountKey = 5;
+  string accountPassword = 6;
+  string platform = 7;
+  string channel = 8;
+  string referChannel = 9;
+  string deviceModel = 10;
+  string deviceOs = 11;
+  int64 timezone = 12;
+  string lang = 13;
+  int64 appVer = 14;
+  string ip = 15;
+  string country = 16;
+  string province = 17;
+  string city = 18;
+  string isp = 19;
+  int64 createTime = 20;
+  int64 updateTime = 21;
+  Status status = 22;
+  string refer = 23;
+  int64 whitelistUser = 24; // 白名单用户 1正常用户 2: 白名单用户
+  int64 testUser = 25; // 测试用户 1正常用户 2: 测试用户
+  string mockCountry = 26; // 指定国家
+  string mockApi = 27; // 指定API
+  string mockRouter = 28; // 指定路由
+
+}
+
+message DeviceListReq {
+  Page page = 1;
+  DeviceVo vo = 2;
+  repeated string productCodes = 3; // 产品code
+  repeated int64 excludeIds = 4;    // 排除的ID
+  repeated string dateRange = 5; // 日期范围
+  int64 createStartTime = 6; // 创建开始时间
+  int64 createEndTime = 7; // 创建结束时间
+}
+message DeviceListRes {
+  int64 total = 1;
+  repeated DeviceVo list = 2;
+}
+
+message UserAppConfigVo {
+  int64 id = 1;
+  string deviceId = 2;
+  string key = 3;
+  string value = 4;
+  Status status = 5;
+  int64 createTime = 6;
+  int64 updateTime = 7;
+}
+message UserAppConfigGetReq { UserAppConfigVo vo = 1; }
+message UserAppConfigListReq {
+  Page page = 1;
+  UserAppConfigVo vo = 2;
+}
+message UserAppConfigListRes {
+  int64 total = 1;
+  repeated UserAppConfigVo list = 2;
+}
+
+// 用户模块
+service GoUserClient {
+  rpc Ping(Request) returns (Response);
+
+  // 用户app配置管理(ring)
+  rpc UserAppConfigAdd(UserAppConfigVo) returns (UserAppConfigVo);
+  rpc UserAppConfigUpdate(UserAppConfigVo) returns (UserAppConfigVo);
+  rpc UserAppConfigDel(Ids) returns (Empty);
+  rpc UserAppConfigGet(UserAppConfigGetReq) returns (UserAppConfigVo);
+  rpc UserAppConfigList(UserAppConfigListReq) returns (UserAppConfigListRes);
+
+  // 设备管理
+  rpc DeviceAdd(DeviceVo) returns (DeviceVo);
+  rpc DeviceUpdate(DeviceVo) returns (DeviceVo);
+  rpc DeviceDel(Ids) returns (Empty);
+  rpc DeviceGet(DeviceVo) returns (DeviceVo);
+  rpc DeviceList(DeviceListReq) returns (DeviceListRes);
+
+  // Account
+  rpc AccountAdd(AccountVo) returns (AccountVo);
+  rpc AccountUpdate(AccountVo) returns (AccountVo);
+  rpc AccountDel(Ids) returns (Empty);
+  rpc AccountGet(AccountVo) returns (AccountVo);
+  rpc AccountList(AccountListReq) returns (AccountListResp);
+
+  // AccountDevice
+  rpc AccountDeviceAdd(AccountDeviceVo) returns (AccountDeviceVo);
+  rpc AccountDeviceUpdate(AccountDeviceVo) returns (AccountDeviceVo);
+  rpc AccountDeviceDel(Ids) returns (Empty);
+  rpc AccountDeviceGet(AccountDeviceVo) returns (AccountDeviceVo);
+  rpc AccountDeviceList(AccountDeviceListReq) returns (AccountDeviceListResp);
+}
+
+
+
+// VpnTag
+message VpnTagVo {
+  int64 id = 1;
+  string productCode = 2;
+  string type = 3;
+  string name = 4;
+  int64 sort = 5;
+  Status status = 6;
+  string remark = 7;
+  int64 createTime = 8;
+  int64 updateTime = 9;
+  string otherConfig = 10;
+}
+
+message VpnTagGetReq { VpnTagVo vo = 1; }
+
+message VpnTagListReq {
+  Page page = 1;
+  VpnTagVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+message VpnTagListResp {
+  int64 total = 1;
+  repeated VpnTagVo list = 2;
+}
+
+message VpnTagBatchAddReq { repeated VpnTagVo list = 1; }
+message VpnTagBatchAddResp { repeated VpnTagVo list = 1; }
+
+message VpnTagBatchUpdateReq { repeated VpnTagVo list = 1; }
+message VpnTagBatchUpdateResp { repeated VpnTagVo list = 1; }
+
+message VpnTagBatchDelReq { repeated int64 ids = 1; }
+
+// VpnTag
+message VpnGroupVo {
+  int64 id = 1;
+  string productCode = 2;
+  string name = 3;
+  string icon = 4;
+  int64 sort = 5;
+  Status status = 6;
+  string remark = 7;
+  int64 createTime = 8;
+  int64 updateTime = 9;
+  string version = 10;
+  string otherConfig = 11;
+}
+
+message VpnGroupExVo {
+  VpnGroupVo vo = 1;
+  repeated int64 tagIds = 2;
+}
+
+message VpnGroupAddReq {
+  VpnGroupVo vo = 1;
+  repeated int64 tagIds = 2;
+}
+
+message VpnGroupGetReq { VpnGroupVo vo = 1; }
+
+message VpnGroupListReq {
+  Page page = 1;
+  VpnGroupVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+message VpnGroupListResp {
+  int64 total = 1;
+  repeated VpnGroupVo list = 2;
+}
+
+message VpnGroupBatchAddReq { repeated VpnGroupExVo list = 1; }
+message VpnGroupBatchAddResp { repeated VpnGroupExVo list = 1; }
+
+message VpnGroupBatchUpdateReq { repeated VpnGroupExVo list = 1; }
+message VpnGroupBatchUpdateResp { repeated VpnGroupExVo list = 1; }
+
+message VpnGroupBatchDelReq { repeated int64 ids = 1; }
+
+// VpnGroupTag
+message VpnGroupTagVo {
+  int64 id = 1;
+  int64 groupId = 2;
+  int64 tagId = 3;
+  int64 createTime = 4;
+  int64 updateTime = 5;
+}
+
+message VpnGroupTagListReq {
+  Page page = 1;
+  VpnGroupTagVo vo = 2;
+  repeated int64 groupIds = 3;
+  repeated int64 tagIds = 4;
+}
+
+message VpnGroupTagListResp {
+  int64 total = 1;
+  repeated VpnGroupTagVo list = 2;
+}
+
+// VpnLocation
+message VpnLocationVo {
+  int64 id = 1;
+  int64 groupId = 2;
+  string name = 3;
+  string code = 4;
+  string icon = 5;
+  int64 type = 6;
+  string displayPolicyConfig = 7;
+  string routePolicyConfig = 8;
+  int64 sort = 9;
+  Status status = 10;
+  string remark = 11;
+  int64 createTime = 12;
+  int64 updateTime = 13;
+  string version = 14;
+  string otherConfig = 15;
+}
+
+message VpnLocationExVo {
+  VpnLocationVo vo = 1;
+  string productCode = 2;
+}
+
+message VpnLocationGetReq { VpnLocationVo vo = 1; }
+
+message VpnLocationListReq {
+  Page page = 1;
+  VpnLocationExVo vo = 2;
+  repeated int64 groupIds = 3;
+  repeated int64 excludeIds = 4;
+  repeated string productCodes = 5;
+}
+message VpnLocationListResp {
+  int64 total = 1;
+  repeated VpnLocationExVo list = 2;
+}
+
+message VpnLocationBatchAddReq { repeated VpnLocationVo list = 1; }
+message VpnLocationBatchAddResp { repeated VpnLocationExVo list = 1; }
+
+message VpnLocationBatchUpdateReq { repeated VpnLocationVo list = 1; }
+message VpnLocationBatchUpdateResp { repeated VpnLocationExVo list = 1; }
+
+message VpnLocationBatchDelReq { repeated int64 ids = 1; }
+
+// VpnServer
+message VpnServerVo {
+  int64 id = 1;
+  int64 instanceId = 2;
+  string name = 3;
+  string ip = 4;
+  int64 port = 5;
+  int64 pingPort = 6;
+  string netConfig = 7;
+  string routePolicyConfig = 8;
+  string serverInfo = 9;
+  Status status = 10;
+  string remark = 11;
+  int64 createTime = 12;
+  int64 updateTime = 13;
+  string version = 14;
+  string otherInfo = 15;
+  int64 monitorPort = 16;
+}
+
+message VpnServerExVo {
+  VpnServerVo vo = 1;
+  repeated int64 locationIds = 2;
+}
+
+message VpnServerListReq {
+  Page page = 1;
+  VpnServerVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+  repeated string productCodes = 4;
+  repeated int64 locationIds = 5;
+  repeated int64 instanceIds = 6;
+}
+
+message VpnServerListResp {
+  int64 total = 1;
+  repeated VpnServerVo list = 2;
+}
+
+message VpnServerExListResp {
+  int64 total = 1;
+  repeated VpnServerExVo list = 2;
+}
+
+message VpnServerAddReq {
+  VpnServerVo vo = 1;
+  repeated int64 locationIds = 2;
+}
+
+message VpnServerBatchAddReq { repeated VpnServerExVo list = 1; }
+message VpnServerBatchAddResp { repeated VpnServerExVo list = 1; }
+
+message VpnServerBatchUpdateReq { repeated VpnServerExVo list = 1; }
+message VpnServerBatchUpdateResp { repeated VpnServerExVo list = 1; }
+
+message VpnServerBatchDelReq { repeated int64 ids = 1; }
+
+message VpnServerLocationVo {
+  int64 id = 1;
+  int64 serverId = 2;
+  int64 locationId = 3;
+  int64 createTime = 4;
+  int64 updateTime = 5;
+  Status status = 6;
+}
+
+message VpnServerLocationListReq {
+  Page page = 1;
+  VpnServerLocationVo vo = 2;
+  repeated int64 serverIds = 3;
+  repeated int64 locationIds = 4;
+}
+
+message VpnServerLocationListResp {
+  int64 total = 1;
+  repeated VpnServerLocationVo list = 2;
+}
+
+message VpnLocationServerCountVo {
+  int64 locationId = 1;
+  int64 serverCount = 2;
+}
+
+message VpnLocationServerCountReq {
+  Page page = 1;
+  Status status = 2;
+  repeated int64 serverIds = 3;
+  repeated int64 locationIds = 4;
+}
+
+message VpnLocationServerCountResp {
+  int64 total = 1;
+  repeated VpnLocationServerCountVo list = 2;
+}
+
+message VpnProbeTaskVo {
+  int64 id = 1;
+  string taskId = 2;
+  string filter = 3;       // 筛选条件
+  string type = 4;         // 类型
+  string uploadDomain = 5; // 配置
+  string params = 6;
+  int64 answer = 7;
+  float percentage = 8; // 进度百分比
+  string result = 9;    // 结果
+  int64 userId = 10;
+  int64 createTime = 11;
+  int64 updateTime = 12;
+}
+
+message VpnProbeTaskListReq {
+  Page page = 1;
+  VpnProbeTaskVo vo = 2;
+}
+
+message VpnProbeTaskListResp {
+  int64 total = 1;
+  repeated VpnProbeTaskVo list = 2;
+}
+
+// govpn 模块,VPN相关服务
+service GoVpnClient {
+  rpc Ping(Request) returns (Response);
+  // 表的事务操作
+  rpc Transaction(TransactionReq) returns (Empty);
+
+  // VpnTag
+  rpc VpnTagAdd(VpnTagVo) returns (VpnTagVo);
+  rpc VpnTagUpdate(VpnTagVo) returns (VpnTagVo);
+  rpc VpnTagDel(Ids) returns (Empty);
+  rpc VpnTagGet(VpnTagGetReq) returns (VpnTagVo);
+  rpc VpnTagList(VpnTagListReq) returns (VpnTagListResp);
+  rpc VpnTagBatchAdd(VpnTagBatchAddReq) returns (VpnTagBatchAddResp);
+  rpc VpnTagBatchUpdate(VpnTagBatchUpdateReq) returns (VpnTagBatchUpdateResp);
+
+  // VpnGroup
+  rpc VpnGroupAdd(VpnGroupAddReq) returns (VpnGroupVo);
+  rpc VpnGroupUpdate(VpnGroupAddReq) returns (Empty);
+  rpc VpnGroupDel(Ids) returns (Empty);
+  rpc VpnGroupGet(VpnGroupGetReq) returns (VpnGroupVo);
+  rpc VpnGroupList(VpnGroupListReq) returns (VpnGroupListResp);
+  rpc VpnGroupBatchAdd(VpnGroupBatchAddReq) returns (VpnGroupBatchAddResp);
+  rpc VpnGroupBatchUpdate(VpnGroupBatchUpdateReq)
+      returns (VpnGroupBatchUpdateResp);
+
+  // VpnGroupTag
+  rpc VpnGroupTagAdd(VpnGroupTagVo) returns (VpnGroupTagVo);
+  rpc VpnGroupTagUpdate(VpnGroupTagVo) returns (VpnGroupTagVo);
+  rpc VpnGroupTagDel(Ids) returns (Empty);
+  rpc VpnGroupTagGet(VpnGroupTagVo) returns (VpnGroupTagVo);
+  rpc VpnGroupTagList(VpnGroupTagListReq) returns (VpnGroupTagListResp);
+
+  // VpnLocation
+  rpc VpnLocationAdd(VpnLocationVo) returns (VpnLocationVo);
+  rpc VpnLocationUpdate(VpnLocationVo) returns (Empty);
+  rpc VpnLocationDel(Ids) returns (Empty);
+  rpc VpnLocationGet(VpnLocationGetReq) returns (VpnLocationVo);
+  rpc VpnLocationList(VpnLocationListReq) returns (VpnLocationListResp);
+  rpc VpnLocationBatchAdd(VpnLocationBatchAddReq)
+      returns (VpnLocationBatchAddResp);
+  rpc VpnLocationBatchUpdate(VpnLocationBatchUpdateReq)
+      returns (VpnLocationBatchUpdateResp);
+
+  // VpnServer
+  rpc VpnServerAdd(VpnServerAddReq) returns (VpnServerAddReq);
+  rpc VpnServerUpdate(VpnServerAddReq) returns (VpnServerAddReq);
+  rpc VpnServerDel(Ids) returns (Empty);
+  rpc VpnServerGet(VpnServerVo) returns (VpnServerVo);
+  rpc VpnServerList(VpnServerListReq) returns (VpnServerListResp);
+  rpc VpnServerExList(VpnServerListReq) returns (VpnServerExListResp);
+  rpc VpnServerBatchAdd(VpnServerBatchAddReq) returns (VpnServerBatchAddResp);
+  rpc VpnServerBatchUpdate(VpnServerBatchUpdateReq)
+      returns (VpnServerBatchUpdateResp);
+
+  // VpnServerLocation
+  rpc VpnServerLocationAdd(VpnServerLocationVo) returns (VpnServerLocationVo);
+  rpc VpnServerLocationUpdate(VpnServerLocationVo) returns (Empty);
+  rpc VpnServerLocationDel(Ids) returns (Empty);
+  rpc VpnServerLocationGet(VpnServerLocationVo) returns (VpnServerLocationVo);
+  rpc VpnServerLocationList(VpnServerLocationListReq)
+      returns (VpnServerLocationListResp);
+
+  // VpnLocationServerCount
+  rpc VpnLocationServerCount(VpnLocationServerCountReq)
+      returns (VpnLocationServerCountResp);
+
+  // VpnProbeTask
+  rpc VpnProbeTaskAdd(VpnProbeTaskVo) returns (VpnProbeTaskVo);
+  rpc VpnProbeTaskUpdate(VpnProbeTaskVo) returns (Empty);
+  rpc VpnProbeTaskList(VpnProbeTaskListReq) returns (VpnProbeTaskListResp);
+}

+ 61 - 0
pb/merge.sh

@@ -0,0 +1,61 @@
+#!/bin/bash
+
+# Check if directory parameter is provided
+if [ $# -eq 0 ]; then
+    PROTO_DIR="." # Default to current directory
+else
+    PROTO_DIR="$1" # Use the provided directory
+fi
+
+# Output file
+OUTPUT_FILE="${PROTO_DIR}/gorpc.proto"
+# Delete the output file if it already exists
+if [ -f "$OUTPUT_FILE" ]; then
+    rm "$OUTPUT_FILE"
+    echo "Deleted existing $OUTPUT_FILE"
+fi
+
+# Create the header part in the output file
+cat >"$OUTPUT_FILE" <<'EOL'
+syntax = "proto3";
+
+package gorpc;
+option go_package = "./pb";
+
+EOL
+
+# First add constant.proto content after the header
+grep -v 'syntax\|package\|option go_package' constant.proto >>"$OUTPUT_FILE"
+
+# First add common.proto content after the header
+grep -v 'syntax\|package\|option go_package\|import "pb/constant.proto"' common.proto >>"$OUTPUT_FILE"
+
+# Then append all other proto files
+for file in "$PROTO_DIR"/*.proto; do
+    # Skip common.proto and the output file itself
+    if [[ "$(basename "$file")" != "common.proto" && "$(basename "$file")" != "constant.proto" && "$(basename "$file")" != "gorpc.proto" ]]; then
+        echo "Processing $(basename "$file")..."
+        # Skip the header part and both common.proto and constant.proto imports
+        grep -v 'syntax\|package\|option go_package\|import "pb/common.proto"\|import "pb/constant.proto"' "$file" >>"$OUTPUT_FILE"
+    fi
+done
+
+echo "Proto files have been merged into $OUTPUT_FILE"
+
+goctl rpc protoc gorpc.proto \
+    --go_out=./ \
+    --go-grpc_out=./ \
+    --zrpc_out=./tmp_generate \
+    -m \
+    --style go_zero
+
+if [ -d "./client" ]; then
+    echo "Removing existing client directory..."
+    rm -rf ./client
+fi
+
+cp -r ./tmp_generate/client ./client
+
+rm -rf ./tmp_generate
+
+go mod tidy

+ 20443 - 0
pb/pb/gorpc.pb.go

@@ -0,0 +1,20443 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.6
+// 	protoc        v5.29.3
+// source: gorpc.proto
+
+package pb
+
+import (
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
+)
+
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type RegisterMode int32
+
+const (
+	RegisterMode_RegisterModeUnknown RegisterMode = 0
+	RegisterMode_RegisterModeGuest   RegisterMode = 1
+	RegisterMode_RegisterModeApp     RegisterMode = 2
+	RegisterMode_RegisterModeWeb     RegisterMode = 3
+	RegisterMode_RegisterModePc      RegisterMode = 4
+	RegisterMode_RegisterModeInvalid RegisterMode = 9999
+)
+
+// Enum value maps for RegisterMode.
+var (
+	RegisterMode_name = map[int32]string{
+		0:    "RegisterModeUnknown",
+		1:    "RegisterModeGuest",
+		2:    "RegisterModeApp",
+		3:    "RegisterModeWeb",
+		4:    "RegisterModePc",
+		9999: "RegisterModeInvalid",
+	}
+	RegisterMode_value = map[string]int32{
+		"RegisterModeUnknown": 0,
+		"RegisterModeGuest":   1,
+		"RegisterModeApp":     2,
+		"RegisterModeWeb":     3,
+		"RegisterModePc":      4,
+		"RegisterModeInvalid": 9999,
+	}
+)
+
+func (x RegisterMode) Enum() *RegisterMode {
+	p := new(RegisterMode)
+	*p = x
+	return p
+}
+
+func (x RegisterMode) String() string {
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (RegisterMode) Descriptor() protoreflect.EnumDescriptor {
+	return file_gorpc_proto_enumTypes[0].Descriptor()
+}
+
+func (RegisterMode) Type() protoreflect.EnumType {
+	return &file_gorpc_proto_enumTypes[0]
+}
+
+func (x RegisterMode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use RegisterMode.Descriptor instead.
+func (RegisterMode) EnumDescriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{0}
+}
+
+// 根据需要增加状态
+type CommonResultCode int32
+
+const (
+	CommonResultCode_Success CommonResultCode = 0
+)
+
+// Enum value maps for CommonResultCode.
+var (
+	CommonResultCode_name = map[int32]string{
+		0: "Success",
+	}
+	CommonResultCode_value = map[string]int32{
+		"Success": 0,
+	}
+)
+
+func (x CommonResultCode) Enum() *CommonResultCode {
+	p := new(CommonResultCode)
+	*p = x
+	return p
+}
+
+func (x CommonResultCode) String() string {
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (CommonResultCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_gorpc_proto_enumTypes[1].Descriptor()
+}
+
+func (CommonResultCode) Type() protoreflect.EnumType {
+	return &file_gorpc_proto_enumTypes[1]
+}
+
+func (x CommonResultCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use CommonResultCode.Descriptor instead.
+func (CommonResultCode) EnumDescriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{1}
+}
+
+type Status int32
+
+const (
+	Status_UnknownStatus Status = 0
+	Status_StatusValid   Status = 1
+	Status_StatusInValid Status = 2
+)
+
+// Enum value maps for Status.
+var (
+	Status_name = map[int32]string{
+		0: "UnknownStatus",
+		1: "StatusValid",
+		2: "StatusInValid",
+	}
+	Status_value = map[string]int32{
+		"UnknownStatus": 0,
+		"StatusValid":   1,
+		"StatusInValid": 2,
+	}
+)
+
+func (x Status) Enum() *Status {
+	p := new(Status)
+	*p = x
+	return p
+}
+
+func (x Status) String() string {
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Status) Descriptor() protoreflect.EnumDescriptor {
+	return file_gorpc_proto_enumTypes[2].Descriptor()
+}
+
+func (Status) Type() protoreflect.EnumType {
+	return &file_gorpc_proto_enumTypes[2]
+}
+
+func (x Status) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Status.Descriptor instead.
+func (Status) EnumDescriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{2}
+}
+
+type BoolInt int32
+
+const (
+	BoolInt_BoolIntUnknown BoolInt = 0
+	BoolInt_BoolIntTrue    BoolInt = 1
+	BoolInt_BoolIntFalse   BoolInt = 2
+)
+
+// Enum value maps for BoolInt.
+var (
+	BoolInt_name = map[int32]string{
+		0: "BoolIntUnknown",
+		1: "BoolIntTrue",
+		2: "BoolIntFalse",
+	}
+	BoolInt_value = map[string]int32{
+		"BoolIntUnknown": 0,
+		"BoolIntTrue":    1,
+		"BoolIntFalse":   2,
+	}
+)
+
+func (x BoolInt) Enum() *BoolInt {
+	p := new(BoolInt)
+	*p = x
+	return p
+}
+
+func (x BoolInt) String() string {
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (BoolInt) Descriptor() protoreflect.EnumDescriptor {
+	return file_gorpc_proto_enumTypes[3].Descriptor()
+}
+
+func (BoolInt) Type() protoreflect.EnumType {
+	return &file_gorpc_proto_enumTypes[3]
+}
+
+func (x BoolInt) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use BoolInt.Descriptor instead.
+func (BoolInt) EnumDescriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{3}
+}
+
+type Empty struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *Empty) Reset() {
+	*x = Empty{}
+	mi := &file_gorpc_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Empty) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Empty) ProtoMessage() {}
+
+func (x *Empty) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Empty.ProtoReflect.Descriptor instead.
+func (*Empty) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{0}
+}
+
+type Int64SelectController struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Values        []int64                `protobuf:"varint,1,rep,packed,name=values,proto3" json:"values,omitempty"`
+	Exclude       bool                   `protobuf:"varint,2,opt,name=exclude,proto3" json:"exclude,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *Int64SelectController) Reset() {
+	*x = Int64SelectController{}
+	mi := &file_gorpc_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Int64SelectController) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Int64SelectController) ProtoMessage() {}
+
+func (x *Int64SelectController) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Int64SelectController.ProtoReflect.Descriptor instead.
+func (*Int64SelectController) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *Int64SelectController) GetValues() []int64 {
+	if x != nil {
+		return x.Values
+	}
+	return nil
+}
+
+func (x *Int64SelectController) GetExclude() bool {
+	if x != nil {
+		return x.Exclude
+	}
+	return false
+}
+
+type IntSelectController struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Values        []int32                `protobuf:"varint,1,rep,packed,name=values,proto3" json:"values,omitempty"`
+	Exclude       bool                   `protobuf:"varint,2,opt,name=exclude,proto3" json:"exclude,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *IntSelectController) Reset() {
+	*x = IntSelectController{}
+	mi := &file_gorpc_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *IntSelectController) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*IntSelectController) ProtoMessage() {}
+
+func (x *IntSelectController) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use IntSelectController.ProtoReflect.Descriptor instead.
+func (*IntSelectController) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *IntSelectController) GetValues() []int32 {
+	if x != nil {
+		return x.Values
+	}
+	return nil
+}
+
+func (x *IntSelectController) GetExclude() bool {
+	if x != nil {
+		return x.Exclude
+	}
+	return false
+}
+
+type StringSelectController struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Values        []string               `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
+	Exclude       bool                   `protobuf:"varint,2,opt,name=exclude,proto3" json:"exclude,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *StringSelectController) Reset() {
+	*x = StringSelectController{}
+	mi := &file_gorpc_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *StringSelectController) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StringSelectController) ProtoMessage() {}
+
+func (x *StringSelectController) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use StringSelectController.ProtoReflect.Descriptor instead.
+func (*StringSelectController) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *StringSelectController) GetValues() []string {
+	if x != nil {
+		return x.Values
+	}
+	return nil
+}
+
+func (x *StringSelectController) GetExclude() bool {
+	if x != nil {
+		return x.Exclude
+	}
+	return false
+}
+
+type Page struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PageNo        int64                  `protobuf:"varint,1,opt,name=pageNo,proto3" json:"pageNo,omitempty"`
+	PageSize      int64                  `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"`
+	StartTime     int64                  `protobuf:"varint,3,opt,name=startTime,proto3" json:"startTime,omitempty"`
+	EndTime       int64                  `protobuf:"varint,4,opt,name=endTime,proto3" json:"endTime,omitempty"`
+	SortBy        []*Page_OrderItem      `protobuf:"bytes,5,rep,name=sortBy,proto3" json:"sortBy,omitempty"`
+	IgnoreTotal   bool                   `protobuf:"varint,6,opt,name=ignoreTotal,proto3" json:"ignoreTotal,omitempty"` // 忽略总条数
+	IgnoreStat    bool                   `protobuf:"varint,7,opt,name=ignoreStat,proto3" json:"ignoreStat,omitempty"`   // 忽略总条数
+	IgnoreList    bool                   `protobuf:"varint,8,opt,name=ignoreList,proto3" json:"ignoreList,omitempty"`   // 忽略列表
+	Ids           []int64                `protobuf:"varint,9,rep,packed,name=ids,proto3" json:"ids,omitempty"`
+	GroupBy       []string               `protobuf:"bytes,10,rep,name=groupBy,proto3" json:"groupBy,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *Page) Reset() {
+	*x = Page{}
+	mi := &file_gorpc_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Page) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Page) ProtoMessage() {}
+
+func (x *Page) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Page.ProtoReflect.Descriptor instead.
+func (*Page) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *Page) GetPageNo() int64 {
+	if x != nil {
+		return x.PageNo
+	}
+	return 0
+}
+
+func (x *Page) GetPageSize() int64 {
+	if x != nil {
+		return x.PageSize
+	}
+	return 0
+}
+
+func (x *Page) GetStartTime() int64 {
+	if x != nil {
+		return x.StartTime
+	}
+	return 0
+}
+
+func (x *Page) GetEndTime() int64 {
+	if x != nil {
+		return x.EndTime
+	}
+	return 0
+}
+
+func (x *Page) GetSortBy() []*Page_OrderItem {
+	if x != nil {
+		return x.SortBy
+	}
+	return nil
+}
+
+func (x *Page) GetIgnoreTotal() bool {
+	if x != nil {
+		return x.IgnoreTotal
+	}
+	return false
+}
+
+func (x *Page) GetIgnoreStat() bool {
+	if x != nil {
+		return x.IgnoreStat
+	}
+	return false
+}
+
+func (x *Page) GetIgnoreList() bool {
+	if x != nil {
+		return x.IgnoreList
+	}
+	return false
+}
+
+func (x *Page) GetIds() []int64 {
+	if x != nil {
+		return x.Ids
+	}
+	return nil
+}
+
+func (x *Page) GetGroupBy() []string {
+	if x != nil {
+		return x.GroupBy
+	}
+	return nil
+}
+
+type CommonResult struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Code          CommonResultCode       `protobuf:"varint,1,opt,name=code,proto3,enum=gorpc.CommonResultCode" json:"code,omitempty"`
+	Msg           string                 `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *CommonResult) Reset() {
+	*x = CommonResult{}
+	mi := &file_gorpc_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *CommonResult) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CommonResult) ProtoMessage() {}
+
+func (x *CommonResult) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[5]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use CommonResult.ProtoReflect.Descriptor instead.
+func (*CommonResult) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *CommonResult) GetCode() CommonResultCode {
+	if x != nil {
+		return x.Code
+	}
+	return CommonResultCode_Success
+}
+
+func (x *CommonResult) GetMsg() string {
+	if x != nil {
+		return x.Msg
+	}
+	return ""
+}
+
+type BaseReq struct {
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	TimeZoneOffset int64                  `protobuf:"varint,1,opt,name=timeZoneOffset,proto3" json:"timeZoneOffset,omitempty"`
+	Lan            string                 `protobuf:"bytes,2,opt,name=lan,proto3" json:"lan,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
+}
+
+func (x *BaseReq) Reset() {
+	*x = BaseReq{}
+	mi := &file_gorpc_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *BaseReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BaseReq) ProtoMessage() {}
+
+func (x *BaseReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[6]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use BaseReq.ProtoReflect.Descriptor instead.
+func (*BaseReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *BaseReq) GetTimeZoneOffset() int64 {
+	if x != nil {
+		return x.TimeZoneOffset
+	}
+	return 0
+}
+
+func (x *BaseReq) GetLan() string {
+	if x != nil {
+		return x.Lan
+	}
+	return ""
+}
+
+type DeleteIdResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	FailedIds     []int64                `protobuf:"varint,1,rep,packed,name=failedIds,proto3" json:"failedIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *DeleteIdResp) Reset() {
+	*x = DeleteIdResp{}
+	mi := &file_gorpc_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeleteIdResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteIdResp) ProtoMessage() {}
+
+func (x *DeleteIdResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[7]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteIdResp.ProtoReflect.Descriptor instead.
+func (*DeleteIdResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *DeleteIdResp) GetFailedIds() []int64 {
+	if x != nil {
+		return x.FailedIds
+	}
+	return nil
+}
+
+type Ids struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Ids           []int64                `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *Ids) Reset() {
+	*x = Ids{}
+	mi := &file_gorpc_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Ids) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Ids) ProtoMessage() {}
+
+func (x *Ids) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[8]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Ids.ProtoReflect.Descriptor instead.
+func (*Ids) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *Ids) GetIds() []int64 {
+	if x != nil {
+		return x.Ids
+	}
+	return nil
+}
+
+type Request struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *Request) Reset() {
+	*x = Request{}
+	mi := &file_gorpc_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Request) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Request) ProtoMessage() {}
+
+func (x *Request) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[9]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Request.ProtoReflect.Descriptor instead.
+func (*Request) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{9}
+}
+
+type Response struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Msg           string                 `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *Response) Reset() {
+	*x = Response{}
+	mi := &file_gorpc_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Response) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Response) ProtoMessage() {}
+
+func (x *Response) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[10]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Response.ProtoReflect.Descriptor instead.
+func (*Response) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *Response) GetMsg() string {
+	if x != nil {
+		return x.Msg
+	}
+	return ""
+}
+
+type TransactionOperation struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Table         string                 `protobuf:"bytes,1,opt,name=table,proto3" json:"table,omitempty"`     // 表名
+	Operate       string                 `protobuf:"bytes,2,opt,name=operate,proto3" json:"operate,omitempty"` // delete,insert,update
+	Data          string                 `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`       // json格式
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *TransactionOperation) Reset() {
+	*x = TransactionOperation{}
+	mi := &file_gorpc_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TransactionOperation) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TransactionOperation) ProtoMessage() {}
+
+func (x *TransactionOperation) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[11]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TransactionOperation.ProtoReflect.Descriptor instead.
+func (*TransactionOperation) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *TransactionOperation) GetTable() string {
+	if x != nil {
+		return x.Table
+	}
+	return ""
+}
+
+func (x *TransactionOperation) GetOperate() string {
+	if x != nil {
+		return x.Operate
+	}
+	return ""
+}
+
+func (x *TransactionOperation) GetData() string {
+	if x != nil {
+		return x.Data
+	}
+	return ""
+}
+
+type TransactionReq struct {
+	state         protoimpl.MessageState  `protogen:"open.v1"`
+	Transactions  []*TransactionOperation `protobuf:"bytes,1,rep,name=transactions,proto3" json:"transactions,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *TransactionReq) Reset() {
+	*x = TransactionReq{}
+	mi := &file_gorpc_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TransactionReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TransactionReq) ProtoMessage() {}
+
+func (x *TransactionReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[12]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TransactionReq.ProtoReflect.Descriptor instead.
+func (*TransactionReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *TransactionReq) GetTransactions() []*TransactionOperation {
+	if x != nil {
+		return x.Transactions
+	}
+	return nil
+}
+
+type GameVo struct {
+	state                 protoimpl.MessageState `protogen:"open.v1"`
+	Id                    int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	Name                  string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+	Pkg                   string                 `protobuf:"bytes,3,opt,name=pkg,proto3" json:"pkg,omitempty"`
+	Categories            string                 `protobuf:"bytes,4,opt,name=categories,proto3" json:"categories,omitempty"`
+	Icon                  string                 `protobuf:"bytes,5,opt,name=icon,proto3" json:"icon,omitempty"`
+	InternalIcon          string                 `protobuf:"bytes,6,opt,name=internal_icon,json=internalIcon,proto3" json:"internal_icon,omitempty"`
+	SourceIcon            string                 `protobuf:"bytes,7,opt,name=source_icon,json=sourceIcon,proto3" json:"source_icon,omitempty"`
+	Status                int64                  `protobuf:"varint,8,opt,name=status,proto3" json:"status,omitempty"`
+	State                 int64                  `protobuf:"varint,9,opt,name=state,proto3" json:"state,omitempty"`
+	EnableRating          int64                  `protobuf:"varint,10,opt,name=enableRating,proto3" json:"enableRating,omitempty"`
+	GameUpdateTime        int64                  `protobuf:"varint,11,opt,name=gameUpdateTime,proto3" json:"gameUpdateTime,omitempty"`
+	GameBoostCount        int64                  `protobuf:"varint,12,opt,name=gameBoostCount,proto3" json:"gameBoostCount,omitempty"`
+	GameBoostCountryCount string                 `protobuf:"bytes,13,opt,name=gameBoostCountryCount,proto3" json:"gameBoostCountryCount,omitempty"`
+	CreateTime            int64                  `protobuf:"varint,14,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime            int64                  `protobuf:"varint,15,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields         protoimpl.UnknownFields
+	sizeCache             protoimpl.SizeCache
+}
+
+func (x *GameVo) Reset() {
+	*x = GameVo{}
+	mi := &file_gorpc_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GameVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GameVo) ProtoMessage() {}
+
+func (x *GameVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[13]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GameVo.ProtoReflect.Descriptor instead.
+func (*GameVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *GameVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *GameVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *GameVo) GetPkg() string {
+	if x != nil {
+		return x.Pkg
+	}
+	return ""
+}
+
+func (x *GameVo) GetCategories() string {
+	if x != nil {
+		return x.Categories
+	}
+	return ""
+}
+
+func (x *GameVo) GetIcon() string {
+	if x != nil {
+		return x.Icon
+	}
+	return ""
+}
+
+func (x *GameVo) GetInternalIcon() string {
+	if x != nil {
+		return x.InternalIcon
+	}
+	return ""
+}
+
+func (x *GameVo) GetSourceIcon() string {
+	if x != nil {
+		return x.SourceIcon
+	}
+	return ""
+}
+
+func (x *GameVo) GetStatus() int64 {
+	if x != nil {
+		return x.Status
+	}
+	return 0
+}
+
+func (x *GameVo) GetState() int64 {
+	if x != nil {
+		return x.State
+	}
+	return 0
+}
+
+func (x *GameVo) GetEnableRating() int64 {
+	if x != nil {
+		return x.EnableRating
+	}
+	return 0
+}
+
+func (x *GameVo) GetGameUpdateTime() int64 {
+	if x != nil {
+		return x.GameUpdateTime
+	}
+	return 0
+}
+
+func (x *GameVo) GetGameBoostCount() int64 {
+	if x != nil {
+		return x.GameBoostCount
+	}
+	return 0
+}
+
+func (x *GameVo) GetGameBoostCountryCount() string {
+	if x != nil {
+		return x.GameBoostCountryCount
+	}
+	return ""
+}
+
+func (x *GameVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *GameVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type GameReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *GameVo                `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GameReq) Reset() {
+	*x = GameReq{}
+	mi := &file_gorpc_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GameReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GameReq) ProtoMessage() {}
+
+func (x *GameReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[14]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GameReq.ProtoReflect.Descriptor instead.
+func (*GameReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{14}
+}
+
+func (x *GameReq) GetVo() *GameVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type GameListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Pkgs          []string               `protobuf:"bytes,2,rep,name=pkgs,proto3" json:"pkgs,omitempty"`
+	Vo            *GameVo                `protobuf:"bytes,3,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GameListReq) Reset() {
+	*x = GameListReq{}
+	mi := &file_gorpc_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GameListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GameListReq) ProtoMessage() {}
+
+func (x *GameListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[15]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GameListReq.ProtoReflect.Descriptor instead.
+func (*GameListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{15}
+}
+
+func (x *GameListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *GameListReq) GetPkgs() []string {
+	if x != nil {
+		return x.Pkgs
+	}
+	return nil
+}
+
+func (x *GameListReq) GetVo() *GameVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type GameListRes struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*GameVo              `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GameListRes) Reset() {
+	*x = GameListRes{}
+	mi := &file_gorpc_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GameListRes) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GameListRes) ProtoMessage() {}
+
+func (x *GameListRes) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[16]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GameListRes.ProtoReflect.Descriptor instead.
+func (*GameListRes) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{16}
+}
+
+func (x *GameListRes) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *GameListRes) GetList() []*GameVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type RelGameRankVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	GameId        int64                  `protobuf:"varint,2,opt,name=gameId,proto3" json:"gameId,omitempty"`
+	RankId        int64                  `protobuf:"varint,3,opt,name=rankId,proto3" json:"rankId,omitempty"`
+	Weight        int64                  `protobuf:"varint,4,opt,name=weight,proto3" json:"weight,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,5,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,6,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *RelGameRankVo) Reset() {
+	*x = RelGameRankVo{}
+	mi := &file_gorpc_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *RelGameRankVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RelGameRankVo) ProtoMessage() {}
+
+func (x *RelGameRankVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[17]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RelGameRankVo.ProtoReflect.Descriptor instead.
+func (*RelGameRankVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{17}
+}
+
+func (x *RelGameRankVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *RelGameRankVo) GetGameId() int64 {
+	if x != nil {
+		return x.GameId
+	}
+	return 0
+}
+
+func (x *RelGameRankVo) GetRankId() int64 {
+	if x != nil {
+		return x.RankId
+	}
+	return 0
+}
+
+func (x *RelGameRankVo) GetWeight() int64 {
+	if x != nil {
+		return x.Weight
+	}
+	return 0
+}
+
+func (x *RelGameRankVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *RelGameRankVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type RelGameRankReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *RelGameRankVo         `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *RelGameRankReq) Reset() {
+	*x = RelGameRankReq{}
+	mi := &file_gorpc_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *RelGameRankReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RelGameRankReq) ProtoMessage() {}
+
+func (x *RelGameRankReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[18]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RelGameRankReq.ProtoReflect.Descriptor instead.
+func (*RelGameRankReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{18}
+}
+
+func (x *RelGameRankReq) GetVo() *RelGameRankVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type RelGameRankListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *RelGameRankVo         `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *RelGameRankListReq) Reset() {
+	*x = RelGameRankListReq{}
+	mi := &file_gorpc_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *RelGameRankListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RelGameRankListReq) ProtoMessage() {}
+
+func (x *RelGameRankListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[19]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RelGameRankListReq.ProtoReflect.Descriptor instead.
+func (*RelGameRankListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{19}
+}
+
+func (x *RelGameRankListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *RelGameRankListReq) GetVo() *RelGameRankVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type RelGameRankListRes struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*RelGameRankVo       `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *RelGameRankListRes) Reset() {
+	*x = RelGameRankListRes{}
+	mi := &file_gorpc_proto_msgTypes[20]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *RelGameRankListRes) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RelGameRankListRes) ProtoMessage() {}
+
+func (x *RelGameRankListRes) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[20]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RelGameRankListRes.ProtoReflect.Descriptor instead.
+func (*RelGameRankListRes) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{20}
+}
+
+func (x *RelGameRankListRes) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *RelGameRankListRes) GetList() []*RelGameRankVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type RelGameVpnGroupVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	GameId        int64                  `protobuf:"varint,2,opt,name=gameId,proto3" json:"gameId,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,3,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	VpnGroupId    int64                  `protobuf:"varint,4,opt,name=vpnGroupId,proto3" json:"vpnGroupId,omitempty"`
+	Status        int64                  `protobuf:"varint,5,opt,name=status,proto3" json:"status,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,6,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,7,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *RelGameVpnGroupVo) Reset() {
+	*x = RelGameVpnGroupVo{}
+	mi := &file_gorpc_proto_msgTypes[21]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *RelGameVpnGroupVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RelGameVpnGroupVo) ProtoMessage() {}
+
+func (x *RelGameVpnGroupVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[21]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RelGameVpnGroupVo.ProtoReflect.Descriptor instead.
+func (*RelGameVpnGroupVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{21}
+}
+
+func (x *RelGameVpnGroupVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *RelGameVpnGroupVo) GetGameId() int64 {
+	if x != nil {
+		return x.GameId
+	}
+	return 0
+}
+
+func (x *RelGameVpnGroupVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *RelGameVpnGroupVo) GetVpnGroupId() int64 {
+	if x != nil {
+		return x.VpnGroupId
+	}
+	return 0
+}
+
+func (x *RelGameVpnGroupVo) GetStatus() int64 {
+	if x != nil {
+		return x.Status
+	}
+	return 0
+}
+
+func (x *RelGameVpnGroupVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *RelGameVpnGroupVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type RelGameVpnGroupReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *RelGameVpnGroupVo     `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *RelGameVpnGroupReq) Reset() {
+	*x = RelGameVpnGroupReq{}
+	mi := &file_gorpc_proto_msgTypes[22]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *RelGameVpnGroupReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RelGameVpnGroupReq) ProtoMessage() {}
+
+func (x *RelGameVpnGroupReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[22]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RelGameVpnGroupReq.ProtoReflect.Descriptor instead.
+func (*RelGameVpnGroupReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{22}
+}
+
+func (x *RelGameVpnGroupReq) GetVo() *RelGameVpnGroupVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type RelGameVpnGroupListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	GameIds       []int64                `protobuf:"varint,1,rep,packed,name=gameIds,proto3" json:"gameIds,omitempty"`
+	Vo            *RelGameVpnGroupVo     `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *RelGameVpnGroupListReq) Reset() {
+	*x = RelGameVpnGroupListReq{}
+	mi := &file_gorpc_proto_msgTypes[23]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *RelGameVpnGroupListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RelGameVpnGroupListReq) ProtoMessage() {}
+
+func (x *RelGameVpnGroupListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[23]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RelGameVpnGroupListReq.ProtoReflect.Descriptor instead.
+func (*RelGameVpnGroupListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{23}
+}
+
+func (x *RelGameVpnGroupListReq) GetGameIds() []int64 {
+	if x != nil {
+		return x.GameIds
+	}
+	return nil
+}
+
+func (x *RelGameVpnGroupListReq) GetVo() *RelGameVpnGroupVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type RelGameVpnGroupListRes struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*RelGameVpnGroupVo   `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *RelGameVpnGroupListRes) Reset() {
+	*x = RelGameVpnGroupListRes{}
+	mi := &file_gorpc_proto_msgTypes[24]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *RelGameVpnGroupListRes) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RelGameVpnGroupListRes) ProtoMessage() {}
+
+func (x *RelGameVpnGroupListRes) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[24]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RelGameVpnGroupListRes.ProtoReflect.Descriptor instead.
+func (*RelGameVpnGroupListRes) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{24}
+}
+
+func (x *RelGameVpnGroupListRes) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *RelGameVpnGroupListRes) GetList() []*RelGameVpnGroupVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type GameRedisHScanByNameReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Cursor        int64                  `protobuf:"varint,2,opt,name=cursor,proto3" json:"cursor,omitempty"`
+	Count         int64                  `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GameRedisHScanByNameReq) Reset() {
+	*x = GameRedisHScanByNameReq{}
+	mi := &file_gorpc_proto_msgTypes[25]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GameRedisHScanByNameReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GameRedisHScanByNameReq) ProtoMessage() {}
+
+func (x *GameRedisHScanByNameReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[25]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GameRedisHScanByNameReq.ProtoReflect.Descriptor instead.
+func (*GameRedisHScanByNameReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{25}
+}
+
+func (x *GameRedisHScanByNameReq) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *GameRedisHScanByNameReq) GetCursor() int64 {
+	if x != nil {
+		return x.Cursor
+	}
+	return 0
+}
+
+func (x *GameRedisHScanByNameReq) GetCount() int64 {
+	if x != nil {
+		return x.Count
+	}
+	return 0
+}
+
+type GameRedisHScanByNameResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Ids           []int64                `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"`
+	Cursor        int64                  `protobuf:"varint,2,opt,name=cursor,proto3" json:"cursor,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GameRedisHScanByNameResp) Reset() {
+	*x = GameRedisHScanByNameResp{}
+	mi := &file_gorpc_proto_msgTypes[26]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GameRedisHScanByNameResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GameRedisHScanByNameResp) ProtoMessage() {}
+
+func (x *GameRedisHScanByNameResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[26]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GameRedisHScanByNameResp.ProtoReflect.Descriptor instead.
+func (*GameRedisHScanByNameResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{26}
+}
+
+func (x *GameRedisHScanByNameResp) GetIds() []int64 {
+	if x != nil {
+		return x.Ids
+	}
+	return nil
+}
+
+func (x *GameRedisHScanByNameResp) GetCursor() int64 {
+	if x != nil {
+		return x.Cursor
+	}
+	return 0
+}
+
+type GameCustomerVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+	Pkg           string                 `protobuf:"bytes,3,opt,name=pkg,proto3" json:"pkg,omitempty"`
+	Icon          string                 `protobuf:"bytes,4,opt,name=icon,proto3" json:"icon,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,5,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,6,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GameCustomerVo) Reset() {
+	*x = GameCustomerVo{}
+	mi := &file_gorpc_proto_msgTypes[27]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GameCustomerVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GameCustomerVo) ProtoMessage() {}
+
+func (x *GameCustomerVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[27]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GameCustomerVo.ProtoReflect.Descriptor instead.
+func (*GameCustomerVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{27}
+}
+
+func (x *GameCustomerVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *GameCustomerVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *GameCustomerVo) GetPkg() string {
+	if x != nil {
+		return x.Pkg
+	}
+	return ""
+}
+
+func (x *GameCustomerVo) GetIcon() string {
+	if x != nil {
+		return x.Icon
+	}
+	return ""
+}
+
+func (x *GameCustomerVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *GameCustomerVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type GameCustomerListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Pkgs          []string               `protobuf:"bytes,2,rep,name=pkgs,proto3" json:"pkgs,omitempty"`
+	Vo            *GameCustomerVo        `protobuf:"bytes,3,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GameCustomerListReq) Reset() {
+	*x = GameCustomerListReq{}
+	mi := &file_gorpc_proto_msgTypes[28]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GameCustomerListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GameCustomerListReq) ProtoMessage() {}
+
+func (x *GameCustomerListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[28]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GameCustomerListReq.ProtoReflect.Descriptor instead.
+func (*GameCustomerListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{28}
+}
+
+func (x *GameCustomerListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *GameCustomerListReq) GetPkgs() []string {
+	if x != nil {
+		return x.Pkgs
+	}
+	return nil
+}
+
+func (x *GameCustomerListReq) GetVo() *GameCustomerVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type GameCustomerListRes struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*GameCustomerVo      `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GameCustomerListRes) Reset() {
+	*x = GameCustomerListRes{}
+	mi := &file_gorpc_proto_msgTypes[29]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GameCustomerListRes) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GameCustomerListRes) ProtoMessage() {}
+
+func (x *GameCustomerListRes) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[29]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GameCustomerListRes.ProtoReflect.Descriptor instead.
+func (*GameCustomerListRes) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{29}
+}
+
+func (x *GameCustomerListRes) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *GameCustomerListRes) GetList() []*GameCustomerVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type GameCustomerAddResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *GameCustomerVo        `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	ExistBoost    bool                   `protobuf:"varint,2,opt,name=ExistBoost,proto3" json:"ExistBoost,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GameCustomerAddResp) Reset() {
+	*x = GameCustomerAddResp{}
+	mi := &file_gorpc_proto_msgTypes[30]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GameCustomerAddResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GameCustomerAddResp) ProtoMessage() {}
+
+func (x *GameCustomerAddResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[30]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GameCustomerAddResp.ProtoReflect.Descriptor instead.
+func (*GameCustomerAddResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{30}
+}
+
+func (x *GameCustomerAddResp) GetVo() *GameCustomerVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *GameCustomerAddResp) GetExistBoost() bool {
+	if x != nil {
+		return x.ExistBoost
+	}
+	return false
+}
+
+type GameCategoryVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	Code          string                 `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
+	Name          string                 `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
+	Described     string                 `protobuf:"bytes,4,opt,name=described,proto3" json:"described,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,5,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,6,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GameCategoryVo) Reset() {
+	*x = GameCategoryVo{}
+	mi := &file_gorpc_proto_msgTypes[31]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GameCategoryVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GameCategoryVo) ProtoMessage() {}
+
+func (x *GameCategoryVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[31]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GameCategoryVo.ProtoReflect.Descriptor instead.
+func (*GameCategoryVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{31}
+}
+
+func (x *GameCategoryVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *GameCategoryVo) GetCode() string {
+	if x != nil {
+		return x.Code
+	}
+	return ""
+}
+
+func (x *GameCategoryVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *GameCategoryVo) GetDescribed() string {
+	if x != nil {
+		return x.Described
+	}
+	return ""
+}
+
+func (x *GameCategoryVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *GameCategoryVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type GameCategoryReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *GameCategoryVo        `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GameCategoryReq) Reset() {
+	*x = GameCategoryReq{}
+	mi := &file_gorpc_proto_msgTypes[32]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GameCategoryReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GameCategoryReq) ProtoMessage() {}
+
+func (x *GameCategoryReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[32]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GameCategoryReq.ProtoReflect.Descriptor instead.
+func (*GameCategoryReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{32}
+}
+
+func (x *GameCategoryReq) GetVo() *GameCategoryVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type GameCategoryListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *GameCategoryVo        `protobuf:"bytes,3,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GameCategoryListReq) Reset() {
+	*x = GameCategoryListReq{}
+	mi := &file_gorpc_proto_msgTypes[33]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GameCategoryListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GameCategoryListReq) ProtoMessage() {}
+
+func (x *GameCategoryListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[33]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GameCategoryListReq.ProtoReflect.Descriptor instead.
+func (*GameCategoryListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{33}
+}
+
+func (x *GameCategoryListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *GameCategoryListReq) GetVo() *GameCategoryVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type GameCategoryListRes struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*GameCategoryVo      `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GameCategoryListRes) Reset() {
+	*x = GameCategoryListRes{}
+	mi := &file_gorpc_proto_msgTypes[34]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GameCategoryListRes) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GameCategoryListRes) ProtoMessage() {}
+
+func (x *GameCategoryListRes) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[34]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GameCategoryListRes.ProtoReflect.Descriptor instead.
+func (*GameCategoryListRes) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{34}
+}
+
+func (x *GameCategoryListRes) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *GameCategoryListRes) GetList() []*GameCategoryVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type I18NVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Code          string                 `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
+	Value         string                 `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *I18NVo) Reset() {
+	*x = I18NVo{}
+	mi := &file_gorpc_proto_msgTypes[35]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *I18NVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*I18NVo) ProtoMessage() {}
+
+func (x *I18NVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[35]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use I18NVo.ProtoReflect.Descriptor instead.
+func (*I18NVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{35}
+}
+
+func (x *I18NVo) GetCode() string {
+	if x != nil {
+		return x.Code
+	}
+	return ""
+}
+
+func (x *I18NVo) GetValue() string {
+	if x != nil {
+		return x.Value
+	}
+	return ""
+}
+
+type ConfigGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`    // ID
+	Code          string                 `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 类型标识
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ConfigGetReq) Reset() {
+	*x = ConfigGetReq{}
+	mi := &file_gorpc_proto_msgTypes[36]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ConfigGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ConfigGetReq) ProtoMessage() {}
+
+func (x *ConfigGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[36]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ConfigGetReq.ProtoReflect.Descriptor instead.
+func (*ConfigGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{36}
+}
+
+func (x *ConfigGetReq) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *ConfigGetReq) GetCode() string {
+	if x != nil {
+		return x.Code
+	}
+	return ""
+}
+
+// GlobalParam
+type GlobalParamVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ParamKey      string                 `protobuf:"bytes,2,opt,name=paramKey,proto3" json:"paramKey,omitempty"`
+	ParamValue    string                 `protobuf:"bytes,3,opt,name=paramValue,proto3" json:"paramValue,omitempty"`
+	ValueType     string                 `protobuf:"bytes,4,opt,name=valueType,proto3" json:"valueType,omitempty"`
+	MinValue      float32                `protobuf:"fixed32,5,opt,name=minValue,proto3" json:"minValue,omitempty"`
+	MaxValue      float32                `protobuf:"fixed32,6,opt,name=maxValue,proto3" json:"maxValue,omitempty"`
+	Name          string                 `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
+	Editable      BoolInt                `protobuf:"varint,8,opt,name=editable,proto3,enum=gorpc.BoolInt" json:"editable,omitempty"`
+	Nullable      BoolInt                `protobuf:"varint,9,opt,name=nullable,proto3,enum=gorpc.BoolInt" json:"nullable,omitempty"`
+	Hidden        BoolInt                `protobuf:"varint,10,opt,name=hidden,proto3,enum=gorpc.BoolInt" json:"hidden,omitempty"`
+	MutiLang      BoolInt                `protobuf:"varint,11,opt,name=mutiLang,proto3,enum=gorpc.BoolInt" json:"mutiLang,omitempty"`
+	Sort          int64                  `protobuf:"varint,12,opt,name=sort,proto3" json:"sort,omitempty"`
+	Remark        string                 `protobuf:"bytes,13,opt,name=remark,proto3" json:"remark,omitempty"`
+	ApiExport     BoolInt                `protobuf:"varint,14,opt,name=apiExport,proto3,enum=gorpc.BoolInt" json:"apiExport,omitempty"`
+	ApiExportName string                 `protobuf:"bytes,15,opt,name=apiExportName,proto3" json:"apiExportName,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,16,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,17,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	// valueType 为 string、text、json、string[], 且 mutiLang 为 true
+	// 时,需要同时干查询/修改/插入多语言数据
+	I18Ns         []*I18NVo `protobuf:"bytes,18,rep,name=i18ns,proto3" json:"i18ns,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GlobalParamVo) Reset() {
+	*x = GlobalParamVo{}
+	mi := &file_gorpc_proto_msgTypes[37]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GlobalParamVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GlobalParamVo) ProtoMessage() {}
+
+func (x *GlobalParamVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[37]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GlobalParamVo.ProtoReflect.Descriptor instead.
+func (*GlobalParamVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{37}
+}
+
+func (x *GlobalParamVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *GlobalParamVo) GetParamKey() string {
+	if x != nil {
+		return x.ParamKey
+	}
+	return ""
+}
+
+func (x *GlobalParamVo) GetParamValue() string {
+	if x != nil {
+		return x.ParamValue
+	}
+	return ""
+}
+
+func (x *GlobalParamVo) GetValueType() string {
+	if x != nil {
+		return x.ValueType
+	}
+	return ""
+}
+
+func (x *GlobalParamVo) GetMinValue() float32 {
+	if x != nil {
+		return x.MinValue
+	}
+	return 0
+}
+
+func (x *GlobalParamVo) GetMaxValue() float32 {
+	if x != nil {
+		return x.MaxValue
+	}
+	return 0
+}
+
+func (x *GlobalParamVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *GlobalParamVo) GetEditable() BoolInt {
+	if x != nil {
+		return x.Editable
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *GlobalParamVo) GetNullable() BoolInt {
+	if x != nil {
+		return x.Nullable
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *GlobalParamVo) GetHidden() BoolInt {
+	if x != nil {
+		return x.Hidden
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *GlobalParamVo) GetMutiLang() BoolInt {
+	if x != nil {
+		return x.MutiLang
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *GlobalParamVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *GlobalParamVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *GlobalParamVo) GetApiExport() BoolInt {
+	if x != nil {
+		return x.ApiExport
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *GlobalParamVo) GetApiExportName() string {
+	if x != nil {
+		return x.ApiExportName
+	}
+	return ""
+}
+
+func (x *GlobalParamVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *GlobalParamVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *GlobalParamVo) GetI18Ns() []*I18NVo {
+	if x != nil {
+		return x.I18Ns
+	}
+	return nil
+}
+
+type GlobalParamGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *GlobalParamVo         `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	Lang          string                 `protobuf:"bytes,2,opt,name=lang,proto3" json:"lang,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GlobalParamGetReq) Reset() {
+	*x = GlobalParamGetReq{}
+	mi := &file_gorpc_proto_msgTypes[38]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GlobalParamGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GlobalParamGetReq) ProtoMessage() {}
+
+func (x *GlobalParamGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[38]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GlobalParamGetReq.ProtoReflect.Descriptor instead.
+func (*GlobalParamGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{38}
+}
+
+func (x *GlobalParamGetReq) GetVo() *GlobalParamVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *GlobalParamGetReq) GetLang() string {
+	if x != nil {
+		return x.Lang
+	}
+	return ""
+}
+
+type GlobalParamListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *GlobalParamVo         `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,3,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"` // 排除的ID
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GlobalParamListReq) Reset() {
+	*x = GlobalParamListReq{}
+	mi := &file_gorpc_proto_msgTypes[39]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GlobalParamListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GlobalParamListReq) ProtoMessage() {}
+
+func (x *GlobalParamListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[39]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GlobalParamListReq.ProtoReflect.Descriptor instead.
+func (*GlobalParamListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{39}
+}
+
+func (x *GlobalParamListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *GlobalParamListReq) GetVo() *GlobalParamVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *GlobalParamListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type GlobalParamListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*GlobalParamVo       `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GlobalParamListResp) Reset() {
+	*x = GlobalParamListResp{}
+	mi := &file_gorpc_proto_msgTypes[40]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GlobalParamListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GlobalParamListResp) ProtoMessage() {}
+
+func (x *GlobalParamListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[40]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GlobalParamListResp.ProtoReflect.Descriptor instead.
+func (*GlobalParamListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{40}
+}
+
+func (x *GlobalParamListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *GlobalParamListResp) GetList() []*GlobalParamVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// Product
+type ProductVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	Code          string                 `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
+	Name          string                 `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
+	Domain        string                 `protobuf:"bytes,4,opt,name=domain,proto3" json:"domain,omitempty"`
+	Status        Status                 `protobuf:"varint,5,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	Langs         string                 `protobuf:"bytes,6,opt,name=langs,proto3" json:"langs,omitempty"`
+	DefaultLang   string                 `protobuf:"bytes,7,opt,name=defaultLang,proto3" json:"defaultLang,omitempty"`
+	Remark        string                 `protobuf:"bytes,8,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,9,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,10,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ProductVo) Reset() {
+	*x = ProductVo{}
+	mi := &file_gorpc_proto_msgTypes[41]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ProductVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductVo) ProtoMessage() {}
+
+func (x *ProductVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[41]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductVo.ProtoReflect.Descriptor instead.
+func (*ProductVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{41}
+}
+
+func (x *ProductVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *ProductVo) GetCode() string {
+	if x != nil {
+		return x.Code
+	}
+	return ""
+}
+
+func (x *ProductVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *ProductVo) GetDomain() string {
+	if x != nil {
+		return x.Domain
+	}
+	return ""
+}
+
+func (x *ProductVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *ProductVo) GetLangs() string {
+	if x != nil {
+		return x.Langs
+	}
+	return ""
+}
+
+func (x *ProductVo) GetDefaultLang() string {
+	if x != nil {
+		return x.DefaultLang
+	}
+	return ""
+}
+
+func (x *ProductVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *ProductVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *ProductVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type ProductListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *ProductVo             `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ProductListReq) Reset() {
+	*x = ProductListReq{}
+	mi := &file_gorpc_proto_msgTypes[42]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ProductListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductListReq) ProtoMessage() {}
+
+func (x *ProductListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[42]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductListReq.ProtoReflect.Descriptor instead.
+func (*ProductListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{42}
+}
+
+func (x *ProductListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *ProductListReq) GetVo() *ProductVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *ProductListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *ProductListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type ProductListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*ProductVo           `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ProductListResp) Reset() {
+	*x = ProductListResp{}
+	mi := &file_gorpc_proto_msgTypes[43]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ProductListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductListResp) ProtoMessage() {}
+
+func (x *ProductListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[43]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductListResp.ProtoReflect.Descriptor instead.
+func (*ProductListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{43}
+}
+
+func (x *ProductListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *ProductListResp) GetList() []*ProductVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// ProductParam
+type ProductParamVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	ParamKey      string                 `protobuf:"bytes,3,opt,name=paramKey,proto3" json:"paramKey,omitempty"`
+	ParamValue    string                 `protobuf:"bytes,4,opt,name=paramValue,proto3" json:"paramValue,omitempty"`
+	ValueType     string                 `protobuf:"bytes,5,opt,name=valueType,proto3" json:"valueType,omitempty"`
+	MinValue      float32                `protobuf:"fixed32,6,opt,name=minValue,proto3" json:"minValue,omitempty"`
+	MaxValue      float32                `protobuf:"fixed32,7,opt,name=maxValue,proto3" json:"maxValue,omitempty"`
+	Name          string                 `protobuf:"bytes,8,opt,name=name,proto3" json:"name,omitempty"`
+	Editable      BoolInt                `protobuf:"varint,9,opt,name=editable,proto3,enum=gorpc.BoolInt" json:"editable,omitempty"`
+	Nullable      BoolInt                `protobuf:"varint,10,opt,name=nullable,proto3,enum=gorpc.BoolInt" json:"nullable,omitempty"`
+	Hidden        BoolInt                `protobuf:"varint,11,opt,name=hidden,proto3,enum=gorpc.BoolInt" json:"hidden,omitempty"`
+	MutiLang      BoolInt                `protobuf:"varint,12,opt,name=mutiLang,proto3,enum=gorpc.BoolInt" json:"mutiLang,omitempty"`
+	Sort          int64                  `protobuf:"varint,13,opt,name=sort,proto3" json:"sort,omitempty"`
+	Remark        string                 `protobuf:"bytes,14,opt,name=remark,proto3" json:"remark,omitempty"`
+	ApiExport     BoolInt                `protobuf:"varint,15,opt,name=apiExport,proto3,enum=gorpc.BoolInt" json:"apiExport,omitempty"`
+	ApiExportName string                 `protobuf:"bytes,16,opt,name=apiExportName,proto3" json:"apiExportName,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,17,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,18,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	// valueType 为 string、text、json、string[], 且 mutiLang 为 true
+	// 时,需要同时干查询/修改/插入多语言数据
+	I18Ns         []*I18NVo `protobuf:"bytes,19,rep,name=i18ns,proto3" json:"i18ns,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ProductParamVo) Reset() {
+	*x = ProductParamVo{}
+	mi := &file_gorpc_proto_msgTypes[44]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ProductParamVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductParamVo) ProtoMessage() {}
+
+func (x *ProductParamVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[44]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductParamVo.ProtoReflect.Descriptor instead.
+func (*ProductParamVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{44}
+}
+
+func (x *ProductParamVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *ProductParamVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *ProductParamVo) GetParamKey() string {
+	if x != nil {
+		return x.ParamKey
+	}
+	return ""
+}
+
+func (x *ProductParamVo) GetParamValue() string {
+	if x != nil {
+		return x.ParamValue
+	}
+	return ""
+}
+
+func (x *ProductParamVo) GetValueType() string {
+	if x != nil {
+		return x.ValueType
+	}
+	return ""
+}
+
+func (x *ProductParamVo) GetMinValue() float32 {
+	if x != nil {
+		return x.MinValue
+	}
+	return 0
+}
+
+func (x *ProductParamVo) GetMaxValue() float32 {
+	if x != nil {
+		return x.MaxValue
+	}
+	return 0
+}
+
+func (x *ProductParamVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *ProductParamVo) GetEditable() BoolInt {
+	if x != nil {
+		return x.Editable
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *ProductParamVo) GetNullable() BoolInt {
+	if x != nil {
+		return x.Nullable
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *ProductParamVo) GetHidden() BoolInt {
+	if x != nil {
+		return x.Hidden
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *ProductParamVo) GetMutiLang() BoolInt {
+	if x != nil {
+		return x.MutiLang
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *ProductParamVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *ProductParamVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *ProductParamVo) GetApiExport() BoolInt {
+	if x != nil {
+		return x.ApiExport
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *ProductParamVo) GetApiExportName() string {
+	if x != nil {
+		return x.ApiExportName
+	}
+	return ""
+}
+
+func (x *ProductParamVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *ProductParamVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *ProductParamVo) GetI18Ns() []*I18NVo {
+	if x != nil {
+		return x.I18Ns
+	}
+	return nil
+}
+
+type ProductParamGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *ProductParamVo        `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	Lang          string                 `protobuf:"bytes,2,opt,name=lang,proto3" json:"lang,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ProductParamGetReq) Reset() {
+	*x = ProductParamGetReq{}
+	mi := &file_gorpc_proto_msgTypes[45]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ProductParamGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductParamGetReq) ProtoMessage() {}
+
+func (x *ProductParamGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[45]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductParamGetReq.ProtoReflect.Descriptor instead.
+func (*ProductParamGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{45}
+}
+
+func (x *ProductParamGetReq) GetVo() *ProductParamVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *ProductParamGetReq) GetLang() string {
+	if x != nil {
+		return x.Lang
+	}
+	return ""
+}
+
+type ProductParamListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *ProductParamVo        `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ProductParamListReq) Reset() {
+	*x = ProductParamListReq{}
+	mi := &file_gorpc_proto_msgTypes[46]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ProductParamListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductParamListReq) ProtoMessage() {}
+
+func (x *ProductParamListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[46]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductParamListReq.ProtoReflect.Descriptor instead.
+func (*ProductParamListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{46}
+}
+
+func (x *ProductParamListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *ProductParamListReq) GetVo() *ProductParamVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *ProductParamListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *ProductParamListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type ProductParamListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*ProductParamVo      `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ProductParamListResp) Reset() {
+	*x = ProductParamListResp{}
+	mi := &file_gorpc_proto_msgTypes[47]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ProductParamListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductParamListResp) ProtoMessage() {}
+
+func (x *ProductParamListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[47]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductParamListResp.ProtoReflect.Descriptor instead.
+func (*ProductParamListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{47}
+}
+
+func (x *ProductParamListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *ProductParamListResp) GetList() []*ProductParamVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// ProductAction
+type ProductActionVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	ImgUrl        string                 `protobuf:"bytes,3,opt,name=imgUrl,proto3" json:"imgUrl,omitempty"`
+	ActionType    string                 `protobuf:"bytes,4,opt,name=actionType,proto3" json:"actionType,omitempty"`
+	ActionData    string                 `protobuf:"bytes,5,opt,name=actionData,proto3" json:"actionData,omitempty"`
+	Title         string                 `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"`
+	Status        Status                 `protobuf:"varint,7,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,8,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,9,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	Sort          int64                  `protobuf:"varint,10,opt,name=sort,proto3" json:"sort,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ProductActionVo) Reset() {
+	*x = ProductActionVo{}
+	mi := &file_gorpc_proto_msgTypes[48]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ProductActionVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductActionVo) ProtoMessage() {}
+
+func (x *ProductActionVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[48]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductActionVo.ProtoReflect.Descriptor instead.
+func (*ProductActionVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{48}
+}
+
+func (x *ProductActionVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *ProductActionVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *ProductActionVo) GetImgUrl() string {
+	if x != nil {
+		return x.ImgUrl
+	}
+	return ""
+}
+
+func (x *ProductActionVo) GetActionType() string {
+	if x != nil {
+		return x.ActionType
+	}
+	return ""
+}
+
+func (x *ProductActionVo) GetActionData() string {
+	if x != nil {
+		return x.ActionData
+	}
+	return ""
+}
+
+func (x *ProductActionVo) GetTitle() string {
+	if x != nil {
+		return x.Title
+	}
+	return ""
+}
+
+func (x *ProductActionVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *ProductActionVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *ProductActionVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *ProductActionVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+type ProductActionReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *ProductActionVo       `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ProductActionReq) Reset() {
+	*x = ProductActionReq{}
+	mi := &file_gorpc_proto_msgTypes[49]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ProductActionReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductActionReq) ProtoMessage() {}
+
+func (x *ProductActionReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[49]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductActionReq.ProtoReflect.Descriptor instead.
+func (*ProductActionReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{49}
+}
+
+func (x *ProductActionReq) GetVo() *ProductActionVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type ProductActionListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *ProductActionVo       `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ProductActionListReq) Reset() {
+	*x = ProductActionListReq{}
+	mi := &file_gorpc_proto_msgTypes[50]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ProductActionListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductActionListReq) ProtoMessage() {}
+
+func (x *ProductActionListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[50]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductActionListReq.ProtoReflect.Descriptor instead.
+func (*ProductActionListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{50}
+}
+
+func (x *ProductActionListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *ProductActionListReq) GetVo() *ProductActionVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *ProductActionListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *ProductActionListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type ProductActionListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*ProductActionVo     `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ProductActionListResp) Reset() {
+	*x = ProductActionListResp{}
+	mi := &file_gorpc_proto_msgTypes[51]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ProductActionListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductActionListResp) ProtoMessage() {}
+
+func (x *ProductActionListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[51]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductActionListResp.ProtoReflect.Descriptor instead.
+func (*ProductActionListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{51}
+}
+
+func (x *ProductActionListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *ProductActionListResp) GetList() []*ProductActionVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// AreaParam
+type AreaParamVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	Name          string                 `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
+	Areas         string                 `protobuf:"bytes,4,opt,name=areas,proto3" json:"areas,omitempty"`
+	ParamValue    string                 `protobuf:"bytes,5,opt,name=paramValue,proto3" json:"paramValue,omitempty"`
+	Status        Status                 `protobuf:"varint,6,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	Sort          int64                  `protobuf:"varint,7,opt,name=sort,proto3" json:"sort,omitempty"`
+	Remark        string                 `protobuf:"bytes,8,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,9,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,10,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	Version       string                 `protobuf:"bytes,11,opt,name=version,proto3" json:"version,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AreaParamVo) Reset() {
+	*x = AreaParamVo{}
+	mi := &file_gorpc_proto_msgTypes[52]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AreaParamVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AreaParamVo) ProtoMessage() {}
+
+func (x *AreaParamVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[52]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AreaParamVo.ProtoReflect.Descriptor instead.
+func (*AreaParamVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{52}
+}
+
+func (x *AreaParamVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *AreaParamVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *AreaParamVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *AreaParamVo) GetAreas() string {
+	if x != nil {
+		return x.Areas
+	}
+	return ""
+}
+
+func (x *AreaParamVo) GetParamValue() string {
+	if x != nil {
+		return x.ParamValue
+	}
+	return ""
+}
+
+func (x *AreaParamVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *AreaParamVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *AreaParamVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *AreaParamVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *AreaParamVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *AreaParamVo) GetVersion() string {
+	if x != nil {
+		return x.Version
+	}
+	return ""
+}
+
+type AreaParamListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *AreaParamVo           `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`     // 产品code
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"` // 排除的ID
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AreaParamListReq) Reset() {
+	*x = AreaParamListReq{}
+	mi := &file_gorpc_proto_msgTypes[53]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AreaParamListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AreaParamListReq) ProtoMessage() {}
+
+func (x *AreaParamListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[53]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AreaParamListReq.ProtoReflect.Descriptor instead.
+func (*AreaParamListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{53}
+}
+
+func (x *AreaParamListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *AreaParamListReq) GetVo() *AreaParamVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *AreaParamListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *AreaParamListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type AreaParamListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*AreaParamVo         `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AreaParamListResp) Reset() {
+	*x = AreaParamListResp{}
+	mi := &file_gorpc_proto_msgTypes[54]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AreaParamListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AreaParamListResp) ProtoMessage() {}
+
+func (x *AreaParamListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[54]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AreaParamListResp.ProtoReflect.Descriptor instead.
+func (*AreaParamListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{54}
+}
+
+func (x *AreaParamListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *AreaParamListResp) GetList() []*AreaParamVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// NationalLanguage
+type NationalLanguageVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	TbName        string                 `protobuf:"bytes,2,opt,name=tbName,proto3" json:"tbName,omitempty"`
+	TbRowId       int64                  `protobuf:"varint,3,opt,name=tbRowId,proto3" json:"tbRowId,omitempty"`
+	TbFieldName   string                 `protobuf:"bytes,4,opt,name=tbFieldName,proto3" json:"tbFieldName,omitempty"`
+	Lan           string                 `protobuf:"bytes,5,opt,name=lan,proto3" json:"lan,omitempty"`
+	Value         string                 `protobuf:"bytes,6,opt,name=value,proto3" json:"value,omitempty"`
+	Status        Status                 `protobuf:"varint,7,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,8,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,9,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *NationalLanguageVo) Reset() {
+	*x = NationalLanguageVo{}
+	mi := &file_gorpc_proto_msgTypes[55]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *NationalLanguageVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NationalLanguageVo) ProtoMessage() {}
+
+func (x *NationalLanguageVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[55]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use NationalLanguageVo.ProtoReflect.Descriptor instead.
+func (*NationalLanguageVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{55}
+}
+
+func (x *NationalLanguageVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *NationalLanguageVo) GetTbName() string {
+	if x != nil {
+		return x.TbName
+	}
+	return ""
+}
+
+func (x *NationalLanguageVo) GetTbRowId() int64 {
+	if x != nil {
+		return x.TbRowId
+	}
+	return 0
+}
+
+func (x *NationalLanguageVo) GetTbFieldName() string {
+	if x != nil {
+		return x.TbFieldName
+	}
+	return ""
+}
+
+func (x *NationalLanguageVo) GetLan() string {
+	if x != nil {
+		return x.Lan
+	}
+	return ""
+}
+
+func (x *NationalLanguageVo) GetValue() string {
+	if x != nil {
+		return x.Value
+	}
+	return ""
+}
+
+func (x *NationalLanguageVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *NationalLanguageVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *NationalLanguageVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+type NationalLanguageListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *NationalLanguageVo    `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,3,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"` // 排除的ID
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *NationalLanguageListReq) Reset() {
+	*x = NationalLanguageListReq{}
+	mi := &file_gorpc_proto_msgTypes[56]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *NationalLanguageListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NationalLanguageListReq) ProtoMessage() {}
+
+func (x *NationalLanguageListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[56]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use NationalLanguageListReq.ProtoReflect.Descriptor instead.
+func (*NationalLanguageListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{56}
+}
+
+func (x *NationalLanguageListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *NationalLanguageListReq) GetVo() *NationalLanguageVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *NationalLanguageListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type NationalLanguageListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*NationalLanguageVo  `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *NationalLanguageListResp) Reset() {
+	*x = NationalLanguageListResp{}
+	mi := &file_gorpc_proto_msgTypes[57]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *NationalLanguageListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NationalLanguageListResp) ProtoMessage() {}
+
+func (x *NationalLanguageListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[57]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use NationalLanguageListResp.ProtoReflect.Descriptor instead.
+func (*NationalLanguageListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{57}
+}
+
+func (x *NationalLanguageListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *NationalLanguageListResp) GetList() []*NationalLanguageVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// Tip
+type TipVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	ParamKey      string                 `protobuf:"bytes,3,opt,name=paramKey,proto3" json:"paramKey,omitempty"`
+	ParamValue    string                 `protobuf:"bytes,4,opt,name=paramValue,proto3" json:"paramValue,omitempty"`
+	Code          string                 `protobuf:"bytes,5,opt,name=code,proto3" json:"code,omitempty"`
+	ShowType      int64                  `protobuf:"varint,6,opt,name=showType,proto3" json:"showType,omitempty"`
+	Sort          int64                  `protobuf:"varint,7,opt,name=sort,proto3" json:"sort,omitempty"`
+	Remark        string                 `protobuf:"bytes,8,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,9,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,10,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	I18Ns         []*I18NVo              `protobuf:"bytes,11,rep,name=i18ns,proto3" json:"i18ns,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *TipVo) Reset() {
+	*x = TipVo{}
+	mi := &file_gorpc_proto_msgTypes[58]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TipVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TipVo) ProtoMessage() {}
+
+func (x *TipVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[58]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TipVo.ProtoReflect.Descriptor instead.
+func (*TipVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{58}
+}
+
+func (x *TipVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *TipVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *TipVo) GetParamKey() string {
+	if x != nil {
+		return x.ParamKey
+	}
+	return ""
+}
+
+func (x *TipVo) GetParamValue() string {
+	if x != nil {
+		return x.ParamValue
+	}
+	return ""
+}
+
+func (x *TipVo) GetCode() string {
+	if x != nil {
+		return x.Code
+	}
+	return ""
+}
+
+func (x *TipVo) GetShowType() int64 {
+	if x != nil {
+		return x.ShowType
+	}
+	return 0
+}
+
+func (x *TipVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *TipVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *TipVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *TipVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *TipVo) GetI18Ns() []*I18NVo {
+	if x != nil {
+		return x.I18Ns
+	}
+	return nil
+}
+
+type TipGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *TipVo                 `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	Lang          string                 `protobuf:"bytes,2,opt,name=lang,proto3" json:"lang,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *TipGetReq) Reset() {
+	*x = TipGetReq{}
+	mi := &file_gorpc_proto_msgTypes[59]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TipGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TipGetReq) ProtoMessage() {}
+
+func (x *TipGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[59]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TipGetReq.ProtoReflect.Descriptor instead.
+func (*TipGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{59}
+}
+
+func (x *TipGetReq) GetVo() *TipVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *TipGetReq) GetLang() string {
+	if x != nil {
+		return x.Lang
+	}
+	return ""
+}
+
+type TipListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *TipVo                 `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"` // 排除的ID
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *TipListReq) Reset() {
+	*x = TipListReq{}
+	mi := &file_gorpc_proto_msgTypes[60]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TipListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TipListReq) ProtoMessage() {}
+
+func (x *TipListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[60]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TipListReq.ProtoReflect.Descriptor instead.
+func (*TipListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{60}
+}
+
+func (x *TipListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *TipListReq) GetVo() *TipVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *TipListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *TipListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type TipListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*TipVo               `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *TipListResp) Reset() {
+	*x = TipListResp{}
+	mi := &file_gorpc_proto_msgTypes[61]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TipListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TipListResp) ProtoMessage() {}
+
+func (x *TipListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[61]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TipListResp.ProtoReflect.Descriptor instead.
+func (*TipListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{61}
+}
+
+func (x *TipListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *TipListResp) GetList() []*TipVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// Dict
+type DictVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	ParentId      int64                  `protobuf:"varint,3,opt,name=parentId,proto3" json:"parentId,omitempty"`
+	DataType      string                 `protobuf:"bytes,4,opt,name=dataType,proto3" json:"dataType,omitempty"`
+	Name          string                 `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
+	Payload       string                 `protobuf:"bytes,6,opt,name=payload,proto3" json:"payload,omitempty"`
+	Sort          int64                  `protobuf:"varint,7,opt,name=sort,proto3" json:"sort,omitempty"`
+	Status        Status                 `protobuf:"varint,8,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	Remark        string                 `protobuf:"bytes,9,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,10,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,11,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	PayloadJson   string                 `protobuf:"bytes,12,opt,name=payloadJson,proto3" json:"payloadJson,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *DictVo) Reset() {
+	*x = DictVo{}
+	mi := &file_gorpc_proto_msgTypes[62]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DictVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DictVo) ProtoMessage() {}
+
+func (x *DictVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[62]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DictVo.ProtoReflect.Descriptor instead.
+func (*DictVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{62}
+}
+
+func (x *DictVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *DictVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *DictVo) GetParentId() int64 {
+	if x != nil {
+		return x.ParentId
+	}
+	return 0
+}
+
+func (x *DictVo) GetDataType() string {
+	if x != nil {
+		return x.DataType
+	}
+	return ""
+}
+
+func (x *DictVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *DictVo) GetPayload() string {
+	if x != nil {
+		return x.Payload
+	}
+	return ""
+}
+
+func (x *DictVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *DictVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *DictVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *DictVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *DictVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *DictVo) GetPayloadJson() string {
+	if x != nil {
+		return x.PayloadJson
+	}
+	return ""
+}
+
+type DictGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *DictVo                `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *DictGetReq) Reset() {
+	*x = DictGetReq{}
+	mi := &file_gorpc_proto_msgTypes[63]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DictGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DictGetReq) ProtoMessage() {}
+
+func (x *DictGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[63]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DictGetReq.ProtoReflect.Descriptor instead.
+func (*DictGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{63}
+}
+
+func (x *DictGetReq) GetVo() *DictVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type DictListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *DictVo                `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *DictListReq) Reset() {
+	*x = DictListReq{}
+	mi := &file_gorpc_proto_msgTypes[64]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DictListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DictListReq) ProtoMessage() {}
+
+func (x *DictListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[64]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DictListReq.ProtoReflect.Descriptor instead.
+func (*DictListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{64}
+}
+
+func (x *DictListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *DictListReq) GetVo() *DictVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *DictListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *DictListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type DictListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*DictVo              `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *DictListResp) Reset() {
+	*x = DictListResp{}
+	mi := &file_gorpc_proto_msgTypes[65]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DictListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DictListResp) ProtoMessage() {}
+
+func (x *DictListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[65]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DictListResp.ProtoReflect.Descriptor instead.
+func (*DictListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{65}
+}
+
+func (x *DictListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *DictListResp) GetList() []*DictVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// UpgradePkgPlan
+type UpgradePkgPlanVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"` // 产品code
+	Areas         string                 `protobuf:"bytes,3,opt,name=areas,proto3" json:"areas,omitempty"`             // 地区列表
+	Sort          int64                  `protobuf:"varint,4,opt,name=sort,proto3" json:"sort,omitempty"`
+	Status        Status                 `protobuf:"varint,5,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"` // 状态
+	Remark        string                 `protobuf:"bytes,6,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,8,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UpgradePkgPlanVo) Reset() {
+	*x = UpgradePkgPlanVo{}
+	mi := &file_gorpc_proto_msgTypes[66]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UpgradePkgPlanVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpgradePkgPlanVo) ProtoMessage() {}
+
+func (x *UpgradePkgPlanVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[66]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpgradePkgPlanVo.ProtoReflect.Descriptor instead.
+func (*UpgradePkgPlanVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{66}
+}
+
+func (x *UpgradePkgPlanVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *UpgradePkgPlanVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanVo) GetAreas() string {
+	if x != nil {
+		return x.Areas
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *UpgradePkgPlanVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *UpgradePkgPlanVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *UpgradePkgPlanVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type UpgradePkgPlanListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *UpgradePkgPlanVo      `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UpgradePkgPlanListReq) Reset() {
+	*x = UpgradePkgPlanListReq{}
+	mi := &file_gorpc_proto_msgTypes[67]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UpgradePkgPlanListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpgradePkgPlanListReq) ProtoMessage() {}
+
+func (x *UpgradePkgPlanListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[67]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpgradePkgPlanListReq.ProtoReflect.Descriptor instead.
+func (*UpgradePkgPlanListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{67}
+}
+
+func (x *UpgradePkgPlanListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *UpgradePkgPlanListReq) GetVo() *UpgradePkgPlanVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *UpgradePkgPlanListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *UpgradePkgPlanListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type UpgradePkgPlanListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*UpgradePkgPlanVo    `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UpgradePkgPlanListResp) Reset() {
+	*x = UpgradePkgPlanListResp{}
+	mi := &file_gorpc_proto_msgTypes[68]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UpgradePkgPlanListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpgradePkgPlanListResp) ProtoMessage() {}
+
+func (x *UpgradePkgPlanListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[68]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpgradePkgPlanListResp.ProtoReflect.Descriptor instead.
+func (*UpgradePkgPlanListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{68}
+}
+
+func (x *UpgradePkgPlanListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *UpgradePkgPlanListResp) GetList() []*UpgradePkgPlanVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// UpgradePkgPlanDetail
+type UpgradePkgPlanDetailVo struct {
+	state                    protoimpl.MessageState `protogen:"open.v1"`
+	Id                       int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	PlanId                   int64                  `protobuf:"varint,2,opt,name=planId,proto3" json:"planId,omitempty"`                                     // 方案ID
+	Platform                 string                 `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform,omitempty"`                                  // 平台
+	Channel                  string                 `protobuf:"bytes,4,opt,name=channel,proto3" json:"channel,omitempty"`                                    // 渠道
+	Name                     string                 `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`                                          // 名称
+	Ver                      int64                  `protobuf:"varint,6,opt,name=ver,proto3" json:"ver,omitempty"`                                           // 版本号
+	Url                      string                 `protobuf:"bytes,7,opt,name=url,proto3" json:"url,omitempty"`                                            // 商店地址
+	WebsiteUrl               string                 `protobuf:"bytes,8,opt,name=websiteUrl,proto3" json:"websiteUrl,omitempty"`                              // 官网地址
+	DirectUrl                string                 `protobuf:"bytes,9,opt,name=directUrl,proto3" json:"directUrl,omitempty"`                                // 直接下载地址
+	Md5                      string                 `protobuf:"bytes,10,opt,name=md5,proto3" json:"md5,omitempty"`                                           // MD5
+	Info                     string                 `protobuf:"bytes,11,opt,name=info,proto3" json:"info,omitempty"`                                         // 更新信息
+	TestUpgradePolicyConfig  string                 `protobuf:"bytes,12,opt,name=testUpgradePolicyConfig,proto3" json:"testUpgradePolicyConfig,omitempty"`   // 测试更新策略配置
+	UpgradePolicyConfig      string                 `protobuf:"bytes,13,opt,name=upgradePolicyConfig,proto3" json:"upgradePolicyConfig,omitempty"`           // 更新策略配置
+	ForceUpgradePolicyConfig string                 `protobuf:"bytes,14,opt,name=forceUpgradePolicyConfig,proto3" json:"forceUpgradePolicyConfig,omitempty"` // 强制更新策略
+	Status                   Status                 `protobuf:"varint,15,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`                  // 状态
+	Remark                   string                 `protobuf:"bytes,16,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime               int64                  `protobuf:"varint,17,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime               int64                  `protobuf:"varint,18,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields            protoimpl.UnknownFields
+	sizeCache                protoimpl.SizeCache
+}
+
+func (x *UpgradePkgPlanDetailVo) Reset() {
+	*x = UpgradePkgPlanDetailVo{}
+	mi := &file_gorpc_proto_msgTypes[69]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UpgradePkgPlanDetailVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpgradePkgPlanDetailVo) ProtoMessage() {}
+
+func (x *UpgradePkgPlanDetailVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[69]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpgradePkgPlanDetailVo.ProtoReflect.Descriptor instead.
+func (*UpgradePkgPlanDetailVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{69}
+}
+
+func (x *UpgradePkgPlanDetailVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *UpgradePkgPlanDetailVo) GetPlanId() int64 {
+	if x != nil {
+		return x.PlanId
+	}
+	return 0
+}
+
+func (x *UpgradePkgPlanDetailVo) GetPlatform() string {
+	if x != nil {
+		return x.Platform
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanDetailVo) GetChannel() string {
+	if x != nil {
+		return x.Channel
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanDetailVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanDetailVo) GetVer() int64 {
+	if x != nil {
+		return x.Ver
+	}
+	return 0
+}
+
+func (x *UpgradePkgPlanDetailVo) GetUrl() string {
+	if x != nil {
+		return x.Url
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanDetailVo) GetWebsiteUrl() string {
+	if x != nil {
+		return x.WebsiteUrl
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanDetailVo) GetDirectUrl() string {
+	if x != nil {
+		return x.DirectUrl
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanDetailVo) GetMd5() string {
+	if x != nil {
+		return x.Md5
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanDetailVo) GetInfo() string {
+	if x != nil {
+		return x.Info
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanDetailVo) GetTestUpgradePolicyConfig() string {
+	if x != nil {
+		return x.TestUpgradePolicyConfig
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanDetailVo) GetUpgradePolicyConfig() string {
+	if x != nil {
+		return x.UpgradePolicyConfig
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanDetailVo) GetForceUpgradePolicyConfig() string {
+	if x != nil {
+		return x.ForceUpgradePolicyConfig
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanDetailVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *UpgradePkgPlanDetailVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *UpgradePkgPlanDetailVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *UpgradePkgPlanDetailVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type UpgradePkgPlanDetailListReq struct {
+	state         protoimpl.MessageState  `protogen:"open.v1"`
+	Page          *Page                   `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *UpgradePkgPlanDetailVo `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	PlanIds       []int64                 `protobuf:"varint,3,rep,packed,name=planIds,proto3" json:"planIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UpgradePkgPlanDetailListReq) Reset() {
+	*x = UpgradePkgPlanDetailListReq{}
+	mi := &file_gorpc_proto_msgTypes[70]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UpgradePkgPlanDetailListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpgradePkgPlanDetailListReq) ProtoMessage() {}
+
+func (x *UpgradePkgPlanDetailListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[70]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpgradePkgPlanDetailListReq.ProtoReflect.Descriptor instead.
+func (*UpgradePkgPlanDetailListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{70}
+}
+
+func (x *UpgradePkgPlanDetailListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *UpgradePkgPlanDetailListReq) GetVo() *UpgradePkgPlanDetailVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *UpgradePkgPlanDetailListReq) GetPlanIds() []int64 {
+	if x != nil {
+		return x.PlanIds
+	}
+	return nil
+}
+
+type UpgradePkgPlanDetailListResp struct {
+	state         protoimpl.MessageState    `protogen:"open.v1"`
+	Total         int64                     `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*UpgradePkgPlanDetailVo `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UpgradePkgPlanDetailListResp) Reset() {
+	*x = UpgradePkgPlanDetailListResp{}
+	mi := &file_gorpc_proto_msgTypes[71]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UpgradePkgPlanDetailListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpgradePkgPlanDetailListResp) ProtoMessage() {}
+
+func (x *UpgradePkgPlanDetailListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[71]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpgradePkgPlanDetailListResp.ProtoReflect.Descriptor instead.
+func (*UpgradePkgPlanDetailListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{71}
+}
+
+func (x *UpgradePkgPlanDetailListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *UpgradePkgPlanDetailListResp) GetList() []*UpgradePkgPlanDetailVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// UpgradeResPlan
+type UpgradeResPlanVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"` // 产品code
+	Areas         string                 `protobuf:"bytes,3,opt,name=areas,proto3" json:"areas,omitempty"`             // 地区列表
+	Sort          int64                  `protobuf:"varint,4,opt,name=sort,proto3" json:"sort,omitempty"`
+	Status        Status                 `protobuf:"varint,5,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"` // 状态
+	Remark        string                 `protobuf:"bytes,6,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,8,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UpgradeResPlanVo) Reset() {
+	*x = UpgradeResPlanVo{}
+	mi := &file_gorpc_proto_msgTypes[72]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UpgradeResPlanVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpgradeResPlanVo) ProtoMessage() {}
+
+func (x *UpgradeResPlanVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[72]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpgradeResPlanVo.ProtoReflect.Descriptor instead.
+func (*UpgradeResPlanVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{72}
+}
+
+func (x *UpgradeResPlanVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *UpgradeResPlanVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *UpgradeResPlanVo) GetAreas() string {
+	if x != nil {
+		return x.Areas
+	}
+	return ""
+}
+
+func (x *UpgradeResPlanVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *UpgradeResPlanVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *UpgradeResPlanVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *UpgradeResPlanVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *UpgradeResPlanVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type UpgradeResPlanListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *UpgradeResPlanVo      `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UpgradeResPlanListReq) Reset() {
+	*x = UpgradeResPlanListReq{}
+	mi := &file_gorpc_proto_msgTypes[73]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UpgradeResPlanListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpgradeResPlanListReq) ProtoMessage() {}
+
+func (x *UpgradeResPlanListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[73]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpgradeResPlanListReq.ProtoReflect.Descriptor instead.
+func (*UpgradeResPlanListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{73}
+}
+
+func (x *UpgradeResPlanListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *UpgradeResPlanListReq) GetVo() *UpgradeResPlanVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *UpgradeResPlanListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *UpgradeResPlanListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type UpgradeResPlanListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*UpgradeResPlanVo    `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UpgradeResPlanListResp) Reset() {
+	*x = UpgradeResPlanListResp{}
+	mi := &file_gorpc_proto_msgTypes[74]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UpgradeResPlanListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpgradeResPlanListResp) ProtoMessage() {}
+
+func (x *UpgradeResPlanListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[74]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpgradeResPlanListResp.ProtoReflect.Descriptor instead.
+func (*UpgradeResPlanListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{74}
+}
+
+func (x *UpgradeResPlanListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *UpgradeResPlanListResp) GetList() []*UpgradeResPlanVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// UpgradeResPlanDetail
+type UpgradeResPlanDetailVo struct {
+	state                    protoimpl.MessageState `protogen:"open.v1"`
+	Id                       int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`                                             // ID
+	PlanId                   int64                  `protobuf:"varint,2,opt,name=planId,proto3" json:"planId,omitempty"`                                     // 方案ID
+	Platform                 string                 `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform,omitempty"`                                  // 平台
+	Channel                  string                 `protobuf:"bytes,4,opt,name=channel,proto3" json:"channel,omitempty"`                                    // 渠道
+	Name                     string                 `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`                                          // 名称
+	Ver                      int64                  `protobuf:"varint,6,opt,name=ver,proto3" json:"ver,omitempty"`                                           // 资源版本号
+	Url                      string                 `protobuf:"bytes,7,opt,name=url,proto3" json:"url,omitempty"`                                            // 资源地址
+	Info                     string                 `protobuf:"bytes,8,opt,name=info,proto3" json:"info,omitempty"`                                          // 更新信息
+	Md5                      string                 `protobuf:"bytes,9,opt,name=md5,proto3" json:"md5,omitempty"`                                            // 资源 md5值
+	Size                     int64                  `protobuf:"varint,10,opt,name=size,proto3" json:"size,omitempty"`                                        // 资源大小
+	TestUpgradePolicyConfig  string                 `protobuf:"bytes,11,opt,name=testUpgradePolicyConfig,proto3" json:"testUpgradePolicyConfig,omitempty"`   // 测试更新策略配置
+	UpgradePolicyConfig      string                 `protobuf:"bytes,12,opt,name=upgradePolicyConfig,proto3" json:"upgradePolicyConfig,omitempty"`           // 更新策略配置
+	ForceUpgradePolicyConfig string                 `protobuf:"bytes,13,opt,name=forceUpgradePolicyConfig,proto3" json:"forceUpgradePolicyConfig,omitempty"` // 强制更新策略
+	Status                   Status                 `protobuf:"varint,14,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`                  // 状态,1=正常,2=冻结
+	Remark                   string                 `protobuf:"bytes,15,opt,name=remark,proto3" json:"remark,omitempty"`                                     // 备注
+	CreateTime               int64                  `protobuf:"varint,16,opt,name=createTime,proto3" json:"createTime,omitempty"`                            // 创建时间秒
+	UpdateTime               int64                  `protobuf:"varint,17,opt,name=updateTime,proto3" json:"updateTime,omitempty"`                            // 修改时间秒
+	unknownFields            protoimpl.UnknownFields
+	sizeCache                protoimpl.SizeCache
+}
+
+func (x *UpgradeResPlanDetailVo) Reset() {
+	*x = UpgradeResPlanDetailVo{}
+	mi := &file_gorpc_proto_msgTypes[75]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UpgradeResPlanDetailVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpgradeResPlanDetailVo) ProtoMessage() {}
+
+func (x *UpgradeResPlanDetailVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[75]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpgradeResPlanDetailVo.ProtoReflect.Descriptor instead.
+func (*UpgradeResPlanDetailVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{75}
+}
+
+func (x *UpgradeResPlanDetailVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *UpgradeResPlanDetailVo) GetPlanId() int64 {
+	if x != nil {
+		return x.PlanId
+	}
+	return 0
+}
+
+func (x *UpgradeResPlanDetailVo) GetPlatform() string {
+	if x != nil {
+		return x.Platform
+	}
+	return ""
+}
+
+func (x *UpgradeResPlanDetailVo) GetChannel() string {
+	if x != nil {
+		return x.Channel
+	}
+	return ""
+}
+
+func (x *UpgradeResPlanDetailVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *UpgradeResPlanDetailVo) GetVer() int64 {
+	if x != nil {
+		return x.Ver
+	}
+	return 0
+}
+
+func (x *UpgradeResPlanDetailVo) GetUrl() string {
+	if x != nil {
+		return x.Url
+	}
+	return ""
+}
+
+func (x *UpgradeResPlanDetailVo) GetInfo() string {
+	if x != nil {
+		return x.Info
+	}
+	return ""
+}
+
+func (x *UpgradeResPlanDetailVo) GetMd5() string {
+	if x != nil {
+		return x.Md5
+	}
+	return ""
+}
+
+func (x *UpgradeResPlanDetailVo) GetSize() int64 {
+	if x != nil {
+		return x.Size
+	}
+	return 0
+}
+
+func (x *UpgradeResPlanDetailVo) GetTestUpgradePolicyConfig() string {
+	if x != nil {
+		return x.TestUpgradePolicyConfig
+	}
+	return ""
+}
+
+func (x *UpgradeResPlanDetailVo) GetUpgradePolicyConfig() string {
+	if x != nil {
+		return x.UpgradePolicyConfig
+	}
+	return ""
+}
+
+func (x *UpgradeResPlanDetailVo) GetForceUpgradePolicyConfig() string {
+	if x != nil {
+		return x.ForceUpgradePolicyConfig
+	}
+	return ""
+}
+
+func (x *UpgradeResPlanDetailVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *UpgradeResPlanDetailVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *UpgradeResPlanDetailVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *UpgradeResPlanDetailVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type UpgradeResPlanDetailListReq struct {
+	state         protoimpl.MessageState  `protogen:"open.v1"`
+	Page          *Page                   `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *UpgradeResPlanDetailVo `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	PlanIds       []int64                 `protobuf:"varint,3,rep,packed,name=planIds,proto3" json:"planIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UpgradeResPlanDetailListReq) Reset() {
+	*x = UpgradeResPlanDetailListReq{}
+	mi := &file_gorpc_proto_msgTypes[76]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UpgradeResPlanDetailListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpgradeResPlanDetailListReq) ProtoMessage() {}
+
+func (x *UpgradeResPlanDetailListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[76]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpgradeResPlanDetailListReq.ProtoReflect.Descriptor instead.
+func (*UpgradeResPlanDetailListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{76}
+}
+
+func (x *UpgradeResPlanDetailListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *UpgradeResPlanDetailListReq) GetVo() *UpgradeResPlanDetailVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *UpgradeResPlanDetailListReq) GetPlanIds() []int64 {
+	if x != nil {
+		return x.PlanIds
+	}
+	return nil
+}
+
+type UpgradeResPlanDetailListResp struct {
+	state         protoimpl.MessageState    `protogen:"open.v1"`
+	Total         int64                     `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*UpgradeResPlanDetailVo `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UpgradeResPlanDetailListResp) Reset() {
+	*x = UpgradeResPlanDetailListResp{}
+	mi := &file_gorpc_proto_msgTypes[77]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UpgradeResPlanDetailListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpgradeResPlanDetailListResp) ProtoMessage() {}
+
+func (x *UpgradeResPlanDetailListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[77]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpgradeResPlanDetailListResp.ProtoReflect.Descriptor instead.
+func (*UpgradeResPlanDetailListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{77}
+}
+
+func (x *UpgradeResPlanDetailListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *UpgradeResPlanDetailListResp) GetList() []*UpgradeResPlanDetailVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// AdPlan
+type AdPlanVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"` // 产品code
+	Areas         string                 `protobuf:"bytes,3,opt,name=areas,proto3" json:"areas,omitempty"`             // 地区列表
+	Config        string                 `protobuf:"bytes,4,opt,name=config,proto3" json:"config,omitempty"`           // 配置
+	Sort          int64                  `protobuf:"varint,5,opt,name=sort,proto3" json:"sort,omitempty"`
+	Status        Status                 `protobuf:"varint,6,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"` // 状态
+	Remark        string                 `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,8,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,9,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AdPlanVo) Reset() {
+	*x = AdPlanVo{}
+	mi := &file_gorpc_proto_msgTypes[78]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AdPlanVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AdPlanVo) ProtoMessage() {}
+
+func (x *AdPlanVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[78]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AdPlanVo.ProtoReflect.Descriptor instead.
+func (*AdPlanVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{78}
+}
+
+func (x *AdPlanVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *AdPlanVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *AdPlanVo) GetAreas() string {
+	if x != nil {
+		return x.Areas
+	}
+	return ""
+}
+
+func (x *AdPlanVo) GetConfig() string {
+	if x != nil {
+		return x.Config
+	}
+	return ""
+}
+
+func (x *AdPlanVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *AdPlanVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *AdPlanVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *AdPlanVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *AdPlanVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type AdPlanListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *AdPlanVo              `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AdPlanListReq) Reset() {
+	*x = AdPlanListReq{}
+	mi := &file_gorpc_proto_msgTypes[79]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AdPlanListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AdPlanListReq) ProtoMessage() {}
+
+func (x *AdPlanListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[79]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AdPlanListReq.ProtoReflect.Descriptor instead.
+func (*AdPlanListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{79}
+}
+
+func (x *AdPlanListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *AdPlanListReq) GetVo() *AdPlanVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *AdPlanListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *AdPlanListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type AdPlanListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*AdPlanVo            `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AdPlanListResp) Reset() {
+	*x = AdPlanListResp{}
+	mi := &file_gorpc_proto_msgTypes[80]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AdPlanListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AdPlanListResp) ProtoMessage() {}
+
+func (x *AdPlanListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[80]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AdPlanListResp.ProtoReflect.Descriptor instead.
+func (*AdPlanListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{80}
+}
+
+func (x *AdPlanListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *AdPlanListResp) GetList() []*AdPlanVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// AdPlanDetail
+type AdPlanDetailVo struct {
+	state            protoimpl.MessageState `protogen:"open.v1"`
+	Id               int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	PlanId           int64                  `protobuf:"varint,2,opt,name=planId,proto3" json:"planId,omitempty"`                    // 方案ID
+	AdPlatform       string                 `protobuf:"bytes,3,opt,name=adPlatform,proto3" json:"adPlatform,omitempty"`             // 平台
+	AdType           string                 `protobuf:"bytes,4,opt,name=adType,proto3" json:"adType,omitempty"`                     // 广告类型
+	AdSlot           string                 `protobuf:"bytes,5,opt,name=adSlot,proto3" json:"adSlot,omitempty"`                     // 广告位置
+	AdDatas          string                 `protobuf:"bytes,6,opt,name=adDatas,proto3" json:"adDatas,omitempty"`                   // 广告资源
+	TestPolicyConfig string                 `protobuf:"bytes,7,opt,name=testPolicyConfig,proto3" json:"testPolicyConfig,omitempty"` // 策略配置
+	PolicyConfig     string                 `protobuf:"bytes,8,opt,name=policyConfig,proto3" json:"policyConfig,omitempty"`         // 策略配置
+	Sort             int64                  `protobuf:"varint,9,opt,name=sort,proto3" json:"sort,omitempty"`                        // 排序
+	Status           Status                 `protobuf:"varint,10,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"` // 0未知,1正常,2暂停
+	Remark           string                 `protobuf:"bytes,11,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime       int64                  `protobuf:"varint,12,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime       int64                  `protobuf:"varint,13,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	Version          string                 `protobuf:"bytes,14,opt,name=version,proto3" json:"version,omitempty"`
+	unknownFields    protoimpl.UnknownFields
+	sizeCache        protoimpl.SizeCache
+}
+
+func (x *AdPlanDetailVo) Reset() {
+	*x = AdPlanDetailVo{}
+	mi := &file_gorpc_proto_msgTypes[81]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AdPlanDetailVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AdPlanDetailVo) ProtoMessage() {}
+
+func (x *AdPlanDetailVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[81]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AdPlanDetailVo.ProtoReflect.Descriptor instead.
+func (*AdPlanDetailVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{81}
+}
+
+func (x *AdPlanDetailVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *AdPlanDetailVo) GetPlanId() int64 {
+	if x != nil {
+		return x.PlanId
+	}
+	return 0
+}
+
+func (x *AdPlanDetailVo) GetAdPlatform() string {
+	if x != nil {
+		return x.AdPlatform
+	}
+	return ""
+}
+
+func (x *AdPlanDetailVo) GetAdType() string {
+	if x != nil {
+		return x.AdType
+	}
+	return ""
+}
+
+func (x *AdPlanDetailVo) GetAdSlot() string {
+	if x != nil {
+		return x.AdSlot
+	}
+	return ""
+}
+
+func (x *AdPlanDetailVo) GetAdDatas() string {
+	if x != nil {
+		return x.AdDatas
+	}
+	return ""
+}
+
+func (x *AdPlanDetailVo) GetTestPolicyConfig() string {
+	if x != nil {
+		return x.TestPolicyConfig
+	}
+	return ""
+}
+
+func (x *AdPlanDetailVo) GetPolicyConfig() string {
+	if x != nil {
+		return x.PolicyConfig
+	}
+	return ""
+}
+
+func (x *AdPlanDetailVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *AdPlanDetailVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *AdPlanDetailVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *AdPlanDetailVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *AdPlanDetailVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *AdPlanDetailVo) GetVersion() string {
+	if x != nil {
+		return x.Version
+	}
+	return ""
+}
+
+type AdPlanDetailListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *AdPlanDetailVo        `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	PlanIds       []int64                `protobuf:"varint,3,rep,packed,name=planIds,proto3" json:"planIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AdPlanDetailListReq) Reset() {
+	*x = AdPlanDetailListReq{}
+	mi := &file_gorpc_proto_msgTypes[82]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AdPlanDetailListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AdPlanDetailListReq) ProtoMessage() {}
+
+func (x *AdPlanDetailListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[82]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AdPlanDetailListReq.ProtoReflect.Descriptor instead.
+func (*AdPlanDetailListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{82}
+}
+
+func (x *AdPlanDetailListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *AdPlanDetailListReq) GetVo() *AdPlanDetailVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *AdPlanDetailListReq) GetPlanIds() []int64 {
+	if x != nil {
+		return x.PlanIds
+	}
+	return nil
+}
+
+type AdPlanDetailListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*AdPlanDetailVo      `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AdPlanDetailListResp) Reset() {
+	*x = AdPlanDetailListResp{}
+	mi := &file_gorpc_proto_msgTypes[83]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AdPlanDetailListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AdPlanDetailListResp) ProtoMessage() {}
+
+func (x *AdPlanDetailListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[83]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AdPlanDetailListResp.ProtoReflect.Descriptor instead.
+func (*AdPlanDetailListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{83}
+}
+
+func (x *AdPlanDetailListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *AdPlanDetailListResp) GetList() []*AdPlanDetailVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// AdGlobalConfig
+type AdGlobalConfigVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"` // 产品code
+	Platforms     string                 `protobuf:"bytes,3,opt,name=platforms,proto3" json:"platforms,omitempty"`     // 按平台分类的广告配置JSON
+	Remark        string                 `protobuf:"bytes,4,opt,name=remark,proto3" json:"remark,omitempty"`           // 备注
+	CreateTime    int64                  `protobuf:"varint,5,opt,name=createTime,proto3" json:"createTime,omitempty"`  // 创建时间
+	UpdateTime    int64                  `protobuf:"varint,6,opt,name=updateTime,proto3" json:"updateTime,omitempty"`  // 更新时间
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AdGlobalConfigVo) Reset() {
+	*x = AdGlobalConfigVo{}
+	mi := &file_gorpc_proto_msgTypes[84]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AdGlobalConfigVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AdGlobalConfigVo) ProtoMessage() {}
+
+func (x *AdGlobalConfigVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[84]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AdGlobalConfigVo.ProtoReflect.Descriptor instead.
+func (*AdGlobalConfigVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{84}
+}
+
+func (x *AdGlobalConfigVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *AdGlobalConfigVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *AdGlobalConfigVo) GetPlatforms() string {
+	if x != nil {
+		return x.Platforms
+	}
+	return ""
+}
+
+func (x *AdGlobalConfigVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *AdGlobalConfigVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *AdGlobalConfigVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type AdGlobalConfigGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	ProductCode   string                 `protobuf:"bytes,1,opt,name=productCode,proto3" json:"productCode,omitempty"` // 产品代码
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AdGlobalConfigGetReq) Reset() {
+	*x = AdGlobalConfigGetReq{}
+	mi := &file_gorpc_proto_msgTypes[85]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AdGlobalConfigGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AdGlobalConfigGetReq) ProtoMessage() {}
+
+func (x *AdGlobalConfigGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[85]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AdGlobalConfigGetReq.ProtoReflect.Descriptor instead.
+func (*AdGlobalConfigGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{85}
+}
+
+func (x *AdGlobalConfigGetReq) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+// JobBatch
+type JobBatchVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`                      // ID
+	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`                   // 作业名称
+	Type          string                 `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`                   // 作业类型
+	InitParams    string                 `protobuf:"bytes,4,opt,name=initParams,proto3" json:"initParams,omitempty"`       // 作业初始化参数
+	ContextData   string                 `protobuf:"bytes,5,opt,name=contextData,proto3" json:"contextData,omitempty"`     // 上下文数据,可用于存储此次批量作业的任务过程中产生的通用的中间数据
+	BeginHandler  string                 `protobuf:"bytes,6,opt,name=beginHandler,proto3" json:"beginHandler,omitempty"`   // 预处理函数/URL
+	AfterHandler  string                 `protobuf:"bytes,7,opt,name=afterHandler,proto3" json:"afterHandler,omitempty"`   // 后处理函数/URL
+	Concurrency   int64                  `protobuf:"varint,8,opt,name=concurrency,proto3" json:"concurrency,omitempty"`    // 并发控制数
+	RetryPolicy   string                 `protobuf:"bytes,9,opt,name=retryPolicy,proto3" json:"retryPolicy,omitempty"`     // 子任务重试策略
+	StartedTime   int64                  `protobuf:"varint,10,opt,name=startedTime,proto3" json:"startedTime,omitempty"`   // 批量作业开始时间
+	FinishedTime  int64                  `protobuf:"varint,11,opt,name=finishedTime,proto3" json:"finishedTime,omitempty"` // 批量作业完成时间
+	Result        string                 `protobuf:"bytes,12,opt,name=result,proto3" json:"result,omitempty"`              // 批量作业返回结果
+	Status        string                 `protobuf:"bytes,13,opt,name=status,proto3" json:"status,omitempty"`              // 批量作业完成状态
+	Remark        string                 `protobuf:"bytes,14,opt,name=remark,proto3" json:"remark,omitempty"`              // 备注
+	CreateAt      int64                  `protobuf:"varint,15,opt,name=createAt,proto3" json:"createAt,omitempty"`         // 创建者ID
+	UpdateAt      int64                  `protobuf:"varint,16,opt,name=updateAt,proto3" json:"updateAt,omitempty"`         // 更新者ID
+	CreateTime    int64                  `protobuf:"varint,17,opt,name=createTime,proto3" json:"createTime,omitempty"`     // 创建时间
+	UpdateTime    int64                  `protobuf:"varint,18,opt,name=updateTime,proto3" json:"updateTime,omitempty"`     // 更新时间
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *JobBatchVo) Reset() {
+	*x = JobBatchVo{}
+	mi := &file_gorpc_proto_msgTypes[86]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *JobBatchVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*JobBatchVo) ProtoMessage() {}
+
+func (x *JobBatchVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[86]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use JobBatchVo.ProtoReflect.Descriptor instead.
+func (*JobBatchVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{86}
+}
+
+func (x *JobBatchVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *JobBatchVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *JobBatchVo) GetType() string {
+	if x != nil {
+		return x.Type
+	}
+	return ""
+}
+
+func (x *JobBatchVo) GetInitParams() string {
+	if x != nil {
+		return x.InitParams
+	}
+	return ""
+}
+
+func (x *JobBatchVo) GetContextData() string {
+	if x != nil {
+		return x.ContextData
+	}
+	return ""
+}
+
+func (x *JobBatchVo) GetBeginHandler() string {
+	if x != nil {
+		return x.BeginHandler
+	}
+	return ""
+}
+
+func (x *JobBatchVo) GetAfterHandler() string {
+	if x != nil {
+		return x.AfterHandler
+	}
+	return ""
+}
+
+func (x *JobBatchVo) GetConcurrency() int64 {
+	if x != nil {
+		return x.Concurrency
+	}
+	return 0
+}
+
+func (x *JobBatchVo) GetRetryPolicy() string {
+	if x != nil {
+		return x.RetryPolicy
+	}
+	return ""
+}
+
+func (x *JobBatchVo) GetStartedTime() int64 {
+	if x != nil {
+		return x.StartedTime
+	}
+	return 0
+}
+
+func (x *JobBatchVo) GetFinishedTime() int64 {
+	if x != nil {
+		return x.FinishedTime
+	}
+	return 0
+}
+
+func (x *JobBatchVo) GetResult() string {
+	if x != nil {
+		return x.Result
+	}
+	return ""
+}
+
+func (x *JobBatchVo) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+func (x *JobBatchVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *JobBatchVo) GetCreateAt() int64 {
+	if x != nil {
+		return x.CreateAt
+	}
+	return 0
+}
+
+func (x *JobBatchVo) GetUpdateAt() int64 {
+	if x != nil {
+		return x.UpdateAt
+	}
+	return 0
+}
+
+func (x *JobBatchVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *JobBatchVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type JobBatchWithTasksVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	JobBatch      *JobBatchVo            `protobuf:"bytes,1,opt,name=jobBatch,proto3" json:"jobBatch,omitempty"`
+	JobTasks      []*JobTasksVo          `protobuf:"bytes,2,rep,name=jobTasks,proto3" json:"jobTasks,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *JobBatchWithTasksVo) Reset() {
+	*x = JobBatchWithTasksVo{}
+	mi := &file_gorpc_proto_msgTypes[87]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *JobBatchWithTasksVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*JobBatchWithTasksVo) ProtoMessage() {}
+
+func (x *JobBatchWithTasksVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[87]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use JobBatchWithTasksVo.ProtoReflect.Descriptor instead.
+func (*JobBatchWithTasksVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{87}
+}
+
+func (x *JobBatchWithTasksVo) GetJobBatch() *JobBatchVo {
+	if x != nil {
+		return x.JobBatch
+	}
+	return nil
+}
+
+func (x *JobBatchWithTasksVo) GetJobTasks() []*JobTasksVo {
+	if x != nil {
+		return x.JobTasks
+	}
+	return nil
+}
+
+type TimeRange struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Start         int64                  `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"`
+	End           int64                  `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *TimeRange) Reset() {
+	*x = TimeRange{}
+	mi := &file_gorpc_proto_msgTypes[88]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TimeRange) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TimeRange) ProtoMessage() {}
+
+func (x *TimeRange) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[88]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TimeRange.ProtoReflect.Descriptor instead.
+func (*TimeRange) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{88}
+}
+
+func (x *TimeRange) GetStart() int64 {
+	if x != nil {
+		return x.Start
+	}
+	return 0
+}
+
+func (x *TimeRange) GetEnd() int64 {
+	if x != nil {
+		return x.End
+	}
+	return 0
+}
+
+type JobBatchListReq struct {
+	state             protoimpl.MessageState `protogen:"open.v1"`
+	Page              *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo                *JobBatchVo            `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	StartedTimeRange  *TimeRange             `protobuf:"bytes,3,opt,name=startedTimeRange,proto3" json:"startedTimeRange,omitempty"`
+	FinishedTimeRange *TimeRange             `protobuf:"bytes,4,opt,name=finishedTimeRange,proto3" json:"finishedTimeRange,omitempty"`
+	Statuses          []string               `protobuf:"bytes,5,rep,name=statuses,proto3" json:"statuses,omitempty"`
+	ExcludeIds        []int64                `protobuf:"varint,6,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
+}
+
+func (x *JobBatchListReq) Reset() {
+	*x = JobBatchListReq{}
+	mi := &file_gorpc_proto_msgTypes[89]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *JobBatchListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*JobBatchListReq) ProtoMessage() {}
+
+func (x *JobBatchListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[89]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use JobBatchListReq.ProtoReflect.Descriptor instead.
+func (*JobBatchListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{89}
+}
+
+func (x *JobBatchListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *JobBatchListReq) GetVo() *JobBatchVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *JobBatchListReq) GetStartedTimeRange() *TimeRange {
+	if x != nil {
+		return x.StartedTimeRange
+	}
+	return nil
+}
+
+func (x *JobBatchListReq) GetFinishedTimeRange() *TimeRange {
+	if x != nil {
+		return x.FinishedTimeRange
+	}
+	return nil
+}
+
+func (x *JobBatchListReq) GetStatuses() []string {
+	if x != nil {
+		return x.Statuses
+	}
+	return nil
+}
+
+func (x *JobBatchListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type JobBatchListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*JobBatchVo          `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *JobBatchListResp) Reset() {
+	*x = JobBatchListResp{}
+	mi := &file_gorpc_proto_msgTypes[90]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *JobBatchListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*JobBatchListResp) ProtoMessage() {}
+
+func (x *JobBatchListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[90]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use JobBatchListResp.ProtoReflect.Descriptor instead.
+func (*JobBatchListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{90}
+}
+
+func (x *JobBatchListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *JobBatchListResp) GetList() []*JobBatchVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type JobBatchListWithTasksResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*JobBatchWithTasksVo `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *JobBatchListWithTasksResp) Reset() {
+	*x = JobBatchListWithTasksResp{}
+	mi := &file_gorpc_proto_msgTypes[91]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *JobBatchListWithTasksResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*JobBatchListWithTasksResp) ProtoMessage() {}
+
+func (x *JobBatchListWithTasksResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[91]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use JobBatchListWithTasksResp.ProtoReflect.Descriptor instead.
+func (*JobBatchListWithTasksResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{91}
+}
+
+func (x *JobBatchListWithTasksResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *JobBatchListWithTasksResp) GetList() []*JobBatchWithTasksVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// JobTasks
+type JobTasksVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`                     // 任务id
+	BatchId       int64                  `protobuf:"varint,2,opt,name=batchId,proto3" json:"batchId,omitempty"`           // 批量作业Id
+	Name          string                 `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`                  // 任务名称
+	InitParams    string                 `protobuf:"bytes,4,opt,name=initParams,proto3" json:"initParams,omitempty"`      // 任务初始化配置及数据
+	RuntimeData   string                 `protobuf:"bytes,5,opt,name=runtimeData,proto3" json:"runtimeData,omitempty"`    // 任务运行时数据,用于临时存储任务过程中各个关键节点的中间数据
+	ExternalRefs  string                 `protobuf:"bytes,6,opt,name=externalRefs,proto3" json:"externalRefs,omitempty"`  // 外部系统引用,用于记录与外部系统交互产生的关联标识
+	StartedTime   int64                  `protobuf:"varint,7,opt,name=startedTime,proto3" json:"startedTime,omitempty"`   // 任务开始时间
+	FinishedTime  int64                  `protobuf:"varint,8,opt,name=finishedTime,proto3" json:"finishedTime,omitempty"` // 任务结束时间
+	RetryCount    int64                  `protobuf:"varint,9,opt,name=retryCount,proto3" json:"retryCount,omitempty"`     // 当前已重试次数
+	Result        string                 `protobuf:"bytes,10,opt,name=result,proto3" json:"result,omitempty"`             // 任务执行结果
+	Status        string                 `protobuf:"bytes,11,opt,name=status,proto3" json:"status,omitempty"`             // 任务状态
+	Remark        string                 `protobuf:"bytes,12,opt,name=remark,proto3" json:"remark,omitempty"`             // 备注
+	CreateAt      int64                  `protobuf:"varint,13,opt,name=createAt,proto3" json:"createAt,omitempty"`        // 创建者ID
+	UpdateAt      int64                  `protobuf:"varint,14,opt,name=updateAt,proto3" json:"updateAt,omitempty"`        // 更新者ID
+	CreateTime    int64                  `protobuf:"varint,15,opt,name=createTime,proto3" json:"createTime,omitempty"`    // 创建时间
+	UpdateTime    int64                  `protobuf:"varint,16,opt,name=updateTime,proto3" json:"updateTime,omitempty"`    // 更新时间
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *JobTasksVo) Reset() {
+	*x = JobTasksVo{}
+	mi := &file_gorpc_proto_msgTypes[92]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *JobTasksVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*JobTasksVo) ProtoMessage() {}
+
+func (x *JobTasksVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[92]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use JobTasksVo.ProtoReflect.Descriptor instead.
+func (*JobTasksVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{92}
+}
+
+func (x *JobTasksVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *JobTasksVo) GetBatchId() int64 {
+	if x != nil {
+		return x.BatchId
+	}
+	return 0
+}
+
+func (x *JobTasksVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *JobTasksVo) GetInitParams() string {
+	if x != nil {
+		return x.InitParams
+	}
+	return ""
+}
+
+func (x *JobTasksVo) GetRuntimeData() string {
+	if x != nil {
+		return x.RuntimeData
+	}
+	return ""
+}
+
+func (x *JobTasksVo) GetExternalRefs() string {
+	if x != nil {
+		return x.ExternalRefs
+	}
+	return ""
+}
+
+func (x *JobTasksVo) GetStartedTime() int64 {
+	if x != nil {
+		return x.StartedTime
+	}
+	return 0
+}
+
+func (x *JobTasksVo) GetFinishedTime() int64 {
+	if x != nil {
+		return x.FinishedTime
+	}
+	return 0
+}
+
+func (x *JobTasksVo) GetRetryCount() int64 {
+	if x != nil {
+		return x.RetryCount
+	}
+	return 0
+}
+
+func (x *JobTasksVo) GetResult() string {
+	if x != nil {
+		return x.Result
+	}
+	return ""
+}
+
+func (x *JobTasksVo) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+func (x *JobTasksVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *JobTasksVo) GetCreateAt() int64 {
+	if x != nil {
+		return x.CreateAt
+	}
+	return 0
+}
+
+func (x *JobTasksVo) GetUpdateAt() int64 {
+	if x != nil {
+		return x.UpdateAt
+	}
+	return 0
+}
+
+func (x *JobTasksVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *JobTasksVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type JobTasksListReq struct {
+	state             protoimpl.MessageState `protogen:"open.v1"`
+	Page              *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo                *JobTasksVo            `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	StartedTimeRange  *TimeRange             `protobuf:"bytes,3,opt,name=startedTimeRange,proto3" json:"startedTimeRange,omitempty"`
+	FinishedTimeRange *TimeRange             `protobuf:"bytes,4,opt,name=finishedTimeRange,proto3" json:"finishedTimeRange,omitempty"`
+	Statuses          []string               `protobuf:"bytes,5,rep,name=statuses,proto3" json:"statuses,omitempty"`
+	ExcludeIds        []int64                `protobuf:"varint,6,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
+}
+
+func (x *JobTasksListReq) Reset() {
+	*x = JobTasksListReq{}
+	mi := &file_gorpc_proto_msgTypes[93]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *JobTasksListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*JobTasksListReq) ProtoMessage() {}
+
+func (x *JobTasksListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[93]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use JobTasksListReq.ProtoReflect.Descriptor instead.
+func (*JobTasksListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{93}
+}
+
+func (x *JobTasksListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *JobTasksListReq) GetVo() *JobTasksVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *JobTasksListReq) GetStartedTimeRange() *TimeRange {
+	if x != nil {
+		return x.StartedTimeRange
+	}
+	return nil
+}
+
+func (x *JobTasksListReq) GetFinishedTimeRange() *TimeRange {
+	if x != nil {
+		return x.FinishedTimeRange
+	}
+	return nil
+}
+
+func (x *JobTasksListReq) GetStatuses() []string {
+	if x != nil {
+		return x.Statuses
+	}
+	return nil
+}
+
+func (x *JobTasksListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type JobTasksListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*JobTasksVo          `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *JobTasksListResp) Reset() {
+	*x = JobTasksListResp{}
+	mi := &file_gorpc_proto_msgTypes[94]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *JobTasksListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*JobTasksListResp) ProtoMessage() {}
+
+func (x *JobTasksListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[94]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use JobTasksListResp.ProtoReflect.Descriptor instead.
+func (*JobTasksListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{94}
+}
+
+func (x *JobTasksListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *JobTasksListResp) GetList() []*JobTasksVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// DeployConfig
+type DeployConfigVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`                           // ID
+	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`                        // 名称
+	Type          string                 `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`                        // 类型
+	Data          string                 `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`                        // 数据
+	Status        Status                 `protobuf:"varint,5,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"` // 状态
+	Remark        string                 `protobuf:"bytes,6,opt,name=remark,proto3" json:"remark,omitempty"`                    // 备注
+	CreateTime    int64                  `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"`           // 创建时间
+	UpdateTime    int64                  `protobuf:"varint,8,opt,name=updateTime,proto3" json:"updateTime,omitempty"`           // 更新时间
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *DeployConfigVo) Reset() {
+	*x = DeployConfigVo{}
+	mi := &file_gorpc_proto_msgTypes[95]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeployConfigVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeployConfigVo) ProtoMessage() {}
+
+func (x *DeployConfigVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[95]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeployConfigVo.ProtoReflect.Descriptor instead.
+func (*DeployConfigVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{95}
+}
+
+func (x *DeployConfigVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *DeployConfigVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *DeployConfigVo) GetType() string {
+	if x != nil {
+		return x.Type
+	}
+	return ""
+}
+
+func (x *DeployConfigVo) GetData() string {
+	if x != nil {
+		return x.Data
+	}
+	return ""
+}
+
+func (x *DeployConfigVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *DeployConfigVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *DeployConfigVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *DeployConfigVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type DeployConfigListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *DeployConfigVo        `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,3,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *DeployConfigListReq) Reset() {
+	*x = DeployConfigListReq{}
+	mi := &file_gorpc_proto_msgTypes[96]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeployConfigListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeployConfigListReq) ProtoMessage() {}
+
+func (x *DeployConfigListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[96]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeployConfigListReq.ProtoReflect.Descriptor instead.
+func (*DeployConfigListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{96}
+}
+
+func (x *DeployConfigListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *DeployConfigListReq) GetVo() *DeployConfigVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *DeployConfigListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type DeployConfigListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*DeployConfigVo      `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *DeployConfigListResp) Reset() {
+	*x = DeployConfigListResp{}
+	mi := &file_gorpc_proto_msgTypes[97]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeployConfigListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeployConfigListResp) ProtoMessage() {}
+
+func (x *DeployConfigListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[97]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeployConfigListResp.ProtoReflect.Descriptor instead.
+func (*DeployConfigListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{97}
+}
+
+func (x *DeployConfigListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *DeployConfigListResp) GetList() []*DeployConfigVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// OperationLog
+type OperationLogVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	SysUserId     int64                  `protobuf:"varint,2,opt,name=sysUserId,proto3" json:"sysUserId,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,3,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	Model         string                 `protobuf:"bytes,4,opt,name=model,proto3" json:"model,omitempty"`
+	Action        string                 `protobuf:"bytes,5,opt,name=action,proto3" json:"action,omitempty"`
+	Details       string                 `protobuf:"bytes,6,opt,name=details,proto3" json:"details,omitempty"`
+	Result        string                 `protobuf:"bytes,7,opt,name=result,proto3" json:"result,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,8,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,9,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OperationLogVo) Reset() {
+	*x = OperationLogVo{}
+	mi := &file_gorpc_proto_msgTypes[98]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OperationLogVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OperationLogVo) ProtoMessage() {}
+
+func (x *OperationLogVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[98]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OperationLogVo.ProtoReflect.Descriptor instead.
+func (*OperationLogVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{98}
+}
+
+func (x *OperationLogVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *OperationLogVo) GetSysUserId() int64 {
+	if x != nil {
+		return x.SysUserId
+	}
+	return 0
+}
+
+func (x *OperationLogVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *OperationLogVo) GetModel() string {
+	if x != nil {
+		return x.Model
+	}
+	return ""
+}
+
+func (x *OperationLogVo) GetAction() string {
+	if x != nil {
+		return x.Action
+	}
+	return ""
+}
+
+func (x *OperationLogVo) GetDetails() string {
+	if x != nil {
+		return x.Details
+	}
+	return ""
+}
+
+func (x *OperationLogVo) GetResult() string {
+	if x != nil {
+		return x.Result
+	}
+	return ""
+}
+
+func (x *OperationLogVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *OperationLogVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+type OperationLogListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *OperationLogVo        `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OperationLogListReq) Reset() {
+	*x = OperationLogListReq{}
+	mi := &file_gorpc_proto_msgTypes[99]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OperationLogListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OperationLogListReq) ProtoMessage() {}
+
+func (x *OperationLogListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[99]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OperationLogListReq.ProtoReflect.Descriptor instead.
+func (*OperationLogListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{99}
+}
+
+func (x *OperationLogListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *OperationLogListReq) GetVo() *OperationLogVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *OperationLogListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *OperationLogListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type OperationLogListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*OperationLogVo      `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OperationLogListResp) Reset() {
+	*x = OperationLogListResp{}
+	mi := &file_gorpc_proto_msgTypes[100]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OperationLogListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OperationLogListResp) ProtoMessage() {}
+
+func (x *OperationLogListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[100]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OperationLogListResp.ProtoReflect.Descriptor instead.
+func (*OperationLogListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{100}
+}
+
+func (x *OperationLogListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *OperationLogListResp) GetList() []*OperationLogVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// AnnouncePlan
+type AnnouncePlanVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"` // 产品code
+	Areas         string                 `protobuf:"bytes,3,opt,name=areas,proto3" json:"areas,omitempty"`             // 地区列表
+	Sort          int64                  `protobuf:"varint,4,opt,name=sort,proto3" json:"sort,omitempty"`
+	Status        Status                 `protobuf:"varint,5,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"` // 状态
+	Remark        string                 `protobuf:"bytes,6,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,8,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AnnouncePlanVo) Reset() {
+	*x = AnnouncePlanVo{}
+	mi := &file_gorpc_proto_msgTypes[101]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AnnouncePlanVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AnnouncePlanVo) ProtoMessage() {}
+
+func (x *AnnouncePlanVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[101]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AnnouncePlanVo.ProtoReflect.Descriptor instead.
+func (*AnnouncePlanVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{101}
+}
+
+func (x *AnnouncePlanVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *AnnouncePlanVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *AnnouncePlanVo) GetAreas() string {
+	if x != nil {
+		return x.Areas
+	}
+	return ""
+}
+
+func (x *AnnouncePlanVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *AnnouncePlanVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *AnnouncePlanVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *AnnouncePlanVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *AnnouncePlanVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type AnnouncePlanListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *AnnouncePlanVo        `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AnnouncePlanListReq) Reset() {
+	*x = AnnouncePlanListReq{}
+	mi := &file_gorpc_proto_msgTypes[102]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AnnouncePlanListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AnnouncePlanListReq) ProtoMessage() {}
+
+func (x *AnnouncePlanListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[102]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AnnouncePlanListReq.ProtoReflect.Descriptor instead.
+func (*AnnouncePlanListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{102}
+}
+
+func (x *AnnouncePlanListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *AnnouncePlanListReq) GetVo() *AnnouncePlanVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *AnnouncePlanListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *AnnouncePlanListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type AnnouncePlanListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*AnnouncePlanVo      `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AnnouncePlanListResp) Reset() {
+	*x = AnnouncePlanListResp{}
+	mi := &file_gorpc_proto_msgTypes[103]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AnnouncePlanListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AnnouncePlanListResp) ProtoMessage() {}
+
+func (x *AnnouncePlanListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[103]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AnnouncePlanListResp.ProtoReflect.Descriptor instead.
+func (*AnnouncePlanListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{103}
+}
+
+func (x *AnnouncePlanListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *AnnouncePlanListResp) GetList() []*AnnouncePlanVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// AnnouncePlanDetail
+type AnnouncePlanDetailVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	PlanId        int64                  `protobuf:"varint,2,opt,name=planId,proto3" json:"planId,omitempty"`                    // 方案ID
+	Platforms     string                 `protobuf:"bytes,3,opt,name=platforms,proto3" json:"platforms,omitempty"`               // 平台
+	Channels      string                 `protobuf:"bytes,4,opt,name=channels,proto3" json:"channels,omitempty"`                 // 渠道
+	Icon          string                 `protobuf:"bytes,5,opt,name=icon,proto3" json:"icon,omitempty"`                         // 图标
+	Title         string                 `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"`                       // 标题
+	Content       string                 `protobuf:"bytes,7,opt,name=content,proto3" json:"content,omitempty"`                   // 内容
+	Url           string                 `protobuf:"bytes,8,opt,name=url,proto3" json:"url,omitempty"`                           // 商店地址
+	ButtonText    string                 `protobuf:"bytes,9,opt,name=buttonText,proto3" json:"buttonText,omitempty"`             // 按钮文本
+	Closeable     int64                  `protobuf:"varint,10,opt,name=closeable,proto3" json:"closeable,omitempty"`             // 是否可关闭
+	Sort          int64                  `protobuf:"varint,11,opt,name=sort,proto3" json:"sort,omitempty"`                       // 排序
+	PolicyConfig  string                 `protobuf:"bytes,12,opt,name=policyConfig,proto3" json:"policyConfig,omitempty"`        // 更新策略配置
+	Status        Status                 `protobuf:"varint,13,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"` // 状态
+	Remark        string                 `protobuf:"bytes,14,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,15,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,16,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AnnouncePlanDetailVo) Reset() {
+	*x = AnnouncePlanDetailVo{}
+	mi := &file_gorpc_proto_msgTypes[104]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AnnouncePlanDetailVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AnnouncePlanDetailVo) ProtoMessage() {}
+
+func (x *AnnouncePlanDetailVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[104]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AnnouncePlanDetailVo.ProtoReflect.Descriptor instead.
+func (*AnnouncePlanDetailVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{104}
+}
+
+func (x *AnnouncePlanDetailVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *AnnouncePlanDetailVo) GetPlanId() int64 {
+	if x != nil {
+		return x.PlanId
+	}
+	return 0
+}
+
+func (x *AnnouncePlanDetailVo) GetPlatforms() string {
+	if x != nil {
+		return x.Platforms
+	}
+	return ""
+}
+
+func (x *AnnouncePlanDetailVo) GetChannels() string {
+	if x != nil {
+		return x.Channels
+	}
+	return ""
+}
+
+func (x *AnnouncePlanDetailVo) GetIcon() string {
+	if x != nil {
+		return x.Icon
+	}
+	return ""
+}
+
+func (x *AnnouncePlanDetailVo) GetTitle() string {
+	if x != nil {
+		return x.Title
+	}
+	return ""
+}
+
+func (x *AnnouncePlanDetailVo) GetContent() string {
+	if x != nil {
+		return x.Content
+	}
+	return ""
+}
+
+func (x *AnnouncePlanDetailVo) GetUrl() string {
+	if x != nil {
+		return x.Url
+	}
+	return ""
+}
+
+func (x *AnnouncePlanDetailVo) GetButtonText() string {
+	if x != nil {
+		return x.ButtonText
+	}
+	return ""
+}
+
+func (x *AnnouncePlanDetailVo) GetCloseable() int64 {
+	if x != nil {
+		return x.Closeable
+	}
+	return 0
+}
+
+func (x *AnnouncePlanDetailVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *AnnouncePlanDetailVo) GetPolicyConfig() string {
+	if x != nil {
+		return x.PolicyConfig
+	}
+	return ""
+}
+
+func (x *AnnouncePlanDetailVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *AnnouncePlanDetailVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *AnnouncePlanDetailVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *AnnouncePlanDetailVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type AnnouncePlanDetailListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *AnnouncePlanDetailVo  `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	PlanIds       []int64                `protobuf:"varint,3,rep,packed,name=planIds,proto3" json:"planIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AnnouncePlanDetailListReq) Reset() {
+	*x = AnnouncePlanDetailListReq{}
+	mi := &file_gorpc_proto_msgTypes[105]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AnnouncePlanDetailListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AnnouncePlanDetailListReq) ProtoMessage() {}
+
+func (x *AnnouncePlanDetailListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[105]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AnnouncePlanDetailListReq.ProtoReflect.Descriptor instead.
+func (*AnnouncePlanDetailListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{105}
+}
+
+func (x *AnnouncePlanDetailListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *AnnouncePlanDetailListReq) GetVo() *AnnouncePlanDetailVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *AnnouncePlanDetailListReq) GetPlanIds() []int64 {
+	if x != nil {
+		return x.PlanIds
+	}
+	return nil
+}
+
+type AnnouncePlanDetailListResp struct {
+	state         protoimpl.MessageState  `protogen:"open.v1"`
+	Total         int64                   `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*AnnouncePlanDetailVo `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AnnouncePlanDetailListResp) Reset() {
+	*x = AnnouncePlanDetailListResp{}
+	mi := &file_gorpc_proto_msgTypes[106]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AnnouncePlanDetailListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AnnouncePlanDetailListResp) ProtoMessage() {}
+
+func (x *AnnouncePlanDetailListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[106]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AnnouncePlanDetailListResp.ProtoReflect.Descriptor instead.
+func (*AnnouncePlanDetailListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{106}
+}
+
+func (x *AnnouncePlanDetailListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *AnnouncePlanDetailListResp) GetList() []*AnnouncePlanDetailVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// ServiceTypes
+type ServiceTypesVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	Name          string                 `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
+	UserLevel     int64                  `protobuf:"varint,4,opt,name=userLevel,proto3" json:"userLevel,omitempty"`
+	DeviceLimit   int64                  `protobuf:"varint,5,opt,name=deviceLimit,proto3" json:"deviceLimit,omitempty"` // 可选字段,Go中是 *int64
+	Sort          int64                  `protobuf:"varint,6,opt,name=sort,proto3" json:"sort,omitempty"`
+	Config        string                 `protobuf:"bytes,7,opt,name=config,proto3" json:"config,omitempty"`
+	Status        Status                 `protobuf:"varint,8,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	Remark        string                 `protobuf:"bytes,9,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,10,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,11,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ServiceTypesVo) Reset() {
+	*x = ServiceTypesVo{}
+	mi := &file_gorpc_proto_msgTypes[107]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ServiceTypesVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceTypesVo) ProtoMessage() {}
+
+func (x *ServiceTypesVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[107]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceTypesVo.ProtoReflect.Descriptor instead.
+func (*ServiceTypesVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{107}
+}
+
+func (x *ServiceTypesVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *ServiceTypesVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *ServiceTypesVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *ServiceTypesVo) GetUserLevel() int64 {
+	if x != nil {
+		return x.UserLevel
+	}
+	return 0
+}
+
+func (x *ServiceTypesVo) GetDeviceLimit() int64 {
+	if x != nil {
+		return x.DeviceLimit
+	}
+	return 0
+}
+
+func (x *ServiceTypesVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *ServiceTypesVo) GetConfig() string {
+	if x != nil {
+		return x.Config
+	}
+	return ""
+}
+
+func (x *ServiceTypesVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *ServiceTypesVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *ServiceTypesVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *ServiceTypesVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type ServiceTypesGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ServiceTypesGetReq) Reset() {
+	*x = ServiceTypesGetReq{}
+	mi := &file_gorpc_proto_msgTypes[108]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ServiceTypesGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceTypesGetReq) ProtoMessage() {}
+
+func (x *ServiceTypesGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[108]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceTypesGetReq.ProtoReflect.Descriptor instead.
+func (*ServiceTypesGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{108}
+}
+
+func (x *ServiceTypesGetReq) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+type ServiceTypesListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *ServiceTypesVo        `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ServiceTypesListReq) Reset() {
+	*x = ServiceTypesListReq{}
+	mi := &file_gorpc_proto_msgTypes[109]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ServiceTypesListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceTypesListReq) ProtoMessage() {}
+
+func (x *ServiceTypesListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[109]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceTypesListReq.ProtoReflect.Descriptor instead.
+func (*ServiceTypesListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{109}
+}
+
+func (x *ServiceTypesListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *ServiceTypesListReq) GetVo() *ServiceTypesVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *ServiceTypesListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *ServiceTypesListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type ServiceTypesListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*ServiceTypesVo      `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ServiceTypesListResp) Reset() {
+	*x = ServiceTypesListResp{}
+	mi := &file_gorpc_proto_msgTypes[110]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ServiceTypesListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceTypesListResp) ProtoMessage() {}
+
+func (x *ServiceTypesListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[110]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceTypesListResp.ProtoReflect.Descriptor instead.
+func (*ServiceTypesListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{110}
+}
+
+func (x *ServiceTypesListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *ServiceTypesListResp) GetList() []*ServiceTypesVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type ServiceTypesAddReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *ServiceTypesVo        `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ServiceTypesAddReq) Reset() {
+	*x = ServiceTypesAddReq{}
+	mi := &file_gorpc_proto_msgTypes[111]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ServiceTypesAddReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceTypesAddReq) ProtoMessage() {}
+
+func (x *ServiceTypesAddReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[111]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceTypesAddReq.ProtoReflect.Descriptor instead.
+func (*ServiceTypesAddReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{111}
+}
+
+func (x *ServiceTypesAddReq) GetVo() *ServiceTypesVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type ServiceTypesUpdateReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *ServiceTypesVo        `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ServiceTypesUpdateReq) Reset() {
+	*x = ServiceTypesUpdateReq{}
+	mi := &file_gorpc_proto_msgTypes[112]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ServiceTypesUpdateReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceTypesUpdateReq) ProtoMessage() {}
+
+func (x *ServiceTypesUpdateReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[112]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceTypesUpdateReq.ProtoReflect.Descriptor instead.
+func (*ServiceTypesUpdateReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{112}
+}
+
+func (x *ServiceTypesUpdateReq) GetVo() *ServiceTypesVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type ServiceTypesDelReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ServiceTypesDelReq) Reset() {
+	*x = ServiceTypesDelReq{}
+	mi := &file_gorpc_proto_msgTypes[113]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ServiceTypesDelReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceTypesDelReq) ProtoMessage() {}
+
+func (x *ServiceTypesDelReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[113]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceTypesDelReq.ProtoReflect.Descriptor instead.
+func (*ServiceTypesDelReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{113}
+}
+
+func (x *ServiceTypesDelReq) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+// ServiceSets
+type ServiceSetsVo struct {
+	state                 protoimpl.MessageState `protogen:"open.v1"`
+	Id                    int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCode           string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	ServiceTypeId         int64                  `protobuf:"varint,3,opt,name=serviceTypeId,proto3" json:"serviceTypeId,omitempty"`
+	Name                  string                 `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
+	LicenseDays           int64                  `protobuf:"varint,5,opt,name=licenseDays,proto3" json:"licenseDays,omitempty"`
+	Channel               string                 `protobuf:"bytes,6,opt,name=channel,proto3" json:"channel,omitempty"`
+	ChannelItemId         string                 `protobuf:"bytes,7,opt,name=channelItemId,proto3" json:"channelItemId,omitempty"`
+	RefPortalServiceSetId int64                  `protobuf:"varint,8,opt,name=refPortalServiceSetId,proto3" json:"refPortalServiceSetId,omitempty"` // Go中是 sql.int64,转换为 int64
+	AppleChannelItemId    string                 `protobuf:"bytes,9,opt,name=appleChannelItemId,proto3" json:"appleChannelItemId,omitempty"`
+	GoogleChannelItemId   string                 `protobuf:"bytes,10,opt,name=googleChannelItemId,proto3" json:"googleChannelItemId,omitempty"`
+	Title                 string                 `protobuf:"bytes,11,opt,name=title,proto3" json:"title,omitempty"`
+	SubTitle              string                 `protobuf:"bytes,12,opt,name=subTitle,proto3" json:"subTitle,omitempty"`
+	Introduce             string                 `protobuf:"bytes,13,opt,name=introduce,proto3" json:"introduce,omitempty"`
+	OrgPrice              float32                `protobuf:"fixed32,14,opt,name=orgPrice,proto3" json:"orgPrice,omitempty"`
+	Price                 float32                `protobuf:"fixed32,15,opt,name=price,proto3" json:"price,omitempty"`
+	Display               BoolInt                `protobuf:"varint,16,opt,name=display,proto3,enum=gorpc.BoolInt" json:"display,omitempty"`
+	IsDefault             BoolInt                `protobuf:"varint,17,opt,name=isDefault,proto3,enum=gorpc.BoolInt" json:"isDefault,omitempty"`
+	Recommend             BoolInt                `protobuf:"varint,18,opt,name=recommend,proto3,enum=gorpc.BoolInt" json:"recommend,omitempty"`
+	Hidden                BoolInt                `protobuf:"varint,19,opt,name=hidden,proto3,enum=gorpc.BoolInt" json:"hidden,omitempty"`
+	Sort                  int64                  `protobuf:"varint,20,opt,name=sort,proto3" json:"sort,omitempty"`
+	Status                Status                 `protobuf:"varint,21,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	Remark                string                 `protobuf:"bytes,22,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime            int64                  `protobuf:"varint,23,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime            int64                  `protobuf:"varint,24,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields         protoimpl.UnknownFields
+	sizeCache             protoimpl.SizeCache
+}
+
+func (x *ServiceSetsVo) Reset() {
+	*x = ServiceSetsVo{}
+	mi := &file_gorpc_proto_msgTypes[114]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ServiceSetsVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceSetsVo) ProtoMessage() {}
+
+func (x *ServiceSetsVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[114]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceSetsVo.ProtoReflect.Descriptor instead.
+func (*ServiceSetsVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{114}
+}
+
+func (x *ServiceSetsVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *ServiceSetsVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *ServiceSetsVo) GetServiceTypeId() int64 {
+	if x != nil {
+		return x.ServiceTypeId
+	}
+	return 0
+}
+
+func (x *ServiceSetsVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *ServiceSetsVo) GetLicenseDays() int64 {
+	if x != nil {
+		return x.LicenseDays
+	}
+	return 0
+}
+
+func (x *ServiceSetsVo) GetChannel() string {
+	if x != nil {
+		return x.Channel
+	}
+	return ""
+}
+
+func (x *ServiceSetsVo) GetChannelItemId() string {
+	if x != nil {
+		return x.ChannelItemId
+	}
+	return ""
+}
+
+func (x *ServiceSetsVo) GetRefPortalServiceSetId() int64 {
+	if x != nil {
+		return x.RefPortalServiceSetId
+	}
+	return 0
+}
+
+func (x *ServiceSetsVo) GetAppleChannelItemId() string {
+	if x != nil {
+		return x.AppleChannelItemId
+	}
+	return ""
+}
+
+func (x *ServiceSetsVo) GetGoogleChannelItemId() string {
+	if x != nil {
+		return x.GoogleChannelItemId
+	}
+	return ""
+}
+
+func (x *ServiceSetsVo) GetTitle() string {
+	if x != nil {
+		return x.Title
+	}
+	return ""
+}
+
+func (x *ServiceSetsVo) GetSubTitle() string {
+	if x != nil {
+		return x.SubTitle
+	}
+	return ""
+}
+
+func (x *ServiceSetsVo) GetIntroduce() string {
+	if x != nil {
+		return x.Introduce
+	}
+	return ""
+}
+
+func (x *ServiceSetsVo) GetOrgPrice() float32 {
+	if x != nil {
+		return x.OrgPrice
+	}
+	return 0
+}
+
+func (x *ServiceSetsVo) GetPrice() float32 {
+	if x != nil {
+		return x.Price
+	}
+	return 0
+}
+
+func (x *ServiceSetsVo) GetDisplay() BoolInt {
+	if x != nil {
+		return x.Display
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *ServiceSetsVo) GetIsDefault() BoolInt {
+	if x != nil {
+		return x.IsDefault
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *ServiceSetsVo) GetRecommend() BoolInt {
+	if x != nil {
+		return x.Recommend
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *ServiceSetsVo) GetHidden() BoolInt {
+	if x != nil {
+		return x.Hidden
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *ServiceSetsVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *ServiceSetsVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *ServiceSetsVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *ServiceSetsVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *ServiceSetsVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type ServiceSetsGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ServiceSetsGetReq) Reset() {
+	*x = ServiceSetsGetReq{}
+	mi := &file_gorpc_proto_msgTypes[115]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ServiceSetsGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceSetsGetReq) ProtoMessage() {}
+
+func (x *ServiceSetsGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[115]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceSetsGetReq.ProtoReflect.Descriptor instead.
+func (*ServiceSetsGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{115}
+}
+
+func (x *ServiceSetsGetReq) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+type ServiceSetsListReq struct {
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	Page           *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo             *ServiceSetsVo         `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes   []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	ServiceTypeIds []int64                `protobuf:"varint,4,rep,packed,name=serviceTypeIds,proto3" json:"serviceTypeIds,omitempty"`
+	ExcludeIds     []int64                `protobuf:"varint,5,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
+}
+
+func (x *ServiceSetsListReq) Reset() {
+	*x = ServiceSetsListReq{}
+	mi := &file_gorpc_proto_msgTypes[116]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ServiceSetsListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceSetsListReq) ProtoMessage() {}
+
+func (x *ServiceSetsListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[116]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceSetsListReq.ProtoReflect.Descriptor instead.
+func (*ServiceSetsListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{116}
+}
+
+func (x *ServiceSetsListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *ServiceSetsListReq) GetVo() *ServiceSetsVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *ServiceSetsListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *ServiceSetsListReq) GetServiceTypeIds() []int64 {
+	if x != nil {
+		return x.ServiceTypeIds
+	}
+	return nil
+}
+
+func (x *ServiceSetsListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type ServiceSetsListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*ServiceSetsVo       `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ServiceSetsListResp) Reset() {
+	*x = ServiceSetsListResp{}
+	mi := &file_gorpc_proto_msgTypes[117]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ServiceSetsListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceSetsListResp) ProtoMessage() {}
+
+func (x *ServiceSetsListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[117]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceSetsListResp.ProtoReflect.Descriptor instead.
+func (*ServiceSetsListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{117}
+}
+
+func (x *ServiceSetsListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *ServiceSetsListResp) GetList() []*ServiceSetsVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type ServiceSetsAddReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *ServiceSetsVo         `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ServiceSetsAddReq) Reset() {
+	*x = ServiceSetsAddReq{}
+	mi := &file_gorpc_proto_msgTypes[118]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ServiceSetsAddReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceSetsAddReq) ProtoMessage() {}
+
+func (x *ServiceSetsAddReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[118]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceSetsAddReq.ProtoReflect.Descriptor instead.
+func (*ServiceSetsAddReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{118}
+}
+
+func (x *ServiceSetsAddReq) GetVo() *ServiceSetsVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type ServiceSetsUpdateReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *ServiceSetsVo         `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ServiceSetsUpdateReq) Reset() {
+	*x = ServiceSetsUpdateReq{}
+	mi := &file_gorpc_proto_msgTypes[119]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ServiceSetsUpdateReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceSetsUpdateReq) ProtoMessage() {}
+
+func (x *ServiceSetsUpdateReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[119]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceSetsUpdateReq.ProtoReflect.Descriptor instead.
+func (*ServiceSetsUpdateReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{119}
+}
+
+func (x *ServiceSetsUpdateReq) GetVo() *ServiceSetsVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type ServiceSetsDelReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ServiceSetsDelReq) Reset() {
+	*x = ServiceSetsDelReq{}
+	mi := &file_gorpc_proto_msgTypes[120]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ServiceSetsDelReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceSetsDelReq) ProtoMessage() {}
+
+func (x *ServiceSetsDelReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[120]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceSetsDelReq.ProtoReflect.Descriptor instead.
+func (*ServiceSetsDelReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{120}
+}
+
+func (x *ServiceSetsDelReq) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+type MessagePushVo struct {
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	Id             int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	Status         string                 `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
+	Operator       int64                  `protobuf:"varint,3,opt,name=operator,proto3" json:"operator,omitempty"`
+	Module         string                 `protobuf:"bytes,4,opt,name=module,proto3" json:"module,omitempty"`
+	Title          string                 `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"`
+	Message        string                 `protobuf:"bytes,6,opt,name=message,proto3" json:"message,omitempty"`
+	ImgUrl         string                 `protobuf:"bytes,7,opt,name=imgUrl,proto3" json:"imgUrl,omitempty"`
+	Data           string                 `protobuf:"bytes,8,opt,name=data,proto3" json:"data,omitempty"`
+	ProductCode    string                 `protobuf:"bytes,9,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	AreaParam      int64                  `protobuf:"varint,10,opt,name=areaParam,proto3" json:"areaParam,omitempty"`
+	Topics         []string               `protobuf:"bytes,11,rep,name=topics,proto3" json:"topics,omitempty"`
+	FirebaseTokens []string               `protobuf:"bytes,12,rep,name=firebaseTokens,proto3" json:"firebaseTokens,omitempty"`
+	PublishTime    int64                  `protobuf:"varint,13,opt,name=publishTime,proto3" json:"publishTime,omitempty"`
+	CreateTime     int64                  `protobuf:"varint,14,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime     int64                  `protobuf:"varint,15,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
+}
+
+func (x *MessagePushVo) Reset() {
+	*x = MessagePushVo{}
+	mi := &file_gorpc_proto_msgTypes[121]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *MessagePushVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MessagePushVo) ProtoMessage() {}
+
+func (x *MessagePushVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[121]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use MessagePushVo.ProtoReflect.Descriptor instead.
+func (*MessagePushVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{121}
+}
+
+func (x *MessagePushVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *MessagePushVo) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+func (x *MessagePushVo) GetOperator() int64 {
+	if x != nil {
+		return x.Operator
+	}
+	return 0
+}
+
+func (x *MessagePushVo) GetModule() string {
+	if x != nil {
+		return x.Module
+	}
+	return ""
+}
+
+func (x *MessagePushVo) GetTitle() string {
+	if x != nil {
+		return x.Title
+	}
+	return ""
+}
+
+func (x *MessagePushVo) GetMessage() string {
+	if x != nil {
+		return x.Message
+	}
+	return ""
+}
+
+func (x *MessagePushVo) GetImgUrl() string {
+	if x != nil {
+		return x.ImgUrl
+	}
+	return ""
+}
+
+func (x *MessagePushVo) GetData() string {
+	if x != nil {
+		return x.Data
+	}
+	return ""
+}
+
+func (x *MessagePushVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *MessagePushVo) GetAreaParam() int64 {
+	if x != nil {
+		return x.AreaParam
+	}
+	return 0
+}
+
+func (x *MessagePushVo) GetTopics() []string {
+	if x != nil {
+		return x.Topics
+	}
+	return nil
+}
+
+func (x *MessagePushVo) GetFirebaseTokens() []string {
+	if x != nil {
+		return x.FirebaseTokens
+	}
+	return nil
+}
+
+func (x *MessagePushVo) GetPublishTime() int64 {
+	if x != nil {
+		return x.PublishTime
+	}
+	return 0
+}
+
+func (x *MessagePushVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *MessagePushVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type MessagePushListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *MessagePushVo         `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *MessagePushListReq) Reset() {
+	*x = MessagePushListReq{}
+	mi := &file_gorpc_proto_msgTypes[122]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *MessagePushListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MessagePushListReq) ProtoMessage() {}
+
+func (x *MessagePushListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[122]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use MessagePushListReq.ProtoReflect.Descriptor instead.
+func (*MessagePushListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{122}
+}
+
+func (x *MessagePushListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *MessagePushListReq) GetVo() *MessagePushVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type MessagePushListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*MessagePushVo       `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *MessagePushListResp) Reset() {
+	*x = MessagePushListResp{}
+	mi := &file_gorpc_proto_msgTypes[123]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *MessagePushListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MessagePushListResp) ProtoMessage() {}
+
+func (x *MessagePushListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[123]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use MessagePushListResp.ProtoReflect.Descriptor instead.
+func (*MessagePushListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{123}
+}
+
+func (x *MessagePushListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *MessagePushListResp) GetList() []*MessagePushVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type ShortDramaEpisodeVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	DramaId       int64                  `protobuf:"varint,2,opt,name=dramaId,proto3" json:"dramaId,omitempty"`
+	Type          int64                  `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"`
+	Name          string                 `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
+	Sort          int64                  `protobuf:"varint,5,opt,name=sort,proto3" json:"sort,omitempty"`
+	Videos        string                 `protobuf:"bytes,6,opt,name=videos,proto3" json:"videos,omitempty"`
+	Subtitles     string                 `protobuf:"bytes,7,opt,name=subtitles,proto3" json:"subtitles,omitempty"`
+	Status        Status                 `protobuf:"varint,8,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,9,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,10,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	DanmakuUrl    string                 `protobuf:"bytes,11,opt,name=danmakuUrl,proto3" json:"danmakuUrl,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaEpisodeVo) Reset() {
+	*x = ShortDramaEpisodeVo{}
+	mi := &file_gorpc_proto_msgTypes[124]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaEpisodeVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaEpisodeVo) ProtoMessage() {}
+
+func (x *ShortDramaEpisodeVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[124]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaEpisodeVo.ProtoReflect.Descriptor instead.
+func (*ShortDramaEpisodeVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{124}
+}
+
+func (x *ShortDramaEpisodeVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *ShortDramaEpisodeVo) GetDramaId() int64 {
+	if x != nil {
+		return x.DramaId
+	}
+	return 0
+}
+
+func (x *ShortDramaEpisodeVo) GetType() int64 {
+	if x != nil {
+		return x.Type
+	}
+	return 0
+}
+
+func (x *ShortDramaEpisodeVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *ShortDramaEpisodeVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *ShortDramaEpisodeVo) GetVideos() string {
+	if x != nil {
+		return x.Videos
+	}
+	return ""
+}
+
+func (x *ShortDramaEpisodeVo) GetSubtitles() string {
+	if x != nil {
+		return x.Subtitles
+	}
+	return ""
+}
+
+func (x *ShortDramaEpisodeVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *ShortDramaEpisodeVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *ShortDramaEpisodeVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *ShortDramaEpisodeVo) GetDanmakuUrl() string {
+	if x != nil {
+		return x.DanmakuUrl
+	}
+	return ""
+}
+
+type ShortDramaEpisodeGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *ShortDramaEpisodeVo   `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaEpisodeGetReq) Reset() {
+	*x = ShortDramaEpisodeGetReq{}
+	mi := &file_gorpc_proto_msgTypes[125]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaEpisodeGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaEpisodeGetReq) ProtoMessage() {}
+
+func (x *ShortDramaEpisodeGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[125]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaEpisodeGetReq.ProtoReflect.Descriptor instead.
+func (*ShortDramaEpisodeGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{125}
+}
+
+func (x *ShortDramaEpisodeGetReq) GetVo() *ShortDramaEpisodeVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type ShortDramaEpisodeListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *ShortDramaEpisodeVo   `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	DramaIds      []int64                `protobuf:"varint,3,rep,packed,name=dramaIds,proto3" json:"dramaIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaEpisodeListReq) Reset() {
+	*x = ShortDramaEpisodeListReq{}
+	mi := &file_gorpc_proto_msgTypes[126]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaEpisodeListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaEpisodeListReq) ProtoMessage() {}
+
+func (x *ShortDramaEpisodeListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[126]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaEpisodeListReq.ProtoReflect.Descriptor instead.
+func (*ShortDramaEpisodeListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{126}
+}
+
+func (x *ShortDramaEpisodeListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *ShortDramaEpisodeListReq) GetVo() *ShortDramaEpisodeVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *ShortDramaEpisodeListReq) GetDramaIds() []int64 {
+	if x != nil {
+		return x.DramaIds
+	}
+	return nil
+}
+
+type ShortDramaEpisodeListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*ShortDramaEpisodeVo `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaEpisodeListResp) Reset() {
+	*x = ShortDramaEpisodeListResp{}
+	mi := &file_gorpc_proto_msgTypes[127]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaEpisodeListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaEpisodeListResp) ProtoMessage() {}
+
+func (x *ShortDramaEpisodeListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[127]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaEpisodeListResp.ProtoReflect.Descriptor instead.
+func (*ShortDramaEpisodeListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{127}
+}
+
+func (x *ShortDramaEpisodeListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *ShortDramaEpisodeListResp) GetList() []*ShortDramaEpisodeVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type ShortDramaEpisodeBatchAddReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	DramaId       int64                  `protobuf:"varint,1,opt,name=dramaId,proto3" json:"dramaId,omitempty"`
+	Episodes      []*ShortDramaEpisodeVo `protobuf:"bytes,2,rep,name=episodes,proto3" json:"episodes,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaEpisodeBatchAddReq) Reset() {
+	*x = ShortDramaEpisodeBatchAddReq{}
+	mi := &file_gorpc_proto_msgTypes[128]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaEpisodeBatchAddReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaEpisodeBatchAddReq) ProtoMessage() {}
+
+func (x *ShortDramaEpisodeBatchAddReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[128]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaEpisodeBatchAddReq.ProtoReflect.Descriptor instead.
+func (*ShortDramaEpisodeBatchAddReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{128}
+}
+
+func (x *ShortDramaEpisodeBatchAddReq) GetDramaId() int64 {
+	if x != nil {
+		return x.DramaId
+	}
+	return 0
+}
+
+func (x *ShortDramaEpisodeBatchAddReq) GetEpisodes() []*ShortDramaEpisodeVo {
+	if x != nil {
+		return x.Episodes
+	}
+	return nil
+}
+
+type ShortDramaEpisodeBatchRefreshUpdateTimeReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	DramaId       int64                  `protobuf:"varint,1,opt,name=dramaId,proto3" json:"dramaId,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaEpisodeBatchRefreshUpdateTimeReq) Reset() {
+	*x = ShortDramaEpisodeBatchRefreshUpdateTimeReq{}
+	mi := &file_gorpc_proto_msgTypes[129]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaEpisodeBatchRefreshUpdateTimeReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaEpisodeBatchRefreshUpdateTimeReq) ProtoMessage() {}
+
+func (x *ShortDramaEpisodeBatchRefreshUpdateTimeReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[129]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaEpisodeBatchRefreshUpdateTimeReq.ProtoReflect.Descriptor instead.
+func (*ShortDramaEpisodeBatchRefreshUpdateTimeReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{129}
+}
+
+func (x *ShortDramaEpisodeBatchRefreshUpdateTimeReq) GetDramaId() int64 {
+	if x != nil {
+		return x.DramaId
+	}
+	return 0
+}
+
+type ShortDramaLanguageVo struct {
+	state              protoimpl.MessageState `protogen:"open.v1"`
+	Id                 int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	DramaId            int64                  `protobuf:"varint,2,opt,name=dramaId,proto3" json:"dramaId,omitempty"`
+	Lang               string                 `protobuf:"bytes,3,opt,name=lang,proto3" json:"lang,omitempty"`
+	Title              string                 `protobuf:"bytes,4,opt,name=title,proto3" json:"title,omitempty"`
+	Description        string                 `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
+	Covers             string                 `protobuf:"bytes,6,opt,name=covers,proto3" json:"covers,omitempty"`
+	CoverDominantColor string                 `protobuf:"bytes,7,opt,name=coverDominantColor,proto3" json:"coverDominantColor,omitempty"`
+	CreateTime         int64                  `protobuf:"varint,8,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime         int64                  `protobuf:"varint,9,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields      protoimpl.UnknownFields
+	sizeCache          protoimpl.SizeCache
+}
+
+func (x *ShortDramaLanguageVo) Reset() {
+	*x = ShortDramaLanguageVo{}
+	mi := &file_gorpc_proto_msgTypes[130]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaLanguageVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaLanguageVo) ProtoMessage() {}
+
+func (x *ShortDramaLanguageVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[130]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaLanguageVo.ProtoReflect.Descriptor instead.
+func (*ShortDramaLanguageVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{130}
+}
+
+func (x *ShortDramaLanguageVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *ShortDramaLanguageVo) GetDramaId() int64 {
+	if x != nil {
+		return x.DramaId
+	}
+	return 0
+}
+
+func (x *ShortDramaLanguageVo) GetLang() string {
+	if x != nil {
+		return x.Lang
+	}
+	return ""
+}
+
+func (x *ShortDramaLanguageVo) GetTitle() string {
+	if x != nil {
+		return x.Title
+	}
+	return ""
+}
+
+func (x *ShortDramaLanguageVo) GetDescription() string {
+	if x != nil {
+		return x.Description
+	}
+	return ""
+}
+
+func (x *ShortDramaLanguageVo) GetCovers() string {
+	if x != nil {
+		return x.Covers
+	}
+	return ""
+}
+
+func (x *ShortDramaLanguageVo) GetCoverDominantColor() string {
+	if x != nil {
+		return x.CoverDominantColor
+	}
+	return ""
+}
+
+func (x *ShortDramaLanguageVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *ShortDramaLanguageVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type ShortDramaVo struct {
+	state                 protoimpl.MessageState  `protogen:"open.v1"`
+	Id                    int64                   `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCodes          string                  `protobuf:"bytes,2,opt,name=productCodes,proto3" json:"productCodes,omitempty"`
+	Title                 string                  `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
+	Description           string                  `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
+	Covers                string                  `protobuf:"bytes,5,opt,name=covers,proto3" json:"covers,omitempty"`
+	CoverDominantColor    string                  `protobuf:"bytes,6,opt,name=coverDominantColor,proto3" json:"coverDominantColor,omitempty"`
+	Type                  string                  `protobuf:"bytes,7,opt,name=type,proto3" json:"type,omitempty"`
+	Tags                  string                  `protobuf:"bytes,8,opt,name=tags,proto3" json:"tags,omitempty"`
+	ReleaseRegions        string                  `protobuf:"bytes,9,opt,name=releaseRegions,proto3" json:"releaseRegions,omitempty"`
+	ReleaseDate           int64                   `protobuf:"varint,10,opt,name=releaseDate,proto3" json:"releaseDate,omitempty"`
+	TotalEpisodes         int64                   `protobuf:"varint,11,opt,name=totalEpisodes,proto3" json:"totalEpisodes,omitempty"`
+	CompletedStatus       int64                   `protobuf:"varint,12,opt,name=completedStatus,proto3" json:"completedStatus,omitempty"`
+	CopyrightSupplier     string                  `protobuf:"bytes,13,opt,name=copyrightSupplier,proto3" json:"copyrightSupplier,omitempty"`
+	CopyrightDoc          string                  `protobuf:"bytes,14,opt,name=copyrightDoc,proto3" json:"copyrightDoc,omitempty"`
+	CopyrightPurchaseDate int64                   `protobuf:"varint,15,opt,name=copyrightPurchaseDate,proto3" json:"copyrightPurchaseDate,omitempty"`
+	CopyrightExpireDate   int64                   `protobuf:"varint,16,opt,name=copyrightExpireDate,proto3" json:"copyrightExpireDate,omitempty"`
+	Status                int64                   `protobuf:"varint,17,opt,name=status,proto3" json:"status,omitempty"`
+	CreateTime            int64                   `protobuf:"varint,18,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime            int64                   `protobuf:"varint,19,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	GhostCutId            string                  `protobuf:"bytes,20,opt,name=ghostCutId,proto3" json:"ghostCutId,omitempty"`
+	Recommend             int64                   `protobuf:"varint,21,opt,name=recommend,proto3" json:"recommend,omitempty"`
+	OtherConfig           string                  `protobuf:"bytes,22,opt,name=otherConfig,proto3" json:"otherConfig,omitempty"`
+	ShortDramaLanguages   []*ShortDramaLanguageVo `protobuf:"bytes,23,rep,name=shortDramaLanguages,proto3" json:"shortDramaLanguages,omitempty"`
+	MainEpisodeCount      int64                   `protobuf:"varint,24,opt,name=mainEpisodeCount,proto3" json:"mainEpisodeCount,omitempty"`
+	TrailerEpisodeCount   int64                   `protobuf:"varint,25,opt,name=trailerEpisodeCount,proto3" json:"trailerEpisodeCount,omitempty"`
+	CopyrightId           int64                   `protobuf:"varint,26,opt,name=copyrightId,proto3" json:"copyrightId,omitempty"`
+	Creator               int64                   `protobuf:"varint,27,opt,name=creator,proto3" json:"creator,omitempty"`
+	Modifier              int64                   `protobuf:"varint,28,opt,name=modifier,proto3" json:"modifier,omitempty"`
+	unknownFields         protoimpl.UnknownFields
+	sizeCache             protoimpl.SizeCache
+}
+
+func (x *ShortDramaVo) Reset() {
+	*x = ShortDramaVo{}
+	mi := &file_gorpc_proto_msgTypes[131]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaVo) ProtoMessage() {}
+
+func (x *ShortDramaVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[131]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaVo.ProtoReflect.Descriptor instead.
+func (*ShortDramaVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{131}
+}
+
+func (x *ShortDramaVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *ShortDramaVo) GetProductCodes() string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return ""
+}
+
+func (x *ShortDramaVo) GetTitle() string {
+	if x != nil {
+		return x.Title
+	}
+	return ""
+}
+
+func (x *ShortDramaVo) GetDescription() string {
+	if x != nil {
+		return x.Description
+	}
+	return ""
+}
+
+func (x *ShortDramaVo) GetCovers() string {
+	if x != nil {
+		return x.Covers
+	}
+	return ""
+}
+
+func (x *ShortDramaVo) GetCoverDominantColor() string {
+	if x != nil {
+		return x.CoverDominantColor
+	}
+	return ""
+}
+
+func (x *ShortDramaVo) GetType() string {
+	if x != nil {
+		return x.Type
+	}
+	return ""
+}
+
+func (x *ShortDramaVo) GetTags() string {
+	if x != nil {
+		return x.Tags
+	}
+	return ""
+}
+
+func (x *ShortDramaVo) GetReleaseRegions() string {
+	if x != nil {
+		return x.ReleaseRegions
+	}
+	return ""
+}
+
+func (x *ShortDramaVo) GetReleaseDate() int64 {
+	if x != nil {
+		return x.ReleaseDate
+	}
+	return 0
+}
+
+func (x *ShortDramaVo) GetTotalEpisodes() int64 {
+	if x != nil {
+		return x.TotalEpisodes
+	}
+	return 0
+}
+
+func (x *ShortDramaVo) GetCompletedStatus() int64 {
+	if x != nil {
+		return x.CompletedStatus
+	}
+	return 0
+}
+
+func (x *ShortDramaVo) GetCopyrightSupplier() string {
+	if x != nil {
+		return x.CopyrightSupplier
+	}
+	return ""
+}
+
+func (x *ShortDramaVo) GetCopyrightDoc() string {
+	if x != nil {
+		return x.CopyrightDoc
+	}
+	return ""
+}
+
+func (x *ShortDramaVo) GetCopyrightPurchaseDate() int64 {
+	if x != nil {
+		return x.CopyrightPurchaseDate
+	}
+	return 0
+}
+
+func (x *ShortDramaVo) GetCopyrightExpireDate() int64 {
+	if x != nil {
+		return x.CopyrightExpireDate
+	}
+	return 0
+}
+
+func (x *ShortDramaVo) GetStatus() int64 {
+	if x != nil {
+		return x.Status
+	}
+	return 0
+}
+
+func (x *ShortDramaVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *ShortDramaVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *ShortDramaVo) GetGhostCutId() string {
+	if x != nil {
+		return x.GhostCutId
+	}
+	return ""
+}
+
+func (x *ShortDramaVo) GetRecommend() int64 {
+	if x != nil {
+		return x.Recommend
+	}
+	return 0
+}
+
+func (x *ShortDramaVo) GetOtherConfig() string {
+	if x != nil {
+		return x.OtherConfig
+	}
+	return ""
+}
+
+func (x *ShortDramaVo) GetShortDramaLanguages() []*ShortDramaLanguageVo {
+	if x != nil {
+		return x.ShortDramaLanguages
+	}
+	return nil
+}
+
+func (x *ShortDramaVo) GetMainEpisodeCount() int64 {
+	if x != nil {
+		return x.MainEpisodeCount
+	}
+	return 0
+}
+
+func (x *ShortDramaVo) GetTrailerEpisodeCount() int64 {
+	if x != nil {
+		return x.TrailerEpisodeCount
+	}
+	return 0
+}
+
+func (x *ShortDramaVo) GetCopyrightId() int64 {
+	if x != nil {
+		return x.CopyrightId
+	}
+	return 0
+}
+
+func (x *ShortDramaVo) GetCreator() int64 {
+	if x != nil {
+		return x.Creator
+	}
+	return 0
+}
+
+func (x *ShortDramaVo) GetModifier() int64 {
+	if x != nil {
+		return x.Modifier
+	}
+	return 0
+}
+
+type ShortDramaGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *ShortDramaVo          `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	CountryCode   string                 `protobuf:"bytes,3,opt,name=countryCode,proto3" json:"countryCode,omitempty"`
+	Lang          string                 `protobuf:"bytes,4,opt,name=lang,proto3" json:"lang,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaGetReq) Reset() {
+	*x = ShortDramaGetReq{}
+	mi := &file_gorpc_proto_msgTypes[132]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaGetReq) ProtoMessage() {}
+
+func (x *ShortDramaGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[132]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaGetReq.ProtoReflect.Descriptor instead.
+func (*ShortDramaGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{132}
+}
+
+func (x *ShortDramaGetReq) GetVo() *ShortDramaVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *ShortDramaGetReq) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *ShortDramaGetReq) GetCountryCode() string {
+	if x != nil {
+		return x.CountryCode
+	}
+	return ""
+}
+
+func (x *ShortDramaGetReq) GetLang() string {
+	if x != nil {
+		return x.Lang
+	}
+	return ""
+}
+
+type ShortDramaListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *ShortDramaVo          `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,3,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,4,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	CountryCode   string                 `protobuf:"bytes,5,opt,name=countryCode,proto3" json:"countryCode,omitempty"`
+	Lang          string                 `protobuf:"bytes,6,opt,name=lang,proto3" json:"lang,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaListReq) Reset() {
+	*x = ShortDramaListReq{}
+	mi := &file_gorpc_proto_msgTypes[133]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaListReq) ProtoMessage() {}
+
+func (x *ShortDramaListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[133]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaListReq.ProtoReflect.Descriptor instead.
+func (*ShortDramaListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{133}
+}
+
+func (x *ShortDramaListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *ShortDramaListReq) GetVo() *ShortDramaVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *ShortDramaListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+func (x *ShortDramaListReq) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *ShortDramaListReq) GetCountryCode() string {
+	if x != nil {
+		return x.CountryCode
+	}
+	return ""
+}
+
+func (x *ShortDramaListReq) GetLang() string {
+	if x != nil {
+		return x.Lang
+	}
+	return ""
+}
+
+type ShortDramaListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*ShortDramaVo        `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaListResp) Reset() {
+	*x = ShortDramaListResp{}
+	mi := &file_gorpc_proto_msgTypes[134]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaListResp) ProtoMessage() {}
+
+func (x *ShortDramaListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[134]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaListResp.ProtoReflect.Descriptor instead.
+func (*ShortDramaListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{134}
+}
+
+func (x *ShortDramaListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *ShortDramaListResp) GetList() []*ShortDramaVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type ShortDramaLanguageListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *ShortDramaLanguageVo  `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaLanguageListReq) Reset() {
+	*x = ShortDramaLanguageListReq{}
+	mi := &file_gorpc_proto_msgTypes[135]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaLanguageListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaLanguageListReq) ProtoMessage() {}
+
+func (x *ShortDramaLanguageListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[135]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaLanguageListReq.ProtoReflect.Descriptor instead.
+func (*ShortDramaLanguageListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{135}
+}
+
+func (x *ShortDramaLanguageListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *ShortDramaLanguageListReq) GetVo() *ShortDramaLanguageVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type ShortDramaLanguageListResp struct {
+	state         protoimpl.MessageState  `protogen:"open.v1"`
+	Total         int64                   `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*ShortDramaLanguageVo `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaLanguageListResp) Reset() {
+	*x = ShortDramaLanguageListResp{}
+	mi := &file_gorpc_proto_msgTypes[136]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaLanguageListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaLanguageListResp) ProtoMessage() {}
+
+func (x *ShortDramaLanguageListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[136]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaLanguageListResp.ProtoReflect.Descriptor instead.
+func (*ShortDramaLanguageListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{136}
+}
+
+func (x *ShortDramaLanguageListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *ShortDramaLanguageListResp) GetList() []*ShortDramaLanguageVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type ShortDramaEpisodeCountVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	DramaId       int64                  `protobuf:"varint,1,opt,name=dramaId,proto3" json:"dramaId,omitempty"`
+	EpisodeCount  int64                  `protobuf:"varint,2,opt,name=episodeCount,proto3" json:"episodeCount,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaEpisodeCountVo) Reset() {
+	*x = ShortDramaEpisodeCountVo{}
+	mi := &file_gorpc_proto_msgTypes[137]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaEpisodeCountVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaEpisodeCountVo) ProtoMessage() {}
+
+func (x *ShortDramaEpisodeCountVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[137]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaEpisodeCountVo.ProtoReflect.Descriptor instead.
+func (*ShortDramaEpisodeCountVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{137}
+}
+
+func (x *ShortDramaEpisodeCountVo) GetDramaId() int64 {
+	if x != nil {
+		return x.DramaId
+	}
+	return 0
+}
+
+func (x *ShortDramaEpisodeCountVo) GetEpisodeCount() int64 {
+	if x != nil {
+		return x.EpisodeCount
+	}
+	return 0
+}
+
+type ShortDramaEpisodeCountReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Status        Status                 `protobuf:"varint,2,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	Type          int64                  `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"`
+	DramaIds      []int64                `protobuf:"varint,4,rep,packed,name=dramaIds,proto3" json:"dramaIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaEpisodeCountReq) Reset() {
+	*x = ShortDramaEpisodeCountReq{}
+	mi := &file_gorpc_proto_msgTypes[138]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaEpisodeCountReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaEpisodeCountReq) ProtoMessage() {}
+
+func (x *ShortDramaEpisodeCountReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[138]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaEpisodeCountReq.ProtoReflect.Descriptor instead.
+func (*ShortDramaEpisodeCountReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{138}
+}
+
+func (x *ShortDramaEpisodeCountReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *ShortDramaEpisodeCountReq) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *ShortDramaEpisodeCountReq) GetType() int64 {
+	if x != nil {
+		return x.Type
+	}
+	return 0
+}
+
+func (x *ShortDramaEpisodeCountReq) GetDramaIds() []int64 {
+	if x != nil {
+		return x.DramaIds
+	}
+	return nil
+}
+
+type ShortDramaEpisodeCountResp struct {
+	state         protoimpl.MessageState      `protogen:"open.v1"`
+	Total         int64                       `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*ShortDramaEpisodeCountVo `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaEpisodeCountResp) Reset() {
+	*x = ShortDramaEpisodeCountResp{}
+	mi := &file_gorpc_proto_msgTypes[139]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaEpisodeCountResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaEpisodeCountResp) ProtoMessage() {}
+
+func (x *ShortDramaEpisodeCountResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[139]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaEpisodeCountResp.ProtoReflect.Descriptor instead.
+func (*ShortDramaEpisodeCountResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{139}
+}
+
+func (x *ShortDramaEpisodeCountResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *ShortDramaEpisodeCountResp) GetList() []*ShortDramaEpisodeCountVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type ShortDramaCheckNameReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Title         string                 `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` // 短剧名称
+	Id            int64                  `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`      // 编辑时排除当前短剧ID
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaCheckNameReq) Reset() {
+	*x = ShortDramaCheckNameReq{}
+	mi := &file_gorpc_proto_msgTypes[140]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaCheckNameReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaCheckNameReq) ProtoMessage() {}
+
+func (x *ShortDramaCheckNameReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[140]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaCheckNameReq.ProtoReflect.Descriptor instead.
+func (*ShortDramaCheckNameReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{140}
+}
+
+func (x *ShortDramaCheckNameReq) GetTitle() string {
+	if x != nil {
+		return x.Title
+	}
+	return ""
+}
+
+func (x *ShortDramaCheckNameReq) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+type ShortDramaCheckNameResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Exists        bool                   `protobuf:"varint,1,opt,name=exists,proto3" json:"exists,omitempty"` // 是否存在
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaCheckNameResp) Reset() {
+	*x = ShortDramaCheckNameResp{}
+	mi := &file_gorpc_proto_msgTypes[141]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaCheckNameResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaCheckNameResp) ProtoMessage() {}
+
+func (x *ShortDramaCheckNameResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[141]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaCheckNameResp.ProtoReflect.Descriptor instead.
+func (*ShortDramaCheckNameResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{141}
+}
+
+func (x *ShortDramaCheckNameResp) GetExists() bool {
+	if x != nil {
+		return x.Exists
+	}
+	return false
+}
+
+type ShortDramaUpdateModifierReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	Modifier      int64                  `protobuf:"varint,2,opt,name=modifier,proto3" json:"modifier,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaUpdateModifierReq) Reset() {
+	*x = ShortDramaUpdateModifierReq{}
+	mi := &file_gorpc_proto_msgTypes[142]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaUpdateModifierReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaUpdateModifierReq) ProtoMessage() {}
+
+func (x *ShortDramaUpdateModifierReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[142]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaUpdateModifierReq.ProtoReflect.Descriptor instead.
+func (*ShortDramaUpdateModifierReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{142}
+}
+
+func (x *ShortDramaUpdateModifierReq) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *ShortDramaUpdateModifierReq) GetModifier() int64 {
+	if x != nil {
+		return x.Modifier
+	}
+	return 0
+}
+
+type SetTotalStatsReq struct {
+	state            protoimpl.MessageState `protogen:"open.v1"`
+	DramaId          int64                  `protobuf:"varint,1,opt,name=dramaId,proto3" json:"dramaId,omitempty"`
+	Country          string                 `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"`
+	TodayPlayCount   int64                  `protobuf:"varint,3,opt,name=todayPlayCount,proto3" json:"todayPlayCount,omitempty"`
+	WeeklyPlayCount  int64                  `protobuf:"varint,4,opt,name=weeklyPlayCount,proto3" json:"weeklyPlayCount,omitempty"`
+	MonthlyPlayCount int64                  `protobuf:"varint,5,opt,name=monthlyPlayCount,proto3" json:"monthlyPlayCount,omitempty"`
+	unknownFields    protoimpl.UnknownFields
+	sizeCache        protoimpl.SizeCache
+}
+
+func (x *SetTotalStatsReq) Reset() {
+	*x = SetTotalStatsReq{}
+	mi := &file_gorpc_proto_msgTypes[143]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SetTotalStatsReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SetTotalStatsReq) ProtoMessage() {}
+
+func (x *SetTotalStatsReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[143]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SetTotalStatsReq.ProtoReflect.Descriptor instead.
+func (*SetTotalStatsReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{143}
+}
+
+func (x *SetTotalStatsReq) GetDramaId() int64 {
+	if x != nil {
+		return x.DramaId
+	}
+	return 0
+}
+
+func (x *SetTotalStatsReq) GetCountry() string {
+	if x != nil {
+		return x.Country
+	}
+	return ""
+}
+
+func (x *SetTotalStatsReq) GetTodayPlayCount() int64 {
+	if x != nil {
+		return x.TodayPlayCount
+	}
+	return 0
+}
+
+func (x *SetTotalStatsReq) GetWeeklyPlayCount() int64 {
+	if x != nil {
+		return x.WeeklyPlayCount
+	}
+	return 0
+}
+
+func (x *SetTotalStatsReq) GetMonthlyPlayCount() int64 {
+	if x != nil {
+		return x.MonthlyPlayCount
+	}
+	return 0
+}
+
+type ShortDramaStatsPlaysTotalVo struct {
+	state            protoimpl.MessageState `protogen:"open.v1"`
+	Id               int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	DramaId          int64                  `protobuf:"varint,2,opt,name=dramaId,proto3" json:"dramaId,omitempty"`
+	Country          string                 `protobuf:"bytes,3,opt,name=country,proto3" json:"country,omitempty"`
+	TodayPlayCount   int64                  `protobuf:"varint,4,opt,name=todayPlayCount,proto3" json:"todayPlayCount,omitempty"`
+	WeeklyPlayCount  int64                  `protobuf:"varint,5,opt,name=weeklyPlayCount,proto3" json:"weeklyPlayCount,omitempty"`
+	MonthlyPlayCount int64                  `protobuf:"varint,6,opt,name=monthlyPlayCount,proto3" json:"monthlyPlayCount,omitempty"`
+	CreateTime       int64                  `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime       int64                  `protobuf:"varint,8,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields    protoimpl.UnknownFields
+	sizeCache        protoimpl.SizeCache
+}
+
+func (x *ShortDramaStatsPlaysTotalVo) Reset() {
+	*x = ShortDramaStatsPlaysTotalVo{}
+	mi := &file_gorpc_proto_msgTypes[144]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaStatsPlaysTotalVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaStatsPlaysTotalVo) ProtoMessage() {}
+
+func (x *ShortDramaStatsPlaysTotalVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[144]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaStatsPlaysTotalVo.ProtoReflect.Descriptor instead.
+func (*ShortDramaStatsPlaysTotalVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{144}
+}
+
+func (x *ShortDramaStatsPlaysTotalVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *ShortDramaStatsPlaysTotalVo) GetDramaId() int64 {
+	if x != nil {
+		return x.DramaId
+	}
+	return 0
+}
+
+func (x *ShortDramaStatsPlaysTotalVo) GetCountry() string {
+	if x != nil {
+		return x.Country
+	}
+	return ""
+}
+
+func (x *ShortDramaStatsPlaysTotalVo) GetTodayPlayCount() int64 {
+	if x != nil {
+		return x.TodayPlayCount
+	}
+	return 0
+}
+
+func (x *ShortDramaStatsPlaysTotalVo) GetWeeklyPlayCount() int64 {
+	if x != nil {
+		return x.WeeklyPlayCount
+	}
+	return 0
+}
+
+func (x *ShortDramaStatsPlaysTotalVo) GetMonthlyPlayCount() int64 {
+	if x != nil {
+		return x.MonthlyPlayCount
+	}
+	return 0
+}
+
+func (x *ShortDramaStatsPlaysTotalVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *ShortDramaStatsPlaysTotalVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type ShortDramaStatsPlaysTotalListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Country       string                 `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` // 国家代码
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaStatsPlaysTotalListReq) Reset() {
+	*x = ShortDramaStatsPlaysTotalListReq{}
+	mi := &file_gorpc_proto_msgTypes[145]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaStatsPlaysTotalListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaStatsPlaysTotalListReq) ProtoMessage() {}
+
+func (x *ShortDramaStatsPlaysTotalListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[145]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaStatsPlaysTotalListReq.ProtoReflect.Descriptor instead.
+func (*ShortDramaStatsPlaysTotalListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{145}
+}
+
+func (x *ShortDramaStatsPlaysTotalListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *ShortDramaStatsPlaysTotalListReq) GetCountry() string {
+	if x != nil {
+		return x.Country
+	}
+	return ""
+}
+
+type ShortDramaStatsPlaysTotalListResp struct {
+	state         protoimpl.MessageState         `protogen:"open.v1"`
+	Total         int64                          `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*ShortDramaStatsPlaysTotalVo `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ShortDramaStatsPlaysTotalListResp) Reset() {
+	*x = ShortDramaStatsPlaysTotalListResp{}
+	mi := &file_gorpc_proto_msgTypes[146]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ShortDramaStatsPlaysTotalListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShortDramaStatsPlaysTotalListResp) ProtoMessage() {}
+
+func (x *ShortDramaStatsPlaysTotalListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[146]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShortDramaStatsPlaysTotalListResp.ProtoReflect.Descriptor instead.
+func (*ShortDramaStatsPlaysTotalListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{146}
+}
+
+func (x *ShortDramaStatsPlaysTotalListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *ShortDramaStatsPlaysTotalListResp) GetList() []*ShortDramaStatsPlaysTotalVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type SysUserVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`                                        // ID
+	Username      string                 `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`                             // 登录名
+	Password      string                 `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`                             // 登录密码
+	Nickname      string                 `protobuf:"bytes,4,opt,name=nickname,proto3" json:"nickname,omitempty"`                             // 昵称
+	Avatar        string                 `protobuf:"bytes,5,opt,name=avatar,proto3" json:"avatar,omitempty"`                                 // 头像
+	Email         string                 `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"`                                   // 邮箱
+	Phone         string                 `protobuf:"bytes,7,opt,name=phone,proto3" json:"phone,omitempty"`                                   // 手机号
+	Remark        string                 `protobuf:"bytes,8,opt,name=remark,proto3" json:"remark,omitempty"`                                 // 备注
+	IsSuperAdmin  BoolInt                `protobuf:"varint,9,opt,name=isSuperAdmin,proto3,enum=gorpc.BoolInt" json:"isSuperAdmin,omitempty"` // 是否为超级管理员 1是 2否
+	PermsLevel    int64                  `protobuf:"varint,10,opt,name=permsLevel,proto3" json:"permsLevel,omitempty"`                       // 权限等级 值越大 权限越小
+	Status        Status                 `protobuf:"varint,11,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`             // 状态 1正常 2冻结
+	CreateTime    int64                  `protobuf:"varint,12,opt,name=createTime,proto3" json:"createTime,omitempty"`                       // 创建时间
+	UpdateTime    int64                  `protobuf:"varint,13,opt,name=updateTime,proto3" json:"updateTime,omitempty"`                       // 修改时间
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserVo) Reset() {
+	*x = SysUserVo{}
+	mi := &file_gorpc_proto_msgTypes[147]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserVo) ProtoMessage() {}
+
+func (x *SysUserVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[147]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserVo.ProtoReflect.Descriptor instead.
+func (*SysUserVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{147}
+}
+
+func (x *SysUserVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *SysUserVo) GetUsername() string {
+	if x != nil {
+		return x.Username
+	}
+	return ""
+}
+
+func (x *SysUserVo) GetPassword() string {
+	if x != nil {
+		return x.Password
+	}
+	return ""
+}
+
+func (x *SysUserVo) GetNickname() string {
+	if x != nil {
+		return x.Nickname
+	}
+	return ""
+}
+
+func (x *SysUserVo) GetAvatar() string {
+	if x != nil {
+		return x.Avatar
+	}
+	return ""
+}
+
+func (x *SysUserVo) GetEmail() string {
+	if x != nil {
+		return x.Email
+	}
+	return ""
+}
+
+func (x *SysUserVo) GetPhone() string {
+	if x != nil {
+		return x.Phone
+	}
+	return ""
+}
+
+func (x *SysUserVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *SysUserVo) GetIsSuperAdmin() BoolInt {
+	if x != nil {
+		return x.IsSuperAdmin
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *SysUserVo) GetPermsLevel() int64 {
+	if x != nil {
+		return x.PermsLevel
+	}
+	return 0
+}
+
+func (x *SysUserVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *SysUserVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *SysUserVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type SysRoleVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`                           // ID
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"`          // 所属产品
+	Name          string                 `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`                        // 角色名
+	Remark        string                 `protobuf:"bytes,4,opt,name=remark,proto3" json:"remark,omitempty"`                    // 备注
+	Status        Status                 `protobuf:"varint,5,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"` // 状态 1启用 2禁用
+	CreateTime    int64                  `protobuf:"varint,6,opt,name=createTime,proto3" json:"createTime,omitempty"`           // 创建时间
+	UpdateTime    int64                  `protobuf:"varint,7,opt,name=updateTime,proto3" json:"updateTime,omitempty"`           // 修改时间
+	PermsLevel    int64                  `protobuf:"varint,8,opt,name=permsLevel,proto3" json:"permsLevel,omitempty"`           // 权限等级 值越大 权限越小
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysRoleVo) Reset() {
+	*x = SysRoleVo{}
+	mi := &file_gorpc_proto_msgTypes[148]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysRoleVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysRoleVo) ProtoMessage() {}
+
+func (x *SysRoleVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[148]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysRoleVo.ProtoReflect.Descriptor instead.
+func (*SysRoleVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{148}
+}
+
+func (x *SysRoleVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *SysRoleVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *SysRoleVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *SysRoleVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *SysRoleVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *SysRoleVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *SysRoleVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *SysRoleVo) GetPermsLevel() int64 {
+	if x != nil {
+		return x.PermsLevel
+	}
+	return 0
+}
+
+type SysPermVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`                           // ID
+	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`                        // 权限名
+	Code          string                 `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"`                        // 权限code
+	Remark        string                 `protobuf:"bytes,4,opt,name=remark,proto3" json:"remark,omitempty"`                    // 备注
+	Status        Status                 `protobuf:"varint,5,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"` // 状态 1启用 2禁用
+	CreateTime    int64                  `protobuf:"varint,6,opt,name=createTime,proto3" json:"createTime,omitempty"`           // 创建时间
+	UpdateTime    int64                  `protobuf:"varint,7,opt,name=updateTime,proto3" json:"updateTime,omitempty"`           // 修改时间
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysPermVo) Reset() {
+	*x = SysPermVo{}
+	mi := &file_gorpc_proto_msgTypes[149]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysPermVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysPermVo) ProtoMessage() {}
+
+func (x *SysPermVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[149]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysPermVo.ProtoReflect.Descriptor instead.
+func (*SysPermVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{149}
+}
+
+func (x *SysPermVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *SysPermVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *SysPermVo) GetCode() string {
+	if x != nil {
+		return x.Code
+	}
+	return ""
+}
+
+func (x *SysPermVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *SysPermVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *SysPermVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *SysPermVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type SysUserRoleVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`                 // ID
+	UserId        int64                  `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"`         // 用户ID
+	RoleId        int64                  `protobuf:"varint,3,opt,name=roleId,proto3" json:"roleId,omitempty"`         // 角色ID
+	CreateTime    int64                  `protobuf:"varint,4,opt,name=createTime,proto3" json:"createTime,omitempty"` // 创建时间
+	UpdateTime    int64                  `protobuf:"varint,5,opt,name=updateTime,proto3" json:"updateTime,omitempty"` // 修改时间
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserRoleVo) Reset() {
+	*x = SysUserRoleVo{}
+	mi := &file_gorpc_proto_msgTypes[150]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserRoleVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserRoleVo) ProtoMessage() {}
+
+func (x *SysUserRoleVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[150]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserRoleVo.ProtoReflect.Descriptor instead.
+func (*SysUserRoleVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{150}
+}
+
+func (x *SysUserRoleVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *SysUserRoleVo) GetUserId() int64 {
+	if x != nil {
+		return x.UserId
+	}
+	return 0
+}
+
+func (x *SysUserRoleVo) GetRoleId() int64 {
+	if x != nil {
+		return x.RoleId
+	}
+	return 0
+}
+
+func (x *SysUserRoleVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *SysUserRoleVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type SysRolePermVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`                 // ID
+	RoleId        int64                  `protobuf:"varint,2,opt,name=roleId,proto3" json:"roleId,omitempty"`         // 角色ID
+	PermId        int64                  `protobuf:"varint,3,opt,name=permId,proto3" json:"permId,omitempty"`         // 权限ID
+	CreateTime    int64                  `protobuf:"varint,4,opt,name=createTime,proto3" json:"createTime,omitempty"` // 创建时间
+	UpdateTime    int64                  `protobuf:"varint,5,opt,name=updateTime,proto3" json:"updateTime,omitempty"` // 修改时间
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysRolePermVo) Reset() {
+	*x = SysRolePermVo{}
+	mi := &file_gorpc_proto_msgTypes[151]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysRolePermVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysRolePermVo) ProtoMessage() {}
+
+func (x *SysRolePermVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[151]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysRolePermVo.ProtoReflect.Descriptor instead.
+func (*SysRolePermVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{151}
+}
+
+func (x *SysRolePermVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *SysRolePermVo) GetRoleId() int64 {
+	if x != nil {
+		return x.RoleId
+	}
+	return 0
+}
+
+func (x *SysRolePermVo) GetPermId() int64 {
+	if x != nil {
+		return x.PermId
+	}
+	return 0
+}
+
+func (x *SysRolePermVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *SysRolePermVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type SysUserPermVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`                 // ID
+	UserId        int64                  `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"`         // 用户ID
+	PermId        int64                  `protobuf:"varint,3,opt,name=permId,proto3" json:"permId,omitempty"`         // 权限ID
+	Effect        string                 `protobuf:"bytes,4,opt,name=effect,proto3" json:"effect,omitempty"`          // 权限控制策略 ALLOW允许 DENY拒绝
+	CreateTime    int64                  `protobuf:"varint,5,opt,name=createTime,proto3" json:"createTime,omitempty"` // 创建时间
+	UpdateTime    int64                  `protobuf:"varint,6,opt,name=updateTime,proto3" json:"updateTime,omitempty"` // 修改时间
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserPermVo) Reset() {
+	*x = SysUserPermVo{}
+	mi := &file_gorpc_proto_msgTypes[152]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserPermVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserPermVo) ProtoMessage() {}
+
+func (x *SysUserPermVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[152]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserPermVo.ProtoReflect.Descriptor instead.
+func (*SysUserPermVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{152}
+}
+
+func (x *SysUserPermVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *SysUserPermVo) GetUserId() int64 {
+	if x != nil {
+		return x.UserId
+	}
+	return 0
+}
+
+func (x *SysUserPermVo) GetPermId() int64 {
+	if x != nil {
+		return x.PermId
+	}
+	return 0
+}
+
+func (x *SysUserPermVo) GetEffect() string {
+	if x != nil {
+		return x.Effect
+	}
+	return ""
+}
+
+func (x *SysUserPermVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *SysUserPermVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type SysPermRule struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PermId        int64                  `protobuf:"varint,1,opt,name=permId,proto3" json:"permId,omitempty"`
+	Effect        string                 `protobuf:"bytes,2,opt,name=effect,proto3" json:"effect,omitempty"` // ALLOW允许 DENY拒绝
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysPermRule) Reset() {
+	*x = SysPermRule{}
+	mi := &file_gorpc_proto_msgTypes[153]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysPermRule) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysPermRule) ProtoMessage() {}
+
+func (x *SysPermRule) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[153]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysPermRule.ProtoReflect.Descriptor instead.
+func (*SysPermRule) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{153}
+}
+
+func (x *SysPermRule) GetPermId() int64 {
+	if x != nil {
+		return x.PermId
+	}
+	return 0
+}
+
+func (x *SysPermRule) GetEffect() string {
+	if x != nil {
+		return x.Effect
+	}
+	return ""
+}
+
+type SysUserWithRoleIdsAndPermRules struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	User          *SysUserVo             `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`               // 用户信息
+	RoleIds       []int64                `protobuf:"varint,2,rep,packed,name=roleIds,proto3" json:"roleIds,omitempty"` // 角色
+	PermRules     []*SysPermRule         `protobuf:"bytes,3,rep,name=permRules,proto3" json:"permRules,omitempty"`     // 权限
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserWithRoleIdsAndPermRules) Reset() {
+	*x = SysUserWithRoleIdsAndPermRules{}
+	mi := &file_gorpc_proto_msgTypes[154]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserWithRoleIdsAndPermRules) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserWithRoleIdsAndPermRules) ProtoMessage() {}
+
+func (x *SysUserWithRoleIdsAndPermRules) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[154]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserWithRoleIdsAndPermRules.ProtoReflect.Descriptor instead.
+func (*SysUserWithRoleIdsAndPermRules) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{154}
+}
+
+func (x *SysUserWithRoleIdsAndPermRules) GetUser() *SysUserVo {
+	if x != nil {
+		return x.User
+	}
+	return nil
+}
+
+func (x *SysUserWithRoleIdsAndPermRules) GetRoleIds() []int64 {
+	if x != nil {
+		return x.RoleIds
+	}
+	return nil
+}
+
+func (x *SysUserWithRoleIdsAndPermRules) GetPermRules() []*SysPermRule {
+	if x != nil {
+		return x.PermRules
+	}
+	return nil
+}
+
+type SysUserWithRolesAndPerms struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	User          *SysUserVo             `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`   // 用户信息
+	Roles         []*SysRoleVo           `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` // 角色
+	Perms         []*SysPermVo           `protobuf:"bytes,3,rep,name=perms,proto3" json:"perms,omitempty"` // 权限
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserWithRolesAndPerms) Reset() {
+	*x = SysUserWithRolesAndPerms{}
+	mi := &file_gorpc_proto_msgTypes[155]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserWithRolesAndPerms) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserWithRolesAndPerms) ProtoMessage() {}
+
+func (x *SysUserWithRolesAndPerms) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[155]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserWithRolesAndPerms.ProtoReflect.Descriptor instead.
+func (*SysUserWithRolesAndPerms) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{155}
+}
+
+func (x *SysUserWithRolesAndPerms) GetUser() *SysUserVo {
+	if x != nil {
+		return x.User
+	}
+	return nil
+}
+
+func (x *SysUserWithRolesAndPerms) GetRoles() []*SysRoleVo {
+	if x != nil {
+		return x.Roles
+	}
+	return nil
+}
+
+func (x *SysUserWithRolesAndPerms) GetPerms() []*SysPermVo {
+	if x != nil {
+		return x.Perms
+	}
+	return nil
+}
+
+type SysUserGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *SysUserVo             `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserGetReq) Reset() {
+	*x = SysUserGetReq{}
+	mi := &file_gorpc_proto_msgTypes[156]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserGetReq) ProtoMessage() {}
+
+func (x *SysUserGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[156]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserGetReq.ProtoReflect.Descriptor instead.
+func (*SysUserGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{156}
+}
+
+func (x *SysUserGetReq) GetVo() *SysUserVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type SysUserListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *SysUserVo             `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,3,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"` // 排除的ID
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserListReq) Reset() {
+	*x = SysUserListReq{}
+	mi := &file_gorpc_proto_msgTypes[157]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserListReq) ProtoMessage() {}
+
+func (x *SysUserListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[157]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserListReq.ProtoReflect.Descriptor instead.
+func (*SysUserListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{157}
+}
+
+func (x *SysUserListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *SysUserListReq) GetVo() *SysUserVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *SysUserListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type SysUserListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*SysUserVo           `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserListResp) Reset() {
+	*x = SysUserListResp{}
+	mi := &file_gorpc_proto_msgTypes[158]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserListResp) ProtoMessage() {}
+
+func (x *SysUserListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[158]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserListResp.ProtoReflect.Descriptor instead.
+func (*SysUserListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{158}
+}
+
+func (x *SysUserListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *SysUserListResp) GetList() []*SysUserVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type SysUserListWithRolesAndPermsResp struct {
+	state         protoimpl.MessageState      `protogen:"open.v1"`
+	Total         int64                       `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*SysUserWithRolesAndPerms `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserListWithRolesAndPermsResp) Reset() {
+	*x = SysUserListWithRolesAndPermsResp{}
+	mi := &file_gorpc_proto_msgTypes[159]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserListWithRolesAndPermsResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserListWithRolesAndPermsResp) ProtoMessage() {}
+
+func (x *SysUserListWithRolesAndPermsResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[159]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserListWithRolesAndPermsResp.ProtoReflect.Descriptor instead.
+func (*SysUserListWithRolesAndPermsResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{159}
+}
+
+func (x *SysUserListWithRolesAndPermsResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *SysUserListWithRolesAndPermsResp) GetList() []*SysUserWithRolesAndPerms {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type SysRoleWithPermIds struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Role          *SysRoleVo             `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
+	PermIds       []int64                `protobuf:"varint,2,rep,packed,name=permIds,proto3" json:"permIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysRoleWithPermIds) Reset() {
+	*x = SysRoleWithPermIds{}
+	mi := &file_gorpc_proto_msgTypes[160]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysRoleWithPermIds) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysRoleWithPermIds) ProtoMessage() {}
+
+func (x *SysRoleWithPermIds) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[160]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysRoleWithPermIds.ProtoReflect.Descriptor instead.
+func (*SysRoleWithPermIds) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{160}
+}
+
+func (x *SysRoleWithPermIds) GetRole() *SysRoleVo {
+	if x != nil {
+		return x.Role
+	}
+	return nil
+}
+
+func (x *SysRoleWithPermIds) GetPermIds() []int64 {
+	if x != nil {
+		return x.PermIds
+	}
+	return nil
+}
+
+type SysRoleWithPerms struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Role          *SysRoleVo             `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
+	Perms         []*SysPermVo           `protobuf:"bytes,2,rep,name=perms,proto3" json:"perms,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysRoleWithPerms) Reset() {
+	*x = SysRoleWithPerms{}
+	mi := &file_gorpc_proto_msgTypes[161]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysRoleWithPerms) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysRoleWithPerms) ProtoMessage() {}
+
+func (x *SysRoleWithPerms) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[161]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysRoleWithPerms.ProtoReflect.Descriptor instead.
+func (*SysRoleWithPerms) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{161}
+}
+
+func (x *SysRoleWithPerms) GetRole() *SysRoleVo {
+	if x != nil {
+		return x.Role
+	}
+	return nil
+}
+
+func (x *SysRoleWithPerms) GetPerms() []*SysPermVo {
+	if x != nil {
+		return x.Perms
+	}
+	return nil
+}
+
+type SysRoleGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *SysRoleVo             `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysRoleGetReq) Reset() {
+	*x = SysRoleGetReq{}
+	mi := &file_gorpc_proto_msgTypes[162]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysRoleGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysRoleGetReq) ProtoMessage() {}
+
+func (x *SysRoleGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[162]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysRoleGetReq.ProtoReflect.Descriptor instead.
+func (*SysRoleGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{162}
+}
+
+func (x *SysRoleGetReq) GetVo() *SysRoleVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type SysRoleListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *SysRoleVo             `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`     // 所属产品
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"` // 排除的ID
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysRoleListReq) Reset() {
+	*x = SysRoleListReq{}
+	mi := &file_gorpc_proto_msgTypes[163]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysRoleListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysRoleListReq) ProtoMessage() {}
+
+func (x *SysRoleListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[163]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysRoleListReq.ProtoReflect.Descriptor instead.
+func (*SysRoleListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{163}
+}
+
+func (x *SysRoleListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *SysRoleListReq) GetVo() *SysRoleVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *SysRoleListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *SysRoleListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type SysRoleListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*SysRoleVo           `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysRoleListResp) Reset() {
+	*x = SysRoleListResp{}
+	mi := &file_gorpc_proto_msgTypes[164]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysRoleListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysRoleListResp) ProtoMessage() {}
+
+func (x *SysRoleListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[164]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysRoleListResp.ProtoReflect.Descriptor instead.
+func (*SysRoleListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{164}
+}
+
+func (x *SysRoleListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *SysRoleListResp) GetList() []*SysRoleVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type SysRoleListWithPermsResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*SysRoleWithPerms    `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysRoleListWithPermsResp) Reset() {
+	*x = SysRoleListWithPermsResp{}
+	mi := &file_gorpc_proto_msgTypes[165]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysRoleListWithPermsResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysRoleListWithPermsResp) ProtoMessage() {}
+
+func (x *SysRoleListWithPermsResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[165]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysRoleListWithPermsResp.ProtoReflect.Descriptor instead.
+func (*SysRoleListWithPermsResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{165}
+}
+
+func (x *SysRoleListWithPermsResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *SysRoleListWithPermsResp) GetList() []*SysRoleWithPerms {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type SysPermGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *SysPermVo             `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysPermGetReq) Reset() {
+	*x = SysPermGetReq{}
+	mi := &file_gorpc_proto_msgTypes[166]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysPermGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysPermGetReq) ProtoMessage() {}
+
+func (x *SysPermGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[166]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysPermGetReq.ProtoReflect.Descriptor instead.
+func (*SysPermGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{166}
+}
+
+func (x *SysPermGetReq) GetVo() *SysPermVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type SysPermListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *SysPermVo             `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,3,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"` // 排除的ID
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysPermListReq) Reset() {
+	*x = SysPermListReq{}
+	mi := &file_gorpc_proto_msgTypes[167]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysPermListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysPermListReq) ProtoMessage() {}
+
+func (x *SysPermListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[167]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysPermListReq.ProtoReflect.Descriptor instead.
+func (*SysPermListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{167}
+}
+
+func (x *SysPermListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *SysPermListReq) GetVo() *SysPermVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *SysPermListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type SysPermListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*SysPermVo           `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysPermListResp) Reset() {
+	*x = SysPermListResp{}
+	mi := &file_gorpc_proto_msgTypes[168]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysPermListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysPermListResp) ProtoMessage() {}
+
+func (x *SysPermListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[168]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysPermListResp.ProtoReflect.Descriptor instead.
+func (*SysPermListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{168}
+}
+
+func (x *SysPermListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *SysPermListResp) GetList() []*SysPermVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type SysUserRoleGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *SysUserRoleVo         `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserRoleGetReq) Reset() {
+	*x = SysUserRoleGetReq{}
+	mi := &file_gorpc_proto_msgTypes[169]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserRoleGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserRoleGetReq) ProtoMessage() {}
+
+func (x *SysUserRoleGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[169]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserRoleGetReq.ProtoReflect.Descriptor instead.
+func (*SysUserRoleGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{169}
+}
+
+func (x *SysUserRoleGetReq) GetVo() *SysUserRoleVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type SysUserRoleListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *SysUserRoleVo         `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,3,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"` // 排除的ID
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserRoleListReq) Reset() {
+	*x = SysUserRoleListReq{}
+	mi := &file_gorpc_proto_msgTypes[170]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserRoleListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserRoleListReq) ProtoMessage() {}
+
+func (x *SysUserRoleListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[170]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserRoleListReq.ProtoReflect.Descriptor instead.
+func (*SysUserRoleListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{170}
+}
+
+func (x *SysUserRoleListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *SysUserRoleListReq) GetVo() *SysUserRoleVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *SysUserRoleListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type SysUserRoleListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*SysUserRoleVo       `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserRoleListResp) Reset() {
+	*x = SysUserRoleListResp{}
+	mi := &file_gorpc_proto_msgTypes[171]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserRoleListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserRoleListResp) ProtoMessage() {}
+
+func (x *SysUserRoleListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[171]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserRoleListResp.ProtoReflect.Descriptor instead.
+func (*SysUserRoleListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{171}
+}
+
+func (x *SysUserRoleListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *SysUserRoleListResp) GetList() []*SysUserRoleVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type SysRolePermGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *SysRolePermVo         `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysRolePermGetReq) Reset() {
+	*x = SysRolePermGetReq{}
+	mi := &file_gorpc_proto_msgTypes[172]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysRolePermGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysRolePermGetReq) ProtoMessage() {}
+
+func (x *SysRolePermGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[172]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysRolePermGetReq.ProtoReflect.Descriptor instead.
+func (*SysRolePermGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{172}
+}
+
+func (x *SysRolePermGetReq) GetVo() *SysRolePermVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type SysRolePermListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *SysRolePermVo         `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,3,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"` // 排除的ID
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysRolePermListReq) Reset() {
+	*x = SysRolePermListReq{}
+	mi := &file_gorpc_proto_msgTypes[173]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysRolePermListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysRolePermListReq) ProtoMessage() {}
+
+func (x *SysRolePermListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[173]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysRolePermListReq.ProtoReflect.Descriptor instead.
+func (*SysRolePermListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{173}
+}
+
+func (x *SysRolePermListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *SysRolePermListReq) GetVo() *SysRolePermVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *SysRolePermListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type SysRolePermListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*SysRolePermVo       `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysRolePermListResp) Reset() {
+	*x = SysRolePermListResp{}
+	mi := &file_gorpc_proto_msgTypes[174]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysRolePermListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysRolePermListResp) ProtoMessage() {}
+
+func (x *SysRolePermListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[174]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysRolePermListResp.ProtoReflect.Descriptor instead.
+func (*SysRolePermListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{174}
+}
+
+func (x *SysRolePermListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *SysRolePermListResp) GetList() []*SysRolePermVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type SysUserPermGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *SysUserPermVo         `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserPermGetReq) Reset() {
+	*x = SysUserPermGetReq{}
+	mi := &file_gorpc_proto_msgTypes[175]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserPermGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserPermGetReq) ProtoMessage() {}
+
+func (x *SysUserPermGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[175]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserPermGetReq.ProtoReflect.Descriptor instead.
+func (*SysUserPermGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{175}
+}
+
+func (x *SysUserPermGetReq) GetVo() *SysUserPermVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type SysUserPermListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *SysUserPermVo         `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,3,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"` // 排除的ID
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserPermListReq) Reset() {
+	*x = SysUserPermListReq{}
+	mi := &file_gorpc_proto_msgTypes[176]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserPermListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserPermListReq) ProtoMessage() {}
+
+func (x *SysUserPermListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[176]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserPermListReq.ProtoReflect.Descriptor instead.
+func (*SysUserPermListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{176}
+}
+
+func (x *SysUserPermListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *SysUserPermListReq) GetVo() *SysUserPermVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *SysUserPermListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type SysUserPermListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*SysUserPermVo       `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *SysUserPermListResp) Reset() {
+	*x = SysUserPermListResp{}
+	mi := &file_gorpc_proto_msgTypes[177]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SysUserPermListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SysUserPermListResp) ProtoMessage() {}
+
+func (x *SysUserPermListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[177]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SysUserPermListResp.ProtoReflect.Descriptor instead.
+func (*SysUserPermListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{177}
+}
+
+func (x *SysUserPermListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *SysUserPermListResp) GetList() []*SysUserPermVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// Account
+type AccountVo struct {
+	state             protoimpl.MessageState `protogen:"open.v1"`
+	Id                int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`                                           // 主键ID
+	UserUuid          string                 `protobuf:"bytes,2,opt,name=userUuid,proto3" json:"userUuid,omitempty"`                                // 用户UUID
+	ProductCode       string                 `protobuf:"bytes,3,opt,name=productCode,proto3" json:"productCode,omitempty"`                          // 产品ID
+	Username          string                 `protobuf:"bytes,4,opt,name=username,proto3" json:"username,omitempty"`                                // 用户名
+	Password          string                 `protobuf:"bytes,5,opt,name=password,proto3" json:"password,omitempty"`                                // 密码
+	AccountKey        string                 `protobuf:"bytes,6,opt,name=accountKey,proto3" json:"accountKey,omitempty"`                            // 账号KEY
+	AccountPassword   string                 `protobuf:"bytes,7,opt,name=accountPassword,proto3" json:"accountPassword,omitempty"`                  // 账号密码
+	AccountType       int64                  `protobuf:"varint,8,opt,name=accountType,proto3" json:"accountType,omitempty"`                         // 账号类型
+	RegistMode        int64                  `protobuf:"varint,9,opt,name=registMode,proto3" json:"registMode,omitempty"`                           // 注册方式
+	Provider          string                 `protobuf:"bytes,10,opt,name=provider,proto3" json:"provider,omitempty"`                               // 授权登录标识
+	WhitelistUser     BoolInt                `protobuf:"varint,11,opt,name=whitelistUser,proto3,enum=gorpc.BoolInt" json:"whitelistUser,omitempty"` // 白名单用户
+	Activated         BoolInt                `protobuf:"varint,12,opt,name=activated,proto3,enum=gorpc.BoolInt" json:"activated,omitempty"`         // 是否激活
+	Config            string                 `protobuf:"bytes,13,opt,name=config,proto3" json:"config,omitempty"`                                   // 配置
+	Status            Status                 `protobuf:"varint,14,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`                // 状态
+	Avatar            string                 `protobuf:"bytes,15,opt,name=avatar,proto3" json:"avatar,omitempty"`                                   // 头像
+	Area              string                 `protobuf:"bytes,16,opt,name=area,proto3" json:"area,omitempty"`                                       // 指定地区
+	Remark            string                 `protobuf:"bytes,17,opt,name=remark,proto3" json:"remark,omitempty"`                                   // 备注
+	DeviceId          string                 `protobuf:"bytes,18,opt,name=deviceId,proto3" json:"deviceId,omitempty"`                               // 设备ID
+	Platform          string                 `protobuf:"bytes,19,opt,name=platform,proto3" json:"platform,omitempty"`                               // 平台
+	Channel           string                 `protobuf:"bytes,20,opt,name=channel,proto3" json:"channel,omitempty"`                                 // 渠道
+	DeviceModel       string                 `protobuf:"bytes,21,opt,name=deviceModel,proto3" json:"deviceModel,omitempty"`                         // 设备型号
+	DeviceOs          string                 `protobuf:"bytes,22,opt,name=deviceOs,proto3" json:"deviceOs,omitempty"`                               // 设备系统
+	Timezone          int64                  `protobuf:"varint,23,opt,name=timezone,proto3" json:"timezone,omitempty"`                              // 时区
+	Lang              string                 `protobuf:"bytes,24,opt,name=lang,proto3" json:"lang,omitempty"`                                       // 语言
+	Ip                string                 `protobuf:"bytes,25,opt,name=ip,proto3" json:"ip,omitempty"`                                           // IP
+	Country           string                 `protobuf:"bytes,26,opt,name=country,proto3" json:"country,omitempty"`                                 // 国家
+	Province          string                 `protobuf:"bytes,27,opt,name=province,proto3" json:"province,omitempty"`                               // 省份
+	City              string                 `protobuf:"bytes,28,opt,name=city,proto3" json:"city,omitempty"`                                       // 城市
+	Isp               string                 `protobuf:"bytes,29,opt,name=isp,proto3" json:"isp,omitempty"`                                         // ISP
+	AppVer            int64                  `protobuf:"varint,30,opt,name=appVer,proto3" json:"appVer,omitempty"`                                  // 产品版本号
+	AppRuntimeCode    int64                  `protobuf:"varint,31,opt,name=appRuntimeCode,proto3" json:"appRuntimeCode,omitempty"`                  // 产品运行码
+	CreateTime        int64                  `protobuf:"varint,32,opt,name=createTime,proto3" json:"createTime,omitempty"`                          // 创建时间
+	UpdateTime        int64                  `protobuf:"varint,33,opt,name=updateTime,proto3" json:"updateTime,omitempty"`                          // 更新时间
+	Version           string                 `protobuf:"bytes,34,opt,name=version,proto3" json:"version,omitempty"`                                 // 数据版本
+	SessionId         string                 `protobuf:"bytes,35,opt,name=sessionId,proto3" json:"sessionId,omitempty"`                             // 登录凭证
+	SessionCreateTime int64                  `protobuf:"varint,36,opt,name=sessionCreateTime,proto3" json:"sessionCreateTime,omitempty"`            // 凭证创建时间
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
+}
+
+func (x *AccountVo) Reset() {
+	*x = AccountVo{}
+	mi := &file_gorpc_proto_msgTypes[178]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AccountVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AccountVo) ProtoMessage() {}
+
+func (x *AccountVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[178]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AccountVo.ProtoReflect.Descriptor instead.
+func (*AccountVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{178}
+}
+
+func (x *AccountVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *AccountVo) GetUserUuid() string {
+	if x != nil {
+		return x.UserUuid
+	}
+	return ""
+}
+
+func (x *AccountVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *AccountVo) GetUsername() string {
+	if x != nil {
+		return x.Username
+	}
+	return ""
+}
+
+func (x *AccountVo) GetPassword() string {
+	if x != nil {
+		return x.Password
+	}
+	return ""
+}
+
+func (x *AccountVo) GetAccountKey() string {
+	if x != nil {
+		return x.AccountKey
+	}
+	return ""
+}
+
+func (x *AccountVo) GetAccountPassword() string {
+	if x != nil {
+		return x.AccountPassword
+	}
+	return ""
+}
+
+func (x *AccountVo) GetAccountType() int64 {
+	if x != nil {
+		return x.AccountType
+	}
+	return 0
+}
+
+func (x *AccountVo) GetRegistMode() int64 {
+	if x != nil {
+		return x.RegistMode
+	}
+	return 0
+}
+
+func (x *AccountVo) GetProvider() string {
+	if x != nil {
+		return x.Provider
+	}
+	return ""
+}
+
+func (x *AccountVo) GetWhitelistUser() BoolInt {
+	if x != nil {
+		return x.WhitelistUser
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *AccountVo) GetActivated() BoolInt {
+	if x != nil {
+		return x.Activated
+	}
+	return BoolInt_BoolIntUnknown
+}
+
+func (x *AccountVo) GetConfig() string {
+	if x != nil {
+		return x.Config
+	}
+	return ""
+}
+
+func (x *AccountVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *AccountVo) GetAvatar() string {
+	if x != nil {
+		return x.Avatar
+	}
+	return ""
+}
+
+func (x *AccountVo) GetArea() string {
+	if x != nil {
+		return x.Area
+	}
+	return ""
+}
+
+func (x *AccountVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *AccountVo) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
+	}
+	return ""
+}
+
+func (x *AccountVo) GetPlatform() string {
+	if x != nil {
+		return x.Platform
+	}
+	return ""
+}
+
+func (x *AccountVo) GetChannel() string {
+	if x != nil {
+		return x.Channel
+	}
+	return ""
+}
+
+func (x *AccountVo) GetDeviceModel() string {
+	if x != nil {
+		return x.DeviceModel
+	}
+	return ""
+}
+
+func (x *AccountVo) GetDeviceOs() string {
+	if x != nil {
+		return x.DeviceOs
+	}
+	return ""
+}
+
+func (x *AccountVo) GetTimezone() int64 {
+	if x != nil {
+		return x.Timezone
+	}
+	return 0
+}
+
+func (x *AccountVo) GetLang() string {
+	if x != nil {
+		return x.Lang
+	}
+	return ""
+}
+
+func (x *AccountVo) GetIp() string {
+	if x != nil {
+		return x.Ip
+	}
+	return ""
+}
+
+func (x *AccountVo) GetCountry() string {
+	if x != nil {
+		return x.Country
+	}
+	return ""
+}
+
+func (x *AccountVo) GetProvince() string {
+	if x != nil {
+		return x.Province
+	}
+	return ""
+}
+
+func (x *AccountVo) GetCity() string {
+	if x != nil {
+		return x.City
+	}
+	return ""
+}
+
+func (x *AccountVo) GetIsp() string {
+	if x != nil {
+		return x.Isp
+	}
+	return ""
+}
+
+func (x *AccountVo) GetAppVer() int64 {
+	if x != nil {
+		return x.AppVer
+	}
+	return 0
+}
+
+func (x *AccountVo) GetAppRuntimeCode() int64 {
+	if x != nil {
+		return x.AppRuntimeCode
+	}
+	return 0
+}
+
+func (x *AccountVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *AccountVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *AccountVo) GetVersion() string {
+	if x != nil {
+		return x.Version
+	}
+	return ""
+}
+
+func (x *AccountVo) GetSessionId() string {
+	if x != nil {
+		return x.SessionId
+	}
+	return ""
+}
+
+func (x *AccountVo) GetSessionCreateTime() int64 {
+	if x != nil {
+		return x.SessionCreateTime
+	}
+	return 0
+}
+
+type AccountListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *AccountVo             `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`     // 产品code
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"` // 排除的ID
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AccountListReq) Reset() {
+	*x = AccountListReq{}
+	mi := &file_gorpc_proto_msgTypes[179]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AccountListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AccountListReq) ProtoMessage() {}
+
+func (x *AccountListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[179]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AccountListReq.ProtoReflect.Descriptor instead.
+func (*AccountListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{179}
+}
+
+func (x *AccountListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *AccountListReq) GetVo() *AccountVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *AccountListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *AccountListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type AccountListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*AccountVo           `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AccountListResp) Reset() {
+	*x = AccountListResp{}
+	mi := &file_gorpc_proto_msgTypes[180]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AccountListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AccountListResp) ProtoMessage() {}
+
+func (x *AccountListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[180]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AccountListResp.ProtoReflect.Descriptor instead.
+func (*AccountListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{180}
+}
+
+func (x *AccountListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *AccountListResp) GetList() []*AccountVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// AccountDevice
+type AccountDeviceVo struct {
+	state             protoimpl.MessageState `protogen:"open.v1"`
+	Id                int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	AccountId         int64                  `protobuf:"varint,2,opt,name=accountId,proto3" json:"accountId,omitempty"`                 // 用户ID
+	DeviceId          int64                  `protobuf:"varint,3,opt,name=deviceId,proto3" json:"deviceId,omitempty"`                   // 设备ID
+	SessionId         string                 `protobuf:"bytes,4,opt,name=sessionId,proto3" json:"sessionId,omitempty"`                  // 登录凭证
+	SessionCreateTime int64                  `protobuf:"varint,5,opt,name=sessionCreateTime,proto3" json:"sessionCreateTime,omitempty"` // 凭证创建时间
+	UpdateTime        int64                  `protobuf:"varint,6,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	CreateTime        int64                  `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
+}
+
+func (x *AccountDeviceVo) Reset() {
+	*x = AccountDeviceVo{}
+	mi := &file_gorpc_proto_msgTypes[181]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AccountDeviceVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AccountDeviceVo) ProtoMessage() {}
+
+func (x *AccountDeviceVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[181]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AccountDeviceVo.ProtoReflect.Descriptor instead.
+func (*AccountDeviceVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{181}
+}
+
+func (x *AccountDeviceVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *AccountDeviceVo) GetAccountId() int64 {
+	if x != nil {
+		return x.AccountId
+	}
+	return 0
+}
+
+func (x *AccountDeviceVo) GetDeviceId() int64 {
+	if x != nil {
+		return x.DeviceId
+	}
+	return 0
+}
+
+func (x *AccountDeviceVo) GetSessionId() string {
+	if x != nil {
+		return x.SessionId
+	}
+	return ""
+}
+
+func (x *AccountDeviceVo) GetSessionCreateTime() int64 {
+	if x != nil {
+		return x.SessionCreateTime
+	}
+	return 0
+}
+
+func (x *AccountDeviceVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *AccountDeviceVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+type AccountDeviceListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *AccountDeviceVo       `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,3,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"` // 排除的ID
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AccountDeviceListReq) Reset() {
+	*x = AccountDeviceListReq{}
+	mi := &file_gorpc_proto_msgTypes[182]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AccountDeviceListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AccountDeviceListReq) ProtoMessage() {}
+
+func (x *AccountDeviceListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[182]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AccountDeviceListReq.ProtoReflect.Descriptor instead.
+func (*AccountDeviceListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{182}
+}
+
+func (x *AccountDeviceListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *AccountDeviceListReq) GetVo() *AccountDeviceVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *AccountDeviceListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type AccountDeviceListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*AccountDeviceVo     `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AccountDeviceListResp) Reset() {
+	*x = AccountDeviceListResp{}
+	mi := &file_gorpc_proto_msgTypes[183]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AccountDeviceListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AccountDeviceListResp) ProtoMessage() {}
+
+func (x *AccountDeviceListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[183]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AccountDeviceListResp.ProtoReflect.Descriptor instead.
+func (*AccountDeviceListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{183}
+}
+
+func (x *AccountDeviceListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *AccountDeviceListResp) GetList() []*AccountDeviceVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type DeviceVo struct {
+	state           protoimpl.MessageState `protogen:"open.v1"`
+	Id              int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	UserUuid        string                 `protobuf:"bytes,2,opt,name=userUuid,proto3" json:"userUuid,omitempty"`
+	ProductCode     string                 `protobuf:"bytes,3,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	DeviceId        string                 `protobuf:"bytes,4,opt,name=deviceId,proto3" json:"deviceId,omitempty"`
+	AccountKey      string                 `protobuf:"bytes,5,opt,name=accountKey,proto3" json:"accountKey,omitempty"`
+	AccountPassword string                 `protobuf:"bytes,6,opt,name=accountPassword,proto3" json:"accountPassword,omitempty"`
+	Platform        string                 `protobuf:"bytes,7,opt,name=platform,proto3" json:"platform,omitempty"`
+	Channel         string                 `protobuf:"bytes,8,opt,name=channel,proto3" json:"channel,omitempty"`
+	ReferChannel    string                 `protobuf:"bytes,9,opt,name=referChannel,proto3" json:"referChannel,omitempty"`
+	DeviceModel     string                 `protobuf:"bytes,10,opt,name=deviceModel,proto3" json:"deviceModel,omitempty"`
+	DeviceOs        string                 `protobuf:"bytes,11,opt,name=deviceOs,proto3" json:"deviceOs,omitempty"`
+	Timezone        int64                  `protobuf:"varint,12,opt,name=timezone,proto3" json:"timezone,omitempty"`
+	Lang            string                 `protobuf:"bytes,13,opt,name=lang,proto3" json:"lang,omitempty"`
+	AppVer          int64                  `protobuf:"varint,14,opt,name=appVer,proto3" json:"appVer,omitempty"`
+	Ip              string                 `protobuf:"bytes,15,opt,name=ip,proto3" json:"ip,omitempty"`
+	Country         string                 `protobuf:"bytes,16,opt,name=country,proto3" json:"country,omitempty"`
+	Province        string                 `protobuf:"bytes,17,opt,name=province,proto3" json:"province,omitempty"`
+	City            string                 `protobuf:"bytes,18,opt,name=city,proto3" json:"city,omitempty"`
+	Isp             string                 `protobuf:"bytes,19,opt,name=isp,proto3" json:"isp,omitempty"`
+	CreateTime      int64                  `protobuf:"varint,20,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime      int64                  `protobuf:"varint,21,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	Status          Status                 `protobuf:"varint,22,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	Refer           string                 `protobuf:"bytes,23,opt,name=refer,proto3" json:"refer,omitempty"`
+	WhitelistUser   int64                  `protobuf:"varint,24,opt,name=whitelistUser,proto3" json:"whitelistUser,omitempty"` // 白名单用户 1正常用户 2: 白名单用户
+	TestUser        int64                  `protobuf:"varint,25,opt,name=testUser,proto3" json:"testUser,omitempty"`           // 测试用户 1正常用户 2: 测试用户
+	MockCountry     string                 `protobuf:"bytes,26,opt,name=mockCountry,proto3" json:"mockCountry,omitempty"`      // 指定国家
+	MockApi         string                 `protobuf:"bytes,27,opt,name=mockApi,proto3" json:"mockApi,omitempty"`              // 指定API
+	MockRouter      string                 `protobuf:"bytes,28,opt,name=mockRouter,proto3" json:"mockRouter,omitempty"`        // 指定路由
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
+}
+
+func (x *DeviceVo) Reset() {
+	*x = DeviceVo{}
+	mi := &file_gorpc_proto_msgTypes[184]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceVo) ProtoMessage() {}
+
+func (x *DeviceVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[184]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceVo.ProtoReflect.Descriptor instead.
+func (*DeviceVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{184}
+}
+
+func (x *DeviceVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *DeviceVo) GetUserUuid() string {
+	if x != nil {
+		return x.UserUuid
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetAccountKey() string {
+	if x != nil {
+		return x.AccountKey
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetAccountPassword() string {
+	if x != nil {
+		return x.AccountPassword
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetPlatform() string {
+	if x != nil {
+		return x.Platform
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetChannel() string {
+	if x != nil {
+		return x.Channel
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetReferChannel() string {
+	if x != nil {
+		return x.ReferChannel
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetDeviceModel() string {
+	if x != nil {
+		return x.DeviceModel
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetDeviceOs() string {
+	if x != nil {
+		return x.DeviceOs
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetTimezone() int64 {
+	if x != nil {
+		return x.Timezone
+	}
+	return 0
+}
+
+func (x *DeviceVo) GetLang() string {
+	if x != nil {
+		return x.Lang
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetAppVer() int64 {
+	if x != nil {
+		return x.AppVer
+	}
+	return 0
+}
+
+func (x *DeviceVo) GetIp() string {
+	if x != nil {
+		return x.Ip
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetCountry() string {
+	if x != nil {
+		return x.Country
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetProvince() string {
+	if x != nil {
+		return x.Province
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetCity() string {
+	if x != nil {
+		return x.City
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetIsp() string {
+	if x != nil {
+		return x.Isp
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *DeviceVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *DeviceVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *DeviceVo) GetRefer() string {
+	if x != nil {
+		return x.Refer
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetWhitelistUser() int64 {
+	if x != nil {
+		return x.WhitelistUser
+	}
+	return 0
+}
+
+func (x *DeviceVo) GetTestUser() int64 {
+	if x != nil {
+		return x.TestUser
+	}
+	return 0
+}
+
+func (x *DeviceVo) GetMockCountry() string {
+	if x != nil {
+		return x.MockCountry
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetMockApi() string {
+	if x != nil {
+		return x.MockApi
+	}
+	return ""
+}
+
+func (x *DeviceVo) GetMockRouter() string {
+	if x != nil {
+		return x.MockRouter
+	}
+	return ""
+}
+
+type DeviceListReq struct {
+	state           protoimpl.MessageState `protogen:"open.v1"`
+	Page            *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo              *DeviceVo              `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes    []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`        // 产品code
+	ExcludeIds      []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`    // 排除的ID
+	DateRange       []string               `protobuf:"bytes,5,rep,name=dateRange,proto3" json:"dateRange,omitempty"`              // 日期范围
+	CreateStartTime int64                  `protobuf:"varint,6,opt,name=createStartTime,proto3" json:"createStartTime,omitempty"` // 创建开始时间
+	CreateEndTime   int64                  `protobuf:"varint,7,opt,name=createEndTime,proto3" json:"createEndTime,omitempty"`     // 创建结束时间
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
+}
+
+func (x *DeviceListReq) Reset() {
+	*x = DeviceListReq{}
+	mi := &file_gorpc_proto_msgTypes[185]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceListReq) ProtoMessage() {}
+
+func (x *DeviceListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[185]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceListReq.ProtoReflect.Descriptor instead.
+func (*DeviceListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{185}
+}
+
+func (x *DeviceListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *DeviceListReq) GetVo() *DeviceVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *DeviceListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *DeviceListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+func (x *DeviceListReq) GetDateRange() []string {
+	if x != nil {
+		return x.DateRange
+	}
+	return nil
+}
+
+func (x *DeviceListReq) GetCreateStartTime() int64 {
+	if x != nil {
+		return x.CreateStartTime
+	}
+	return 0
+}
+
+func (x *DeviceListReq) GetCreateEndTime() int64 {
+	if x != nil {
+		return x.CreateEndTime
+	}
+	return 0
+}
+
+type DeviceListRes struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*DeviceVo            `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *DeviceListRes) Reset() {
+	*x = DeviceListRes{}
+	mi := &file_gorpc_proto_msgTypes[186]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceListRes) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceListRes) ProtoMessage() {}
+
+func (x *DeviceListRes) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[186]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceListRes.ProtoReflect.Descriptor instead.
+func (*DeviceListRes) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{186}
+}
+
+func (x *DeviceListRes) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *DeviceListRes) GetList() []*DeviceVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type UserAppConfigVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	DeviceId      string                 `protobuf:"bytes,2,opt,name=deviceId,proto3" json:"deviceId,omitempty"`
+	Key           string                 `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
+	Value         string                 `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
+	Status        Status                 `protobuf:"varint,5,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,6,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,7,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UserAppConfigVo) Reset() {
+	*x = UserAppConfigVo{}
+	mi := &file_gorpc_proto_msgTypes[187]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UserAppConfigVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserAppConfigVo) ProtoMessage() {}
+
+func (x *UserAppConfigVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[187]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserAppConfigVo.ProtoReflect.Descriptor instead.
+func (*UserAppConfigVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{187}
+}
+
+func (x *UserAppConfigVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *UserAppConfigVo) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
+	}
+	return ""
+}
+
+func (x *UserAppConfigVo) GetKey() string {
+	if x != nil {
+		return x.Key
+	}
+	return ""
+}
+
+func (x *UserAppConfigVo) GetValue() string {
+	if x != nil {
+		return x.Value
+	}
+	return ""
+}
+
+func (x *UserAppConfigVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *UserAppConfigVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *UserAppConfigVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type UserAppConfigGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *UserAppConfigVo       `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UserAppConfigGetReq) Reset() {
+	*x = UserAppConfigGetReq{}
+	mi := &file_gorpc_proto_msgTypes[188]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UserAppConfigGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserAppConfigGetReq) ProtoMessage() {}
+
+func (x *UserAppConfigGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[188]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserAppConfigGetReq.ProtoReflect.Descriptor instead.
+func (*UserAppConfigGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{188}
+}
+
+func (x *UserAppConfigGetReq) GetVo() *UserAppConfigVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type UserAppConfigListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *UserAppConfigVo       `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UserAppConfigListReq) Reset() {
+	*x = UserAppConfigListReq{}
+	mi := &file_gorpc_proto_msgTypes[189]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UserAppConfigListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserAppConfigListReq) ProtoMessage() {}
+
+func (x *UserAppConfigListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[189]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserAppConfigListReq.ProtoReflect.Descriptor instead.
+func (*UserAppConfigListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{189}
+}
+
+func (x *UserAppConfigListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *UserAppConfigListReq) GetVo() *UserAppConfigVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type UserAppConfigListRes struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*UserAppConfigVo     `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UserAppConfigListRes) Reset() {
+	*x = UserAppConfigListRes{}
+	mi := &file_gorpc_proto_msgTypes[190]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UserAppConfigListRes) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserAppConfigListRes) ProtoMessage() {}
+
+func (x *UserAppConfigListRes) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[190]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserAppConfigListRes.ProtoReflect.Descriptor instead.
+func (*UserAppConfigListRes) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{190}
+}
+
+func (x *UserAppConfigListRes) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *UserAppConfigListRes) GetList() []*UserAppConfigVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// VpnTag
+type VpnTagVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	Type          string                 `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
+	Name          string                 `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
+	Sort          int64                  `protobuf:"varint,5,opt,name=sort,proto3" json:"sort,omitempty"`
+	Status        Status                 `protobuf:"varint,6,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	Remark        string                 `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,8,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,9,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	OtherConfig   string                 `protobuf:"bytes,10,opt,name=otherConfig,proto3" json:"otherConfig,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnTagVo) Reset() {
+	*x = VpnTagVo{}
+	mi := &file_gorpc_proto_msgTypes[191]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnTagVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnTagVo) ProtoMessage() {}
+
+func (x *VpnTagVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[191]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnTagVo.ProtoReflect.Descriptor instead.
+func (*VpnTagVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{191}
+}
+
+func (x *VpnTagVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *VpnTagVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *VpnTagVo) GetType() string {
+	if x != nil {
+		return x.Type
+	}
+	return ""
+}
+
+func (x *VpnTagVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *VpnTagVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *VpnTagVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *VpnTagVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *VpnTagVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *VpnTagVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *VpnTagVo) GetOtherConfig() string {
+	if x != nil {
+		return x.OtherConfig
+	}
+	return ""
+}
+
+type VpnTagGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *VpnTagVo              `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnTagGetReq) Reset() {
+	*x = VpnTagGetReq{}
+	mi := &file_gorpc_proto_msgTypes[192]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnTagGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnTagGetReq) ProtoMessage() {}
+
+func (x *VpnTagGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[192]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnTagGetReq.ProtoReflect.Descriptor instead.
+func (*VpnTagGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{192}
+}
+
+func (x *VpnTagGetReq) GetVo() *VpnTagVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type VpnTagListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *VpnTagVo              `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnTagListReq) Reset() {
+	*x = VpnTagListReq{}
+	mi := &file_gorpc_proto_msgTypes[193]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnTagListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnTagListReq) ProtoMessage() {}
+
+func (x *VpnTagListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[193]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnTagListReq.ProtoReflect.Descriptor instead.
+func (*VpnTagListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{193}
+}
+
+func (x *VpnTagListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *VpnTagListReq) GetVo() *VpnTagVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *VpnTagListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *VpnTagListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type VpnTagListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*VpnTagVo            `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnTagListResp) Reset() {
+	*x = VpnTagListResp{}
+	mi := &file_gorpc_proto_msgTypes[194]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnTagListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnTagListResp) ProtoMessage() {}
+
+func (x *VpnTagListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[194]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnTagListResp.ProtoReflect.Descriptor instead.
+func (*VpnTagListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{194}
+}
+
+func (x *VpnTagListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *VpnTagListResp) GetList() []*VpnTagVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnTagBatchAddReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnTagVo            `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnTagBatchAddReq) Reset() {
+	*x = VpnTagBatchAddReq{}
+	mi := &file_gorpc_proto_msgTypes[195]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnTagBatchAddReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnTagBatchAddReq) ProtoMessage() {}
+
+func (x *VpnTagBatchAddReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[195]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnTagBatchAddReq.ProtoReflect.Descriptor instead.
+func (*VpnTagBatchAddReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{195}
+}
+
+func (x *VpnTagBatchAddReq) GetList() []*VpnTagVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnTagBatchAddResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnTagVo            `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnTagBatchAddResp) Reset() {
+	*x = VpnTagBatchAddResp{}
+	mi := &file_gorpc_proto_msgTypes[196]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnTagBatchAddResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnTagBatchAddResp) ProtoMessage() {}
+
+func (x *VpnTagBatchAddResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[196]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnTagBatchAddResp.ProtoReflect.Descriptor instead.
+func (*VpnTagBatchAddResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{196}
+}
+
+func (x *VpnTagBatchAddResp) GetList() []*VpnTagVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnTagBatchUpdateReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnTagVo            `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnTagBatchUpdateReq) Reset() {
+	*x = VpnTagBatchUpdateReq{}
+	mi := &file_gorpc_proto_msgTypes[197]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnTagBatchUpdateReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnTagBatchUpdateReq) ProtoMessage() {}
+
+func (x *VpnTagBatchUpdateReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[197]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnTagBatchUpdateReq.ProtoReflect.Descriptor instead.
+func (*VpnTagBatchUpdateReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{197}
+}
+
+func (x *VpnTagBatchUpdateReq) GetList() []*VpnTagVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnTagBatchUpdateResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnTagVo            `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnTagBatchUpdateResp) Reset() {
+	*x = VpnTagBatchUpdateResp{}
+	mi := &file_gorpc_proto_msgTypes[198]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnTagBatchUpdateResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnTagBatchUpdateResp) ProtoMessage() {}
+
+func (x *VpnTagBatchUpdateResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[198]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnTagBatchUpdateResp.ProtoReflect.Descriptor instead.
+func (*VpnTagBatchUpdateResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{198}
+}
+
+func (x *VpnTagBatchUpdateResp) GetList() []*VpnTagVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnTagBatchDelReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Ids           []int64                `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnTagBatchDelReq) Reset() {
+	*x = VpnTagBatchDelReq{}
+	mi := &file_gorpc_proto_msgTypes[199]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnTagBatchDelReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnTagBatchDelReq) ProtoMessage() {}
+
+func (x *VpnTagBatchDelReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[199]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnTagBatchDelReq.ProtoReflect.Descriptor instead.
+func (*VpnTagBatchDelReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{199}
+}
+
+func (x *VpnTagBatchDelReq) GetIds() []int64 {
+	if x != nil {
+		return x.Ids
+	}
+	return nil
+}
+
+// VpnTag
+type VpnGroupVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	Name          string                 `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
+	Icon          string                 `protobuf:"bytes,4,opt,name=icon,proto3" json:"icon,omitempty"`
+	Sort          int64                  `protobuf:"varint,5,opt,name=sort,proto3" json:"sort,omitempty"`
+	Status        Status                 `protobuf:"varint,6,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	Remark        string                 `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,8,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,9,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	Version       string                 `protobuf:"bytes,10,opt,name=version,proto3" json:"version,omitempty"`
+	OtherConfig   string                 `protobuf:"bytes,11,opt,name=otherConfig,proto3" json:"otherConfig,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnGroupVo) Reset() {
+	*x = VpnGroupVo{}
+	mi := &file_gorpc_proto_msgTypes[200]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnGroupVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnGroupVo) ProtoMessage() {}
+
+func (x *VpnGroupVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[200]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnGroupVo.ProtoReflect.Descriptor instead.
+func (*VpnGroupVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{200}
+}
+
+func (x *VpnGroupVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *VpnGroupVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+func (x *VpnGroupVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *VpnGroupVo) GetIcon() string {
+	if x != nil {
+		return x.Icon
+	}
+	return ""
+}
+
+func (x *VpnGroupVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *VpnGroupVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *VpnGroupVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *VpnGroupVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *VpnGroupVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *VpnGroupVo) GetVersion() string {
+	if x != nil {
+		return x.Version
+	}
+	return ""
+}
+
+func (x *VpnGroupVo) GetOtherConfig() string {
+	if x != nil {
+		return x.OtherConfig
+	}
+	return ""
+}
+
+type VpnGroupExVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *VpnGroupVo            `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	TagIds        []int64                `protobuf:"varint,2,rep,packed,name=tagIds,proto3" json:"tagIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnGroupExVo) Reset() {
+	*x = VpnGroupExVo{}
+	mi := &file_gorpc_proto_msgTypes[201]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnGroupExVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnGroupExVo) ProtoMessage() {}
+
+func (x *VpnGroupExVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[201]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnGroupExVo.ProtoReflect.Descriptor instead.
+func (*VpnGroupExVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{201}
+}
+
+func (x *VpnGroupExVo) GetVo() *VpnGroupVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *VpnGroupExVo) GetTagIds() []int64 {
+	if x != nil {
+		return x.TagIds
+	}
+	return nil
+}
+
+type VpnGroupAddReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *VpnGroupVo            `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	TagIds        []int64                `protobuf:"varint,2,rep,packed,name=tagIds,proto3" json:"tagIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnGroupAddReq) Reset() {
+	*x = VpnGroupAddReq{}
+	mi := &file_gorpc_proto_msgTypes[202]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnGroupAddReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnGroupAddReq) ProtoMessage() {}
+
+func (x *VpnGroupAddReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[202]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnGroupAddReq.ProtoReflect.Descriptor instead.
+func (*VpnGroupAddReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{202}
+}
+
+func (x *VpnGroupAddReq) GetVo() *VpnGroupVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *VpnGroupAddReq) GetTagIds() []int64 {
+	if x != nil {
+		return x.TagIds
+	}
+	return nil
+}
+
+type VpnGroupGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *VpnGroupVo            `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnGroupGetReq) Reset() {
+	*x = VpnGroupGetReq{}
+	mi := &file_gorpc_proto_msgTypes[203]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnGroupGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnGroupGetReq) ProtoMessage() {}
+
+func (x *VpnGroupGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[203]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnGroupGetReq.ProtoReflect.Descriptor instead.
+func (*VpnGroupGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{203}
+}
+
+func (x *VpnGroupGetReq) GetVo() *VpnGroupVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type VpnGroupListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *VpnGroupVo            `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,3,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnGroupListReq) Reset() {
+	*x = VpnGroupListReq{}
+	mi := &file_gorpc_proto_msgTypes[204]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnGroupListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnGroupListReq) ProtoMessage() {}
+
+func (x *VpnGroupListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[204]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnGroupListReq.ProtoReflect.Descriptor instead.
+func (*VpnGroupListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{204}
+}
+
+func (x *VpnGroupListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *VpnGroupListReq) GetVo() *VpnGroupVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *VpnGroupListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *VpnGroupListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+type VpnGroupListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*VpnGroupVo          `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnGroupListResp) Reset() {
+	*x = VpnGroupListResp{}
+	mi := &file_gorpc_proto_msgTypes[205]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnGroupListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnGroupListResp) ProtoMessage() {}
+
+func (x *VpnGroupListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[205]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnGroupListResp.ProtoReflect.Descriptor instead.
+func (*VpnGroupListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{205}
+}
+
+func (x *VpnGroupListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *VpnGroupListResp) GetList() []*VpnGroupVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnGroupBatchAddReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnGroupExVo        `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnGroupBatchAddReq) Reset() {
+	*x = VpnGroupBatchAddReq{}
+	mi := &file_gorpc_proto_msgTypes[206]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnGroupBatchAddReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnGroupBatchAddReq) ProtoMessage() {}
+
+func (x *VpnGroupBatchAddReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[206]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnGroupBatchAddReq.ProtoReflect.Descriptor instead.
+func (*VpnGroupBatchAddReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{206}
+}
+
+func (x *VpnGroupBatchAddReq) GetList() []*VpnGroupExVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnGroupBatchAddResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnGroupExVo        `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnGroupBatchAddResp) Reset() {
+	*x = VpnGroupBatchAddResp{}
+	mi := &file_gorpc_proto_msgTypes[207]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnGroupBatchAddResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnGroupBatchAddResp) ProtoMessage() {}
+
+func (x *VpnGroupBatchAddResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[207]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnGroupBatchAddResp.ProtoReflect.Descriptor instead.
+func (*VpnGroupBatchAddResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{207}
+}
+
+func (x *VpnGroupBatchAddResp) GetList() []*VpnGroupExVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnGroupBatchUpdateReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnGroupExVo        `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnGroupBatchUpdateReq) Reset() {
+	*x = VpnGroupBatchUpdateReq{}
+	mi := &file_gorpc_proto_msgTypes[208]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnGroupBatchUpdateReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnGroupBatchUpdateReq) ProtoMessage() {}
+
+func (x *VpnGroupBatchUpdateReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[208]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnGroupBatchUpdateReq.ProtoReflect.Descriptor instead.
+func (*VpnGroupBatchUpdateReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{208}
+}
+
+func (x *VpnGroupBatchUpdateReq) GetList() []*VpnGroupExVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnGroupBatchUpdateResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnGroupExVo        `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnGroupBatchUpdateResp) Reset() {
+	*x = VpnGroupBatchUpdateResp{}
+	mi := &file_gorpc_proto_msgTypes[209]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnGroupBatchUpdateResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnGroupBatchUpdateResp) ProtoMessage() {}
+
+func (x *VpnGroupBatchUpdateResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[209]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnGroupBatchUpdateResp.ProtoReflect.Descriptor instead.
+func (*VpnGroupBatchUpdateResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{209}
+}
+
+func (x *VpnGroupBatchUpdateResp) GetList() []*VpnGroupExVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnGroupBatchDelReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Ids           []int64                `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnGroupBatchDelReq) Reset() {
+	*x = VpnGroupBatchDelReq{}
+	mi := &file_gorpc_proto_msgTypes[210]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnGroupBatchDelReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnGroupBatchDelReq) ProtoMessage() {}
+
+func (x *VpnGroupBatchDelReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[210]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnGroupBatchDelReq.ProtoReflect.Descriptor instead.
+func (*VpnGroupBatchDelReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{210}
+}
+
+func (x *VpnGroupBatchDelReq) GetIds() []int64 {
+	if x != nil {
+		return x.Ids
+	}
+	return nil
+}
+
+// VpnGroupTag
+type VpnGroupTagVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	GroupId       int64                  `protobuf:"varint,2,opt,name=groupId,proto3" json:"groupId,omitempty"`
+	TagId         int64                  `protobuf:"varint,3,opt,name=tagId,proto3" json:"tagId,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,4,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,5,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnGroupTagVo) Reset() {
+	*x = VpnGroupTagVo{}
+	mi := &file_gorpc_proto_msgTypes[211]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnGroupTagVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnGroupTagVo) ProtoMessage() {}
+
+func (x *VpnGroupTagVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[211]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnGroupTagVo.ProtoReflect.Descriptor instead.
+func (*VpnGroupTagVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{211}
+}
+
+func (x *VpnGroupTagVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *VpnGroupTagVo) GetGroupId() int64 {
+	if x != nil {
+		return x.GroupId
+	}
+	return 0
+}
+
+func (x *VpnGroupTagVo) GetTagId() int64 {
+	if x != nil {
+		return x.TagId
+	}
+	return 0
+}
+
+func (x *VpnGroupTagVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *VpnGroupTagVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type VpnGroupTagListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *VpnGroupTagVo         `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	GroupIds      []int64                `protobuf:"varint,3,rep,packed,name=groupIds,proto3" json:"groupIds,omitempty"`
+	TagIds        []int64                `protobuf:"varint,4,rep,packed,name=tagIds,proto3" json:"tagIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnGroupTagListReq) Reset() {
+	*x = VpnGroupTagListReq{}
+	mi := &file_gorpc_proto_msgTypes[212]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnGroupTagListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnGroupTagListReq) ProtoMessage() {}
+
+func (x *VpnGroupTagListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[212]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnGroupTagListReq.ProtoReflect.Descriptor instead.
+func (*VpnGroupTagListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{212}
+}
+
+func (x *VpnGroupTagListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *VpnGroupTagListReq) GetVo() *VpnGroupTagVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *VpnGroupTagListReq) GetGroupIds() []int64 {
+	if x != nil {
+		return x.GroupIds
+	}
+	return nil
+}
+
+func (x *VpnGroupTagListReq) GetTagIds() []int64 {
+	if x != nil {
+		return x.TagIds
+	}
+	return nil
+}
+
+type VpnGroupTagListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*VpnGroupTagVo       `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnGroupTagListResp) Reset() {
+	*x = VpnGroupTagListResp{}
+	mi := &file_gorpc_proto_msgTypes[213]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnGroupTagListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnGroupTagListResp) ProtoMessage() {}
+
+func (x *VpnGroupTagListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[213]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnGroupTagListResp.ProtoReflect.Descriptor instead.
+func (*VpnGroupTagListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{213}
+}
+
+func (x *VpnGroupTagListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *VpnGroupTagListResp) GetList() []*VpnGroupTagVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+// VpnLocation
+type VpnLocationVo struct {
+	state               protoimpl.MessageState `protogen:"open.v1"`
+	Id                  int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	GroupId             int64                  `protobuf:"varint,2,opt,name=groupId,proto3" json:"groupId,omitempty"`
+	Name                string                 `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
+	Code                string                 `protobuf:"bytes,4,opt,name=code,proto3" json:"code,omitempty"`
+	Icon                string                 `protobuf:"bytes,5,opt,name=icon,proto3" json:"icon,omitempty"`
+	Type                int64                  `protobuf:"varint,6,opt,name=type,proto3" json:"type,omitempty"`
+	DisplayPolicyConfig string                 `protobuf:"bytes,7,opt,name=displayPolicyConfig,proto3" json:"displayPolicyConfig,omitempty"`
+	RoutePolicyConfig   string                 `protobuf:"bytes,8,opt,name=routePolicyConfig,proto3" json:"routePolicyConfig,omitempty"`
+	Sort                int64                  `protobuf:"varint,9,opt,name=sort,proto3" json:"sort,omitempty"`
+	Status              Status                 `protobuf:"varint,10,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	Remark              string                 `protobuf:"bytes,11,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime          int64                  `protobuf:"varint,12,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime          int64                  `protobuf:"varint,13,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	Version             string                 `protobuf:"bytes,14,opt,name=version,proto3" json:"version,omitempty"`
+	OtherConfig         string                 `protobuf:"bytes,15,opt,name=otherConfig,proto3" json:"otherConfig,omitempty"`
+	unknownFields       protoimpl.UnknownFields
+	sizeCache           protoimpl.SizeCache
+}
+
+func (x *VpnLocationVo) Reset() {
+	*x = VpnLocationVo{}
+	mi := &file_gorpc_proto_msgTypes[214]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnLocationVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnLocationVo) ProtoMessage() {}
+
+func (x *VpnLocationVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[214]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnLocationVo.ProtoReflect.Descriptor instead.
+func (*VpnLocationVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{214}
+}
+
+func (x *VpnLocationVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *VpnLocationVo) GetGroupId() int64 {
+	if x != nil {
+		return x.GroupId
+	}
+	return 0
+}
+
+func (x *VpnLocationVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *VpnLocationVo) GetCode() string {
+	if x != nil {
+		return x.Code
+	}
+	return ""
+}
+
+func (x *VpnLocationVo) GetIcon() string {
+	if x != nil {
+		return x.Icon
+	}
+	return ""
+}
+
+func (x *VpnLocationVo) GetType() int64 {
+	if x != nil {
+		return x.Type
+	}
+	return 0
+}
+
+func (x *VpnLocationVo) GetDisplayPolicyConfig() string {
+	if x != nil {
+		return x.DisplayPolicyConfig
+	}
+	return ""
+}
+
+func (x *VpnLocationVo) GetRoutePolicyConfig() string {
+	if x != nil {
+		return x.RoutePolicyConfig
+	}
+	return ""
+}
+
+func (x *VpnLocationVo) GetSort() int64 {
+	if x != nil {
+		return x.Sort
+	}
+	return 0
+}
+
+func (x *VpnLocationVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *VpnLocationVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *VpnLocationVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *VpnLocationVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *VpnLocationVo) GetVersion() string {
+	if x != nil {
+		return x.Version
+	}
+	return ""
+}
+
+func (x *VpnLocationVo) GetOtherConfig() string {
+	if x != nil {
+		return x.OtherConfig
+	}
+	return ""
+}
+
+type VpnLocationExVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *VpnLocationVo         `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	ProductCode   string                 `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnLocationExVo) Reset() {
+	*x = VpnLocationExVo{}
+	mi := &file_gorpc_proto_msgTypes[215]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnLocationExVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnLocationExVo) ProtoMessage() {}
+
+func (x *VpnLocationExVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[215]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnLocationExVo.ProtoReflect.Descriptor instead.
+func (*VpnLocationExVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{215}
+}
+
+func (x *VpnLocationExVo) GetVo() *VpnLocationVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *VpnLocationExVo) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
+	}
+	return ""
+}
+
+type VpnLocationGetReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *VpnLocationVo         `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnLocationGetReq) Reset() {
+	*x = VpnLocationGetReq{}
+	mi := &file_gorpc_proto_msgTypes[216]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnLocationGetReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnLocationGetReq) ProtoMessage() {}
+
+func (x *VpnLocationGetReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[216]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnLocationGetReq.ProtoReflect.Descriptor instead.
+func (*VpnLocationGetReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{216}
+}
+
+func (x *VpnLocationGetReq) GetVo() *VpnLocationVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type VpnLocationListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *VpnLocationExVo       `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	GroupIds      []int64                `protobuf:"varint,3,rep,packed,name=groupIds,proto3" json:"groupIds,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,4,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"`
+	ProductCodes  []string               `protobuf:"bytes,5,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnLocationListReq) Reset() {
+	*x = VpnLocationListReq{}
+	mi := &file_gorpc_proto_msgTypes[217]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnLocationListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnLocationListReq) ProtoMessage() {}
+
+func (x *VpnLocationListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[217]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnLocationListReq.ProtoReflect.Descriptor instead.
+func (*VpnLocationListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{217}
+}
+
+func (x *VpnLocationListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *VpnLocationListReq) GetVo() *VpnLocationExVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *VpnLocationListReq) GetGroupIds() []int64 {
+	if x != nil {
+		return x.GroupIds
+	}
+	return nil
+}
+
+func (x *VpnLocationListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+func (x *VpnLocationListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+type VpnLocationListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*VpnLocationExVo     `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnLocationListResp) Reset() {
+	*x = VpnLocationListResp{}
+	mi := &file_gorpc_proto_msgTypes[218]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnLocationListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnLocationListResp) ProtoMessage() {}
+
+func (x *VpnLocationListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[218]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnLocationListResp.ProtoReflect.Descriptor instead.
+func (*VpnLocationListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{218}
+}
+
+func (x *VpnLocationListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *VpnLocationListResp) GetList() []*VpnLocationExVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnLocationBatchAddReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnLocationVo       `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnLocationBatchAddReq) Reset() {
+	*x = VpnLocationBatchAddReq{}
+	mi := &file_gorpc_proto_msgTypes[219]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnLocationBatchAddReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnLocationBatchAddReq) ProtoMessage() {}
+
+func (x *VpnLocationBatchAddReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[219]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnLocationBatchAddReq.ProtoReflect.Descriptor instead.
+func (*VpnLocationBatchAddReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{219}
+}
+
+func (x *VpnLocationBatchAddReq) GetList() []*VpnLocationVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnLocationBatchAddResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnLocationExVo     `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnLocationBatchAddResp) Reset() {
+	*x = VpnLocationBatchAddResp{}
+	mi := &file_gorpc_proto_msgTypes[220]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnLocationBatchAddResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnLocationBatchAddResp) ProtoMessage() {}
+
+func (x *VpnLocationBatchAddResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[220]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnLocationBatchAddResp.ProtoReflect.Descriptor instead.
+func (*VpnLocationBatchAddResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{220}
+}
+
+func (x *VpnLocationBatchAddResp) GetList() []*VpnLocationExVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnLocationBatchUpdateReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnLocationVo       `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnLocationBatchUpdateReq) Reset() {
+	*x = VpnLocationBatchUpdateReq{}
+	mi := &file_gorpc_proto_msgTypes[221]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnLocationBatchUpdateReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnLocationBatchUpdateReq) ProtoMessage() {}
+
+func (x *VpnLocationBatchUpdateReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[221]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnLocationBatchUpdateReq.ProtoReflect.Descriptor instead.
+func (*VpnLocationBatchUpdateReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{221}
+}
+
+func (x *VpnLocationBatchUpdateReq) GetList() []*VpnLocationVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnLocationBatchUpdateResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnLocationExVo     `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnLocationBatchUpdateResp) Reset() {
+	*x = VpnLocationBatchUpdateResp{}
+	mi := &file_gorpc_proto_msgTypes[222]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnLocationBatchUpdateResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnLocationBatchUpdateResp) ProtoMessage() {}
+
+func (x *VpnLocationBatchUpdateResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[222]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnLocationBatchUpdateResp.ProtoReflect.Descriptor instead.
+func (*VpnLocationBatchUpdateResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{222}
+}
+
+func (x *VpnLocationBatchUpdateResp) GetList() []*VpnLocationExVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnLocationBatchDelReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Ids           []int64                `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnLocationBatchDelReq) Reset() {
+	*x = VpnLocationBatchDelReq{}
+	mi := &file_gorpc_proto_msgTypes[223]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnLocationBatchDelReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnLocationBatchDelReq) ProtoMessage() {}
+
+func (x *VpnLocationBatchDelReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[223]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnLocationBatchDelReq.ProtoReflect.Descriptor instead.
+func (*VpnLocationBatchDelReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{223}
+}
+
+func (x *VpnLocationBatchDelReq) GetIds() []int64 {
+	if x != nil {
+		return x.Ids
+	}
+	return nil
+}
+
+// VpnServer
+type VpnServerVo struct {
+	state             protoimpl.MessageState `protogen:"open.v1"`
+	Id                int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	InstanceId        int64                  `protobuf:"varint,2,opt,name=instanceId,proto3" json:"instanceId,omitempty"`
+	Name              string                 `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
+	Ip                string                 `protobuf:"bytes,4,opt,name=ip,proto3" json:"ip,omitempty"`
+	Port              int64                  `protobuf:"varint,5,opt,name=port,proto3" json:"port,omitempty"`
+	PingPort          int64                  `protobuf:"varint,6,opt,name=pingPort,proto3" json:"pingPort,omitempty"`
+	NetConfig         string                 `protobuf:"bytes,7,opt,name=netConfig,proto3" json:"netConfig,omitempty"`
+	RoutePolicyConfig string                 `protobuf:"bytes,8,opt,name=routePolicyConfig,proto3" json:"routePolicyConfig,omitempty"`
+	ServerInfo        string                 `protobuf:"bytes,9,opt,name=serverInfo,proto3" json:"serverInfo,omitempty"`
+	Status            Status                 `protobuf:"varint,10,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	Remark            string                 `protobuf:"bytes,11,opt,name=remark,proto3" json:"remark,omitempty"`
+	CreateTime        int64                  `protobuf:"varint,12,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime        int64                  `protobuf:"varint,13,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	Version           string                 `protobuf:"bytes,14,opt,name=version,proto3" json:"version,omitempty"`
+	OtherInfo         string                 `protobuf:"bytes,15,opt,name=otherInfo,proto3" json:"otherInfo,omitempty"`
+	MonitorPort       int64                  `protobuf:"varint,16,opt,name=monitorPort,proto3" json:"monitorPort,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
+}
+
+func (x *VpnServerVo) Reset() {
+	*x = VpnServerVo{}
+	mi := &file_gorpc_proto_msgTypes[224]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnServerVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnServerVo) ProtoMessage() {}
+
+func (x *VpnServerVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[224]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnServerVo.ProtoReflect.Descriptor instead.
+func (*VpnServerVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{224}
+}
+
+func (x *VpnServerVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *VpnServerVo) GetInstanceId() int64 {
+	if x != nil {
+		return x.InstanceId
+	}
+	return 0
+}
+
+func (x *VpnServerVo) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *VpnServerVo) GetIp() string {
+	if x != nil {
+		return x.Ip
+	}
+	return ""
+}
+
+func (x *VpnServerVo) GetPort() int64 {
+	if x != nil {
+		return x.Port
+	}
+	return 0
+}
+
+func (x *VpnServerVo) GetPingPort() int64 {
+	if x != nil {
+		return x.PingPort
+	}
+	return 0
+}
+
+func (x *VpnServerVo) GetNetConfig() string {
+	if x != nil {
+		return x.NetConfig
+	}
+	return ""
+}
+
+func (x *VpnServerVo) GetRoutePolicyConfig() string {
+	if x != nil {
+		return x.RoutePolicyConfig
+	}
+	return ""
+}
+
+func (x *VpnServerVo) GetServerInfo() string {
+	if x != nil {
+		return x.ServerInfo
+	}
+	return ""
+}
+
+func (x *VpnServerVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *VpnServerVo) GetRemark() string {
+	if x != nil {
+		return x.Remark
+	}
+	return ""
+}
+
+func (x *VpnServerVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *VpnServerVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *VpnServerVo) GetVersion() string {
+	if x != nil {
+		return x.Version
+	}
+	return ""
+}
+
+func (x *VpnServerVo) GetOtherInfo() string {
+	if x != nil {
+		return x.OtherInfo
+	}
+	return ""
+}
+
+func (x *VpnServerVo) GetMonitorPort() int64 {
+	if x != nil {
+		return x.MonitorPort
+	}
+	return 0
+}
+
+type VpnServerExVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *VpnServerVo           `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	LocationIds   []int64                `protobuf:"varint,2,rep,packed,name=locationIds,proto3" json:"locationIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnServerExVo) Reset() {
+	*x = VpnServerExVo{}
+	mi := &file_gorpc_proto_msgTypes[225]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnServerExVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnServerExVo) ProtoMessage() {}
+
+func (x *VpnServerExVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[225]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnServerExVo.ProtoReflect.Descriptor instead.
+func (*VpnServerExVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{225}
+}
+
+func (x *VpnServerExVo) GetVo() *VpnServerVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *VpnServerExVo) GetLocationIds() []int64 {
+	if x != nil {
+		return x.LocationIds
+	}
+	return nil
+}
+
+type VpnServerListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *VpnServerVo           `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ExcludeIds    []int64                `protobuf:"varint,3,rep,packed,name=excludeIds,proto3" json:"excludeIds,omitempty"` // 排除的ID
+	ProductCodes  []string               `protobuf:"bytes,4,rep,name=productCodes,proto3" json:"productCodes,omitempty"`
+	LocationIds   []int64                `protobuf:"varint,5,rep,packed,name=locationIds,proto3" json:"locationIds,omitempty"`
+	InstanceIds   []int64                `protobuf:"varint,6,rep,packed,name=instanceIds,proto3" json:"instanceIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnServerListReq) Reset() {
+	*x = VpnServerListReq{}
+	mi := &file_gorpc_proto_msgTypes[226]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnServerListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnServerListReq) ProtoMessage() {}
+
+func (x *VpnServerListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[226]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnServerListReq.ProtoReflect.Descriptor instead.
+func (*VpnServerListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{226}
+}
+
+func (x *VpnServerListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *VpnServerListReq) GetVo() *VpnServerVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *VpnServerListReq) GetExcludeIds() []int64 {
+	if x != nil {
+		return x.ExcludeIds
+	}
+	return nil
+}
+
+func (x *VpnServerListReq) GetProductCodes() []string {
+	if x != nil {
+		return x.ProductCodes
+	}
+	return nil
+}
+
+func (x *VpnServerListReq) GetLocationIds() []int64 {
+	if x != nil {
+		return x.LocationIds
+	}
+	return nil
+}
+
+func (x *VpnServerListReq) GetInstanceIds() []int64 {
+	if x != nil {
+		return x.InstanceIds
+	}
+	return nil
+}
+
+type VpnServerListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*VpnServerVo         `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnServerListResp) Reset() {
+	*x = VpnServerListResp{}
+	mi := &file_gorpc_proto_msgTypes[227]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnServerListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnServerListResp) ProtoMessage() {}
+
+func (x *VpnServerListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[227]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnServerListResp.ProtoReflect.Descriptor instead.
+func (*VpnServerListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{227}
+}
+
+func (x *VpnServerListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *VpnServerListResp) GetList() []*VpnServerVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnServerExListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*VpnServerExVo       `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnServerExListResp) Reset() {
+	*x = VpnServerExListResp{}
+	mi := &file_gorpc_proto_msgTypes[228]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnServerExListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnServerExListResp) ProtoMessage() {}
+
+func (x *VpnServerExListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[228]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnServerExListResp.ProtoReflect.Descriptor instead.
+func (*VpnServerExListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{228}
+}
+
+func (x *VpnServerExListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *VpnServerExListResp) GetList() []*VpnServerExVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnServerAddReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Vo            *VpnServerVo           `protobuf:"bytes,1,opt,name=vo,proto3" json:"vo,omitempty"`
+	LocationIds   []int64                `protobuf:"varint,2,rep,packed,name=locationIds,proto3" json:"locationIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnServerAddReq) Reset() {
+	*x = VpnServerAddReq{}
+	mi := &file_gorpc_proto_msgTypes[229]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnServerAddReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnServerAddReq) ProtoMessage() {}
+
+func (x *VpnServerAddReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[229]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnServerAddReq.ProtoReflect.Descriptor instead.
+func (*VpnServerAddReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{229}
+}
+
+func (x *VpnServerAddReq) GetVo() *VpnServerVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *VpnServerAddReq) GetLocationIds() []int64 {
+	if x != nil {
+		return x.LocationIds
+	}
+	return nil
+}
+
+type VpnServerBatchAddReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnServerExVo       `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnServerBatchAddReq) Reset() {
+	*x = VpnServerBatchAddReq{}
+	mi := &file_gorpc_proto_msgTypes[230]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnServerBatchAddReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnServerBatchAddReq) ProtoMessage() {}
+
+func (x *VpnServerBatchAddReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[230]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnServerBatchAddReq.ProtoReflect.Descriptor instead.
+func (*VpnServerBatchAddReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{230}
+}
+
+func (x *VpnServerBatchAddReq) GetList() []*VpnServerExVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnServerBatchAddResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnServerExVo       `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnServerBatchAddResp) Reset() {
+	*x = VpnServerBatchAddResp{}
+	mi := &file_gorpc_proto_msgTypes[231]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnServerBatchAddResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnServerBatchAddResp) ProtoMessage() {}
+
+func (x *VpnServerBatchAddResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[231]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnServerBatchAddResp.ProtoReflect.Descriptor instead.
+func (*VpnServerBatchAddResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{231}
+}
+
+func (x *VpnServerBatchAddResp) GetList() []*VpnServerExVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnServerBatchUpdateReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnServerExVo       `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnServerBatchUpdateReq) Reset() {
+	*x = VpnServerBatchUpdateReq{}
+	mi := &file_gorpc_proto_msgTypes[232]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnServerBatchUpdateReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnServerBatchUpdateReq) ProtoMessage() {}
+
+func (x *VpnServerBatchUpdateReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[232]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnServerBatchUpdateReq.ProtoReflect.Descriptor instead.
+func (*VpnServerBatchUpdateReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{232}
+}
+
+func (x *VpnServerBatchUpdateReq) GetList() []*VpnServerExVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnServerBatchUpdateResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	List          []*VpnServerExVo       `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnServerBatchUpdateResp) Reset() {
+	*x = VpnServerBatchUpdateResp{}
+	mi := &file_gorpc_proto_msgTypes[233]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnServerBatchUpdateResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnServerBatchUpdateResp) ProtoMessage() {}
+
+func (x *VpnServerBatchUpdateResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[233]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnServerBatchUpdateResp.ProtoReflect.Descriptor instead.
+func (*VpnServerBatchUpdateResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{233}
+}
+
+func (x *VpnServerBatchUpdateResp) GetList() []*VpnServerExVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnServerBatchDelReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Ids           []int64                `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnServerBatchDelReq) Reset() {
+	*x = VpnServerBatchDelReq{}
+	mi := &file_gorpc_proto_msgTypes[234]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnServerBatchDelReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnServerBatchDelReq) ProtoMessage() {}
+
+func (x *VpnServerBatchDelReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[234]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnServerBatchDelReq.ProtoReflect.Descriptor instead.
+func (*VpnServerBatchDelReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{234}
+}
+
+func (x *VpnServerBatchDelReq) GetIds() []int64 {
+	if x != nil {
+		return x.Ids
+	}
+	return nil
+}
+
+type VpnServerLocationVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	ServerId      int64                  `protobuf:"varint,2,opt,name=serverId,proto3" json:"serverId,omitempty"`
+	LocationId    int64                  `protobuf:"varint,3,opt,name=locationId,proto3" json:"locationId,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,4,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,5,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	Status        Status                 `protobuf:"varint,6,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnServerLocationVo) Reset() {
+	*x = VpnServerLocationVo{}
+	mi := &file_gorpc_proto_msgTypes[235]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnServerLocationVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnServerLocationVo) ProtoMessage() {}
+
+func (x *VpnServerLocationVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[235]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnServerLocationVo.ProtoReflect.Descriptor instead.
+func (*VpnServerLocationVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{235}
+}
+
+func (x *VpnServerLocationVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *VpnServerLocationVo) GetServerId() int64 {
+	if x != nil {
+		return x.ServerId
+	}
+	return 0
+}
+
+func (x *VpnServerLocationVo) GetLocationId() int64 {
+	if x != nil {
+		return x.LocationId
+	}
+	return 0
+}
+
+func (x *VpnServerLocationVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *VpnServerLocationVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+func (x *VpnServerLocationVo) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+type VpnServerLocationListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *VpnServerLocationVo   `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	ServerIds     []int64                `protobuf:"varint,3,rep,packed,name=serverIds,proto3" json:"serverIds,omitempty"`
+	LocationIds   []int64                `protobuf:"varint,4,rep,packed,name=locationIds,proto3" json:"locationIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnServerLocationListReq) Reset() {
+	*x = VpnServerLocationListReq{}
+	mi := &file_gorpc_proto_msgTypes[236]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnServerLocationListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnServerLocationListReq) ProtoMessage() {}
+
+func (x *VpnServerLocationListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[236]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnServerLocationListReq.ProtoReflect.Descriptor instead.
+func (*VpnServerLocationListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{236}
+}
+
+func (x *VpnServerLocationListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *VpnServerLocationListReq) GetVo() *VpnServerLocationVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+func (x *VpnServerLocationListReq) GetServerIds() []int64 {
+	if x != nil {
+		return x.ServerIds
+	}
+	return nil
+}
+
+func (x *VpnServerLocationListReq) GetLocationIds() []int64 {
+	if x != nil {
+		return x.LocationIds
+	}
+	return nil
+}
+
+type VpnServerLocationListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*VpnServerLocationVo `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnServerLocationListResp) Reset() {
+	*x = VpnServerLocationListResp{}
+	mi := &file_gorpc_proto_msgTypes[237]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnServerLocationListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnServerLocationListResp) ProtoMessage() {}
+
+func (x *VpnServerLocationListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[237]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnServerLocationListResp.ProtoReflect.Descriptor instead.
+func (*VpnServerLocationListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{237}
+}
+
+func (x *VpnServerLocationListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *VpnServerLocationListResp) GetList() []*VpnServerLocationVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnLocationServerCountVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	LocationId    int64                  `protobuf:"varint,1,opt,name=locationId,proto3" json:"locationId,omitempty"`
+	ServerCount   int64                  `protobuf:"varint,2,opt,name=serverCount,proto3" json:"serverCount,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnLocationServerCountVo) Reset() {
+	*x = VpnLocationServerCountVo{}
+	mi := &file_gorpc_proto_msgTypes[238]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnLocationServerCountVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnLocationServerCountVo) ProtoMessage() {}
+
+func (x *VpnLocationServerCountVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[238]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnLocationServerCountVo.ProtoReflect.Descriptor instead.
+func (*VpnLocationServerCountVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{238}
+}
+
+func (x *VpnLocationServerCountVo) GetLocationId() int64 {
+	if x != nil {
+		return x.LocationId
+	}
+	return 0
+}
+
+func (x *VpnLocationServerCountVo) GetServerCount() int64 {
+	if x != nil {
+		return x.ServerCount
+	}
+	return 0
+}
+
+type VpnLocationServerCountReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Status        Status                 `protobuf:"varint,2,opt,name=status,proto3,enum=gorpc.Status" json:"status,omitempty"`
+	ServerIds     []int64                `protobuf:"varint,3,rep,packed,name=serverIds,proto3" json:"serverIds,omitempty"`
+	LocationIds   []int64                `protobuf:"varint,4,rep,packed,name=locationIds,proto3" json:"locationIds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnLocationServerCountReq) Reset() {
+	*x = VpnLocationServerCountReq{}
+	mi := &file_gorpc_proto_msgTypes[239]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnLocationServerCountReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnLocationServerCountReq) ProtoMessage() {}
+
+func (x *VpnLocationServerCountReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[239]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnLocationServerCountReq.ProtoReflect.Descriptor instead.
+func (*VpnLocationServerCountReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{239}
+}
+
+func (x *VpnLocationServerCountReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *VpnLocationServerCountReq) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_UnknownStatus
+}
+
+func (x *VpnLocationServerCountReq) GetServerIds() []int64 {
+	if x != nil {
+		return x.ServerIds
+	}
+	return nil
+}
+
+func (x *VpnLocationServerCountReq) GetLocationIds() []int64 {
+	if x != nil {
+		return x.LocationIds
+	}
+	return nil
+}
+
+type VpnLocationServerCountResp struct {
+	state         protoimpl.MessageState      `protogen:"open.v1"`
+	Total         int64                       `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*VpnLocationServerCountVo `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnLocationServerCountResp) Reset() {
+	*x = VpnLocationServerCountResp{}
+	mi := &file_gorpc_proto_msgTypes[240]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnLocationServerCountResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnLocationServerCountResp) ProtoMessage() {}
+
+func (x *VpnLocationServerCountResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[240]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnLocationServerCountResp.ProtoReflect.Descriptor instead.
+func (*VpnLocationServerCountResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{240}
+}
+
+func (x *VpnLocationServerCountResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *VpnLocationServerCountResp) GetList() []*VpnLocationServerCountVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type VpnProbeTaskVo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	TaskId        string                 `protobuf:"bytes,2,opt,name=taskId,proto3" json:"taskId,omitempty"`
+	Filter        string                 `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"`             // 筛选条件
+	Type          string                 `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"`                 // 类型
+	UploadDomain  string                 `protobuf:"bytes,5,opt,name=uploadDomain,proto3" json:"uploadDomain,omitempty"` // 配置
+	Params        string                 `protobuf:"bytes,6,opt,name=params,proto3" json:"params,omitempty"`
+	Answer        int64                  `protobuf:"varint,7,opt,name=answer,proto3" json:"answer,omitempty"`
+	Percentage    float32                `protobuf:"fixed32,8,opt,name=percentage,proto3" json:"percentage,omitempty"` // 进度百分比
+	Result        string                 `protobuf:"bytes,9,opt,name=result,proto3" json:"result,omitempty"`           // 结果
+	UserId        int64                  `protobuf:"varint,10,opt,name=userId,proto3" json:"userId,omitempty"`
+	CreateTime    int64                  `protobuf:"varint,11,opt,name=createTime,proto3" json:"createTime,omitempty"`
+	UpdateTime    int64                  `protobuf:"varint,12,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnProbeTaskVo) Reset() {
+	*x = VpnProbeTaskVo{}
+	mi := &file_gorpc_proto_msgTypes[241]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnProbeTaskVo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnProbeTaskVo) ProtoMessage() {}
+
+func (x *VpnProbeTaskVo) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[241]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnProbeTaskVo.ProtoReflect.Descriptor instead.
+func (*VpnProbeTaskVo) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{241}
+}
+
+func (x *VpnProbeTaskVo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *VpnProbeTaskVo) GetTaskId() string {
+	if x != nil {
+		return x.TaskId
+	}
+	return ""
+}
+
+func (x *VpnProbeTaskVo) GetFilter() string {
+	if x != nil {
+		return x.Filter
+	}
+	return ""
+}
+
+func (x *VpnProbeTaskVo) GetType() string {
+	if x != nil {
+		return x.Type
+	}
+	return ""
+}
+
+func (x *VpnProbeTaskVo) GetUploadDomain() string {
+	if x != nil {
+		return x.UploadDomain
+	}
+	return ""
+}
+
+func (x *VpnProbeTaskVo) GetParams() string {
+	if x != nil {
+		return x.Params
+	}
+	return ""
+}
+
+func (x *VpnProbeTaskVo) GetAnswer() int64 {
+	if x != nil {
+		return x.Answer
+	}
+	return 0
+}
+
+func (x *VpnProbeTaskVo) GetPercentage() float32 {
+	if x != nil {
+		return x.Percentage
+	}
+	return 0
+}
+
+func (x *VpnProbeTaskVo) GetResult() string {
+	if x != nil {
+		return x.Result
+	}
+	return ""
+}
+
+func (x *VpnProbeTaskVo) GetUserId() int64 {
+	if x != nil {
+		return x.UserId
+	}
+	return 0
+}
+
+func (x *VpnProbeTaskVo) GetCreateTime() int64 {
+	if x != nil {
+		return x.CreateTime
+	}
+	return 0
+}
+
+func (x *VpnProbeTaskVo) GetUpdateTime() int64 {
+	if x != nil {
+		return x.UpdateTime
+	}
+	return 0
+}
+
+type VpnProbeTaskListReq struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Page          *Page                  `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
+	Vo            *VpnProbeTaskVo        `protobuf:"bytes,2,opt,name=vo,proto3" json:"vo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnProbeTaskListReq) Reset() {
+	*x = VpnProbeTaskListReq{}
+	mi := &file_gorpc_proto_msgTypes[242]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnProbeTaskListReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnProbeTaskListReq) ProtoMessage() {}
+
+func (x *VpnProbeTaskListReq) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[242]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnProbeTaskListReq.ProtoReflect.Descriptor instead.
+func (*VpnProbeTaskListReq) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{242}
+}
+
+func (x *VpnProbeTaskListReq) GetPage() *Page {
+	if x != nil {
+		return x.Page
+	}
+	return nil
+}
+
+func (x *VpnProbeTaskListReq) GetVo() *VpnProbeTaskVo {
+	if x != nil {
+		return x.Vo
+	}
+	return nil
+}
+
+type VpnProbeTaskListResp struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Total         int64                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+	List          []*VpnProbeTaskVo      `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *VpnProbeTaskListResp) Reset() {
+	*x = VpnProbeTaskListResp{}
+	mi := &file_gorpc_proto_msgTypes[243]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VpnProbeTaskListResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VpnProbeTaskListResp) ProtoMessage() {}
+
+func (x *VpnProbeTaskListResp) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[243]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VpnProbeTaskListResp.ProtoReflect.Descriptor instead.
+func (*VpnProbeTaskListResp) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{243}
+}
+
+func (x *VpnProbeTaskListResp) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+func (x *VpnProbeTaskListResp) GetList() []*VpnProbeTaskVo {
+	if x != nil {
+		return x.List
+	}
+	return nil
+}
+
+type Page_OrderItem struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Column        string                 `protobuf:"bytes,1,opt,name=column,proto3" json:"column,omitempty"`
+	Asc           bool                   `protobuf:"varint,2,opt,name=asc,proto3" json:"asc,omitempty"`
+	IsFunc        bool                   `protobuf:"varint,3,opt,name=isFunc,proto3" json:"isFunc,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *Page_OrderItem) Reset() {
+	*x = Page_OrderItem{}
+	mi := &file_gorpc_proto_msgTypes[244]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Page_OrderItem) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Page_OrderItem) ProtoMessage() {}
+
+func (x *Page_OrderItem) ProtoReflect() protoreflect.Message {
+	mi := &file_gorpc_proto_msgTypes[244]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Page_OrderItem.ProtoReflect.Descriptor instead.
+func (*Page_OrderItem) Descriptor() ([]byte, []int) {
+	return file_gorpc_proto_rawDescGZIP(), []int{4, 0}
+}
+
+func (x *Page_OrderItem) GetColumn() string {
+	if x != nil {
+		return x.Column
+	}
+	return ""
+}
+
+func (x *Page_OrderItem) GetAsc() bool {
+	if x != nil {
+		return x.Asc
+	}
+	return false
+}
+
+func (x *Page_OrderItem) GetIsFunc() bool {
+	if x != nil {
+		return x.IsFunc
+	}
+	return false
+}
+
+var File_gorpc_proto protoreflect.FileDescriptor
+
+const file_gorpc_proto_rawDesc = "" +
+	"\n" +
+	"\vgorpc.proto\x12\x05gorpc\"\a\n" +
+	"\x05Empty\"I\n" +
+	"\x15Int64SelectController\x12\x16\n" +
+	"\x06values\x18\x01 \x03(\x03R\x06values\x12\x18\n" +
+	"\aexclude\x18\x02 \x01(\bR\aexclude\"G\n" +
+	"\x13IntSelectController\x12\x16\n" +
+	"\x06values\x18\x01 \x03(\x05R\x06values\x12\x18\n" +
+	"\aexclude\x18\x02 \x01(\bR\aexclude\"J\n" +
+	"\x16StringSelectController\x12\x16\n" +
+	"\x06values\x18\x01 \x03(\tR\x06values\x12\x18\n" +
+	"\aexclude\x18\x02 \x01(\bR\aexclude\"\xfe\x02\n" +
+	"\x04Page\x12\x16\n" +
+	"\x06pageNo\x18\x01 \x01(\x03R\x06pageNo\x12\x1a\n" +
+	"\bpageSize\x18\x02 \x01(\x03R\bpageSize\x12\x1c\n" +
+	"\tstartTime\x18\x03 \x01(\x03R\tstartTime\x12\x18\n" +
+	"\aendTime\x18\x04 \x01(\x03R\aendTime\x12-\n" +
+	"\x06sortBy\x18\x05 \x03(\v2\x15.gorpc.Page.OrderItemR\x06sortBy\x12 \n" +
+	"\vignoreTotal\x18\x06 \x01(\bR\vignoreTotal\x12\x1e\n" +
+	"\n" +
+	"ignoreStat\x18\a \x01(\bR\n" +
+	"ignoreStat\x12\x1e\n" +
+	"\n" +
+	"ignoreList\x18\b \x01(\bR\n" +
+	"ignoreList\x12\x10\n" +
+	"\x03ids\x18\t \x03(\x03R\x03ids\x12\x18\n" +
+	"\agroupBy\x18\n" +
+	" \x03(\tR\agroupBy\x1aM\n" +
+	"\tOrderItem\x12\x16\n" +
+	"\x06column\x18\x01 \x01(\tR\x06column\x12\x10\n" +
+	"\x03asc\x18\x02 \x01(\bR\x03asc\x12\x16\n" +
+	"\x06isFunc\x18\x03 \x01(\bR\x06isFunc\"M\n" +
+	"\fCommonResult\x12+\n" +
+	"\x04code\x18\x01 \x01(\x0e2\x17.gorpc.CommonResultCodeR\x04code\x12\x10\n" +
+	"\x03msg\x18\x02 \x01(\tR\x03msg\"C\n" +
+	"\aBaseReq\x12&\n" +
+	"\x0etimeZoneOffset\x18\x01 \x01(\x03R\x0etimeZoneOffset\x12\x10\n" +
+	"\x03lan\x18\x02 \x01(\tR\x03lan\",\n" +
+	"\fDeleteIdResp\x12\x1c\n" +
+	"\tfailedIds\x18\x01 \x03(\x03R\tfailedIds\"\x17\n" +
+	"\x03Ids\x12\x10\n" +
+	"\x03ids\x18\x01 \x03(\x03R\x03ids\"\t\n" +
+	"\aRequest\"\x1c\n" +
+	"\bResponse\x12\x10\n" +
+	"\x03msg\x18\x01 \x01(\tR\x03msg\"Z\n" +
+	"\x14TransactionOperation\x12\x14\n" +
+	"\x05table\x18\x01 \x01(\tR\x05table\x12\x18\n" +
+	"\aoperate\x18\x02 \x01(\tR\aoperate\x12\x12\n" +
+	"\x04data\x18\x03 \x01(\tR\x04data\"Q\n" +
+	"\x0eTransactionReq\x12?\n" +
+	"\ftransactions\x18\x01 \x03(\v2\x1b.gorpc.TransactionOperationR\ftransactions\"\xd0\x03\n" +
+	"\x06GameVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" +
+	"\x04name\x18\x02 \x01(\tR\x04name\x12\x10\n" +
+	"\x03pkg\x18\x03 \x01(\tR\x03pkg\x12\x1e\n" +
+	"\n" +
+	"categories\x18\x04 \x01(\tR\n" +
+	"categories\x12\x12\n" +
+	"\x04icon\x18\x05 \x01(\tR\x04icon\x12#\n" +
+	"\rinternal_icon\x18\x06 \x01(\tR\finternalIcon\x12\x1f\n" +
+	"\vsource_icon\x18\a \x01(\tR\n" +
+	"sourceIcon\x12\x16\n" +
+	"\x06status\x18\b \x01(\x03R\x06status\x12\x14\n" +
+	"\x05state\x18\t \x01(\x03R\x05state\x12\"\n" +
+	"\fenableRating\x18\n" +
+	" \x01(\x03R\fenableRating\x12&\n" +
+	"\x0egameUpdateTime\x18\v \x01(\x03R\x0egameUpdateTime\x12&\n" +
+	"\x0egameBoostCount\x18\f \x01(\x03R\x0egameBoostCount\x124\n" +
+	"\x15gameBoostCountryCount\x18\r \x01(\tR\x15gameBoostCountryCount\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x0e \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x0f \x01(\x03R\n" +
+	"updateTime\"(\n" +
+	"\aGameReq\x12\x1d\n" +
+	"\x02vo\x18\x01 \x01(\v2\r.gorpc.GameVoR\x02vo\"a\n" +
+	"\vGameListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12\x12\n" +
+	"\x04pkgs\x18\x02 \x03(\tR\x04pkgs\x12\x1d\n" +
+	"\x02vo\x18\x03 \x01(\v2\r.gorpc.GameVoR\x02vo\"F\n" +
+	"\vGameListRes\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12!\n" +
+	"\x04list\x18\x02 \x03(\v2\r.gorpc.GameVoR\x04list\"\xa7\x01\n" +
+	"\rRelGameRankVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x16\n" +
+	"\x06gameId\x18\x02 \x01(\x03R\x06gameId\x12\x16\n" +
+	"\x06rankId\x18\x03 \x01(\x03R\x06rankId\x12\x16\n" +
+	"\x06weight\x18\x04 \x01(\x03R\x06weight\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x05 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x06 \x01(\x03R\n" +
+	"updateTime\"6\n" +
+	"\x0eRelGameRankReq\x12$\n" +
+	"\x02vo\x18\x01 \x01(\v2\x14.gorpc.RelGameRankVoR\x02vo\"[\n" +
+	"\x12RelGameRankListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12$\n" +
+	"\x02vo\x18\x02 \x01(\v2\x14.gorpc.RelGameRankVoR\x02vo\"T\n" +
+	"\x12RelGameRankListRes\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12(\n" +
+	"\x04list\x18\x02 \x03(\v2\x14.gorpc.RelGameRankVoR\x04list\"\xd5\x01\n" +
+	"\x11RelGameVpnGroupVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x16\n" +
+	"\x06gameId\x18\x02 \x01(\x03R\x06gameId\x12 \n" +
+	"\vproductCode\x18\x03 \x01(\tR\vproductCode\x12\x1e\n" +
+	"\n" +
+	"vpnGroupId\x18\x04 \x01(\x03R\n" +
+	"vpnGroupId\x12\x16\n" +
+	"\x06status\x18\x05 \x01(\x03R\x06status\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x06 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\a \x01(\x03R\n" +
+	"updateTime\">\n" +
+	"\x12RelGameVpnGroupReq\x12(\n" +
+	"\x02vo\x18\x01 \x01(\v2\x18.gorpc.RelGameVpnGroupVoR\x02vo\"\\\n" +
+	"\x16RelGameVpnGroupListReq\x12\x18\n" +
+	"\agameIds\x18\x01 \x03(\x03R\agameIds\x12(\n" +
+	"\x02vo\x18\x02 \x01(\v2\x18.gorpc.RelGameVpnGroupVoR\x02vo\"\\\n" +
+	"\x16RelGameVpnGroupListRes\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12,\n" +
+	"\x04list\x18\x02 \x03(\v2\x18.gorpc.RelGameVpnGroupVoR\x04list\"[\n" +
+	"\x17GameRedisHScanByNameReq\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n" +
+	"\x06cursor\x18\x02 \x01(\x03R\x06cursor\x12\x14\n" +
+	"\x05count\x18\x03 \x01(\x03R\x05count\"D\n" +
+	"\x18GameRedisHScanByNameResp\x12\x10\n" +
+	"\x03ids\x18\x01 \x03(\x03R\x03ids\x12\x16\n" +
+	"\x06cursor\x18\x02 \x01(\x03R\x06cursor\"\x9a\x01\n" +
+	"\x0eGameCustomerVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" +
+	"\x04name\x18\x02 \x01(\tR\x04name\x12\x10\n" +
+	"\x03pkg\x18\x03 \x01(\tR\x03pkg\x12\x12\n" +
+	"\x04icon\x18\x04 \x01(\tR\x04icon\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x05 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x06 \x01(\x03R\n" +
+	"updateTime\"q\n" +
+	"\x13GameCustomerListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12\x12\n" +
+	"\x04pkgs\x18\x02 \x03(\tR\x04pkgs\x12%\n" +
+	"\x02vo\x18\x03 \x01(\v2\x15.gorpc.GameCustomerVoR\x02vo\"V\n" +
+	"\x13GameCustomerListRes\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12)\n" +
+	"\x04list\x18\x02 \x03(\v2\x15.gorpc.GameCustomerVoR\x04list\"\\\n" +
+	"\x13GameCustomerAddResp\x12%\n" +
+	"\x02vo\x18\x01 \x01(\v2\x15.gorpc.GameCustomerVoR\x02vo\x12\x1e\n" +
+	"\n" +
+	"ExistBoost\x18\x02 \x01(\bR\n" +
+	"ExistBoost\"\xa6\x01\n" +
+	"\x0eGameCategoryVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" +
+	"\x04code\x18\x02 \x01(\tR\x04code\x12\x12\n" +
+	"\x04name\x18\x03 \x01(\tR\x04name\x12\x1c\n" +
+	"\tdescribed\x18\x04 \x01(\tR\tdescribed\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x05 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x06 \x01(\x03R\n" +
+	"updateTime\"8\n" +
+	"\x0fGameCategoryReq\x12%\n" +
+	"\x02vo\x18\x01 \x01(\v2\x15.gorpc.GameCategoryVoR\x02vo\"]\n" +
+	"\x13GameCategoryListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12%\n" +
+	"\x02vo\x18\x03 \x01(\v2\x15.gorpc.GameCategoryVoR\x02vo\"V\n" +
+	"\x13GameCategoryListRes\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12)\n" +
+	"\x04list\x18\x02 \x03(\v2\x15.gorpc.GameCategoryVoR\x04list\"2\n" +
+	"\x06I18nVo\x12\x12\n" +
+	"\x04code\x18\x01 \x01(\tR\x04code\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\tR\x05value\"2\n" +
+	"\fConfigGetReq\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" +
+	"\x04code\x18\x02 \x01(\tR\x04code\"\xd6\x04\n" +
+	"\rGlobalParamVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x1a\n" +
+	"\bparamKey\x18\x02 \x01(\tR\bparamKey\x12\x1e\n" +
+	"\n" +
+	"paramValue\x18\x03 \x01(\tR\n" +
+	"paramValue\x12\x1c\n" +
+	"\tvalueType\x18\x04 \x01(\tR\tvalueType\x12\x1a\n" +
+	"\bminValue\x18\x05 \x01(\x02R\bminValue\x12\x1a\n" +
+	"\bmaxValue\x18\x06 \x01(\x02R\bmaxValue\x12\x12\n" +
+	"\x04name\x18\a \x01(\tR\x04name\x12*\n" +
+	"\beditable\x18\b \x01(\x0e2\x0e.gorpc.BoolIntR\beditable\x12*\n" +
+	"\bnullable\x18\t \x01(\x0e2\x0e.gorpc.BoolIntR\bnullable\x12&\n" +
+	"\x06hidden\x18\n" +
+	" \x01(\x0e2\x0e.gorpc.BoolIntR\x06hidden\x12*\n" +
+	"\bmutiLang\x18\v \x01(\x0e2\x0e.gorpc.BoolIntR\bmutiLang\x12\x12\n" +
+	"\x04sort\x18\f \x01(\x03R\x04sort\x12\x16\n" +
+	"\x06remark\x18\r \x01(\tR\x06remark\x12,\n" +
+	"\tapiExport\x18\x0e \x01(\x0e2\x0e.gorpc.BoolIntR\tapiExport\x12$\n" +
+	"\rapiExportName\x18\x0f \x01(\tR\rapiExportName\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x10 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x11 \x01(\x03R\n" +
+	"updateTime\x12#\n" +
+	"\x05i18ns\x18\x12 \x03(\v2\r.gorpc.I18nVoR\x05i18ns\"M\n" +
+	"\x11GlobalParamGetReq\x12$\n" +
+	"\x02vo\x18\x01 \x01(\v2\x14.gorpc.GlobalParamVoR\x02vo\x12\x12\n" +
+	"\x04lang\x18\x02 \x01(\tR\x04lang\"{\n" +
+	"\x12GlobalParamListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12$\n" +
+	"\x02vo\x18\x02 \x01(\v2\x14.gorpc.GlobalParamVoR\x02vo\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x03 \x03(\x03R\n" +
+	"excludeIds\"U\n" +
+	"\x13GlobalParamListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12(\n" +
+	"\x04list\x18\x02 \x03(\v2\x14.gorpc.GlobalParamVoR\x04list\"\x92\x02\n" +
+	"\tProductVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" +
+	"\x04code\x18\x02 \x01(\tR\x04code\x12\x12\n" +
+	"\x04name\x18\x03 \x01(\tR\x04name\x12\x16\n" +
+	"\x06domain\x18\x04 \x01(\tR\x06domain\x12%\n" +
+	"\x06status\x18\x05 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x14\n" +
+	"\x05langs\x18\x06 \x01(\tR\x05langs\x12 \n" +
+	"\vdefaultLang\x18\a \x01(\tR\vdefaultLang\x12\x16\n" +
+	"\x06remark\x18\b \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\t \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\n" +
+	" \x01(\x03R\n" +
+	"updateTime\"\x97\x01\n" +
+	"\x0eProductListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12 \n" +
+	"\x02vo\x18\x02 \x01(\v2\x10.gorpc.ProductVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"M\n" +
+	"\x0fProductListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12$\n" +
+	"\x04list\x18\x02 \x03(\v2\x10.gorpc.ProductVoR\x04list\"\xf9\x04\n" +
+	"\x0eProductParamVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12\x1a\n" +
+	"\bparamKey\x18\x03 \x01(\tR\bparamKey\x12\x1e\n" +
+	"\n" +
+	"paramValue\x18\x04 \x01(\tR\n" +
+	"paramValue\x12\x1c\n" +
+	"\tvalueType\x18\x05 \x01(\tR\tvalueType\x12\x1a\n" +
+	"\bminValue\x18\x06 \x01(\x02R\bminValue\x12\x1a\n" +
+	"\bmaxValue\x18\a \x01(\x02R\bmaxValue\x12\x12\n" +
+	"\x04name\x18\b \x01(\tR\x04name\x12*\n" +
+	"\beditable\x18\t \x01(\x0e2\x0e.gorpc.BoolIntR\beditable\x12*\n" +
+	"\bnullable\x18\n" +
+	" \x01(\x0e2\x0e.gorpc.BoolIntR\bnullable\x12&\n" +
+	"\x06hidden\x18\v \x01(\x0e2\x0e.gorpc.BoolIntR\x06hidden\x12*\n" +
+	"\bmutiLang\x18\f \x01(\x0e2\x0e.gorpc.BoolIntR\bmutiLang\x12\x12\n" +
+	"\x04sort\x18\r \x01(\x03R\x04sort\x12\x16\n" +
+	"\x06remark\x18\x0e \x01(\tR\x06remark\x12,\n" +
+	"\tapiExport\x18\x0f \x01(\x0e2\x0e.gorpc.BoolIntR\tapiExport\x12$\n" +
+	"\rapiExportName\x18\x10 \x01(\tR\rapiExportName\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x11 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x12 \x01(\x03R\n" +
+	"updateTime\x12#\n" +
+	"\x05i18ns\x18\x13 \x03(\v2\r.gorpc.I18nVoR\x05i18ns\"O\n" +
+	"\x12ProductParamGetReq\x12%\n" +
+	"\x02vo\x18\x01 \x01(\v2\x15.gorpc.ProductParamVoR\x02vo\x12\x12\n" +
+	"\x04lang\x18\x02 \x01(\tR\x04lang\"\xa1\x01\n" +
+	"\x13ProductParamListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12%\n" +
+	"\x02vo\x18\x02 \x01(\v2\x15.gorpc.ProductParamVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"W\n" +
+	"\x14ProductParamListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12)\n" +
+	"\x04list\x18\x02 \x03(\v2\x15.gorpc.ProductParamVoR\x04list\"\xac\x02\n" +
+	"\x0fProductActionVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12\x16\n" +
+	"\x06imgUrl\x18\x03 \x01(\tR\x06imgUrl\x12\x1e\n" +
+	"\n" +
+	"actionType\x18\x04 \x01(\tR\n" +
+	"actionType\x12\x1e\n" +
+	"\n" +
+	"actionData\x18\x05 \x01(\tR\n" +
+	"actionData\x12\x14\n" +
+	"\x05title\x18\x06 \x01(\tR\x05title\x12%\n" +
+	"\x06status\x18\a \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\b \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\t \x01(\x03R\n" +
+	"updateTime\x12\x12\n" +
+	"\x04sort\x18\n" +
+	" \x01(\x03R\x04sort\":\n" +
+	"\x10ProductActionReq\x12&\n" +
+	"\x02vo\x18\x01 \x01(\v2\x16.gorpc.ProductActionVoR\x02vo\"\xa3\x01\n" +
+	"\x14ProductActionListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12&\n" +
+	"\x02vo\x18\x02 \x01(\v2\x16.gorpc.ProductActionVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"Y\n" +
+	"\x15ProductActionListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12*\n" +
+	"\x04list\x18\x02 \x03(\v2\x16.gorpc.ProductActionVoR\x04list\"\xb6\x02\n" +
+	"\vAreaParamVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12\x12\n" +
+	"\x04name\x18\x03 \x01(\tR\x04name\x12\x14\n" +
+	"\x05areas\x18\x04 \x01(\tR\x05areas\x12\x1e\n" +
+	"\n" +
+	"paramValue\x18\x05 \x01(\tR\n" +
+	"paramValue\x12%\n" +
+	"\x06status\x18\x06 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x12\n" +
+	"\x04sort\x18\a \x01(\x03R\x04sort\x12\x16\n" +
+	"\x06remark\x18\b \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\t \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\n" +
+	" \x01(\x03R\n" +
+	"updateTime\x12\x18\n" +
+	"\aversion\x18\v \x01(\tR\aversion\"\x9b\x01\n" +
+	"\x10AreaParamListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12\"\n" +
+	"\x02vo\x18\x02 \x01(\v2\x12.gorpc.AreaParamVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"Q\n" +
+	"\x11AreaParamListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12&\n" +
+	"\x04list\x18\x02 \x03(\v2\x12.gorpc.AreaParamVoR\x04list\"\x87\x02\n" +
+	"\x12NationalLanguageVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x16\n" +
+	"\x06tbName\x18\x02 \x01(\tR\x06tbName\x12\x18\n" +
+	"\atbRowId\x18\x03 \x01(\x03R\atbRowId\x12 \n" +
+	"\vtbFieldName\x18\x04 \x01(\tR\vtbFieldName\x12\x10\n" +
+	"\x03lan\x18\x05 \x01(\tR\x03lan\x12\x14\n" +
+	"\x05value\x18\x06 \x01(\tR\x05value\x12%\n" +
+	"\x06status\x18\a \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\b \x01(\x03R\n" +
+	"updateTime\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\t \x01(\x03R\n" +
+	"createTime\"\x85\x01\n" +
+	"\x17NationalLanguageListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12)\n" +
+	"\x02vo\x18\x02 \x01(\v2\x19.gorpc.NationalLanguageVoR\x02vo\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x03 \x03(\x03R\n" +
+	"excludeIds\"_\n" +
+	"\x18NationalLanguageListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12-\n" +
+	"\x04list\x18\x02 \x03(\v2\x19.gorpc.NationalLanguageVoR\x04list\"\xb6\x02\n" +
+	"\x05TipVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12\x1a\n" +
+	"\bparamKey\x18\x03 \x01(\tR\bparamKey\x12\x1e\n" +
+	"\n" +
+	"paramValue\x18\x04 \x01(\tR\n" +
+	"paramValue\x12\x12\n" +
+	"\x04code\x18\x05 \x01(\tR\x04code\x12\x1a\n" +
+	"\bshowType\x18\x06 \x01(\x03R\bshowType\x12\x12\n" +
+	"\x04sort\x18\a \x01(\x03R\x04sort\x12\x16\n" +
+	"\x06remark\x18\b \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\t \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\n" +
+	" \x01(\x03R\n" +
+	"updateTime\x12#\n" +
+	"\x05i18ns\x18\v \x03(\v2\r.gorpc.I18nVoR\x05i18ns\"=\n" +
+	"\tTipGetReq\x12\x1c\n" +
+	"\x02vo\x18\x01 \x01(\v2\f.gorpc.TipVoR\x02vo\x12\x12\n" +
+	"\x04lang\x18\x02 \x01(\tR\x04lang\"\x8f\x01\n" +
+	"\n" +
+	"TipListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12\x1c\n" +
+	"\x02vo\x18\x02 \x01(\v2\f.gorpc.TipVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"E\n" +
+	"\vTipListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12 \n" +
+	"\x04list\x18\x02 \x03(\v2\f.gorpc.TipVoR\x04list\"\xd5\x02\n" +
+	"\x06DictVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12\x1a\n" +
+	"\bparentId\x18\x03 \x01(\x03R\bparentId\x12\x1a\n" +
+	"\bdataType\x18\x04 \x01(\tR\bdataType\x12\x12\n" +
+	"\x04name\x18\x05 \x01(\tR\x04name\x12\x18\n" +
+	"\apayload\x18\x06 \x01(\tR\apayload\x12\x12\n" +
+	"\x04sort\x18\a \x01(\x03R\x04sort\x12%\n" +
+	"\x06status\x18\b \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\t \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\n" +
+	" \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\v \x01(\x03R\n" +
+	"updateTime\x12 \n" +
+	"\vpayloadJson\x18\f \x01(\tR\vpayloadJson\"+\n" +
+	"\n" +
+	"DictGetReq\x12\x1d\n" +
+	"\x02vo\x18\x01 \x01(\v2\r.gorpc.DictVoR\x02vo\"\x91\x01\n" +
+	"\vDictListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12\x1d\n" +
+	"\x02vo\x18\x02 \x01(\v2\r.gorpc.DictVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"G\n" +
+	"\fDictListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12!\n" +
+	"\x04list\x18\x02 \x03(\v2\r.gorpc.DictVoR\x04list\"\xed\x01\n" +
+	"\x10UpgradePkgPlanVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12\x14\n" +
+	"\x05areas\x18\x03 \x01(\tR\x05areas\x12\x12\n" +
+	"\x04sort\x18\x04 \x01(\x03R\x04sort\x12%\n" +
+	"\x06status\x18\x05 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\x06 \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\a \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\b \x01(\x03R\n" +
+	"updateTime\"\xa5\x01\n" +
+	"\x15UpgradePkgPlanListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12'\n" +
+	"\x02vo\x18\x02 \x01(\v2\x17.gorpc.UpgradePkgPlanVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"[\n" +
+	"\x16UpgradePkgPlanListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12+\n" +
+	"\x04list\x18\x02 \x03(\v2\x17.gorpc.UpgradePkgPlanVoR\x04list\"\xb9\x04\n" +
+	"\x16UpgradePkgPlanDetailVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x16\n" +
+	"\x06planId\x18\x02 \x01(\x03R\x06planId\x12\x1a\n" +
+	"\bplatform\x18\x03 \x01(\tR\bplatform\x12\x18\n" +
+	"\achannel\x18\x04 \x01(\tR\achannel\x12\x12\n" +
+	"\x04name\x18\x05 \x01(\tR\x04name\x12\x10\n" +
+	"\x03ver\x18\x06 \x01(\x03R\x03ver\x12\x10\n" +
+	"\x03url\x18\a \x01(\tR\x03url\x12\x1e\n" +
+	"\n" +
+	"websiteUrl\x18\b \x01(\tR\n" +
+	"websiteUrl\x12\x1c\n" +
+	"\tdirectUrl\x18\t \x01(\tR\tdirectUrl\x12\x10\n" +
+	"\x03md5\x18\n" +
+	" \x01(\tR\x03md5\x12\x12\n" +
+	"\x04info\x18\v \x01(\tR\x04info\x128\n" +
+	"\x17testUpgradePolicyConfig\x18\f \x01(\tR\x17testUpgradePolicyConfig\x120\n" +
+	"\x13upgradePolicyConfig\x18\r \x01(\tR\x13upgradePolicyConfig\x12:\n" +
+	"\x18forceUpgradePolicyConfig\x18\x0e \x01(\tR\x18forceUpgradePolicyConfig\x12%\n" +
+	"\x06status\x18\x0f \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\x10 \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x11 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x12 \x01(\x03R\n" +
+	"updateTime\"\x87\x01\n" +
+	"\x1bUpgradePkgPlanDetailListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12-\n" +
+	"\x02vo\x18\x02 \x01(\v2\x1d.gorpc.UpgradePkgPlanDetailVoR\x02vo\x12\x18\n" +
+	"\aplanIds\x18\x03 \x03(\x03R\aplanIds\"g\n" +
+	"\x1cUpgradePkgPlanDetailListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x121\n" +
+	"\x04list\x18\x02 \x03(\v2\x1d.gorpc.UpgradePkgPlanDetailVoR\x04list\"\xed\x01\n" +
+	"\x10UpgradeResPlanVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12\x14\n" +
+	"\x05areas\x18\x03 \x01(\tR\x05areas\x12\x12\n" +
+	"\x04sort\x18\x04 \x01(\x03R\x04sort\x12%\n" +
+	"\x06status\x18\x05 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\x06 \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\a \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\b \x01(\x03R\n" +
+	"updateTime\"\xa5\x01\n" +
+	"\x15UpgradeResPlanListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12'\n" +
+	"\x02vo\x18\x02 \x01(\v2\x17.gorpc.UpgradeResPlanVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"[\n" +
+	"\x16UpgradeResPlanListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12+\n" +
+	"\x04list\x18\x02 \x03(\v2\x17.gorpc.UpgradeResPlanVoR\x04list\"\x8f\x04\n" +
+	"\x16UpgradeResPlanDetailVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x16\n" +
+	"\x06planId\x18\x02 \x01(\x03R\x06planId\x12\x1a\n" +
+	"\bplatform\x18\x03 \x01(\tR\bplatform\x12\x18\n" +
+	"\achannel\x18\x04 \x01(\tR\achannel\x12\x12\n" +
+	"\x04name\x18\x05 \x01(\tR\x04name\x12\x10\n" +
+	"\x03ver\x18\x06 \x01(\x03R\x03ver\x12\x10\n" +
+	"\x03url\x18\a \x01(\tR\x03url\x12\x12\n" +
+	"\x04info\x18\b \x01(\tR\x04info\x12\x10\n" +
+	"\x03md5\x18\t \x01(\tR\x03md5\x12\x12\n" +
+	"\x04size\x18\n" +
+	" \x01(\x03R\x04size\x128\n" +
+	"\x17testUpgradePolicyConfig\x18\v \x01(\tR\x17testUpgradePolicyConfig\x120\n" +
+	"\x13upgradePolicyConfig\x18\f \x01(\tR\x13upgradePolicyConfig\x12:\n" +
+	"\x18forceUpgradePolicyConfig\x18\r \x01(\tR\x18forceUpgradePolicyConfig\x12%\n" +
+	"\x06status\x18\x0e \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\x0f \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x10 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x11 \x01(\x03R\n" +
+	"updateTime\"\x87\x01\n" +
+	"\x1bUpgradeResPlanDetailListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12-\n" +
+	"\x02vo\x18\x02 \x01(\v2\x1d.gorpc.UpgradeResPlanDetailVoR\x02vo\x12\x18\n" +
+	"\aplanIds\x18\x03 \x03(\x03R\aplanIds\"g\n" +
+	"\x1cUpgradeResPlanDetailListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x121\n" +
+	"\x04list\x18\x02 \x03(\v2\x1d.gorpc.UpgradeResPlanDetailVoR\x04list\"\xfd\x01\n" +
+	"\bAdPlanVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12\x14\n" +
+	"\x05areas\x18\x03 \x01(\tR\x05areas\x12\x16\n" +
+	"\x06config\x18\x04 \x01(\tR\x06config\x12\x12\n" +
+	"\x04sort\x18\x05 \x01(\x03R\x04sort\x12%\n" +
+	"\x06status\x18\x06 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\a \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\b \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\t \x01(\x03R\n" +
+	"updateTime\"\x95\x01\n" +
+	"\rAdPlanListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12\x1f\n" +
+	"\x02vo\x18\x02 \x01(\v2\x0f.gorpc.AdPlanVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"K\n" +
+	"\x0eAdPlanListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12#\n" +
+	"\x04list\x18\x02 \x03(\v2\x0f.gorpc.AdPlanVoR\x04list\"\x9f\x03\n" +
+	"\x0eAdPlanDetailVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x16\n" +
+	"\x06planId\x18\x02 \x01(\x03R\x06planId\x12\x1e\n" +
+	"\n" +
+	"adPlatform\x18\x03 \x01(\tR\n" +
+	"adPlatform\x12\x16\n" +
+	"\x06adType\x18\x04 \x01(\tR\x06adType\x12\x16\n" +
+	"\x06adSlot\x18\x05 \x01(\tR\x06adSlot\x12\x18\n" +
+	"\aadDatas\x18\x06 \x01(\tR\aadDatas\x12*\n" +
+	"\x10testPolicyConfig\x18\a \x01(\tR\x10testPolicyConfig\x12\"\n" +
+	"\fpolicyConfig\x18\b \x01(\tR\fpolicyConfig\x12\x12\n" +
+	"\x04sort\x18\t \x01(\x03R\x04sort\x12%\n" +
+	"\x06status\x18\n" +
+	" \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\v \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\f \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\r \x01(\x03R\n" +
+	"updateTime\x12\x18\n" +
+	"\aversion\x18\x0e \x01(\tR\aversion\"w\n" +
+	"\x13AdPlanDetailListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12%\n" +
+	"\x02vo\x18\x02 \x01(\v2\x15.gorpc.AdPlanDetailVoR\x02vo\x12\x18\n" +
+	"\aplanIds\x18\x03 \x03(\x03R\aplanIds\"W\n" +
+	"\x14AdPlanDetailListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12)\n" +
+	"\x04list\x18\x02 \x03(\v2\x15.gorpc.AdPlanDetailVoR\x04list\"\xba\x01\n" +
+	"\x10AdGlobalConfigVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12\x1c\n" +
+	"\tplatforms\x18\x03 \x01(\tR\tplatforms\x12\x16\n" +
+	"\x06remark\x18\x04 \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x05 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x06 \x01(\x03R\n" +
+	"updateTime\"8\n" +
+	"\x14AdGlobalConfigGetReq\x12 \n" +
+	"\vproductCode\x18\x01 \x01(\tR\vproductCode\"\x98\x04\n" +
+	"\n" +
+	"JobBatchVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" +
+	"\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n" +
+	"\x04type\x18\x03 \x01(\tR\x04type\x12\x1e\n" +
+	"\n" +
+	"initParams\x18\x04 \x01(\tR\n" +
+	"initParams\x12 \n" +
+	"\vcontextData\x18\x05 \x01(\tR\vcontextData\x12\"\n" +
+	"\fbeginHandler\x18\x06 \x01(\tR\fbeginHandler\x12\"\n" +
+	"\fafterHandler\x18\a \x01(\tR\fafterHandler\x12 \n" +
+	"\vconcurrency\x18\b \x01(\x03R\vconcurrency\x12 \n" +
+	"\vretryPolicy\x18\t \x01(\tR\vretryPolicy\x12 \n" +
+	"\vstartedTime\x18\n" +
+	" \x01(\x03R\vstartedTime\x12\"\n" +
+	"\ffinishedTime\x18\v \x01(\x03R\ffinishedTime\x12\x16\n" +
+	"\x06result\x18\f \x01(\tR\x06result\x12\x16\n" +
+	"\x06status\x18\r \x01(\tR\x06status\x12\x16\n" +
+	"\x06remark\x18\x0e \x01(\tR\x06remark\x12\x1a\n" +
+	"\bcreateAt\x18\x0f \x01(\x03R\bcreateAt\x12\x1a\n" +
+	"\bupdateAt\x18\x10 \x01(\x03R\bupdateAt\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x11 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x12 \x01(\x03R\n" +
+	"updateTime\"s\n" +
+	"\x13JobBatchWithTasksVo\x12-\n" +
+	"\bjobBatch\x18\x01 \x01(\v2\x11.gorpc.JobBatchVoR\bjobBatch\x12-\n" +
+	"\bjobTasks\x18\x02 \x03(\v2\x11.gorpc.JobTasksVoR\bjobTasks\"3\n" +
+	"\tTimeRange\x12\x14\n" +
+	"\x05start\x18\x01 \x01(\x03R\x05start\x12\x10\n" +
+	"\x03end\x18\x02 \x01(\x03R\x03end\"\x8f\x02\n" +
+	"\x0fJobBatchListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12!\n" +
+	"\x02vo\x18\x02 \x01(\v2\x11.gorpc.JobBatchVoR\x02vo\x12<\n" +
+	"\x10startedTimeRange\x18\x03 \x01(\v2\x10.gorpc.TimeRangeR\x10startedTimeRange\x12>\n" +
+	"\x11finishedTimeRange\x18\x04 \x01(\v2\x10.gorpc.TimeRangeR\x11finishedTimeRange\x12\x1a\n" +
+	"\bstatuses\x18\x05 \x03(\tR\bstatuses\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x06 \x03(\x03R\n" +
+	"excludeIds\"O\n" +
+	"\x10JobBatchListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12%\n" +
+	"\x04list\x18\x02 \x03(\v2\x11.gorpc.JobBatchVoR\x04list\"a\n" +
+	"\x19JobBatchListWithTasksResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12.\n" +
+	"\x04list\x18\x02 \x03(\v2\x1a.gorpc.JobBatchWithTasksVoR\x04list\"\xd6\x03\n" +
+	"\n" +
+	"JobTasksVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x18\n" +
+	"\abatchId\x18\x02 \x01(\x03R\abatchId\x12\x12\n" +
+	"\x04name\x18\x03 \x01(\tR\x04name\x12\x1e\n" +
+	"\n" +
+	"initParams\x18\x04 \x01(\tR\n" +
+	"initParams\x12 \n" +
+	"\vruntimeData\x18\x05 \x01(\tR\vruntimeData\x12\"\n" +
+	"\fexternalRefs\x18\x06 \x01(\tR\fexternalRefs\x12 \n" +
+	"\vstartedTime\x18\a \x01(\x03R\vstartedTime\x12\"\n" +
+	"\ffinishedTime\x18\b \x01(\x03R\ffinishedTime\x12\x1e\n" +
+	"\n" +
+	"retryCount\x18\t \x01(\x03R\n" +
+	"retryCount\x12\x16\n" +
+	"\x06result\x18\n" +
+	" \x01(\tR\x06result\x12\x16\n" +
+	"\x06status\x18\v \x01(\tR\x06status\x12\x16\n" +
+	"\x06remark\x18\f \x01(\tR\x06remark\x12\x1a\n" +
+	"\bcreateAt\x18\r \x01(\x03R\bcreateAt\x12\x1a\n" +
+	"\bupdateAt\x18\x0e \x01(\x03R\bupdateAt\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x0f \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x10 \x01(\x03R\n" +
+	"updateTime\"\x8f\x02\n" +
+	"\x0fJobTasksListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12!\n" +
+	"\x02vo\x18\x02 \x01(\v2\x11.gorpc.JobTasksVoR\x02vo\x12<\n" +
+	"\x10startedTimeRange\x18\x03 \x01(\v2\x10.gorpc.TimeRangeR\x10startedTimeRange\x12>\n" +
+	"\x11finishedTimeRange\x18\x04 \x01(\v2\x10.gorpc.TimeRangeR\x11finishedTimeRange\x12\x1a\n" +
+	"\bstatuses\x18\x05 \x03(\tR\bstatuses\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x06 \x03(\x03R\n" +
+	"excludeIds\"O\n" +
+	"\x10JobTasksListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12%\n" +
+	"\x04list\x18\x02 \x03(\v2\x11.gorpc.JobTasksVoR\x04list\"\xdb\x01\n" +
+	"\x0eDeployConfigVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" +
+	"\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n" +
+	"\x04type\x18\x03 \x01(\tR\x04type\x12\x12\n" +
+	"\x04data\x18\x04 \x01(\tR\x04data\x12%\n" +
+	"\x06status\x18\x05 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\x06 \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\a \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\b \x01(\x03R\n" +
+	"updateTime\"}\n" +
+	"\x13DeployConfigListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12%\n" +
+	"\x02vo\x18\x02 \x01(\v2\x15.gorpc.DeployConfigVoR\x02vo\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x03 \x03(\x03R\n" +
+	"excludeIds\"W\n" +
+	"\x14DeployConfigListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12)\n" +
+	"\x04list\x18\x02 \x03(\v2\x15.gorpc.DeployConfigVoR\x04list\"\x80\x02\n" +
+	"\x0eOperationLogVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x1c\n" +
+	"\tsysUserId\x18\x02 \x01(\x03R\tsysUserId\x12 \n" +
+	"\vproductCode\x18\x03 \x01(\tR\vproductCode\x12\x14\n" +
+	"\x05model\x18\x04 \x01(\tR\x05model\x12\x16\n" +
+	"\x06action\x18\x05 \x01(\tR\x06action\x12\x18\n" +
+	"\adetails\x18\x06 \x01(\tR\adetails\x12\x16\n" +
+	"\x06result\x18\a \x01(\tR\x06result\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\b \x01(\x03R\n" +
+	"updateTime\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\t \x01(\x03R\n" +
+	"createTime\"\xa1\x01\n" +
+	"\x13OperationLogListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12%\n" +
+	"\x02vo\x18\x02 \x01(\v2\x15.gorpc.OperationLogVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"W\n" +
+	"\x14OperationLogListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12)\n" +
+	"\x04list\x18\x02 \x03(\v2\x15.gorpc.OperationLogVoR\x04list\"\xeb\x01\n" +
+	"\x0eAnnouncePlanVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12\x14\n" +
+	"\x05areas\x18\x03 \x01(\tR\x05areas\x12\x12\n" +
+	"\x04sort\x18\x04 \x01(\x03R\x04sort\x12%\n" +
+	"\x06status\x18\x05 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\x06 \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\a \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\b \x01(\x03R\n" +
+	"updateTime\"\xa1\x01\n" +
+	"\x13AnnouncePlanListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12%\n" +
+	"\x02vo\x18\x02 \x01(\v2\x15.gorpc.AnnouncePlanVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"W\n" +
+	"\x14AnnouncePlanListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12)\n" +
+	"\x04list\x18\x02 \x03(\v2\x15.gorpc.AnnouncePlanVoR\x04list\"\xc3\x03\n" +
+	"\x14AnnouncePlanDetailVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x16\n" +
+	"\x06planId\x18\x02 \x01(\x03R\x06planId\x12\x1c\n" +
+	"\tplatforms\x18\x03 \x01(\tR\tplatforms\x12\x1a\n" +
+	"\bchannels\x18\x04 \x01(\tR\bchannels\x12\x12\n" +
+	"\x04icon\x18\x05 \x01(\tR\x04icon\x12\x14\n" +
+	"\x05title\x18\x06 \x01(\tR\x05title\x12\x18\n" +
+	"\acontent\x18\a \x01(\tR\acontent\x12\x10\n" +
+	"\x03url\x18\b \x01(\tR\x03url\x12\x1e\n" +
+	"\n" +
+	"buttonText\x18\t \x01(\tR\n" +
+	"buttonText\x12\x1c\n" +
+	"\tcloseable\x18\n" +
+	" \x01(\x03R\tcloseable\x12\x12\n" +
+	"\x04sort\x18\v \x01(\x03R\x04sort\x12\"\n" +
+	"\fpolicyConfig\x18\f \x01(\tR\fpolicyConfig\x12%\n" +
+	"\x06status\x18\r \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\x0e \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x0f \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x10 \x01(\x03R\n" +
+	"updateTime\"\x83\x01\n" +
+	"\x19AnnouncePlanDetailListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12+\n" +
+	"\x02vo\x18\x02 \x01(\v2\x1b.gorpc.AnnouncePlanDetailVoR\x02vo\x12\x18\n" +
+	"\aplanIds\x18\x03 \x03(\x03R\aplanIds\"c\n" +
+	"\x1aAnnouncePlanDetailListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12/\n" +
+	"\x04list\x18\x02 \x03(\v2\x1b.gorpc.AnnouncePlanDetailVoR\x04list\"\xc1\x02\n" +
+	"\x0eServiceTypesVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12\x12\n" +
+	"\x04name\x18\x03 \x01(\tR\x04name\x12\x1c\n" +
+	"\tuserLevel\x18\x04 \x01(\x03R\tuserLevel\x12 \n" +
+	"\vdeviceLimit\x18\x05 \x01(\x03R\vdeviceLimit\x12\x12\n" +
+	"\x04sort\x18\x06 \x01(\x03R\x04sort\x12\x16\n" +
+	"\x06config\x18\a \x01(\tR\x06config\x12%\n" +
+	"\x06status\x18\b \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\t \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\n" +
+	" \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\v \x01(\x03R\n" +
+	"updateTime\"$\n" +
+	"\x12ServiceTypesGetReq\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\"\xa1\x01\n" +
+	"\x13ServiceTypesListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12%\n" +
+	"\x02vo\x18\x02 \x01(\v2\x15.gorpc.ServiceTypesVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"W\n" +
+	"\x14ServiceTypesListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12)\n" +
+	"\x04list\x18\x02 \x03(\v2\x15.gorpc.ServiceTypesVoR\x04list\";\n" +
+	"\x12ServiceTypesAddReq\x12%\n" +
+	"\x02vo\x18\x01 \x01(\v2\x15.gorpc.ServiceTypesVoR\x02vo\">\n" +
+	"\x15ServiceTypesUpdateReq\x12%\n" +
+	"\x02vo\x18\x01 \x01(\v2\x15.gorpc.ServiceTypesVoR\x02vo\"$\n" +
+	"\x12ServiceTypesDelReq\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\"\xb8\x06\n" +
+	"\rServiceSetsVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12$\n" +
+	"\rserviceTypeId\x18\x03 \x01(\x03R\rserviceTypeId\x12\x12\n" +
+	"\x04name\x18\x04 \x01(\tR\x04name\x12 \n" +
+	"\vlicenseDays\x18\x05 \x01(\x03R\vlicenseDays\x12\x18\n" +
+	"\achannel\x18\x06 \x01(\tR\achannel\x12$\n" +
+	"\rchannelItemId\x18\a \x01(\tR\rchannelItemId\x124\n" +
+	"\x15refPortalServiceSetId\x18\b \x01(\x03R\x15refPortalServiceSetId\x12.\n" +
+	"\x12appleChannelItemId\x18\t \x01(\tR\x12appleChannelItemId\x120\n" +
+	"\x13googleChannelItemId\x18\n" +
+	" \x01(\tR\x13googleChannelItemId\x12\x14\n" +
+	"\x05title\x18\v \x01(\tR\x05title\x12\x1a\n" +
+	"\bsubTitle\x18\f \x01(\tR\bsubTitle\x12\x1c\n" +
+	"\tintroduce\x18\r \x01(\tR\tintroduce\x12\x1a\n" +
+	"\borgPrice\x18\x0e \x01(\x02R\borgPrice\x12\x14\n" +
+	"\x05price\x18\x0f \x01(\x02R\x05price\x12(\n" +
+	"\adisplay\x18\x10 \x01(\x0e2\x0e.gorpc.BoolIntR\adisplay\x12,\n" +
+	"\tisDefault\x18\x11 \x01(\x0e2\x0e.gorpc.BoolIntR\tisDefault\x12,\n" +
+	"\trecommend\x18\x12 \x01(\x0e2\x0e.gorpc.BoolIntR\trecommend\x12&\n" +
+	"\x06hidden\x18\x13 \x01(\x0e2\x0e.gorpc.BoolIntR\x06hidden\x12\x12\n" +
+	"\x04sort\x18\x14 \x01(\x03R\x04sort\x12%\n" +
+	"\x06status\x18\x15 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\x16 \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x17 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x18 \x01(\x03R\n" +
+	"updateTime\"#\n" +
+	"\x11ServiceSetsGetReq\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\"\xc7\x01\n" +
+	"\x12ServiceSetsListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12$\n" +
+	"\x02vo\x18\x02 \x01(\v2\x14.gorpc.ServiceSetsVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12&\n" +
+	"\x0eserviceTypeIds\x18\x04 \x03(\x03R\x0eserviceTypeIds\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x05 \x03(\x03R\n" +
+	"excludeIds\"U\n" +
+	"\x13ServiceSetsListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12(\n" +
+	"\x04list\x18\x02 \x03(\v2\x14.gorpc.ServiceSetsVoR\x04list\"9\n" +
+	"\x11ServiceSetsAddReq\x12$\n" +
+	"\x02vo\x18\x01 \x01(\v2\x14.gorpc.ServiceSetsVoR\x02vo\"<\n" +
+	"\x14ServiceSetsUpdateReq\x12$\n" +
+	"\x02vo\x18\x01 \x01(\v2\x14.gorpc.ServiceSetsVoR\x02vo\"#\n" +
+	"\x11ServiceSetsDelReq\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\"\xa9\x03\n" +
+	"\rMessagePushVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x16\n" +
+	"\x06status\x18\x02 \x01(\tR\x06status\x12\x1a\n" +
+	"\boperator\x18\x03 \x01(\x03R\boperator\x12\x16\n" +
+	"\x06module\x18\x04 \x01(\tR\x06module\x12\x14\n" +
+	"\x05title\x18\x05 \x01(\tR\x05title\x12\x18\n" +
+	"\amessage\x18\x06 \x01(\tR\amessage\x12\x16\n" +
+	"\x06imgUrl\x18\a \x01(\tR\x06imgUrl\x12\x12\n" +
+	"\x04data\x18\b \x01(\tR\x04data\x12 \n" +
+	"\vproductCode\x18\t \x01(\tR\vproductCode\x12\x1c\n" +
+	"\tareaParam\x18\n" +
+	" \x01(\x03R\tareaParam\x12\x16\n" +
+	"\x06topics\x18\v \x03(\tR\x06topics\x12&\n" +
+	"\x0efirebaseTokens\x18\f \x03(\tR\x0efirebaseTokens\x12 \n" +
+	"\vpublishTime\x18\r \x01(\x03R\vpublishTime\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x0e \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x0f \x01(\x03R\n" +
+	"updateTime\"[\n" +
+	"\x12MessagePushListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12$\n" +
+	"\x02vo\x18\x02 \x01(\v2\x14.gorpc.MessagePushVoR\x02vo\"U\n" +
+	"\x13MessagePushListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12(\n" +
+	"\x04list\x18\x02 \x03(\v2\x14.gorpc.MessagePushVoR\x04list\"\xb8\x02\n" +
+	"\x13ShortDramaEpisodeVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x18\n" +
+	"\adramaId\x18\x02 \x01(\x03R\adramaId\x12\x12\n" +
+	"\x04type\x18\x03 \x01(\x03R\x04type\x12\x12\n" +
+	"\x04name\x18\x04 \x01(\tR\x04name\x12\x12\n" +
+	"\x04sort\x18\x05 \x01(\x03R\x04sort\x12\x16\n" +
+	"\x06videos\x18\x06 \x01(\tR\x06videos\x12\x1c\n" +
+	"\tsubtitles\x18\a \x01(\tR\tsubtitles\x12%\n" +
+	"\x06status\x18\b \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\t \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\n" +
+	" \x01(\x03R\n" +
+	"updateTime\x12\x1e\n" +
+	"\n" +
+	"danmakuUrl\x18\v \x01(\tR\n" +
+	"danmakuUrl\"E\n" +
+	"\x17ShortDramaEpisodeGetReq\x12*\n" +
+	"\x02vo\x18\x01 \x01(\v2\x1a.gorpc.ShortDramaEpisodeVoR\x02vo\"\x83\x01\n" +
+	"\x18ShortDramaEpisodeListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12*\n" +
+	"\x02vo\x18\x02 \x01(\v2\x1a.gorpc.ShortDramaEpisodeVoR\x02vo\x12\x1a\n" +
+	"\bdramaIds\x18\x03 \x03(\x03R\bdramaIds\"a\n" +
+	"\x19ShortDramaEpisodeListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12.\n" +
+	"\x04list\x18\x02 \x03(\v2\x1a.gorpc.ShortDramaEpisodeVoR\x04list\"p\n" +
+	"\x1cShortDramaEpisodeBatchAddReq\x12\x18\n" +
+	"\adramaId\x18\x01 \x01(\x03R\adramaId\x126\n" +
+	"\bepisodes\x18\x02 \x03(\v2\x1a.gorpc.ShortDramaEpisodeVoR\bepisodes\"F\n" +
+	"*ShortDramaEpisodeBatchRefreshUpdateTimeReq\x12\x18\n" +
+	"\adramaId\x18\x01 \x01(\x03R\adramaId\"\x94\x02\n" +
+	"\x14ShortDramaLanguageVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x18\n" +
+	"\adramaId\x18\x02 \x01(\x03R\adramaId\x12\x12\n" +
+	"\x04lang\x18\x03 \x01(\tR\x04lang\x12\x14\n" +
+	"\x05title\x18\x04 \x01(\tR\x05title\x12 \n" +
+	"\vdescription\x18\x05 \x01(\tR\vdescription\x12\x16\n" +
+	"\x06covers\x18\x06 \x01(\tR\x06covers\x12.\n" +
+	"\x12coverDominantColor\x18\a \x01(\tR\x12coverDominantColor\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\b \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\t \x01(\x03R\n" +
+	"updateTime\"\xfb\a\n" +
+	"\fShortDramaVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\"\n" +
+	"\fproductCodes\x18\x02 \x01(\tR\fproductCodes\x12\x14\n" +
+	"\x05title\x18\x03 \x01(\tR\x05title\x12 \n" +
+	"\vdescription\x18\x04 \x01(\tR\vdescription\x12\x16\n" +
+	"\x06covers\x18\x05 \x01(\tR\x06covers\x12.\n" +
+	"\x12coverDominantColor\x18\x06 \x01(\tR\x12coverDominantColor\x12\x12\n" +
+	"\x04type\x18\a \x01(\tR\x04type\x12\x12\n" +
+	"\x04tags\x18\b \x01(\tR\x04tags\x12&\n" +
+	"\x0ereleaseRegions\x18\t \x01(\tR\x0ereleaseRegions\x12 \n" +
+	"\vreleaseDate\x18\n" +
+	" \x01(\x03R\vreleaseDate\x12$\n" +
+	"\rtotalEpisodes\x18\v \x01(\x03R\rtotalEpisodes\x12(\n" +
+	"\x0fcompletedStatus\x18\f \x01(\x03R\x0fcompletedStatus\x12,\n" +
+	"\x11copyrightSupplier\x18\r \x01(\tR\x11copyrightSupplier\x12\"\n" +
+	"\fcopyrightDoc\x18\x0e \x01(\tR\fcopyrightDoc\x124\n" +
+	"\x15copyrightPurchaseDate\x18\x0f \x01(\x03R\x15copyrightPurchaseDate\x120\n" +
+	"\x13copyrightExpireDate\x18\x10 \x01(\x03R\x13copyrightExpireDate\x12\x16\n" +
+	"\x06status\x18\x11 \x01(\x03R\x06status\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x12 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x13 \x01(\x03R\n" +
+	"updateTime\x12\x1e\n" +
+	"\n" +
+	"ghostCutId\x18\x14 \x01(\tR\n" +
+	"ghostCutId\x12\x1c\n" +
+	"\trecommend\x18\x15 \x01(\x03R\trecommend\x12 \n" +
+	"\votherConfig\x18\x16 \x01(\tR\votherConfig\x12M\n" +
+	"\x13shortDramaLanguages\x18\x17 \x03(\v2\x1b.gorpc.ShortDramaLanguageVoR\x13shortDramaLanguages\x12*\n" +
+	"\x10mainEpisodeCount\x18\x18 \x01(\x03R\x10mainEpisodeCount\x120\n" +
+	"\x13trailerEpisodeCount\x18\x19 \x01(\x03R\x13trailerEpisodeCount\x12 \n" +
+	"\vcopyrightId\x18\x1a \x01(\x03R\vcopyrightId\x12\x18\n" +
+	"\acreator\x18\x1b \x01(\x03R\acreator\x12\x1a\n" +
+	"\bmodifier\x18\x1c \x01(\x03R\bmodifier\"\x8f\x01\n" +
+	"\x10ShortDramaGetReq\x12#\n" +
+	"\x02vo\x18\x01 \x01(\v2\x13.gorpc.ShortDramaVoR\x02vo\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12 \n" +
+	"\vcountryCode\x18\x03 \x01(\tR\vcountryCode\x12\x12\n" +
+	"\x04lang\x18\x04 \x01(\tR\x04lang\"\xd1\x01\n" +
+	"\x11ShortDramaListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12#\n" +
+	"\x02vo\x18\x02 \x01(\v2\x13.gorpc.ShortDramaVoR\x02vo\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x03 \x03(\x03R\n" +
+	"excludeIds\x12 \n" +
+	"\vproductCode\x18\x04 \x01(\tR\vproductCode\x12 \n" +
+	"\vcountryCode\x18\x05 \x01(\tR\vcountryCode\x12\x12\n" +
+	"\x04lang\x18\x06 \x01(\tR\x04lang\"S\n" +
+	"\x12ShortDramaListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12'\n" +
+	"\x04list\x18\x02 \x03(\v2\x13.gorpc.ShortDramaVoR\x04list\"i\n" +
+	"\x19ShortDramaLanguageListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12+\n" +
+	"\x02vo\x18\x02 \x01(\v2\x1b.gorpc.ShortDramaLanguageVoR\x02vo\"c\n" +
+	"\x1aShortDramaLanguageListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12/\n" +
+	"\x04list\x18\x02 \x03(\v2\x1b.gorpc.ShortDramaLanguageVoR\x04list\"X\n" +
+	"\x18ShortDramaEpisodeCountVo\x12\x18\n" +
+	"\adramaId\x18\x01 \x01(\x03R\adramaId\x12\"\n" +
+	"\fepisodeCount\x18\x02 \x01(\x03R\fepisodeCount\"\x93\x01\n" +
+	"\x19ShortDramaEpisodeCountReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12%\n" +
+	"\x06status\x18\x02 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x12\n" +
+	"\x04type\x18\x03 \x01(\x03R\x04type\x12\x1a\n" +
+	"\bdramaIds\x18\x04 \x03(\x03R\bdramaIds\"g\n" +
+	"\x1aShortDramaEpisodeCountResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x123\n" +
+	"\x04list\x18\x02 \x03(\v2\x1f.gorpc.ShortDramaEpisodeCountVoR\x04list\">\n" +
+	"\x16ShortDramaCheckNameReq\x12\x14\n" +
+	"\x05title\x18\x01 \x01(\tR\x05title\x12\x0e\n" +
+	"\x02id\x18\x02 \x01(\x03R\x02id\"1\n" +
+	"\x17ShortDramaCheckNameResp\x12\x16\n" +
+	"\x06exists\x18\x01 \x01(\bR\x06exists\"I\n" +
+	"\x1bShortDramaUpdateModifierReq\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x1a\n" +
+	"\bmodifier\x18\x02 \x01(\x03R\bmodifier\"\xc4\x01\n" +
+	"\x10SetTotalStatsReq\x12\x18\n" +
+	"\adramaId\x18\x01 \x01(\x03R\adramaId\x12\x18\n" +
+	"\acountry\x18\x02 \x01(\tR\acountry\x12&\n" +
+	"\x0etodayPlayCount\x18\x03 \x01(\x03R\x0etodayPlayCount\x12(\n" +
+	"\x0fweeklyPlayCount\x18\x04 \x01(\x03R\x0fweeklyPlayCount\x12*\n" +
+	"\x10monthlyPlayCount\x18\x05 \x01(\x03R\x10monthlyPlayCount\"\x9f\x02\n" +
+	"\x1bShortDramaStatsPlaysTotalVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x18\n" +
+	"\adramaId\x18\x02 \x01(\x03R\adramaId\x12\x18\n" +
+	"\acountry\x18\x03 \x01(\tR\acountry\x12&\n" +
+	"\x0etodayPlayCount\x18\x04 \x01(\x03R\x0etodayPlayCount\x12(\n" +
+	"\x0fweeklyPlayCount\x18\x05 \x01(\x03R\x0fweeklyPlayCount\x12*\n" +
+	"\x10monthlyPlayCount\x18\x06 \x01(\x03R\x10monthlyPlayCount\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\a \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\b \x01(\x03R\n" +
+	"updateTime\"]\n" +
+	" ShortDramaStatsPlaysTotalListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12\x18\n" +
+	"\acountry\x18\x02 \x01(\tR\acountry\"q\n" +
+	"!ShortDramaStatsPlaysTotalListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x126\n" +
+	"\x04list\x18\x02 \x03(\v2\".gorpc.ShortDramaStatsPlaysTotalVoR\x04list\"\x86\x03\n" +
+	"\tSysUserVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x1a\n" +
+	"\busername\x18\x02 \x01(\tR\busername\x12\x1a\n" +
+	"\bpassword\x18\x03 \x01(\tR\bpassword\x12\x1a\n" +
+	"\bnickname\x18\x04 \x01(\tR\bnickname\x12\x16\n" +
+	"\x06avatar\x18\x05 \x01(\tR\x06avatar\x12\x14\n" +
+	"\x05email\x18\x06 \x01(\tR\x05email\x12\x14\n" +
+	"\x05phone\x18\a \x01(\tR\x05phone\x12\x16\n" +
+	"\x06remark\x18\b \x01(\tR\x06remark\x122\n" +
+	"\fisSuperAdmin\x18\t \x01(\x0e2\x0e.gorpc.BoolIntR\fisSuperAdmin\x12\x1e\n" +
+	"\n" +
+	"permsLevel\x18\n" +
+	" \x01(\x03R\n" +
+	"permsLevel\x12%\n" +
+	"\x06status\x18\v \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\f \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\r \x01(\x03R\n" +
+	"updateTime\"\xf0\x01\n" +
+	"\tSysRoleVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12\x12\n" +
+	"\x04name\x18\x03 \x01(\tR\x04name\x12\x16\n" +
+	"\x06remark\x18\x04 \x01(\tR\x06remark\x12%\n" +
+	"\x06status\x18\x05 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x06 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\a \x01(\x03R\n" +
+	"updateTime\x12\x1e\n" +
+	"\n" +
+	"permsLevel\x18\b \x01(\x03R\n" +
+	"permsLevel\"\xc2\x01\n" +
+	"\tSysPermVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" +
+	"\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n" +
+	"\x04code\x18\x03 \x01(\tR\x04code\x12\x16\n" +
+	"\x06remark\x18\x04 \x01(\tR\x06remark\x12%\n" +
+	"\x06status\x18\x05 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x06 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\a \x01(\x03R\n" +
+	"updateTime\"\x8f\x01\n" +
+	"\rSysUserRoleVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x16\n" +
+	"\x06userId\x18\x02 \x01(\x03R\x06userId\x12\x16\n" +
+	"\x06roleId\x18\x03 \x01(\x03R\x06roleId\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x04 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x05 \x01(\x03R\n" +
+	"updateTime\"\x8f\x01\n" +
+	"\rSysRolePermVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x16\n" +
+	"\x06roleId\x18\x02 \x01(\x03R\x06roleId\x12\x16\n" +
+	"\x06permId\x18\x03 \x01(\x03R\x06permId\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x04 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x05 \x01(\x03R\n" +
+	"updateTime\"\xa7\x01\n" +
+	"\rSysUserPermVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x16\n" +
+	"\x06userId\x18\x02 \x01(\x03R\x06userId\x12\x16\n" +
+	"\x06permId\x18\x03 \x01(\x03R\x06permId\x12\x16\n" +
+	"\x06effect\x18\x04 \x01(\tR\x06effect\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x05 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x06 \x01(\x03R\n" +
+	"updateTime\"=\n" +
+	"\vSysPermRule\x12\x16\n" +
+	"\x06permId\x18\x01 \x01(\x03R\x06permId\x12\x16\n" +
+	"\x06effect\x18\x02 \x01(\tR\x06effect\"\x92\x01\n" +
+	"\x1eSysUserWithRoleIdsAndPermRules\x12$\n" +
+	"\x04user\x18\x01 \x01(\v2\x10.gorpc.SysUserVoR\x04user\x12\x18\n" +
+	"\aroleIds\x18\x02 \x03(\x03R\aroleIds\x120\n" +
+	"\tpermRules\x18\x03 \x03(\v2\x12.gorpc.SysPermRuleR\tpermRules\"\x90\x01\n" +
+	"\x18SysUserWithRolesAndPerms\x12$\n" +
+	"\x04user\x18\x01 \x01(\v2\x10.gorpc.SysUserVoR\x04user\x12&\n" +
+	"\x05roles\x18\x02 \x03(\v2\x10.gorpc.SysRoleVoR\x05roles\x12&\n" +
+	"\x05perms\x18\x03 \x03(\v2\x10.gorpc.SysPermVoR\x05perms\"1\n" +
+	"\rSysUserGetReq\x12 \n" +
+	"\x02vo\x18\x01 \x01(\v2\x10.gorpc.SysUserVoR\x02vo\"s\n" +
+	"\x0eSysUserListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12 \n" +
+	"\x02vo\x18\x02 \x01(\v2\x10.gorpc.SysUserVoR\x02vo\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x03 \x03(\x03R\n" +
+	"excludeIds\"M\n" +
+	"\x0fSysUserListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12$\n" +
+	"\x04list\x18\x02 \x03(\v2\x10.gorpc.SysUserVoR\x04list\"m\n" +
+	" SysUserListWithRolesAndPermsResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x123\n" +
+	"\x04list\x18\x02 \x03(\v2\x1f.gorpc.SysUserWithRolesAndPermsR\x04list\"T\n" +
+	"\x12SysRoleWithPermIds\x12$\n" +
+	"\x04role\x18\x01 \x01(\v2\x10.gorpc.SysRoleVoR\x04role\x12\x18\n" +
+	"\apermIds\x18\x02 \x03(\x03R\apermIds\"`\n" +
+	"\x10SysRoleWithPerms\x12$\n" +
+	"\x04role\x18\x01 \x01(\v2\x10.gorpc.SysRoleVoR\x04role\x12&\n" +
+	"\x05perms\x18\x02 \x03(\v2\x10.gorpc.SysPermVoR\x05perms\"1\n" +
+	"\rSysRoleGetReq\x12 \n" +
+	"\x02vo\x18\x01 \x01(\v2\x10.gorpc.SysRoleVoR\x02vo\"\x97\x01\n" +
+	"\x0eSysRoleListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12 \n" +
+	"\x02vo\x18\x02 \x01(\v2\x10.gorpc.SysRoleVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"M\n" +
+	"\x0fSysRoleListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12$\n" +
+	"\x04list\x18\x02 \x03(\v2\x10.gorpc.SysRoleVoR\x04list\"]\n" +
+	"\x18SysRoleListWithPermsResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12+\n" +
+	"\x04list\x18\x02 \x03(\v2\x17.gorpc.SysRoleWithPermsR\x04list\"1\n" +
+	"\rSysPermGetReq\x12 \n" +
+	"\x02vo\x18\x01 \x01(\v2\x10.gorpc.SysPermVoR\x02vo\"s\n" +
+	"\x0eSysPermListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12 \n" +
+	"\x02vo\x18\x02 \x01(\v2\x10.gorpc.SysPermVoR\x02vo\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x03 \x03(\x03R\n" +
+	"excludeIds\"M\n" +
+	"\x0fSysPermListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12$\n" +
+	"\x04list\x18\x02 \x03(\v2\x10.gorpc.SysPermVoR\x04list\"9\n" +
+	"\x11SysUserRoleGetReq\x12$\n" +
+	"\x02vo\x18\x01 \x01(\v2\x14.gorpc.SysUserRoleVoR\x02vo\"{\n" +
+	"\x12SysUserRoleListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12$\n" +
+	"\x02vo\x18\x02 \x01(\v2\x14.gorpc.SysUserRoleVoR\x02vo\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x03 \x03(\x03R\n" +
+	"excludeIds\"U\n" +
+	"\x13SysUserRoleListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12(\n" +
+	"\x04list\x18\x02 \x03(\v2\x14.gorpc.SysUserRoleVoR\x04list\"9\n" +
+	"\x11SysRolePermGetReq\x12$\n" +
+	"\x02vo\x18\x01 \x01(\v2\x14.gorpc.SysRolePermVoR\x02vo\"{\n" +
+	"\x12SysRolePermListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12$\n" +
+	"\x02vo\x18\x02 \x01(\v2\x14.gorpc.SysRolePermVoR\x02vo\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x03 \x03(\x03R\n" +
+	"excludeIds\"U\n" +
+	"\x13SysRolePermListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12(\n" +
+	"\x04list\x18\x02 \x03(\v2\x14.gorpc.SysRolePermVoR\x04list\"9\n" +
+	"\x11SysUserPermGetReq\x12$\n" +
+	"\x02vo\x18\x01 \x01(\v2\x14.gorpc.SysUserPermVoR\x02vo\"{\n" +
+	"\x12SysUserPermListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12$\n" +
+	"\x02vo\x18\x02 \x01(\v2\x14.gorpc.SysUserPermVoR\x02vo\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x03 \x03(\x03R\n" +
+	"excludeIds\"U\n" +
+	"\x13SysUserPermListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12(\n" +
+	"\x04list\x18\x02 \x03(\v2\x14.gorpc.SysUserPermVoR\x04list\"\xb2\b\n" +
+	"\tAccountVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x1a\n" +
+	"\buserUuid\x18\x02 \x01(\tR\buserUuid\x12 \n" +
+	"\vproductCode\x18\x03 \x01(\tR\vproductCode\x12\x1a\n" +
+	"\busername\x18\x04 \x01(\tR\busername\x12\x1a\n" +
+	"\bpassword\x18\x05 \x01(\tR\bpassword\x12\x1e\n" +
+	"\n" +
+	"accountKey\x18\x06 \x01(\tR\n" +
+	"accountKey\x12(\n" +
+	"\x0faccountPassword\x18\a \x01(\tR\x0faccountPassword\x12 \n" +
+	"\vaccountType\x18\b \x01(\x03R\vaccountType\x12\x1e\n" +
+	"\n" +
+	"registMode\x18\t \x01(\x03R\n" +
+	"registMode\x12\x1a\n" +
+	"\bprovider\x18\n" +
+	" \x01(\tR\bprovider\x124\n" +
+	"\rwhitelistUser\x18\v \x01(\x0e2\x0e.gorpc.BoolIntR\rwhitelistUser\x12,\n" +
+	"\tactivated\x18\f \x01(\x0e2\x0e.gorpc.BoolIntR\tactivated\x12\x16\n" +
+	"\x06config\x18\r \x01(\tR\x06config\x12%\n" +
+	"\x06status\x18\x0e \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06avatar\x18\x0f \x01(\tR\x06avatar\x12\x12\n" +
+	"\x04area\x18\x10 \x01(\tR\x04area\x12\x16\n" +
+	"\x06remark\x18\x11 \x01(\tR\x06remark\x12\x1a\n" +
+	"\bdeviceId\x18\x12 \x01(\tR\bdeviceId\x12\x1a\n" +
+	"\bplatform\x18\x13 \x01(\tR\bplatform\x12\x18\n" +
+	"\achannel\x18\x14 \x01(\tR\achannel\x12 \n" +
+	"\vdeviceModel\x18\x15 \x01(\tR\vdeviceModel\x12\x1a\n" +
+	"\bdeviceOs\x18\x16 \x01(\tR\bdeviceOs\x12\x1a\n" +
+	"\btimezone\x18\x17 \x01(\x03R\btimezone\x12\x12\n" +
+	"\x04lang\x18\x18 \x01(\tR\x04lang\x12\x0e\n" +
+	"\x02ip\x18\x19 \x01(\tR\x02ip\x12\x18\n" +
+	"\acountry\x18\x1a \x01(\tR\acountry\x12\x1a\n" +
+	"\bprovince\x18\x1b \x01(\tR\bprovince\x12\x12\n" +
+	"\x04city\x18\x1c \x01(\tR\x04city\x12\x10\n" +
+	"\x03isp\x18\x1d \x01(\tR\x03isp\x12\x16\n" +
+	"\x06appVer\x18\x1e \x01(\x03R\x06appVer\x12&\n" +
+	"\x0eappRuntimeCode\x18\x1f \x01(\x03R\x0eappRuntimeCode\x12\x1e\n" +
+	"\n" +
+	"createTime\x18  \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18! \x01(\x03R\n" +
+	"updateTime\x12\x18\n" +
+	"\aversion\x18\" \x01(\tR\aversion\x12\x1c\n" +
+	"\tsessionId\x18# \x01(\tR\tsessionId\x12,\n" +
+	"\x11sessionCreateTime\x18$ \x01(\x03R\x11sessionCreateTime\"\x97\x01\n" +
+	"\x0eAccountListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12 \n" +
+	"\x02vo\x18\x02 \x01(\v2\x10.gorpc.AccountVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"M\n" +
+	"\x0fAccountListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12$\n" +
+	"\x04list\x18\x02 \x03(\v2\x10.gorpc.AccountVoR\x04list\"\xe7\x01\n" +
+	"\x0fAccountDeviceVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x1c\n" +
+	"\taccountId\x18\x02 \x01(\x03R\taccountId\x12\x1a\n" +
+	"\bdeviceId\x18\x03 \x01(\x03R\bdeviceId\x12\x1c\n" +
+	"\tsessionId\x18\x04 \x01(\tR\tsessionId\x12,\n" +
+	"\x11sessionCreateTime\x18\x05 \x01(\x03R\x11sessionCreateTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x06 \x01(\x03R\n" +
+	"updateTime\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\a \x01(\x03R\n" +
+	"createTime\"\x7f\n" +
+	"\x14AccountDeviceListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12&\n" +
+	"\x02vo\x18\x02 \x01(\v2\x16.gorpc.AccountDeviceVoR\x02vo\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x03 \x03(\x03R\n" +
+	"excludeIds\"Y\n" +
+	"\x15AccountDeviceListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12*\n" +
+	"\x04list\x18\x02 \x03(\v2\x16.gorpc.AccountDeviceVoR\x04list\"\xa5\x06\n" +
+	"\bDeviceVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x1a\n" +
+	"\buserUuid\x18\x02 \x01(\tR\buserUuid\x12 \n" +
+	"\vproductCode\x18\x03 \x01(\tR\vproductCode\x12\x1a\n" +
+	"\bdeviceId\x18\x04 \x01(\tR\bdeviceId\x12\x1e\n" +
+	"\n" +
+	"accountKey\x18\x05 \x01(\tR\n" +
+	"accountKey\x12(\n" +
+	"\x0faccountPassword\x18\x06 \x01(\tR\x0faccountPassword\x12\x1a\n" +
+	"\bplatform\x18\a \x01(\tR\bplatform\x12\x18\n" +
+	"\achannel\x18\b \x01(\tR\achannel\x12\"\n" +
+	"\freferChannel\x18\t \x01(\tR\freferChannel\x12 \n" +
+	"\vdeviceModel\x18\n" +
+	" \x01(\tR\vdeviceModel\x12\x1a\n" +
+	"\bdeviceOs\x18\v \x01(\tR\bdeviceOs\x12\x1a\n" +
+	"\btimezone\x18\f \x01(\x03R\btimezone\x12\x12\n" +
+	"\x04lang\x18\r \x01(\tR\x04lang\x12\x16\n" +
+	"\x06appVer\x18\x0e \x01(\x03R\x06appVer\x12\x0e\n" +
+	"\x02ip\x18\x0f \x01(\tR\x02ip\x12\x18\n" +
+	"\acountry\x18\x10 \x01(\tR\acountry\x12\x1a\n" +
+	"\bprovince\x18\x11 \x01(\tR\bprovince\x12\x12\n" +
+	"\x04city\x18\x12 \x01(\tR\x04city\x12\x10\n" +
+	"\x03isp\x18\x13 \x01(\tR\x03isp\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x14 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x15 \x01(\x03R\n" +
+	"updateTime\x12%\n" +
+	"\x06status\x18\x16 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x14\n" +
+	"\x05refer\x18\x17 \x01(\tR\x05refer\x12$\n" +
+	"\rwhitelistUser\x18\x18 \x01(\x03R\rwhitelistUser\x12\x1a\n" +
+	"\btestUser\x18\x19 \x01(\x03R\btestUser\x12 \n" +
+	"\vmockCountry\x18\x1a \x01(\tR\vmockCountry\x12\x18\n" +
+	"\amockApi\x18\x1b \x01(\tR\amockApi\x12\x1e\n" +
+	"\n" +
+	"mockRouter\x18\x1c \x01(\tR\n" +
+	"mockRouter\"\x83\x02\n" +
+	"\rDeviceListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12\x1f\n" +
+	"\x02vo\x18\x02 \x01(\v2\x0f.gorpc.DeviceVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\x12\x1c\n" +
+	"\tdateRange\x18\x05 \x03(\tR\tdateRange\x12(\n" +
+	"\x0fcreateStartTime\x18\x06 \x01(\x03R\x0fcreateStartTime\x12$\n" +
+	"\rcreateEndTime\x18\a \x01(\x03R\rcreateEndTime\"J\n" +
+	"\rDeviceListRes\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12#\n" +
+	"\x04list\x18\x02 \x03(\v2\x0f.gorpc.DeviceVoR\x04list\"\xcc\x01\n" +
+	"\x0fUserAppConfigVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x1a\n" +
+	"\bdeviceId\x18\x02 \x01(\tR\bdeviceId\x12\x10\n" +
+	"\x03key\x18\x03 \x01(\tR\x03key\x12\x14\n" +
+	"\x05value\x18\x04 \x01(\tR\x05value\x12%\n" +
+	"\x06status\x18\x05 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x06 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\a \x01(\x03R\n" +
+	"updateTime\"=\n" +
+	"\x13UserAppConfigGetReq\x12&\n" +
+	"\x02vo\x18\x01 \x01(\v2\x16.gorpc.UserAppConfigVoR\x02vo\"_\n" +
+	"\x14UserAppConfigListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12&\n" +
+	"\x02vo\x18\x02 \x01(\v2\x16.gorpc.UserAppConfigVoR\x02vo\"X\n" +
+	"\x14UserAppConfigListRes\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12*\n" +
+	"\x04list\x18\x02 \x03(\v2\x16.gorpc.UserAppConfigVoR\x04list\"\x99\x02\n" +
+	"\bVpnTagVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12\x12\n" +
+	"\x04type\x18\x03 \x01(\tR\x04type\x12\x12\n" +
+	"\x04name\x18\x04 \x01(\tR\x04name\x12\x12\n" +
+	"\x04sort\x18\x05 \x01(\x03R\x04sort\x12%\n" +
+	"\x06status\x18\x06 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\a \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\b \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\t \x01(\x03R\n" +
+	"updateTime\x12 \n" +
+	"\votherConfig\x18\n" +
+	" \x01(\tR\votherConfig\"/\n" +
+	"\fVpnTagGetReq\x12\x1f\n" +
+	"\x02vo\x18\x01 \x01(\v2\x0f.gorpc.VpnTagVoR\x02vo\"\x95\x01\n" +
+	"\rVpnTagListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12\x1f\n" +
+	"\x02vo\x18\x02 \x01(\v2\x0f.gorpc.VpnTagVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"K\n" +
+	"\x0eVpnTagListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12#\n" +
+	"\x04list\x18\x02 \x03(\v2\x0f.gorpc.VpnTagVoR\x04list\"8\n" +
+	"\x11VpnTagBatchAddReq\x12#\n" +
+	"\x04list\x18\x01 \x03(\v2\x0f.gorpc.VpnTagVoR\x04list\"9\n" +
+	"\x12VpnTagBatchAddResp\x12#\n" +
+	"\x04list\x18\x01 \x03(\v2\x0f.gorpc.VpnTagVoR\x04list\";\n" +
+	"\x14VpnTagBatchUpdateReq\x12#\n" +
+	"\x04list\x18\x01 \x03(\v2\x0f.gorpc.VpnTagVoR\x04list\"<\n" +
+	"\x15VpnTagBatchUpdateResp\x12#\n" +
+	"\x04list\x18\x01 \x03(\v2\x0f.gorpc.VpnTagVoR\x04list\"%\n" +
+	"\x11VpnTagBatchDelReq\x12\x10\n" +
+	"\x03ids\x18\x01 \x03(\x03R\x03ids\"\xb5\x02\n" +
+	"\n" +
+	"VpnGroupVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\x12\x12\n" +
+	"\x04name\x18\x03 \x01(\tR\x04name\x12\x12\n" +
+	"\x04icon\x18\x04 \x01(\tR\x04icon\x12\x12\n" +
+	"\x04sort\x18\x05 \x01(\x03R\x04sort\x12%\n" +
+	"\x06status\x18\x06 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\a \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\b \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\t \x01(\x03R\n" +
+	"updateTime\x12\x18\n" +
+	"\aversion\x18\n" +
+	" \x01(\tR\aversion\x12 \n" +
+	"\votherConfig\x18\v \x01(\tR\votherConfig\"I\n" +
+	"\fVpnGroupExVo\x12!\n" +
+	"\x02vo\x18\x01 \x01(\v2\x11.gorpc.VpnGroupVoR\x02vo\x12\x16\n" +
+	"\x06tagIds\x18\x02 \x03(\x03R\x06tagIds\"K\n" +
+	"\x0eVpnGroupAddReq\x12!\n" +
+	"\x02vo\x18\x01 \x01(\v2\x11.gorpc.VpnGroupVoR\x02vo\x12\x16\n" +
+	"\x06tagIds\x18\x02 \x03(\x03R\x06tagIds\"3\n" +
+	"\x0eVpnGroupGetReq\x12!\n" +
+	"\x02vo\x18\x01 \x01(\v2\x11.gorpc.VpnGroupVoR\x02vo\"\x99\x01\n" +
+	"\x0fVpnGroupListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12!\n" +
+	"\x02vo\x18\x02 \x01(\v2\x11.gorpc.VpnGroupVoR\x02vo\x12\"\n" +
+	"\fproductCodes\x18\x03 \x03(\tR\fproductCodes\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\"O\n" +
+	"\x10VpnGroupListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12%\n" +
+	"\x04list\x18\x02 \x03(\v2\x11.gorpc.VpnGroupVoR\x04list\">\n" +
+	"\x13VpnGroupBatchAddReq\x12'\n" +
+	"\x04list\x18\x01 \x03(\v2\x13.gorpc.VpnGroupExVoR\x04list\"?\n" +
+	"\x14VpnGroupBatchAddResp\x12'\n" +
+	"\x04list\x18\x01 \x03(\v2\x13.gorpc.VpnGroupExVoR\x04list\"A\n" +
+	"\x16VpnGroupBatchUpdateReq\x12'\n" +
+	"\x04list\x18\x01 \x03(\v2\x13.gorpc.VpnGroupExVoR\x04list\"B\n" +
+	"\x17VpnGroupBatchUpdateResp\x12'\n" +
+	"\x04list\x18\x01 \x03(\v2\x13.gorpc.VpnGroupExVoR\x04list\"'\n" +
+	"\x13VpnGroupBatchDelReq\x12\x10\n" +
+	"\x03ids\x18\x01 \x03(\x03R\x03ids\"\x8f\x01\n" +
+	"\rVpnGroupTagVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x18\n" +
+	"\agroupId\x18\x02 \x01(\x03R\agroupId\x12\x14\n" +
+	"\x05tagId\x18\x03 \x01(\x03R\x05tagId\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x04 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x05 \x01(\x03R\n" +
+	"updateTime\"\x8f\x01\n" +
+	"\x12VpnGroupTagListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12$\n" +
+	"\x02vo\x18\x02 \x01(\v2\x14.gorpc.VpnGroupTagVoR\x02vo\x12\x1a\n" +
+	"\bgroupIds\x18\x03 \x03(\x03R\bgroupIds\x12\x16\n" +
+	"\x06tagIds\x18\x04 \x03(\x03R\x06tagIds\"U\n" +
+	"\x13VpnGroupTagListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12(\n" +
+	"\x04list\x18\x02 \x03(\v2\x14.gorpc.VpnGroupTagVoR\x04list\"\xb8\x03\n" +
+	"\rVpnLocationVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x18\n" +
+	"\agroupId\x18\x02 \x01(\x03R\agroupId\x12\x12\n" +
+	"\x04name\x18\x03 \x01(\tR\x04name\x12\x12\n" +
+	"\x04code\x18\x04 \x01(\tR\x04code\x12\x12\n" +
+	"\x04icon\x18\x05 \x01(\tR\x04icon\x12\x12\n" +
+	"\x04type\x18\x06 \x01(\x03R\x04type\x120\n" +
+	"\x13displayPolicyConfig\x18\a \x01(\tR\x13displayPolicyConfig\x12,\n" +
+	"\x11routePolicyConfig\x18\b \x01(\tR\x11routePolicyConfig\x12\x12\n" +
+	"\x04sort\x18\t \x01(\x03R\x04sort\x12%\n" +
+	"\x06status\x18\n" +
+	" \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\v \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\f \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\r \x01(\x03R\n" +
+	"updateTime\x12\x18\n" +
+	"\aversion\x18\x0e \x01(\tR\aversion\x12 \n" +
+	"\votherConfig\x18\x0f \x01(\tR\votherConfig\"Y\n" +
+	"\x0fVpnLocationExVo\x12$\n" +
+	"\x02vo\x18\x01 \x01(\v2\x14.gorpc.VpnLocationVoR\x02vo\x12 \n" +
+	"\vproductCode\x18\x02 \x01(\tR\vproductCode\"9\n" +
+	"\x11VpnLocationGetReq\x12$\n" +
+	"\x02vo\x18\x01 \x01(\v2\x14.gorpc.VpnLocationVoR\x02vo\"\xbd\x01\n" +
+	"\x12VpnLocationListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12&\n" +
+	"\x02vo\x18\x02 \x01(\v2\x16.gorpc.VpnLocationExVoR\x02vo\x12\x1a\n" +
+	"\bgroupIds\x18\x03 \x03(\x03R\bgroupIds\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x04 \x03(\x03R\n" +
+	"excludeIds\x12\"\n" +
+	"\fproductCodes\x18\x05 \x03(\tR\fproductCodes\"W\n" +
+	"\x13VpnLocationListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12*\n" +
+	"\x04list\x18\x02 \x03(\v2\x16.gorpc.VpnLocationExVoR\x04list\"B\n" +
+	"\x16VpnLocationBatchAddReq\x12(\n" +
+	"\x04list\x18\x01 \x03(\v2\x14.gorpc.VpnLocationVoR\x04list\"E\n" +
+	"\x17VpnLocationBatchAddResp\x12*\n" +
+	"\x04list\x18\x01 \x03(\v2\x16.gorpc.VpnLocationExVoR\x04list\"E\n" +
+	"\x19VpnLocationBatchUpdateReq\x12(\n" +
+	"\x04list\x18\x01 \x03(\v2\x14.gorpc.VpnLocationVoR\x04list\"H\n" +
+	"\x1aVpnLocationBatchUpdateResp\x12*\n" +
+	"\x04list\x18\x01 \x03(\v2\x16.gorpc.VpnLocationExVoR\x04list\"*\n" +
+	"\x16VpnLocationBatchDelReq\x12\x10\n" +
+	"\x03ids\x18\x01 \x03(\x03R\x03ids\"\xd6\x03\n" +
+	"\vVpnServerVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x1e\n" +
+	"\n" +
+	"instanceId\x18\x02 \x01(\x03R\n" +
+	"instanceId\x12\x12\n" +
+	"\x04name\x18\x03 \x01(\tR\x04name\x12\x0e\n" +
+	"\x02ip\x18\x04 \x01(\tR\x02ip\x12\x12\n" +
+	"\x04port\x18\x05 \x01(\x03R\x04port\x12\x1a\n" +
+	"\bpingPort\x18\x06 \x01(\x03R\bpingPort\x12\x1c\n" +
+	"\tnetConfig\x18\a \x01(\tR\tnetConfig\x12,\n" +
+	"\x11routePolicyConfig\x18\b \x01(\tR\x11routePolicyConfig\x12\x1e\n" +
+	"\n" +
+	"serverInfo\x18\t \x01(\tR\n" +
+	"serverInfo\x12%\n" +
+	"\x06status\x18\n" +
+	" \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x16\n" +
+	"\x06remark\x18\v \x01(\tR\x06remark\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\f \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\r \x01(\x03R\n" +
+	"updateTime\x12\x18\n" +
+	"\aversion\x18\x0e \x01(\tR\aversion\x12\x1c\n" +
+	"\totherInfo\x18\x0f \x01(\tR\totherInfo\x12 \n" +
+	"\vmonitorPort\x18\x10 \x01(\x03R\vmonitorPort\"U\n" +
+	"\rVpnServerExVo\x12\"\n" +
+	"\x02vo\x18\x01 \x01(\v2\x12.gorpc.VpnServerVoR\x02vo\x12 \n" +
+	"\vlocationIds\x18\x02 \x03(\x03R\vlocationIds\"\xdf\x01\n" +
+	"\x10VpnServerListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12\"\n" +
+	"\x02vo\x18\x02 \x01(\v2\x12.gorpc.VpnServerVoR\x02vo\x12\x1e\n" +
+	"\n" +
+	"excludeIds\x18\x03 \x03(\x03R\n" +
+	"excludeIds\x12\"\n" +
+	"\fproductCodes\x18\x04 \x03(\tR\fproductCodes\x12 \n" +
+	"\vlocationIds\x18\x05 \x03(\x03R\vlocationIds\x12 \n" +
+	"\vinstanceIds\x18\x06 \x03(\x03R\vinstanceIds\"Q\n" +
+	"\x11VpnServerListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12&\n" +
+	"\x04list\x18\x02 \x03(\v2\x12.gorpc.VpnServerVoR\x04list\"U\n" +
+	"\x13VpnServerExListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12(\n" +
+	"\x04list\x18\x02 \x03(\v2\x14.gorpc.VpnServerExVoR\x04list\"W\n" +
+	"\x0fVpnServerAddReq\x12\"\n" +
+	"\x02vo\x18\x01 \x01(\v2\x12.gorpc.VpnServerVoR\x02vo\x12 \n" +
+	"\vlocationIds\x18\x02 \x03(\x03R\vlocationIds\"@\n" +
+	"\x14VpnServerBatchAddReq\x12(\n" +
+	"\x04list\x18\x01 \x03(\v2\x14.gorpc.VpnServerExVoR\x04list\"A\n" +
+	"\x15VpnServerBatchAddResp\x12(\n" +
+	"\x04list\x18\x01 \x03(\v2\x14.gorpc.VpnServerExVoR\x04list\"C\n" +
+	"\x17VpnServerBatchUpdateReq\x12(\n" +
+	"\x04list\x18\x01 \x03(\v2\x14.gorpc.VpnServerExVoR\x04list\"D\n" +
+	"\x18VpnServerBatchUpdateResp\x12(\n" +
+	"\x04list\x18\x01 \x03(\v2\x14.gorpc.VpnServerExVoR\x04list\"(\n" +
+	"\x14VpnServerBatchDelReq\x12\x10\n" +
+	"\x03ids\x18\x01 \x03(\x03R\x03ids\"\xc8\x01\n" +
+	"\x13VpnServerLocationVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x1a\n" +
+	"\bserverId\x18\x02 \x01(\x03R\bserverId\x12\x1e\n" +
+	"\n" +
+	"locationId\x18\x03 \x01(\x03R\n" +
+	"locationId\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\x04 \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\x05 \x01(\x03R\n" +
+	"updateTime\x12%\n" +
+	"\x06status\x18\x06 \x01(\x0e2\r.gorpc.StatusR\x06status\"\xa7\x01\n" +
+	"\x18VpnServerLocationListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12*\n" +
+	"\x02vo\x18\x02 \x01(\v2\x1a.gorpc.VpnServerLocationVoR\x02vo\x12\x1c\n" +
+	"\tserverIds\x18\x03 \x03(\x03R\tserverIds\x12 \n" +
+	"\vlocationIds\x18\x04 \x03(\x03R\vlocationIds\"a\n" +
+	"\x19VpnServerLocationListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12.\n" +
+	"\x04list\x18\x02 \x03(\v2\x1a.gorpc.VpnServerLocationVoR\x04list\"\\\n" +
+	"\x18VpnLocationServerCountVo\x12\x1e\n" +
+	"\n" +
+	"locationId\x18\x01 \x01(\x03R\n" +
+	"locationId\x12 \n" +
+	"\vserverCount\x18\x02 \x01(\x03R\vserverCount\"\xa3\x01\n" +
+	"\x19VpnLocationServerCountReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12%\n" +
+	"\x06status\x18\x02 \x01(\x0e2\r.gorpc.StatusR\x06status\x12\x1c\n" +
+	"\tserverIds\x18\x03 \x03(\x03R\tserverIds\x12 \n" +
+	"\vlocationIds\x18\x04 \x03(\x03R\vlocationIds\"g\n" +
+	"\x1aVpnLocationServerCountResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x123\n" +
+	"\x04list\x18\x02 \x03(\v2\x1f.gorpc.VpnLocationServerCountVoR\x04list\"\xc8\x02\n" +
+	"\x0eVpnProbeTaskVo\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x16\n" +
+	"\x06taskId\x18\x02 \x01(\tR\x06taskId\x12\x16\n" +
+	"\x06filter\x18\x03 \x01(\tR\x06filter\x12\x12\n" +
+	"\x04type\x18\x04 \x01(\tR\x04type\x12\"\n" +
+	"\fuploadDomain\x18\x05 \x01(\tR\fuploadDomain\x12\x16\n" +
+	"\x06params\x18\x06 \x01(\tR\x06params\x12\x16\n" +
+	"\x06answer\x18\a \x01(\x03R\x06answer\x12\x1e\n" +
+	"\n" +
+	"percentage\x18\b \x01(\x02R\n" +
+	"percentage\x12\x16\n" +
+	"\x06result\x18\t \x01(\tR\x06result\x12\x16\n" +
+	"\x06userId\x18\n" +
+	" \x01(\x03R\x06userId\x12\x1e\n" +
+	"\n" +
+	"createTime\x18\v \x01(\x03R\n" +
+	"createTime\x12\x1e\n" +
+	"\n" +
+	"updateTime\x18\f \x01(\x03R\n" +
+	"updateTime\"]\n" +
+	"\x13VpnProbeTaskListReq\x12\x1f\n" +
+	"\x04page\x18\x01 \x01(\v2\v.gorpc.PageR\x04page\x12%\n" +
+	"\x02vo\x18\x02 \x01(\v2\x15.gorpc.VpnProbeTaskVoR\x02vo\"W\n" +
+	"\x14VpnProbeTaskListResp\x12\x14\n" +
+	"\x05total\x18\x01 \x01(\x03R\x05total\x12)\n" +
+	"\x04list\x18\x02 \x03(\v2\x15.gorpc.VpnProbeTaskVoR\x04list*\x96\x01\n" +
+	"\fRegisterMode\x12\x17\n" +
+	"\x13RegisterModeUnknown\x10\x00\x12\x15\n" +
+	"\x11RegisterModeGuest\x10\x01\x12\x13\n" +
+	"\x0fRegisterModeApp\x10\x02\x12\x13\n" +
+	"\x0fRegisterModeWeb\x10\x03\x12\x12\n" +
+	"\x0eRegisterModePc\x10\x04\x12\x18\n" +
+	"\x13RegisterModeInvalid\x10\x8fN*\x1f\n" +
+	"\x10CommonResultCode\x12\v\n" +
+	"\aSuccess\x10\x00*?\n" +
+	"\x06Status\x12\x11\n" +
+	"\rUnknownStatus\x10\x00\x12\x0f\n" +
+	"\vStatusValid\x10\x01\x12\x11\n" +
+	"\rStatusInValid\x10\x02*@\n" +
+	"\aBoolInt\x12\x12\n" +
+	"\x0eBoolIntUnknown\x10\x00\x12\x0f\n" +
+	"\vBoolIntTrue\x10\x01\x12\x10\n" +
+	"\fBoolIntFalse\x10\x022\xa8\f\n" +
+	"\fGoGameClient\x12'\n" +
+	"\aGameAdd\x12\r.gorpc.GameVo\x1a\r.gorpc.GameVo\x12)\n" +
+	"\n" +
+	"GameUpdate\x12\r.gorpc.GameVo\x1a\f.gorpc.Empty\x12#\n" +
+	"\aGameDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12(\n" +
+	"\aGameGet\x12\x0e.gorpc.GameReq\x1a\r.gorpc.GameVo\x122\n" +
+	"\bGameList\x12\x12.gorpc.GameListReq\x1a\x12.gorpc.GameListRes\x12-\n" +
+	"\aGameAll\x12\x0e.gorpc.Request\x1a\x12.gorpc.GameListRes\x12W\n" +
+	"\x14GameRedisHScanByName\x12\x1e.gorpc.GameRedisHScanByNameReq\x1a\x1f.gorpc.GameRedisHScanByNameResp\x12<\n" +
+	"\x0eRelGameRankAdd\x12\x14.gorpc.RelGameRankVo\x1a\x14.gorpc.RelGameRankVo\x127\n" +
+	"\x11RelGameRankUpdate\x12\x14.gorpc.RelGameRankVo\x1a\f.gorpc.Empty\x12*\n" +
+	"\x0eRelGameRankDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12=\n" +
+	"\x0eRelGameRankGet\x12\x15.gorpc.RelGameRankReq\x1a\x14.gorpc.RelGameRankVo\x12G\n" +
+	"\x0fRelGameRankList\x12\x19.gorpc.RelGameRankListReq\x1a\x19.gorpc.RelGameRankListRes\x12H\n" +
+	"\x12RelGameVpnGroupAdd\x12\x18.gorpc.RelGameVpnGroupVo\x1a\x18.gorpc.RelGameVpnGroupVo\x12?\n" +
+	"\x15RelGameVpnGroupUpdate\x12\x18.gorpc.RelGameVpnGroupVo\x1a\f.gorpc.Empty\x12.\n" +
+	"\x12RelGameVpnGroupDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12I\n" +
+	"\x12RelGameVpnGroupGet\x12\x19.gorpc.RelGameVpnGroupReq\x1a\x18.gorpc.RelGameVpnGroupVo\x12S\n" +
+	"\x13RelGameVpnGroupList\x12\x1d.gorpc.RelGameVpnGroupListReq\x1a\x1d.gorpc.RelGameVpnGroupListRes\x12J\n" +
+	"\x10GameCustomerList\x12\x1a.gorpc.GameCustomerListReq\x1a\x1a.gorpc.GameCustomerListRes\x12D\n" +
+	"\x0fGameCustomerAdd\x12\x15.gorpc.GameCustomerVo\x1a\x1a.gorpc.GameCustomerAddResp\x12+\n" +
+	"\x0fGameCustomerDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12?\n" +
+	"\x0fGameCategoryAdd\x12\x15.gorpc.GameCategoryVo\x1a\x15.gorpc.GameCategoryVo\x129\n" +
+	"\x12GameCategoryUpdate\x12\x15.gorpc.GameCategoryVo\x1a\f.gorpc.Empty\x12+\n" +
+	"\x0fGameCategoryDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12@\n" +
+	"\x0fGameCategoryGet\x12\x16.gorpc.GameCategoryReq\x1a\x15.gorpc.GameCategoryVo\x12J\n" +
+	"\x10GameCategoryList\x12\x1a.gorpc.GameCategoryListReq\x1a\x1a.gorpc.GameCategoryListRes\x12=\n" +
+	"\x0fGameCategoryAll\x12\x0e.gorpc.Request\x1a\x1a.gorpc.GameCategoryListRes2\xe0<\n" +
+	"\vGoPmpClient\x12'\n" +
+	"\x04Ping\x12\x0e.gorpc.Request\x1a\x0f.gorpc.Response\x12<\n" +
+	"\x0eGlobalParamAdd\x12\x14.gorpc.GlobalParamVo\x1a\x14.gorpc.GlobalParamVo\x12?\n" +
+	"\x11GlobalParamUpdate\x12\x14.gorpc.GlobalParamVo\x1a\x14.gorpc.GlobalParamVo\x12*\n" +
+	"\x0eGlobalParamDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12<\n" +
+	"\x0eGlobalParamGet\x12\x14.gorpc.GlobalParamVo\x1a\x14.gorpc.GlobalParamVo\x12H\n" +
+	"\x16GlobalParamGetWithLang\x12\x18.gorpc.GlobalParamGetReq\x1a\x14.gorpc.GlobalParamVo\x12H\n" +
+	"\x0fGlobalParamList\x12\x19.gorpc.GlobalParamListReq\x1a\x1a.gorpc.GlobalParamListResp\x120\n" +
+	"\n" +
+	"ProductAdd\x12\x10.gorpc.ProductVo\x1a\x10.gorpc.ProductVo\x123\n" +
+	"\rProductUpdate\x12\x10.gorpc.ProductVo\x1a\x10.gorpc.ProductVo\x12&\n" +
+	"\n" +
+	"ProductDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x120\n" +
+	"\n" +
+	"ProductGet\x12\x10.gorpc.ProductVo\x1a\x10.gorpc.ProductVo\x12<\n" +
+	"\vProductList\x12\x15.gorpc.ProductListReq\x1a\x16.gorpc.ProductListResp\x124\n" +
+	"\n" +
+	"ProductAll\x12\x0e.gorpc.Request\x1a\x16.gorpc.ProductListResp\x12?\n" +
+	"\x0fProductParamAdd\x12\x15.gorpc.ProductParamVo\x1a\x15.gorpc.ProductParamVo\x12B\n" +
+	"\x12ProductParamUpdate\x12\x15.gorpc.ProductParamVo\x1a\x15.gorpc.ProductParamVo\x12+\n" +
+	"\x0fProductParamDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12?\n" +
+	"\x0fProductParamGet\x12\x15.gorpc.ProductParamVo\x1a\x15.gorpc.ProductParamVo\x12K\n" +
+	"\x17ProductParamGetWithLang\x12\x19.gorpc.ProductParamGetReq\x1a\x15.gorpc.ProductParamVo\x12K\n" +
+	"\x10ProductParamList\x12\x1a.gorpc.ProductParamListReq\x1a\x1b.gorpc.ProductParamListResp\x12B\n" +
+	"\x10ProductActionAdd\x12\x16.gorpc.ProductActionVo\x1a\x16.gorpc.ProductActionVo\x12E\n" +
+	"\x13ProductActionUpdate\x12\x16.gorpc.ProductActionVo\x1a\x16.gorpc.ProductActionVo\x12,\n" +
+	"\x10ProductActionDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12C\n" +
+	"\x10ProductActionGet\x12\x17.gorpc.ProductActionReq\x1a\x16.gorpc.ProductActionVo\x12N\n" +
+	"\x11ProductActionList\x12\x1b.gorpc.ProductActionListReq\x1a\x1c.gorpc.ProductActionListResp\x126\n" +
+	"\fAreaParamAdd\x12\x12.gorpc.AreaParamVo\x1a\x12.gorpc.AreaParamVo\x129\n" +
+	"\x0fAreaParamUpdate\x12\x12.gorpc.AreaParamVo\x1a\x12.gorpc.AreaParamVo\x12(\n" +
+	"\fAreaParamDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x126\n" +
+	"\fAreaParamGet\x12\x12.gorpc.AreaParamVo\x1a\x12.gorpc.AreaParamVo\x12B\n" +
+	"\rAreaParamList\x12\x17.gorpc.AreaParamListReq\x1a\x18.gorpc.AreaParamListResp\x12K\n" +
+	"\x13NationalLanguageAdd\x12\x19.gorpc.NationalLanguageVo\x1a\x19.gorpc.NationalLanguageVo\x12N\n" +
+	"\x16NationalLanguageUpdate\x12\x19.gorpc.NationalLanguageVo\x1a\x19.gorpc.NationalLanguageVo\x12/\n" +
+	"\x13NationalLanguageDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12K\n" +
+	"\x13NationalLanguageGet\x12\x19.gorpc.NationalLanguageVo\x1a\x19.gorpc.NationalLanguageVo\x12W\n" +
+	"\x14NationalLanguageList\x12\x1e.gorpc.NationalLanguageListReq\x1a\x1f.gorpc.NationalLanguageListResp\x12$\n" +
+	"\x06TipAdd\x12\f.gorpc.TipVo\x1a\f.gorpc.TipVo\x12'\n" +
+	"\tTipUpdate\x12\f.gorpc.TipVo\x1a\f.gorpc.TipVo\x12\"\n" +
+	"\x06TipDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12(\n" +
+	"\x06TipGet\x12\x10.gorpc.TipGetReq\x1a\f.gorpc.TipVo\x120\n" +
+	"\aTipList\x12\x11.gorpc.TipListReq\x1a\x12.gorpc.TipListResp\x12'\n" +
+	"\aDictAdd\x12\r.gorpc.DictVo\x1a\r.gorpc.DictVo\x12*\n" +
+	"\n" +
+	"DictUpdate\x12\r.gorpc.DictVo\x1a\r.gorpc.DictVo\x12#\n" +
+	"\aDictDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12+\n" +
+	"\aDictGet\x12\x11.gorpc.DictGetReq\x1a\r.gorpc.DictVo\x123\n" +
+	"\bDictList\x12\x12.gorpc.DictListReq\x1a\x13.gorpc.DictListResp\x12E\n" +
+	"\x11UpgradePkgPlanAdd\x12\x17.gorpc.UpgradePkgPlanVo\x1a\x17.gorpc.UpgradePkgPlanVo\x12H\n" +
+	"\x14UpgradePkgPlanUpdate\x12\x17.gorpc.UpgradePkgPlanVo\x1a\x17.gorpc.UpgradePkgPlanVo\x12-\n" +
+	"\x11UpgradePkgPlanDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12E\n" +
+	"\x11UpgradePkgPlanGet\x12\x17.gorpc.UpgradePkgPlanVo\x1a\x17.gorpc.UpgradePkgPlanVo\x12Q\n" +
+	"\x12UpgradePkgPlanList\x12\x1c.gorpc.UpgradePkgPlanListReq\x1a\x1d.gorpc.UpgradePkgPlanListResp\x12W\n" +
+	"\x17UpgradePkgPlanDetailAdd\x12\x1d.gorpc.UpgradePkgPlanDetailVo\x1a\x1d.gorpc.UpgradePkgPlanDetailVo\x12Z\n" +
+	"\x1aUpgradePkgPlanDetailUpdate\x12\x1d.gorpc.UpgradePkgPlanDetailVo\x1a\x1d.gorpc.UpgradePkgPlanDetailVo\x123\n" +
+	"\x17UpgradePkgPlanDetailDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12W\n" +
+	"\x17UpgradePkgPlanDetailGet\x12\x1d.gorpc.UpgradePkgPlanDetailVo\x1a\x1d.gorpc.UpgradePkgPlanDetailVo\x12c\n" +
+	"\x18UpgradePkgPlanDetailList\x12\".gorpc.UpgradePkgPlanDetailListReq\x1a#.gorpc.UpgradePkgPlanDetailListResp\x12E\n" +
+	"\x11UpgradeResPlanAdd\x12\x17.gorpc.UpgradeResPlanVo\x1a\x17.gorpc.UpgradeResPlanVo\x12H\n" +
+	"\x14UpgradeResPlanUpdate\x12\x17.gorpc.UpgradeResPlanVo\x1a\x17.gorpc.UpgradeResPlanVo\x12-\n" +
+	"\x11UpgradeResPlanDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12E\n" +
+	"\x11UpgradeResPlanGet\x12\x17.gorpc.UpgradeResPlanVo\x1a\x17.gorpc.UpgradeResPlanVo\x12Q\n" +
+	"\x12UpgradeResPlanList\x12\x1c.gorpc.UpgradeResPlanListReq\x1a\x1d.gorpc.UpgradeResPlanListResp\x12W\n" +
+	"\x17UpgradeResPlanDetailAdd\x12\x1d.gorpc.UpgradeResPlanDetailVo\x1a\x1d.gorpc.UpgradeResPlanDetailVo\x12Z\n" +
+	"\x1aUpgradeResPlanDetailUpdate\x12\x1d.gorpc.UpgradeResPlanDetailVo\x1a\x1d.gorpc.UpgradeResPlanDetailVo\x123\n" +
+	"\x17UpgradeResPlanDetailDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12W\n" +
+	"\x17UpgradeResPlanDetailGet\x12\x1d.gorpc.UpgradeResPlanDetailVo\x1a\x1d.gorpc.UpgradeResPlanDetailVo\x12c\n" +
+	"\x18UpgradeResPlanDetailList\x12\".gorpc.UpgradeResPlanDetailListReq\x1a#.gorpc.UpgradeResPlanDetailListResp\x12-\n" +
+	"\tAdPlanAdd\x12\x0f.gorpc.AdPlanVo\x1a\x0f.gorpc.AdPlanVo\x120\n" +
+	"\fAdPlanUpdate\x12\x0f.gorpc.AdPlanVo\x1a\x0f.gorpc.AdPlanVo\x12%\n" +
+	"\tAdPlanDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12-\n" +
+	"\tAdPlanGet\x12\x0f.gorpc.AdPlanVo\x1a\x0f.gorpc.AdPlanVo\x129\n" +
+	"\n" +
+	"AdPlanList\x12\x14.gorpc.AdPlanListReq\x1a\x15.gorpc.AdPlanListResp\x12?\n" +
+	"\x0fAdPlanDetailAdd\x12\x15.gorpc.AdPlanDetailVo\x1a\x15.gorpc.AdPlanDetailVo\x12B\n" +
+	"\x12AdPlanDetailUpdate\x12\x15.gorpc.AdPlanDetailVo\x1a\x15.gorpc.AdPlanDetailVo\x12+\n" +
+	"\x0fAdPlanDetailDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12?\n" +
+	"\x0fAdPlanDetailGet\x12\x15.gorpc.AdPlanDetailVo\x1a\x15.gorpc.AdPlanDetailVo\x12K\n" +
+	"\x10AdPlanDetailList\x12\x1a.gorpc.AdPlanDetailListReq\x1a\x1b.gorpc.AdPlanDetailListResp\x12I\n" +
+	"\x11AdGlobalConfigGet\x12\x1b.gorpc.AdGlobalConfigGetReq\x1a\x17.gorpc.AdGlobalConfigVo\x12H\n" +
+	"\x14AdGlobalConfigUpdate\x12\x17.gorpc.AdGlobalConfigVo\x1a\x17.gorpc.AdGlobalConfigVo\x123\n" +
+	"\vJobBatchAdd\x12\x11.gorpc.JobBatchVo\x1a\x11.gorpc.JobBatchVo\x12N\n" +
+	"\x14JobBatchAddWithTasks\x12\x1a.gorpc.JobBatchWithTasksVo\x1a\x1a.gorpc.JobBatchWithTasksVo\x126\n" +
+	"\x0eJobBatchUpdate\x12\x11.gorpc.JobBatchVo\x1a\x11.gorpc.JobBatchVo\x12'\n" +
+	"\vJobBatchDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x123\n" +
+	"\vJobBatchGet\x12\x11.gorpc.JobBatchVo\x1a\x11.gorpc.JobBatchVo\x12E\n" +
+	"\x14JobBatchGetWithTasks\x12\x11.gorpc.JobBatchVo\x1a\x1a.gorpc.JobBatchWithTasksVo\x12?\n" +
+	"\fJobBatchList\x12\x16.gorpc.JobBatchListReq\x1a\x17.gorpc.JobBatchListResp\x12Q\n" +
+	"\x15JobBatchListWithTasks\x12\x16.gorpc.JobBatchListReq\x1a .gorpc.JobBatchListWithTasksResp\x123\n" +
+	"\vJobTasksAdd\x12\x11.gorpc.JobTasksVo\x1a\x11.gorpc.JobTasksVo\x126\n" +
+	"\x0eJobTasksUpdate\x12\x11.gorpc.JobTasksVo\x1a\x11.gorpc.JobTasksVo\x12'\n" +
+	"\vJobTasksDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x123\n" +
+	"\vJobTasksGet\x12\x11.gorpc.JobTasksVo\x1a\x11.gorpc.JobTasksVo\x12?\n" +
+	"\fJobTasksList\x12\x16.gorpc.JobTasksListReq\x1a\x17.gorpc.JobTasksListResp\x12?\n" +
+	"\x0fDeployConfigAdd\x12\x15.gorpc.DeployConfigVo\x1a\x15.gorpc.DeployConfigVo\x12B\n" +
+	"\x12DeployConfigUpdate\x12\x15.gorpc.DeployConfigVo\x1a\x15.gorpc.DeployConfigVo\x12+\n" +
+	"\x0fDeployConfigDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12?\n" +
+	"\x0fDeployConfigGet\x12\x15.gorpc.DeployConfigVo\x1a\x15.gorpc.DeployConfigVo\x12K\n" +
+	"\x10DeployConfigList\x12\x1a.gorpc.DeployConfigListReq\x1a\x1b.gorpc.DeployConfigListResp\x12?\n" +
+	"\x0fOperationLogAdd\x12\x15.gorpc.OperationLogVo\x1a\x15.gorpc.OperationLogVo\x12B\n" +
+	"\x12OperationLogUpdate\x12\x15.gorpc.OperationLogVo\x1a\x15.gorpc.OperationLogVo\x12?\n" +
+	"\x0fOperationLogGet\x12\x15.gorpc.OperationLogVo\x1a\x15.gorpc.OperationLogVo\x12K\n" +
+	"\x10OperationLogList\x12\x1a.gorpc.OperationLogListReq\x1a\x1b.gorpc.OperationLogListResp\x12?\n" +
+	"\x0fAnnouncePlanAdd\x12\x15.gorpc.AnnouncePlanVo\x1a\x15.gorpc.AnnouncePlanVo\x12B\n" +
+	"\x12AnnouncePlanUpdate\x12\x15.gorpc.AnnouncePlanVo\x1a\x15.gorpc.AnnouncePlanVo\x12+\n" +
+	"\x0fAnnouncePlanDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12?\n" +
+	"\x0fAnnouncePlanGet\x12\x15.gorpc.AnnouncePlanVo\x1a\x15.gorpc.AnnouncePlanVo\x12K\n" +
+	"\x10AnnouncePlanList\x12\x1a.gorpc.AnnouncePlanListReq\x1a\x1b.gorpc.AnnouncePlanListResp\x12Q\n" +
+	"\x15AnnouncePlanDetailAdd\x12\x1b.gorpc.AnnouncePlanDetailVo\x1a\x1b.gorpc.AnnouncePlanDetailVo\x12T\n" +
+	"\x18AnnouncePlanDetailUpdate\x12\x1b.gorpc.AnnouncePlanDetailVo\x1a\x1b.gorpc.AnnouncePlanDetailVo\x121\n" +
+	"\x15AnnouncePlanDetailDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12Q\n" +
+	"\x15AnnouncePlanDetailGet\x12\x1b.gorpc.AnnouncePlanDetailVo\x1a\x1b.gorpc.AnnouncePlanDetailVo\x12]\n" +
+	"\x16AnnouncePlanDetailList\x12 .gorpc.AnnouncePlanDetailListReq\x1a!.gorpc.AnnouncePlanDetailListResp\x12C\n" +
+	"\x0fServiceTypesAdd\x12\x19.gorpc.ServiceTypesAddReq\x1a\x15.gorpc.ServiceTypesVo\x12I\n" +
+	"\x12ServiceTypesUpdate\x12\x1c.gorpc.ServiceTypesUpdateReq\x1a\x15.gorpc.ServiceTypesVo\x12:\n" +
+	"\x0fServiceTypesDel\x12\x19.gorpc.ServiceTypesDelReq\x1a\f.gorpc.Empty\x12C\n" +
+	"\x0fServiceTypesGet\x12\x19.gorpc.ServiceTypesGetReq\x1a\x15.gorpc.ServiceTypesVo\x12K\n" +
+	"\x10ServiceTypesList\x12\x1a.gorpc.ServiceTypesListReq\x1a\x1b.gorpc.ServiceTypesListResp\x12@\n" +
+	"\x0eServiceSetsAdd\x12\x18.gorpc.ServiceSetsAddReq\x1a\x14.gorpc.ServiceSetsVo\x12F\n" +
+	"\x11ServiceSetsUpdate\x12\x1b.gorpc.ServiceSetsUpdateReq\x1a\x14.gorpc.ServiceSetsVo\x128\n" +
+	"\x0eServiceSetsDel\x12\x18.gorpc.ServiceSetsDelReq\x1a\f.gorpc.Empty\x12@\n" +
+	"\x0eServiceSetsGet\x12\x18.gorpc.ServiceSetsGetReq\x1a\x14.gorpc.ServiceSetsVo\x12H\n" +
+	"\x0fServiceSetsList\x12\x19.gorpc.ServiceSetsListReq\x1a\x1a.gorpc.ServiceSetsListResp\x12<\n" +
+	"\x0eMessagePushAdd\x12\x14.gorpc.MessagePushVo\x1a\x14.gorpc.MessagePushVo\x12?\n" +
+	"\x11MessagePushUpdate\x12\x14.gorpc.MessagePushVo\x1a\x14.gorpc.MessagePushVo\x12H\n" +
+	"\x0fMessagePushList\x12\x19.gorpc.MessagePushListReq\x1a\x1a.gorpc.MessagePushListResp2\xf8\n" +
+	"\n" +
+	"\x12GoShortDramaClient\x129\n" +
+	"\rShortDramaAdd\x12\x13.gorpc.ShortDramaVo\x1a\x13.gorpc.ShortDramaVo\x125\n" +
+	"\x10ShortDramaUpdate\x12\x13.gorpc.ShortDramaVo\x1a\f.gorpc.Empty\x12)\n" +
+	"\rShortDramaDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12=\n" +
+	"\rShortDramaGet\x12\x17.gorpc.ShortDramaGetReq\x1a\x13.gorpc.ShortDramaVo\x12E\n" +
+	"\x0eShortDramaList\x12\x18.gorpc.ShortDramaListReq\x1a\x19.gorpc.ShortDramaListResp\x12L\n" +
+	"\x18ShortDramaUpdateModifier\x12\".gorpc.ShortDramaUpdateModifierReq\x1a\f.gorpc.Empty\x12]\n" +
+	"\x16ShortDramaLanguageList\x12 .gorpc.ShortDramaLanguageListReq\x1a!.gorpc.ShortDramaLanguageListResp\x12N\n" +
+	"\x14ShortDramaEpisodeAdd\x12\x1a.gorpc.ShortDramaEpisodeVo\x1a\x1a.gorpc.ShortDramaEpisodeVo\x12N\n" +
+	"\x19ShortDramaEpisodeBatchAdd\x12#.gorpc.ShortDramaEpisodeBatchAddReq\x1a\f.gorpc.Empty\x12C\n" +
+	"\x17ShortDramaEpisodeUpdate\x12\x1a.gorpc.ShortDramaEpisodeVo\x1a\f.gorpc.Empty\x120\n" +
+	"\x14ShortDramaEpisodeDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12R\n" +
+	"\x14ShortDramaEpisodeGet\x12\x1e.gorpc.ShortDramaEpisodeGetReq\x1a\x1a.gorpc.ShortDramaEpisodeVo\x12Z\n" +
+	"\x15ShortDramaEpisodeList\x12\x1f.gorpc.ShortDramaEpisodeListReq\x1a .gorpc.ShortDramaEpisodeListResp\x12j\n" +
+	"'ShortDramaEpisodeBatchRefreshUpdateTime\x121.gorpc.ShortDramaEpisodeBatchRefreshUpdateTimeReq\x1a\f.gorpc.Empty\x12]\n" +
+	"\x16ShortDramaEpisodeCount\x12 .gorpc.ShortDramaEpisodeCountReq\x1a!.gorpc.ShortDramaEpisodeCountResp\x12T\n" +
+	"\x13ShortDramaCheckName\x12\x1d.gorpc.ShortDramaCheckNameReq\x1a\x1e.gorpc.ShortDramaCheckNameResp\x126\n" +
+	"\rSetTotalStats\x12\x17.gorpc.SetTotalStatsReq\x1a\f.gorpc.Empty\x12r\n" +
+	"\x1dShortDramaStatsPlaysTotalList\x12'.gorpc.ShortDramaStatsPlaysTotalListReq\x1a(.gorpc.ShortDramaStatsPlaysTotalListResp2\xac\x13\n" +
+	"\vGoSysClient\x12'\n" +
+	"\x04Ping\x12\x0e.gorpc.Request\x1a\x0f.gorpc.Response\x120\n" +
+	"\n" +
+	"SysUserAdd\x12\x10.gorpc.SysUserVo\x1a\x10.gorpc.SysUserVo\x123\n" +
+	"\rSysUserUpdate\x12\x10.gorpc.SysUserVo\x1a\x10.gorpc.SysUserVo\x12)\n" +
+	"\rSysUserDelete\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x124\n" +
+	"\n" +
+	"SysUserGet\x12\x14.gorpc.SysUserGetReq\x1a\x10.gorpc.SysUserVo\x12<\n" +
+	"\vSysUserList\x12\x15.gorpc.SysUserListReq\x1a\x16.gorpc.SysUserListResp\x12e\n" +
+	"\x1bSysUserAddWithRolesAndPerms\x12%.gorpc.SysUserWithRoleIdsAndPermRules\x1a\x1f.gorpc.SysUserWithRolesAndPerms\x12h\n" +
+	"\x1eSysUserUpdateWithRolesAndPerms\x12%.gorpc.SysUserWithRoleIdsAndPermRules\x1a\x1f.gorpc.SysUserWithRolesAndPerms\x12T\n" +
+	"\x1bSysUserGetWithRolesAndPerms\x12\x14.gorpc.SysUserGetReq\x1a\x1f.gorpc.SysUserWithRolesAndPerms\x12^\n" +
+	"\x1cSysUserListWithRolesAndPerms\x12\x15.gorpc.SysUserListReq\x1a'.gorpc.SysUserListWithRolesAndPermsResp\x120\n" +
+	"\n" +
+	"SysRoleAdd\x12\x10.gorpc.SysRoleVo\x1a\x10.gorpc.SysRoleVo\x123\n" +
+	"\rSysRoleUpdate\x12\x10.gorpc.SysRoleVo\x1a\x10.gorpc.SysRoleVo\x12)\n" +
+	"\rSysRoleDelete\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x124\n" +
+	"\n" +
+	"SysRoleGet\x12\x14.gorpc.SysRoleGetReq\x1a\x10.gorpc.SysRoleVo\x12<\n" +
+	"\vSysRoleList\x12\x15.gorpc.SysRoleListReq\x1a\x16.gorpc.SysRoleListResp\x12I\n" +
+	"\x13SysRoleAddWithPerms\x12\x19.gorpc.SysRoleWithPermIds\x1a\x17.gorpc.SysRoleWithPerms\x12L\n" +
+	"\x16SysRoleUpdateWithPerms\x12\x19.gorpc.SysRoleWithPermIds\x1a\x17.gorpc.SysRoleWithPerms\x12D\n" +
+	"\x13SysRoleGetWithPerms\x12\x14.gorpc.SysRoleGetReq\x1a\x17.gorpc.SysRoleWithPerms\x12N\n" +
+	"\x14SysRoleListWithPerms\x12\x15.gorpc.SysRoleListReq\x1a\x1f.gorpc.SysRoleListWithPermsResp\x120\n" +
+	"\n" +
+	"SysPermAdd\x12\x10.gorpc.SysPermVo\x1a\x10.gorpc.SysPermVo\x123\n" +
+	"\rSysPermUpdate\x12\x10.gorpc.SysPermVo\x1a\x10.gorpc.SysPermVo\x12)\n" +
+	"\rSysPermDelete\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x124\n" +
+	"\n" +
+	"SysPermGet\x12\x14.gorpc.SysPermGetReq\x1a\x10.gorpc.SysPermVo\x12<\n" +
+	"\vSysPermList\x12\x15.gorpc.SysPermListReq\x1a\x16.gorpc.SysPermListResp\x12<\n" +
+	"\x0eSysUserRoleAdd\x12\x14.gorpc.SysUserRoleVo\x1a\x14.gorpc.SysUserRoleVo\x12?\n" +
+	"\x11SysUserRoleUpdate\x12\x14.gorpc.SysUserRoleVo\x1a\x14.gorpc.SysUserRoleVo\x12-\n" +
+	"\x11SysUserRoleDelete\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12@\n" +
+	"\x0eSysUserRoleGet\x12\x18.gorpc.SysUserRoleGetReq\x1a\x14.gorpc.SysUserRoleVo\x12H\n" +
+	"\x0fSysUserRoleList\x12\x19.gorpc.SysUserRoleListReq\x1a\x1a.gorpc.SysUserRoleListResp\x12<\n" +
+	"\x0eSysRolePermAdd\x12\x14.gorpc.SysRolePermVo\x1a\x14.gorpc.SysRolePermVo\x12?\n" +
+	"\x11SysRolePermUpdate\x12\x14.gorpc.SysRolePermVo\x1a\x14.gorpc.SysRolePermVo\x12-\n" +
+	"\x11SysRolePermDelete\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12@\n" +
+	"\x0eSysRolePermGet\x12\x18.gorpc.SysRolePermGetReq\x1a\x14.gorpc.SysRolePermVo\x12H\n" +
+	"\x0fSysRolePermList\x12\x19.gorpc.SysRolePermListReq\x1a\x1a.gorpc.SysRolePermListResp\x12<\n" +
+	"\x0eSysUserPermAdd\x12\x14.gorpc.SysUserPermVo\x1a\x14.gorpc.SysUserPermVo\x12?\n" +
+	"\x11SysUserPermUpdate\x12\x14.gorpc.SysUserPermVo\x1a\x14.gorpc.SysUserPermVo\x12-\n" +
+	"\x11SysUserPermDelete\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12@\n" +
+	"\x0eSysUserPermGet\x12\x18.gorpc.SysUserPermGetReq\x1a\x14.gorpc.SysUserPermVo\x12H\n" +
+	"\x0fSysUserPermList\x12\x19.gorpc.SysUserPermListReq\x1a\x1a.gorpc.SysUserPermListResp2\xc4\t\n" +
+	"\fGoUserClient\x12'\n" +
+	"\x04Ping\x12\x0e.gorpc.Request\x1a\x0f.gorpc.Response\x12B\n" +
+	"\x10UserAppConfigAdd\x12\x16.gorpc.UserAppConfigVo\x1a\x16.gorpc.UserAppConfigVo\x12E\n" +
+	"\x13UserAppConfigUpdate\x12\x16.gorpc.UserAppConfigVo\x1a\x16.gorpc.UserAppConfigVo\x12,\n" +
+	"\x10UserAppConfigDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12F\n" +
+	"\x10UserAppConfigGet\x12\x1a.gorpc.UserAppConfigGetReq\x1a\x16.gorpc.UserAppConfigVo\x12M\n" +
+	"\x11UserAppConfigList\x12\x1b.gorpc.UserAppConfigListReq\x1a\x1b.gorpc.UserAppConfigListRes\x12-\n" +
+	"\tDeviceAdd\x12\x0f.gorpc.DeviceVo\x1a\x0f.gorpc.DeviceVo\x120\n" +
+	"\fDeviceUpdate\x12\x0f.gorpc.DeviceVo\x1a\x0f.gorpc.DeviceVo\x12%\n" +
+	"\tDeviceDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12-\n" +
+	"\tDeviceGet\x12\x0f.gorpc.DeviceVo\x1a\x0f.gorpc.DeviceVo\x128\n" +
+	"\n" +
+	"DeviceList\x12\x14.gorpc.DeviceListReq\x1a\x14.gorpc.DeviceListRes\x120\n" +
+	"\n" +
+	"AccountAdd\x12\x10.gorpc.AccountVo\x1a\x10.gorpc.AccountVo\x123\n" +
+	"\rAccountUpdate\x12\x10.gorpc.AccountVo\x1a\x10.gorpc.AccountVo\x12&\n" +
+	"\n" +
+	"AccountDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x120\n" +
+	"\n" +
+	"AccountGet\x12\x10.gorpc.AccountVo\x1a\x10.gorpc.AccountVo\x12<\n" +
+	"\vAccountList\x12\x15.gorpc.AccountListReq\x1a\x16.gorpc.AccountListResp\x12B\n" +
+	"\x10AccountDeviceAdd\x12\x16.gorpc.AccountDeviceVo\x1a\x16.gorpc.AccountDeviceVo\x12E\n" +
+	"\x13AccountDeviceUpdate\x12\x16.gorpc.AccountDeviceVo\x1a\x16.gorpc.AccountDeviceVo\x12,\n" +
+	"\x10AccountDeviceDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12B\n" +
+	"\x10AccountDeviceGet\x12\x16.gorpc.AccountDeviceVo\x1a\x16.gorpc.AccountDeviceVo\x12N\n" +
+	"\x11AccountDeviceList\x12\x1b.gorpc.AccountDeviceListReq\x1a\x1c.gorpc.AccountDeviceListResp2\xf9\x16\n" +
+	"\vGoVpnClient\x12'\n" +
+	"\x04Ping\x12\x0e.gorpc.Request\x1a\x0f.gorpc.Response\x122\n" +
+	"\vTransaction\x12\x15.gorpc.TransactionReq\x1a\f.gorpc.Empty\x12-\n" +
+	"\tVpnTagAdd\x12\x0f.gorpc.VpnTagVo\x1a\x0f.gorpc.VpnTagVo\x120\n" +
+	"\fVpnTagUpdate\x12\x0f.gorpc.VpnTagVo\x1a\x0f.gorpc.VpnTagVo\x12%\n" +
+	"\tVpnTagDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x121\n" +
+	"\tVpnTagGet\x12\x13.gorpc.VpnTagGetReq\x1a\x0f.gorpc.VpnTagVo\x129\n" +
+	"\n" +
+	"VpnTagList\x12\x14.gorpc.VpnTagListReq\x1a\x15.gorpc.VpnTagListResp\x12E\n" +
+	"\x0eVpnTagBatchAdd\x12\x18.gorpc.VpnTagBatchAddReq\x1a\x19.gorpc.VpnTagBatchAddResp\x12N\n" +
+	"\x11VpnTagBatchUpdate\x12\x1b.gorpc.VpnTagBatchUpdateReq\x1a\x1c.gorpc.VpnTagBatchUpdateResp\x127\n" +
+	"\vVpnGroupAdd\x12\x15.gorpc.VpnGroupAddReq\x1a\x11.gorpc.VpnGroupVo\x125\n" +
+	"\x0eVpnGroupUpdate\x12\x15.gorpc.VpnGroupAddReq\x1a\f.gorpc.Empty\x12'\n" +
+	"\vVpnGroupDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x127\n" +
+	"\vVpnGroupGet\x12\x15.gorpc.VpnGroupGetReq\x1a\x11.gorpc.VpnGroupVo\x12?\n" +
+	"\fVpnGroupList\x12\x16.gorpc.VpnGroupListReq\x1a\x17.gorpc.VpnGroupListResp\x12K\n" +
+	"\x10VpnGroupBatchAdd\x12\x1a.gorpc.VpnGroupBatchAddReq\x1a\x1b.gorpc.VpnGroupBatchAddResp\x12T\n" +
+	"\x13VpnGroupBatchUpdate\x12\x1d.gorpc.VpnGroupBatchUpdateReq\x1a\x1e.gorpc.VpnGroupBatchUpdateResp\x12<\n" +
+	"\x0eVpnGroupTagAdd\x12\x14.gorpc.VpnGroupTagVo\x1a\x14.gorpc.VpnGroupTagVo\x12?\n" +
+	"\x11VpnGroupTagUpdate\x12\x14.gorpc.VpnGroupTagVo\x1a\x14.gorpc.VpnGroupTagVo\x12*\n" +
+	"\x0eVpnGroupTagDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12<\n" +
+	"\x0eVpnGroupTagGet\x12\x14.gorpc.VpnGroupTagVo\x1a\x14.gorpc.VpnGroupTagVo\x12H\n" +
+	"\x0fVpnGroupTagList\x12\x19.gorpc.VpnGroupTagListReq\x1a\x1a.gorpc.VpnGroupTagListResp\x12<\n" +
+	"\x0eVpnLocationAdd\x12\x14.gorpc.VpnLocationVo\x1a\x14.gorpc.VpnLocationVo\x127\n" +
+	"\x11VpnLocationUpdate\x12\x14.gorpc.VpnLocationVo\x1a\f.gorpc.Empty\x12*\n" +
+	"\x0eVpnLocationDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12@\n" +
+	"\x0eVpnLocationGet\x12\x18.gorpc.VpnLocationGetReq\x1a\x14.gorpc.VpnLocationVo\x12H\n" +
+	"\x0fVpnLocationList\x12\x19.gorpc.VpnLocationListReq\x1a\x1a.gorpc.VpnLocationListResp\x12T\n" +
+	"\x13VpnLocationBatchAdd\x12\x1d.gorpc.VpnLocationBatchAddReq\x1a\x1e.gorpc.VpnLocationBatchAddResp\x12]\n" +
+	"\x16VpnLocationBatchUpdate\x12 .gorpc.VpnLocationBatchUpdateReq\x1a!.gorpc.VpnLocationBatchUpdateResp\x12>\n" +
+	"\fVpnServerAdd\x12\x16.gorpc.VpnServerAddReq\x1a\x16.gorpc.VpnServerAddReq\x12A\n" +
+	"\x0fVpnServerUpdate\x12\x16.gorpc.VpnServerAddReq\x1a\x16.gorpc.VpnServerAddReq\x12(\n" +
+	"\fVpnServerDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x126\n" +
+	"\fVpnServerGet\x12\x12.gorpc.VpnServerVo\x1a\x12.gorpc.VpnServerVo\x12B\n" +
+	"\rVpnServerList\x12\x17.gorpc.VpnServerListReq\x1a\x18.gorpc.VpnServerListResp\x12F\n" +
+	"\x0fVpnServerExList\x12\x17.gorpc.VpnServerListReq\x1a\x1a.gorpc.VpnServerExListResp\x12N\n" +
+	"\x11VpnServerBatchAdd\x12\x1b.gorpc.VpnServerBatchAddReq\x1a\x1c.gorpc.VpnServerBatchAddResp\x12W\n" +
+	"\x14VpnServerBatchUpdate\x12\x1e.gorpc.VpnServerBatchUpdateReq\x1a\x1f.gorpc.VpnServerBatchUpdateResp\x12N\n" +
+	"\x14VpnServerLocationAdd\x12\x1a.gorpc.VpnServerLocationVo\x1a\x1a.gorpc.VpnServerLocationVo\x12C\n" +
+	"\x17VpnServerLocationUpdate\x12\x1a.gorpc.VpnServerLocationVo\x1a\f.gorpc.Empty\x120\n" +
+	"\x14VpnServerLocationDel\x12\n" +
+	".gorpc.Ids\x1a\f.gorpc.Empty\x12N\n" +
+	"\x14VpnServerLocationGet\x12\x1a.gorpc.VpnServerLocationVo\x1a\x1a.gorpc.VpnServerLocationVo\x12Z\n" +
+	"\x15VpnServerLocationList\x12\x1f.gorpc.VpnServerLocationListReq\x1a .gorpc.VpnServerLocationListResp\x12]\n" +
+	"\x16VpnLocationServerCount\x12 .gorpc.VpnLocationServerCountReq\x1a!.gorpc.VpnLocationServerCountResp\x12?\n" +
+	"\x0fVpnProbeTaskAdd\x12\x15.gorpc.VpnProbeTaskVo\x1a\x15.gorpc.VpnProbeTaskVo\x129\n" +
+	"\x12VpnProbeTaskUpdate\x12\x15.gorpc.VpnProbeTaskVo\x1a\f.gorpc.Empty\x12K\n" +
+	"\x10VpnProbeTaskList\x12\x1a.gorpc.VpnProbeTaskListReq\x1a\x1b.gorpc.VpnProbeTaskListRespB\x06Z\x04./pbb\x06proto3"
+
+var (
+	file_gorpc_proto_rawDescOnce sync.Once
+	file_gorpc_proto_rawDescData []byte
+)
+
+func file_gorpc_proto_rawDescGZIP() []byte {
+	file_gorpc_proto_rawDescOnce.Do(func() {
+		file_gorpc_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_gorpc_proto_rawDesc), len(file_gorpc_proto_rawDesc)))
+	})
+	return file_gorpc_proto_rawDescData
+}
+
+var file_gorpc_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
+var file_gorpc_proto_msgTypes = make([]protoimpl.MessageInfo, 245)
+var file_gorpc_proto_goTypes = []any{
+	(RegisterMode)(0),                                  // 0: gorpc.RegisterMode
+	(CommonResultCode)(0),                              // 1: gorpc.CommonResultCode
+	(Status)(0),                                        // 2: gorpc.Status
+	(BoolInt)(0),                                       // 3: gorpc.BoolInt
+	(*Empty)(nil),                                      // 4: gorpc.Empty
+	(*Int64SelectController)(nil),                      // 5: gorpc.Int64SelectController
+	(*IntSelectController)(nil),                        // 6: gorpc.IntSelectController
+	(*StringSelectController)(nil),                     // 7: gorpc.StringSelectController
+	(*Page)(nil),                                       // 8: gorpc.Page
+	(*CommonResult)(nil),                               // 9: gorpc.CommonResult
+	(*BaseReq)(nil),                                    // 10: gorpc.BaseReq
+	(*DeleteIdResp)(nil),                               // 11: gorpc.DeleteIdResp
+	(*Ids)(nil),                                        // 12: gorpc.Ids
+	(*Request)(nil),                                    // 13: gorpc.Request
+	(*Response)(nil),                                   // 14: gorpc.Response
+	(*TransactionOperation)(nil),                       // 15: gorpc.TransactionOperation
+	(*TransactionReq)(nil),                             // 16: gorpc.TransactionReq
+	(*GameVo)(nil),                                     // 17: gorpc.GameVo
+	(*GameReq)(nil),                                    // 18: gorpc.GameReq
+	(*GameListReq)(nil),                                // 19: gorpc.GameListReq
+	(*GameListRes)(nil),                                // 20: gorpc.GameListRes
+	(*RelGameRankVo)(nil),                              // 21: gorpc.RelGameRankVo
+	(*RelGameRankReq)(nil),                             // 22: gorpc.RelGameRankReq
+	(*RelGameRankListReq)(nil),                         // 23: gorpc.RelGameRankListReq
+	(*RelGameRankListRes)(nil),                         // 24: gorpc.RelGameRankListRes
+	(*RelGameVpnGroupVo)(nil),                          // 25: gorpc.RelGameVpnGroupVo
+	(*RelGameVpnGroupReq)(nil),                         // 26: gorpc.RelGameVpnGroupReq
+	(*RelGameVpnGroupListReq)(nil),                     // 27: gorpc.RelGameVpnGroupListReq
+	(*RelGameVpnGroupListRes)(nil),                     // 28: gorpc.RelGameVpnGroupListRes
+	(*GameRedisHScanByNameReq)(nil),                    // 29: gorpc.GameRedisHScanByNameReq
+	(*GameRedisHScanByNameResp)(nil),                   // 30: gorpc.GameRedisHScanByNameResp
+	(*GameCustomerVo)(nil),                             // 31: gorpc.GameCustomerVo
+	(*GameCustomerListReq)(nil),                        // 32: gorpc.GameCustomerListReq
+	(*GameCustomerListRes)(nil),                        // 33: gorpc.GameCustomerListRes
+	(*GameCustomerAddResp)(nil),                        // 34: gorpc.GameCustomerAddResp
+	(*GameCategoryVo)(nil),                             // 35: gorpc.GameCategoryVo
+	(*GameCategoryReq)(nil),                            // 36: gorpc.GameCategoryReq
+	(*GameCategoryListReq)(nil),                        // 37: gorpc.GameCategoryListReq
+	(*GameCategoryListRes)(nil),                        // 38: gorpc.GameCategoryListRes
+	(*I18NVo)(nil),                                     // 39: gorpc.I18nVo
+	(*ConfigGetReq)(nil),                               // 40: gorpc.ConfigGetReq
+	(*GlobalParamVo)(nil),                              // 41: gorpc.GlobalParamVo
+	(*GlobalParamGetReq)(nil),                          // 42: gorpc.GlobalParamGetReq
+	(*GlobalParamListReq)(nil),                         // 43: gorpc.GlobalParamListReq
+	(*GlobalParamListResp)(nil),                        // 44: gorpc.GlobalParamListResp
+	(*ProductVo)(nil),                                  // 45: gorpc.ProductVo
+	(*ProductListReq)(nil),                             // 46: gorpc.ProductListReq
+	(*ProductListResp)(nil),                            // 47: gorpc.ProductListResp
+	(*ProductParamVo)(nil),                             // 48: gorpc.ProductParamVo
+	(*ProductParamGetReq)(nil),                         // 49: gorpc.ProductParamGetReq
+	(*ProductParamListReq)(nil),                        // 50: gorpc.ProductParamListReq
+	(*ProductParamListResp)(nil),                       // 51: gorpc.ProductParamListResp
+	(*ProductActionVo)(nil),                            // 52: gorpc.ProductActionVo
+	(*ProductActionReq)(nil),                           // 53: gorpc.ProductActionReq
+	(*ProductActionListReq)(nil),                       // 54: gorpc.ProductActionListReq
+	(*ProductActionListResp)(nil),                      // 55: gorpc.ProductActionListResp
+	(*AreaParamVo)(nil),                                // 56: gorpc.AreaParamVo
+	(*AreaParamListReq)(nil),                           // 57: gorpc.AreaParamListReq
+	(*AreaParamListResp)(nil),                          // 58: gorpc.AreaParamListResp
+	(*NationalLanguageVo)(nil),                         // 59: gorpc.NationalLanguageVo
+	(*NationalLanguageListReq)(nil),                    // 60: gorpc.NationalLanguageListReq
+	(*NationalLanguageListResp)(nil),                   // 61: gorpc.NationalLanguageListResp
+	(*TipVo)(nil),                                      // 62: gorpc.TipVo
+	(*TipGetReq)(nil),                                  // 63: gorpc.TipGetReq
+	(*TipListReq)(nil),                                 // 64: gorpc.TipListReq
+	(*TipListResp)(nil),                                // 65: gorpc.TipListResp
+	(*DictVo)(nil),                                     // 66: gorpc.DictVo
+	(*DictGetReq)(nil),                                 // 67: gorpc.DictGetReq
+	(*DictListReq)(nil),                                // 68: gorpc.DictListReq
+	(*DictListResp)(nil),                               // 69: gorpc.DictListResp
+	(*UpgradePkgPlanVo)(nil),                           // 70: gorpc.UpgradePkgPlanVo
+	(*UpgradePkgPlanListReq)(nil),                      // 71: gorpc.UpgradePkgPlanListReq
+	(*UpgradePkgPlanListResp)(nil),                     // 72: gorpc.UpgradePkgPlanListResp
+	(*UpgradePkgPlanDetailVo)(nil),                     // 73: gorpc.UpgradePkgPlanDetailVo
+	(*UpgradePkgPlanDetailListReq)(nil),                // 74: gorpc.UpgradePkgPlanDetailListReq
+	(*UpgradePkgPlanDetailListResp)(nil),               // 75: gorpc.UpgradePkgPlanDetailListResp
+	(*UpgradeResPlanVo)(nil),                           // 76: gorpc.UpgradeResPlanVo
+	(*UpgradeResPlanListReq)(nil),                      // 77: gorpc.UpgradeResPlanListReq
+	(*UpgradeResPlanListResp)(nil),                     // 78: gorpc.UpgradeResPlanListResp
+	(*UpgradeResPlanDetailVo)(nil),                     // 79: gorpc.UpgradeResPlanDetailVo
+	(*UpgradeResPlanDetailListReq)(nil),                // 80: gorpc.UpgradeResPlanDetailListReq
+	(*UpgradeResPlanDetailListResp)(nil),               // 81: gorpc.UpgradeResPlanDetailListResp
+	(*AdPlanVo)(nil),                                   // 82: gorpc.AdPlanVo
+	(*AdPlanListReq)(nil),                              // 83: gorpc.AdPlanListReq
+	(*AdPlanListResp)(nil),                             // 84: gorpc.AdPlanListResp
+	(*AdPlanDetailVo)(nil),                             // 85: gorpc.AdPlanDetailVo
+	(*AdPlanDetailListReq)(nil),                        // 86: gorpc.AdPlanDetailListReq
+	(*AdPlanDetailListResp)(nil),                       // 87: gorpc.AdPlanDetailListResp
+	(*AdGlobalConfigVo)(nil),                           // 88: gorpc.AdGlobalConfigVo
+	(*AdGlobalConfigGetReq)(nil),                       // 89: gorpc.AdGlobalConfigGetReq
+	(*JobBatchVo)(nil),                                 // 90: gorpc.JobBatchVo
+	(*JobBatchWithTasksVo)(nil),                        // 91: gorpc.JobBatchWithTasksVo
+	(*TimeRange)(nil),                                  // 92: gorpc.TimeRange
+	(*JobBatchListReq)(nil),                            // 93: gorpc.JobBatchListReq
+	(*JobBatchListResp)(nil),                           // 94: gorpc.JobBatchListResp
+	(*JobBatchListWithTasksResp)(nil),                  // 95: gorpc.JobBatchListWithTasksResp
+	(*JobTasksVo)(nil),                                 // 96: gorpc.JobTasksVo
+	(*JobTasksListReq)(nil),                            // 97: gorpc.JobTasksListReq
+	(*JobTasksListResp)(nil),                           // 98: gorpc.JobTasksListResp
+	(*DeployConfigVo)(nil),                             // 99: gorpc.DeployConfigVo
+	(*DeployConfigListReq)(nil),                        // 100: gorpc.DeployConfigListReq
+	(*DeployConfigListResp)(nil),                       // 101: gorpc.DeployConfigListResp
+	(*OperationLogVo)(nil),                             // 102: gorpc.OperationLogVo
+	(*OperationLogListReq)(nil),                        // 103: gorpc.OperationLogListReq
+	(*OperationLogListResp)(nil),                       // 104: gorpc.OperationLogListResp
+	(*AnnouncePlanVo)(nil),                             // 105: gorpc.AnnouncePlanVo
+	(*AnnouncePlanListReq)(nil),                        // 106: gorpc.AnnouncePlanListReq
+	(*AnnouncePlanListResp)(nil),                       // 107: gorpc.AnnouncePlanListResp
+	(*AnnouncePlanDetailVo)(nil),                       // 108: gorpc.AnnouncePlanDetailVo
+	(*AnnouncePlanDetailListReq)(nil),                  // 109: gorpc.AnnouncePlanDetailListReq
+	(*AnnouncePlanDetailListResp)(nil),                 // 110: gorpc.AnnouncePlanDetailListResp
+	(*ServiceTypesVo)(nil),                             // 111: gorpc.ServiceTypesVo
+	(*ServiceTypesGetReq)(nil),                         // 112: gorpc.ServiceTypesGetReq
+	(*ServiceTypesListReq)(nil),                        // 113: gorpc.ServiceTypesListReq
+	(*ServiceTypesListResp)(nil),                       // 114: gorpc.ServiceTypesListResp
+	(*ServiceTypesAddReq)(nil),                         // 115: gorpc.ServiceTypesAddReq
+	(*ServiceTypesUpdateReq)(nil),                      // 116: gorpc.ServiceTypesUpdateReq
+	(*ServiceTypesDelReq)(nil),                         // 117: gorpc.ServiceTypesDelReq
+	(*ServiceSetsVo)(nil),                              // 118: gorpc.ServiceSetsVo
+	(*ServiceSetsGetReq)(nil),                          // 119: gorpc.ServiceSetsGetReq
+	(*ServiceSetsListReq)(nil),                         // 120: gorpc.ServiceSetsListReq
+	(*ServiceSetsListResp)(nil),                        // 121: gorpc.ServiceSetsListResp
+	(*ServiceSetsAddReq)(nil),                          // 122: gorpc.ServiceSetsAddReq
+	(*ServiceSetsUpdateReq)(nil),                       // 123: gorpc.ServiceSetsUpdateReq
+	(*ServiceSetsDelReq)(nil),                          // 124: gorpc.ServiceSetsDelReq
+	(*MessagePushVo)(nil),                              // 125: gorpc.MessagePushVo
+	(*MessagePushListReq)(nil),                         // 126: gorpc.MessagePushListReq
+	(*MessagePushListResp)(nil),                        // 127: gorpc.MessagePushListResp
+	(*ShortDramaEpisodeVo)(nil),                        // 128: gorpc.ShortDramaEpisodeVo
+	(*ShortDramaEpisodeGetReq)(nil),                    // 129: gorpc.ShortDramaEpisodeGetReq
+	(*ShortDramaEpisodeListReq)(nil),                   // 130: gorpc.ShortDramaEpisodeListReq
+	(*ShortDramaEpisodeListResp)(nil),                  // 131: gorpc.ShortDramaEpisodeListResp
+	(*ShortDramaEpisodeBatchAddReq)(nil),               // 132: gorpc.ShortDramaEpisodeBatchAddReq
+	(*ShortDramaEpisodeBatchRefreshUpdateTimeReq)(nil), // 133: gorpc.ShortDramaEpisodeBatchRefreshUpdateTimeReq
+	(*ShortDramaLanguageVo)(nil),                       // 134: gorpc.ShortDramaLanguageVo
+	(*ShortDramaVo)(nil),                               // 135: gorpc.ShortDramaVo
+	(*ShortDramaGetReq)(nil),                           // 136: gorpc.ShortDramaGetReq
+	(*ShortDramaListReq)(nil),                          // 137: gorpc.ShortDramaListReq
+	(*ShortDramaListResp)(nil),                         // 138: gorpc.ShortDramaListResp
+	(*ShortDramaLanguageListReq)(nil),                  // 139: gorpc.ShortDramaLanguageListReq
+	(*ShortDramaLanguageListResp)(nil),                 // 140: gorpc.ShortDramaLanguageListResp
+	(*ShortDramaEpisodeCountVo)(nil),                   // 141: gorpc.ShortDramaEpisodeCountVo
+	(*ShortDramaEpisodeCountReq)(nil),                  // 142: gorpc.ShortDramaEpisodeCountReq
+	(*ShortDramaEpisodeCountResp)(nil),                 // 143: gorpc.ShortDramaEpisodeCountResp
+	(*ShortDramaCheckNameReq)(nil),                     // 144: gorpc.ShortDramaCheckNameReq
+	(*ShortDramaCheckNameResp)(nil),                    // 145: gorpc.ShortDramaCheckNameResp
+	(*ShortDramaUpdateModifierReq)(nil),                // 146: gorpc.ShortDramaUpdateModifierReq
+	(*SetTotalStatsReq)(nil),                           // 147: gorpc.SetTotalStatsReq
+	(*ShortDramaStatsPlaysTotalVo)(nil),                // 148: gorpc.ShortDramaStatsPlaysTotalVo
+	(*ShortDramaStatsPlaysTotalListReq)(nil),           // 149: gorpc.ShortDramaStatsPlaysTotalListReq
+	(*ShortDramaStatsPlaysTotalListResp)(nil),          // 150: gorpc.ShortDramaStatsPlaysTotalListResp
+	(*SysUserVo)(nil),                                  // 151: gorpc.SysUserVo
+	(*SysRoleVo)(nil),                                  // 152: gorpc.SysRoleVo
+	(*SysPermVo)(nil),                                  // 153: gorpc.SysPermVo
+	(*SysUserRoleVo)(nil),                              // 154: gorpc.SysUserRoleVo
+	(*SysRolePermVo)(nil),                              // 155: gorpc.SysRolePermVo
+	(*SysUserPermVo)(nil),                              // 156: gorpc.SysUserPermVo
+	(*SysPermRule)(nil),                                // 157: gorpc.SysPermRule
+	(*SysUserWithRoleIdsAndPermRules)(nil),             // 158: gorpc.SysUserWithRoleIdsAndPermRules
+	(*SysUserWithRolesAndPerms)(nil),                   // 159: gorpc.SysUserWithRolesAndPerms
+	(*SysUserGetReq)(nil),                              // 160: gorpc.SysUserGetReq
+	(*SysUserListReq)(nil),                             // 161: gorpc.SysUserListReq
+	(*SysUserListResp)(nil),                            // 162: gorpc.SysUserListResp
+	(*SysUserListWithRolesAndPermsResp)(nil),           // 163: gorpc.SysUserListWithRolesAndPermsResp
+	(*SysRoleWithPermIds)(nil),                         // 164: gorpc.SysRoleWithPermIds
+	(*SysRoleWithPerms)(nil),                           // 165: gorpc.SysRoleWithPerms
+	(*SysRoleGetReq)(nil),                              // 166: gorpc.SysRoleGetReq
+	(*SysRoleListReq)(nil),                             // 167: gorpc.SysRoleListReq
+	(*SysRoleListResp)(nil),                            // 168: gorpc.SysRoleListResp
+	(*SysRoleListWithPermsResp)(nil),                   // 169: gorpc.SysRoleListWithPermsResp
+	(*SysPermGetReq)(nil),                              // 170: gorpc.SysPermGetReq
+	(*SysPermListReq)(nil),                             // 171: gorpc.SysPermListReq
+	(*SysPermListResp)(nil),                            // 172: gorpc.SysPermListResp
+	(*SysUserRoleGetReq)(nil),                          // 173: gorpc.SysUserRoleGetReq
+	(*SysUserRoleListReq)(nil),                         // 174: gorpc.SysUserRoleListReq
+	(*SysUserRoleListResp)(nil),                        // 175: gorpc.SysUserRoleListResp
+	(*SysRolePermGetReq)(nil),                          // 176: gorpc.SysRolePermGetReq
+	(*SysRolePermListReq)(nil),                         // 177: gorpc.SysRolePermListReq
+	(*SysRolePermListResp)(nil),                        // 178: gorpc.SysRolePermListResp
+	(*SysUserPermGetReq)(nil),                          // 179: gorpc.SysUserPermGetReq
+	(*SysUserPermListReq)(nil),                         // 180: gorpc.SysUserPermListReq
+	(*SysUserPermListResp)(nil),                        // 181: gorpc.SysUserPermListResp
+	(*AccountVo)(nil),                                  // 182: gorpc.AccountVo
+	(*AccountListReq)(nil),                             // 183: gorpc.AccountListReq
+	(*AccountListResp)(nil),                            // 184: gorpc.AccountListResp
+	(*AccountDeviceVo)(nil),                            // 185: gorpc.AccountDeviceVo
+	(*AccountDeviceListReq)(nil),                       // 186: gorpc.AccountDeviceListReq
+	(*AccountDeviceListResp)(nil),                      // 187: gorpc.AccountDeviceListResp
+	(*DeviceVo)(nil),                                   // 188: gorpc.DeviceVo
+	(*DeviceListReq)(nil),                              // 189: gorpc.DeviceListReq
+	(*DeviceListRes)(nil),                              // 190: gorpc.DeviceListRes
+	(*UserAppConfigVo)(nil),                            // 191: gorpc.UserAppConfigVo
+	(*UserAppConfigGetReq)(nil),                        // 192: gorpc.UserAppConfigGetReq
+	(*UserAppConfigListReq)(nil),                       // 193: gorpc.UserAppConfigListReq
+	(*UserAppConfigListRes)(nil),                       // 194: gorpc.UserAppConfigListRes
+	(*VpnTagVo)(nil),                                   // 195: gorpc.VpnTagVo
+	(*VpnTagGetReq)(nil),                               // 196: gorpc.VpnTagGetReq
+	(*VpnTagListReq)(nil),                              // 197: gorpc.VpnTagListReq
+	(*VpnTagListResp)(nil),                             // 198: gorpc.VpnTagListResp
+	(*VpnTagBatchAddReq)(nil),                          // 199: gorpc.VpnTagBatchAddReq
+	(*VpnTagBatchAddResp)(nil),                         // 200: gorpc.VpnTagBatchAddResp
+	(*VpnTagBatchUpdateReq)(nil),                       // 201: gorpc.VpnTagBatchUpdateReq
+	(*VpnTagBatchUpdateResp)(nil),                      // 202: gorpc.VpnTagBatchUpdateResp
+	(*VpnTagBatchDelReq)(nil),                          // 203: gorpc.VpnTagBatchDelReq
+	(*VpnGroupVo)(nil),                                 // 204: gorpc.VpnGroupVo
+	(*VpnGroupExVo)(nil),                               // 205: gorpc.VpnGroupExVo
+	(*VpnGroupAddReq)(nil),                             // 206: gorpc.VpnGroupAddReq
+	(*VpnGroupGetReq)(nil),                             // 207: gorpc.VpnGroupGetReq
+	(*VpnGroupListReq)(nil),                            // 208: gorpc.VpnGroupListReq
+	(*VpnGroupListResp)(nil),                           // 209: gorpc.VpnGroupListResp
+	(*VpnGroupBatchAddReq)(nil),                        // 210: gorpc.VpnGroupBatchAddReq
+	(*VpnGroupBatchAddResp)(nil),                       // 211: gorpc.VpnGroupBatchAddResp
+	(*VpnGroupBatchUpdateReq)(nil),                     // 212: gorpc.VpnGroupBatchUpdateReq
+	(*VpnGroupBatchUpdateResp)(nil),                    // 213: gorpc.VpnGroupBatchUpdateResp
+	(*VpnGroupBatchDelReq)(nil),                        // 214: gorpc.VpnGroupBatchDelReq
+	(*VpnGroupTagVo)(nil),                              // 215: gorpc.VpnGroupTagVo
+	(*VpnGroupTagListReq)(nil),                         // 216: gorpc.VpnGroupTagListReq
+	(*VpnGroupTagListResp)(nil),                        // 217: gorpc.VpnGroupTagListResp
+	(*VpnLocationVo)(nil),                              // 218: gorpc.VpnLocationVo
+	(*VpnLocationExVo)(nil),                            // 219: gorpc.VpnLocationExVo
+	(*VpnLocationGetReq)(nil),                          // 220: gorpc.VpnLocationGetReq
+	(*VpnLocationListReq)(nil),                         // 221: gorpc.VpnLocationListReq
+	(*VpnLocationListResp)(nil),                        // 222: gorpc.VpnLocationListResp
+	(*VpnLocationBatchAddReq)(nil),                     // 223: gorpc.VpnLocationBatchAddReq
+	(*VpnLocationBatchAddResp)(nil),                    // 224: gorpc.VpnLocationBatchAddResp
+	(*VpnLocationBatchUpdateReq)(nil),                  // 225: gorpc.VpnLocationBatchUpdateReq
+	(*VpnLocationBatchUpdateResp)(nil),                 // 226: gorpc.VpnLocationBatchUpdateResp
+	(*VpnLocationBatchDelReq)(nil),                     // 227: gorpc.VpnLocationBatchDelReq
+	(*VpnServerVo)(nil),                                // 228: gorpc.VpnServerVo
+	(*VpnServerExVo)(nil),                              // 229: gorpc.VpnServerExVo
+	(*VpnServerListReq)(nil),                           // 230: gorpc.VpnServerListReq
+	(*VpnServerListResp)(nil),                          // 231: gorpc.VpnServerListResp
+	(*VpnServerExListResp)(nil),                        // 232: gorpc.VpnServerExListResp
+	(*VpnServerAddReq)(nil),                            // 233: gorpc.VpnServerAddReq
+	(*VpnServerBatchAddReq)(nil),                       // 234: gorpc.VpnServerBatchAddReq
+	(*VpnServerBatchAddResp)(nil),                      // 235: gorpc.VpnServerBatchAddResp
+	(*VpnServerBatchUpdateReq)(nil),                    // 236: gorpc.VpnServerBatchUpdateReq
+	(*VpnServerBatchUpdateResp)(nil),                   // 237: gorpc.VpnServerBatchUpdateResp
+	(*VpnServerBatchDelReq)(nil),                       // 238: gorpc.VpnServerBatchDelReq
+	(*VpnServerLocationVo)(nil),                        // 239: gorpc.VpnServerLocationVo
+	(*VpnServerLocationListReq)(nil),                   // 240: gorpc.VpnServerLocationListReq
+	(*VpnServerLocationListResp)(nil),                  // 241: gorpc.VpnServerLocationListResp
+	(*VpnLocationServerCountVo)(nil),                   // 242: gorpc.VpnLocationServerCountVo
+	(*VpnLocationServerCountReq)(nil),                  // 243: gorpc.VpnLocationServerCountReq
+	(*VpnLocationServerCountResp)(nil),                 // 244: gorpc.VpnLocationServerCountResp
+	(*VpnProbeTaskVo)(nil),                             // 245: gorpc.VpnProbeTaskVo
+	(*VpnProbeTaskListReq)(nil),                        // 246: gorpc.VpnProbeTaskListReq
+	(*VpnProbeTaskListResp)(nil),                       // 247: gorpc.VpnProbeTaskListResp
+	(*Page_OrderItem)(nil),                             // 248: gorpc.Page.OrderItem
+}
+var file_gorpc_proto_depIdxs = []int32{
+	248, // 0: gorpc.Page.sortBy:type_name -> gorpc.Page.OrderItem
+	1,   // 1: gorpc.CommonResult.code:type_name -> gorpc.CommonResultCode
+	15,  // 2: gorpc.TransactionReq.transactions:type_name -> gorpc.TransactionOperation
+	17,  // 3: gorpc.GameReq.vo:type_name -> gorpc.GameVo
+	8,   // 4: gorpc.GameListReq.page:type_name -> gorpc.Page
+	17,  // 5: gorpc.GameListReq.vo:type_name -> gorpc.GameVo
+	17,  // 6: gorpc.GameListRes.list:type_name -> gorpc.GameVo
+	21,  // 7: gorpc.RelGameRankReq.vo:type_name -> gorpc.RelGameRankVo
+	8,   // 8: gorpc.RelGameRankListReq.page:type_name -> gorpc.Page
+	21,  // 9: gorpc.RelGameRankListReq.vo:type_name -> gorpc.RelGameRankVo
+	21,  // 10: gorpc.RelGameRankListRes.list:type_name -> gorpc.RelGameRankVo
+	25,  // 11: gorpc.RelGameVpnGroupReq.vo:type_name -> gorpc.RelGameVpnGroupVo
+	25,  // 12: gorpc.RelGameVpnGroupListReq.vo:type_name -> gorpc.RelGameVpnGroupVo
+	25,  // 13: gorpc.RelGameVpnGroupListRes.list:type_name -> gorpc.RelGameVpnGroupVo
+	8,   // 14: gorpc.GameCustomerListReq.page:type_name -> gorpc.Page
+	31,  // 15: gorpc.GameCustomerListReq.vo:type_name -> gorpc.GameCustomerVo
+	31,  // 16: gorpc.GameCustomerListRes.list:type_name -> gorpc.GameCustomerVo
+	31,  // 17: gorpc.GameCustomerAddResp.vo:type_name -> gorpc.GameCustomerVo
+	35,  // 18: gorpc.GameCategoryReq.vo:type_name -> gorpc.GameCategoryVo
+	8,   // 19: gorpc.GameCategoryListReq.page:type_name -> gorpc.Page
+	35,  // 20: gorpc.GameCategoryListReq.vo:type_name -> gorpc.GameCategoryVo
+	35,  // 21: gorpc.GameCategoryListRes.list:type_name -> gorpc.GameCategoryVo
+	3,   // 22: gorpc.GlobalParamVo.editable:type_name -> gorpc.BoolInt
+	3,   // 23: gorpc.GlobalParamVo.nullable:type_name -> gorpc.BoolInt
+	3,   // 24: gorpc.GlobalParamVo.hidden:type_name -> gorpc.BoolInt
+	3,   // 25: gorpc.GlobalParamVo.mutiLang:type_name -> gorpc.BoolInt
+	3,   // 26: gorpc.GlobalParamVo.apiExport:type_name -> gorpc.BoolInt
+	39,  // 27: gorpc.GlobalParamVo.i18ns:type_name -> gorpc.I18nVo
+	41,  // 28: gorpc.GlobalParamGetReq.vo:type_name -> gorpc.GlobalParamVo
+	8,   // 29: gorpc.GlobalParamListReq.page:type_name -> gorpc.Page
+	41,  // 30: gorpc.GlobalParamListReq.vo:type_name -> gorpc.GlobalParamVo
+	41,  // 31: gorpc.GlobalParamListResp.list:type_name -> gorpc.GlobalParamVo
+	2,   // 32: gorpc.ProductVo.status:type_name -> gorpc.Status
+	8,   // 33: gorpc.ProductListReq.page:type_name -> gorpc.Page
+	45,  // 34: gorpc.ProductListReq.vo:type_name -> gorpc.ProductVo
+	45,  // 35: gorpc.ProductListResp.list:type_name -> gorpc.ProductVo
+	3,   // 36: gorpc.ProductParamVo.editable:type_name -> gorpc.BoolInt
+	3,   // 37: gorpc.ProductParamVo.nullable:type_name -> gorpc.BoolInt
+	3,   // 38: gorpc.ProductParamVo.hidden:type_name -> gorpc.BoolInt
+	3,   // 39: gorpc.ProductParamVo.mutiLang:type_name -> gorpc.BoolInt
+	3,   // 40: gorpc.ProductParamVo.apiExport:type_name -> gorpc.BoolInt
+	39,  // 41: gorpc.ProductParamVo.i18ns:type_name -> gorpc.I18nVo
+	48,  // 42: gorpc.ProductParamGetReq.vo:type_name -> gorpc.ProductParamVo
+	8,   // 43: gorpc.ProductParamListReq.page:type_name -> gorpc.Page
+	48,  // 44: gorpc.ProductParamListReq.vo:type_name -> gorpc.ProductParamVo
+	48,  // 45: gorpc.ProductParamListResp.list:type_name -> gorpc.ProductParamVo
+	2,   // 46: gorpc.ProductActionVo.status:type_name -> gorpc.Status
+	52,  // 47: gorpc.ProductActionReq.vo:type_name -> gorpc.ProductActionVo
+	8,   // 48: gorpc.ProductActionListReq.page:type_name -> gorpc.Page
+	52,  // 49: gorpc.ProductActionListReq.vo:type_name -> gorpc.ProductActionVo
+	52,  // 50: gorpc.ProductActionListResp.list:type_name -> gorpc.ProductActionVo
+	2,   // 51: gorpc.AreaParamVo.status:type_name -> gorpc.Status
+	8,   // 52: gorpc.AreaParamListReq.page:type_name -> gorpc.Page
+	56,  // 53: gorpc.AreaParamListReq.vo:type_name -> gorpc.AreaParamVo
+	56,  // 54: gorpc.AreaParamListResp.list:type_name -> gorpc.AreaParamVo
+	2,   // 55: gorpc.NationalLanguageVo.status:type_name -> gorpc.Status
+	8,   // 56: gorpc.NationalLanguageListReq.page:type_name -> gorpc.Page
+	59,  // 57: gorpc.NationalLanguageListReq.vo:type_name -> gorpc.NationalLanguageVo
+	59,  // 58: gorpc.NationalLanguageListResp.list:type_name -> gorpc.NationalLanguageVo
+	39,  // 59: gorpc.TipVo.i18ns:type_name -> gorpc.I18nVo
+	62,  // 60: gorpc.TipGetReq.vo:type_name -> gorpc.TipVo
+	8,   // 61: gorpc.TipListReq.page:type_name -> gorpc.Page
+	62,  // 62: gorpc.TipListReq.vo:type_name -> gorpc.TipVo
+	62,  // 63: gorpc.TipListResp.list:type_name -> gorpc.TipVo
+	2,   // 64: gorpc.DictVo.status:type_name -> gorpc.Status
+	66,  // 65: gorpc.DictGetReq.vo:type_name -> gorpc.DictVo
+	8,   // 66: gorpc.DictListReq.page:type_name -> gorpc.Page
+	66,  // 67: gorpc.DictListReq.vo:type_name -> gorpc.DictVo
+	66,  // 68: gorpc.DictListResp.list:type_name -> gorpc.DictVo
+	2,   // 69: gorpc.UpgradePkgPlanVo.status:type_name -> gorpc.Status
+	8,   // 70: gorpc.UpgradePkgPlanListReq.page:type_name -> gorpc.Page
+	70,  // 71: gorpc.UpgradePkgPlanListReq.vo:type_name -> gorpc.UpgradePkgPlanVo
+	70,  // 72: gorpc.UpgradePkgPlanListResp.list:type_name -> gorpc.UpgradePkgPlanVo
+	2,   // 73: gorpc.UpgradePkgPlanDetailVo.status:type_name -> gorpc.Status
+	8,   // 74: gorpc.UpgradePkgPlanDetailListReq.page:type_name -> gorpc.Page
+	73,  // 75: gorpc.UpgradePkgPlanDetailListReq.vo:type_name -> gorpc.UpgradePkgPlanDetailVo
+	73,  // 76: gorpc.UpgradePkgPlanDetailListResp.list:type_name -> gorpc.UpgradePkgPlanDetailVo
+	2,   // 77: gorpc.UpgradeResPlanVo.status:type_name -> gorpc.Status
+	8,   // 78: gorpc.UpgradeResPlanListReq.page:type_name -> gorpc.Page
+	76,  // 79: gorpc.UpgradeResPlanListReq.vo:type_name -> gorpc.UpgradeResPlanVo
+	76,  // 80: gorpc.UpgradeResPlanListResp.list:type_name -> gorpc.UpgradeResPlanVo
+	2,   // 81: gorpc.UpgradeResPlanDetailVo.status:type_name -> gorpc.Status
+	8,   // 82: gorpc.UpgradeResPlanDetailListReq.page:type_name -> gorpc.Page
+	79,  // 83: gorpc.UpgradeResPlanDetailListReq.vo:type_name -> gorpc.UpgradeResPlanDetailVo
+	79,  // 84: gorpc.UpgradeResPlanDetailListResp.list:type_name -> gorpc.UpgradeResPlanDetailVo
+	2,   // 85: gorpc.AdPlanVo.status:type_name -> gorpc.Status
+	8,   // 86: gorpc.AdPlanListReq.page:type_name -> gorpc.Page
+	82,  // 87: gorpc.AdPlanListReq.vo:type_name -> gorpc.AdPlanVo
+	82,  // 88: gorpc.AdPlanListResp.list:type_name -> gorpc.AdPlanVo
+	2,   // 89: gorpc.AdPlanDetailVo.status:type_name -> gorpc.Status
+	8,   // 90: gorpc.AdPlanDetailListReq.page:type_name -> gorpc.Page
+	85,  // 91: gorpc.AdPlanDetailListReq.vo:type_name -> gorpc.AdPlanDetailVo
+	85,  // 92: gorpc.AdPlanDetailListResp.list:type_name -> gorpc.AdPlanDetailVo
+	90,  // 93: gorpc.JobBatchWithTasksVo.jobBatch:type_name -> gorpc.JobBatchVo
+	96,  // 94: gorpc.JobBatchWithTasksVo.jobTasks:type_name -> gorpc.JobTasksVo
+	8,   // 95: gorpc.JobBatchListReq.page:type_name -> gorpc.Page
+	90,  // 96: gorpc.JobBatchListReq.vo:type_name -> gorpc.JobBatchVo
+	92,  // 97: gorpc.JobBatchListReq.startedTimeRange:type_name -> gorpc.TimeRange
+	92,  // 98: gorpc.JobBatchListReq.finishedTimeRange:type_name -> gorpc.TimeRange
+	90,  // 99: gorpc.JobBatchListResp.list:type_name -> gorpc.JobBatchVo
+	91,  // 100: gorpc.JobBatchListWithTasksResp.list:type_name -> gorpc.JobBatchWithTasksVo
+	8,   // 101: gorpc.JobTasksListReq.page:type_name -> gorpc.Page
+	96,  // 102: gorpc.JobTasksListReq.vo:type_name -> gorpc.JobTasksVo
+	92,  // 103: gorpc.JobTasksListReq.startedTimeRange:type_name -> gorpc.TimeRange
+	92,  // 104: gorpc.JobTasksListReq.finishedTimeRange:type_name -> gorpc.TimeRange
+	96,  // 105: gorpc.JobTasksListResp.list:type_name -> gorpc.JobTasksVo
+	2,   // 106: gorpc.DeployConfigVo.status:type_name -> gorpc.Status
+	8,   // 107: gorpc.DeployConfigListReq.page:type_name -> gorpc.Page
+	99,  // 108: gorpc.DeployConfigListReq.vo:type_name -> gorpc.DeployConfigVo
+	99,  // 109: gorpc.DeployConfigListResp.list:type_name -> gorpc.DeployConfigVo
+	8,   // 110: gorpc.OperationLogListReq.page:type_name -> gorpc.Page
+	102, // 111: gorpc.OperationLogListReq.vo:type_name -> gorpc.OperationLogVo
+	102, // 112: gorpc.OperationLogListResp.list:type_name -> gorpc.OperationLogVo
+	2,   // 113: gorpc.AnnouncePlanVo.status:type_name -> gorpc.Status
+	8,   // 114: gorpc.AnnouncePlanListReq.page:type_name -> gorpc.Page
+	105, // 115: gorpc.AnnouncePlanListReq.vo:type_name -> gorpc.AnnouncePlanVo
+	105, // 116: gorpc.AnnouncePlanListResp.list:type_name -> gorpc.AnnouncePlanVo
+	2,   // 117: gorpc.AnnouncePlanDetailVo.status:type_name -> gorpc.Status
+	8,   // 118: gorpc.AnnouncePlanDetailListReq.page:type_name -> gorpc.Page
+	108, // 119: gorpc.AnnouncePlanDetailListReq.vo:type_name -> gorpc.AnnouncePlanDetailVo
+	108, // 120: gorpc.AnnouncePlanDetailListResp.list:type_name -> gorpc.AnnouncePlanDetailVo
+	2,   // 121: gorpc.ServiceTypesVo.status:type_name -> gorpc.Status
+	8,   // 122: gorpc.ServiceTypesListReq.page:type_name -> gorpc.Page
+	111, // 123: gorpc.ServiceTypesListReq.vo:type_name -> gorpc.ServiceTypesVo
+	111, // 124: gorpc.ServiceTypesListResp.list:type_name -> gorpc.ServiceTypesVo
+	111, // 125: gorpc.ServiceTypesAddReq.vo:type_name -> gorpc.ServiceTypesVo
+	111, // 126: gorpc.ServiceTypesUpdateReq.vo:type_name -> gorpc.ServiceTypesVo
+	3,   // 127: gorpc.ServiceSetsVo.display:type_name -> gorpc.BoolInt
+	3,   // 128: gorpc.ServiceSetsVo.isDefault:type_name -> gorpc.BoolInt
+	3,   // 129: gorpc.ServiceSetsVo.recommend:type_name -> gorpc.BoolInt
+	3,   // 130: gorpc.ServiceSetsVo.hidden:type_name -> gorpc.BoolInt
+	2,   // 131: gorpc.ServiceSetsVo.status:type_name -> gorpc.Status
+	8,   // 132: gorpc.ServiceSetsListReq.page:type_name -> gorpc.Page
+	118, // 133: gorpc.ServiceSetsListReq.vo:type_name -> gorpc.ServiceSetsVo
+	118, // 134: gorpc.ServiceSetsListResp.list:type_name -> gorpc.ServiceSetsVo
+	118, // 135: gorpc.ServiceSetsAddReq.vo:type_name -> gorpc.ServiceSetsVo
+	118, // 136: gorpc.ServiceSetsUpdateReq.vo:type_name -> gorpc.ServiceSetsVo
+	8,   // 137: gorpc.MessagePushListReq.page:type_name -> gorpc.Page
+	125, // 138: gorpc.MessagePushListReq.vo:type_name -> gorpc.MessagePushVo
+	125, // 139: gorpc.MessagePushListResp.list:type_name -> gorpc.MessagePushVo
+	2,   // 140: gorpc.ShortDramaEpisodeVo.status:type_name -> gorpc.Status
+	128, // 141: gorpc.ShortDramaEpisodeGetReq.vo:type_name -> gorpc.ShortDramaEpisodeVo
+	8,   // 142: gorpc.ShortDramaEpisodeListReq.page:type_name -> gorpc.Page
+	128, // 143: gorpc.ShortDramaEpisodeListReq.vo:type_name -> gorpc.ShortDramaEpisodeVo
+	128, // 144: gorpc.ShortDramaEpisodeListResp.list:type_name -> gorpc.ShortDramaEpisodeVo
+	128, // 145: gorpc.ShortDramaEpisodeBatchAddReq.episodes:type_name -> gorpc.ShortDramaEpisodeVo
+	134, // 146: gorpc.ShortDramaVo.shortDramaLanguages:type_name -> gorpc.ShortDramaLanguageVo
+	135, // 147: gorpc.ShortDramaGetReq.vo:type_name -> gorpc.ShortDramaVo
+	8,   // 148: gorpc.ShortDramaListReq.page:type_name -> gorpc.Page
+	135, // 149: gorpc.ShortDramaListReq.vo:type_name -> gorpc.ShortDramaVo
+	135, // 150: gorpc.ShortDramaListResp.list:type_name -> gorpc.ShortDramaVo
+	8,   // 151: gorpc.ShortDramaLanguageListReq.page:type_name -> gorpc.Page
+	134, // 152: gorpc.ShortDramaLanguageListReq.vo:type_name -> gorpc.ShortDramaLanguageVo
+	134, // 153: gorpc.ShortDramaLanguageListResp.list:type_name -> gorpc.ShortDramaLanguageVo
+	8,   // 154: gorpc.ShortDramaEpisodeCountReq.page:type_name -> gorpc.Page
+	2,   // 155: gorpc.ShortDramaEpisodeCountReq.status:type_name -> gorpc.Status
+	141, // 156: gorpc.ShortDramaEpisodeCountResp.list:type_name -> gorpc.ShortDramaEpisodeCountVo
+	8,   // 157: gorpc.ShortDramaStatsPlaysTotalListReq.page:type_name -> gorpc.Page
+	148, // 158: gorpc.ShortDramaStatsPlaysTotalListResp.list:type_name -> gorpc.ShortDramaStatsPlaysTotalVo
+	3,   // 159: gorpc.SysUserVo.isSuperAdmin:type_name -> gorpc.BoolInt
+	2,   // 160: gorpc.SysUserVo.status:type_name -> gorpc.Status
+	2,   // 161: gorpc.SysRoleVo.status:type_name -> gorpc.Status
+	2,   // 162: gorpc.SysPermVo.status:type_name -> gorpc.Status
+	151, // 163: gorpc.SysUserWithRoleIdsAndPermRules.user:type_name -> gorpc.SysUserVo
+	157, // 164: gorpc.SysUserWithRoleIdsAndPermRules.permRules:type_name -> gorpc.SysPermRule
+	151, // 165: gorpc.SysUserWithRolesAndPerms.user:type_name -> gorpc.SysUserVo
+	152, // 166: gorpc.SysUserWithRolesAndPerms.roles:type_name -> gorpc.SysRoleVo
+	153, // 167: gorpc.SysUserWithRolesAndPerms.perms:type_name -> gorpc.SysPermVo
+	151, // 168: gorpc.SysUserGetReq.vo:type_name -> gorpc.SysUserVo
+	8,   // 169: gorpc.SysUserListReq.page:type_name -> gorpc.Page
+	151, // 170: gorpc.SysUserListReq.vo:type_name -> gorpc.SysUserVo
+	151, // 171: gorpc.SysUserListResp.list:type_name -> gorpc.SysUserVo
+	159, // 172: gorpc.SysUserListWithRolesAndPermsResp.list:type_name -> gorpc.SysUserWithRolesAndPerms
+	152, // 173: gorpc.SysRoleWithPermIds.role:type_name -> gorpc.SysRoleVo
+	152, // 174: gorpc.SysRoleWithPerms.role:type_name -> gorpc.SysRoleVo
+	153, // 175: gorpc.SysRoleWithPerms.perms:type_name -> gorpc.SysPermVo
+	152, // 176: gorpc.SysRoleGetReq.vo:type_name -> gorpc.SysRoleVo
+	8,   // 177: gorpc.SysRoleListReq.page:type_name -> gorpc.Page
+	152, // 178: gorpc.SysRoleListReq.vo:type_name -> gorpc.SysRoleVo
+	152, // 179: gorpc.SysRoleListResp.list:type_name -> gorpc.SysRoleVo
+	165, // 180: gorpc.SysRoleListWithPermsResp.list:type_name -> gorpc.SysRoleWithPerms
+	153, // 181: gorpc.SysPermGetReq.vo:type_name -> gorpc.SysPermVo
+	8,   // 182: gorpc.SysPermListReq.page:type_name -> gorpc.Page
+	153, // 183: gorpc.SysPermListReq.vo:type_name -> gorpc.SysPermVo
+	153, // 184: gorpc.SysPermListResp.list:type_name -> gorpc.SysPermVo
+	154, // 185: gorpc.SysUserRoleGetReq.vo:type_name -> gorpc.SysUserRoleVo
+	8,   // 186: gorpc.SysUserRoleListReq.page:type_name -> gorpc.Page
+	154, // 187: gorpc.SysUserRoleListReq.vo:type_name -> gorpc.SysUserRoleVo
+	154, // 188: gorpc.SysUserRoleListResp.list:type_name -> gorpc.SysUserRoleVo
+	155, // 189: gorpc.SysRolePermGetReq.vo:type_name -> gorpc.SysRolePermVo
+	8,   // 190: gorpc.SysRolePermListReq.page:type_name -> gorpc.Page
+	155, // 191: gorpc.SysRolePermListReq.vo:type_name -> gorpc.SysRolePermVo
+	155, // 192: gorpc.SysRolePermListResp.list:type_name -> gorpc.SysRolePermVo
+	156, // 193: gorpc.SysUserPermGetReq.vo:type_name -> gorpc.SysUserPermVo
+	8,   // 194: gorpc.SysUserPermListReq.page:type_name -> gorpc.Page
+	156, // 195: gorpc.SysUserPermListReq.vo:type_name -> gorpc.SysUserPermVo
+	156, // 196: gorpc.SysUserPermListResp.list:type_name -> gorpc.SysUserPermVo
+	3,   // 197: gorpc.AccountVo.whitelistUser:type_name -> gorpc.BoolInt
+	3,   // 198: gorpc.AccountVo.activated:type_name -> gorpc.BoolInt
+	2,   // 199: gorpc.AccountVo.status:type_name -> gorpc.Status
+	8,   // 200: gorpc.AccountListReq.page:type_name -> gorpc.Page
+	182, // 201: gorpc.AccountListReq.vo:type_name -> gorpc.AccountVo
+	182, // 202: gorpc.AccountListResp.list:type_name -> gorpc.AccountVo
+	8,   // 203: gorpc.AccountDeviceListReq.page:type_name -> gorpc.Page
+	185, // 204: gorpc.AccountDeviceListReq.vo:type_name -> gorpc.AccountDeviceVo
+	185, // 205: gorpc.AccountDeviceListResp.list:type_name -> gorpc.AccountDeviceVo
+	2,   // 206: gorpc.DeviceVo.status:type_name -> gorpc.Status
+	8,   // 207: gorpc.DeviceListReq.page:type_name -> gorpc.Page
+	188, // 208: gorpc.DeviceListReq.vo:type_name -> gorpc.DeviceVo
+	188, // 209: gorpc.DeviceListRes.list:type_name -> gorpc.DeviceVo
+	2,   // 210: gorpc.UserAppConfigVo.status:type_name -> gorpc.Status
+	191, // 211: gorpc.UserAppConfigGetReq.vo:type_name -> gorpc.UserAppConfigVo
+	8,   // 212: gorpc.UserAppConfigListReq.page:type_name -> gorpc.Page
+	191, // 213: gorpc.UserAppConfigListReq.vo:type_name -> gorpc.UserAppConfigVo
+	191, // 214: gorpc.UserAppConfigListRes.list:type_name -> gorpc.UserAppConfigVo
+	2,   // 215: gorpc.VpnTagVo.status:type_name -> gorpc.Status
+	195, // 216: gorpc.VpnTagGetReq.vo:type_name -> gorpc.VpnTagVo
+	8,   // 217: gorpc.VpnTagListReq.page:type_name -> gorpc.Page
+	195, // 218: gorpc.VpnTagListReq.vo:type_name -> gorpc.VpnTagVo
+	195, // 219: gorpc.VpnTagListResp.list:type_name -> gorpc.VpnTagVo
+	195, // 220: gorpc.VpnTagBatchAddReq.list:type_name -> gorpc.VpnTagVo
+	195, // 221: gorpc.VpnTagBatchAddResp.list:type_name -> gorpc.VpnTagVo
+	195, // 222: gorpc.VpnTagBatchUpdateReq.list:type_name -> gorpc.VpnTagVo
+	195, // 223: gorpc.VpnTagBatchUpdateResp.list:type_name -> gorpc.VpnTagVo
+	2,   // 224: gorpc.VpnGroupVo.status:type_name -> gorpc.Status
+	204, // 225: gorpc.VpnGroupExVo.vo:type_name -> gorpc.VpnGroupVo
+	204, // 226: gorpc.VpnGroupAddReq.vo:type_name -> gorpc.VpnGroupVo
+	204, // 227: gorpc.VpnGroupGetReq.vo:type_name -> gorpc.VpnGroupVo
+	8,   // 228: gorpc.VpnGroupListReq.page:type_name -> gorpc.Page
+	204, // 229: gorpc.VpnGroupListReq.vo:type_name -> gorpc.VpnGroupVo
+	204, // 230: gorpc.VpnGroupListResp.list:type_name -> gorpc.VpnGroupVo
+	205, // 231: gorpc.VpnGroupBatchAddReq.list:type_name -> gorpc.VpnGroupExVo
+	205, // 232: gorpc.VpnGroupBatchAddResp.list:type_name -> gorpc.VpnGroupExVo
+	205, // 233: gorpc.VpnGroupBatchUpdateReq.list:type_name -> gorpc.VpnGroupExVo
+	205, // 234: gorpc.VpnGroupBatchUpdateResp.list:type_name -> gorpc.VpnGroupExVo
+	8,   // 235: gorpc.VpnGroupTagListReq.page:type_name -> gorpc.Page
+	215, // 236: gorpc.VpnGroupTagListReq.vo:type_name -> gorpc.VpnGroupTagVo
+	215, // 237: gorpc.VpnGroupTagListResp.list:type_name -> gorpc.VpnGroupTagVo
+	2,   // 238: gorpc.VpnLocationVo.status:type_name -> gorpc.Status
+	218, // 239: gorpc.VpnLocationExVo.vo:type_name -> gorpc.VpnLocationVo
+	218, // 240: gorpc.VpnLocationGetReq.vo:type_name -> gorpc.VpnLocationVo
+	8,   // 241: gorpc.VpnLocationListReq.page:type_name -> gorpc.Page
+	219, // 242: gorpc.VpnLocationListReq.vo:type_name -> gorpc.VpnLocationExVo
+	219, // 243: gorpc.VpnLocationListResp.list:type_name -> gorpc.VpnLocationExVo
+	218, // 244: gorpc.VpnLocationBatchAddReq.list:type_name -> gorpc.VpnLocationVo
+	219, // 245: gorpc.VpnLocationBatchAddResp.list:type_name -> gorpc.VpnLocationExVo
+	218, // 246: gorpc.VpnLocationBatchUpdateReq.list:type_name -> gorpc.VpnLocationVo
+	219, // 247: gorpc.VpnLocationBatchUpdateResp.list:type_name -> gorpc.VpnLocationExVo
+	2,   // 248: gorpc.VpnServerVo.status:type_name -> gorpc.Status
+	228, // 249: gorpc.VpnServerExVo.vo:type_name -> gorpc.VpnServerVo
+	8,   // 250: gorpc.VpnServerListReq.page:type_name -> gorpc.Page
+	228, // 251: gorpc.VpnServerListReq.vo:type_name -> gorpc.VpnServerVo
+	228, // 252: gorpc.VpnServerListResp.list:type_name -> gorpc.VpnServerVo
+	229, // 253: gorpc.VpnServerExListResp.list:type_name -> gorpc.VpnServerExVo
+	228, // 254: gorpc.VpnServerAddReq.vo:type_name -> gorpc.VpnServerVo
+	229, // 255: gorpc.VpnServerBatchAddReq.list:type_name -> gorpc.VpnServerExVo
+	229, // 256: gorpc.VpnServerBatchAddResp.list:type_name -> gorpc.VpnServerExVo
+	229, // 257: gorpc.VpnServerBatchUpdateReq.list:type_name -> gorpc.VpnServerExVo
+	229, // 258: gorpc.VpnServerBatchUpdateResp.list:type_name -> gorpc.VpnServerExVo
+	2,   // 259: gorpc.VpnServerLocationVo.status:type_name -> gorpc.Status
+	8,   // 260: gorpc.VpnServerLocationListReq.page:type_name -> gorpc.Page
+	239, // 261: gorpc.VpnServerLocationListReq.vo:type_name -> gorpc.VpnServerLocationVo
+	239, // 262: gorpc.VpnServerLocationListResp.list:type_name -> gorpc.VpnServerLocationVo
+	8,   // 263: gorpc.VpnLocationServerCountReq.page:type_name -> gorpc.Page
+	2,   // 264: gorpc.VpnLocationServerCountReq.status:type_name -> gorpc.Status
+	242, // 265: gorpc.VpnLocationServerCountResp.list:type_name -> gorpc.VpnLocationServerCountVo
+	8,   // 266: gorpc.VpnProbeTaskListReq.page:type_name -> gorpc.Page
+	245, // 267: gorpc.VpnProbeTaskListReq.vo:type_name -> gorpc.VpnProbeTaskVo
+	245, // 268: gorpc.VpnProbeTaskListResp.list:type_name -> gorpc.VpnProbeTaskVo
+	17,  // 269: gorpc.GoGameClient.GameAdd:input_type -> gorpc.GameVo
+	17,  // 270: gorpc.GoGameClient.GameUpdate:input_type -> gorpc.GameVo
+	12,  // 271: gorpc.GoGameClient.GameDel:input_type -> gorpc.Ids
+	18,  // 272: gorpc.GoGameClient.GameGet:input_type -> gorpc.GameReq
+	19,  // 273: gorpc.GoGameClient.GameList:input_type -> gorpc.GameListReq
+	13,  // 274: gorpc.GoGameClient.GameAll:input_type -> gorpc.Request
+	29,  // 275: gorpc.GoGameClient.GameRedisHScanByName:input_type -> gorpc.GameRedisHScanByNameReq
+	21,  // 276: gorpc.GoGameClient.RelGameRankAdd:input_type -> gorpc.RelGameRankVo
+	21,  // 277: gorpc.GoGameClient.RelGameRankUpdate:input_type -> gorpc.RelGameRankVo
+	12,  // 278: gorpc.GoGameClient.RelGameRankDel:input_type -> gorpc.Ids
+	22,  // 279: gorpc.GoGameClient.RelGameRankGet:input_type -> gorpc.RelGameRankReq
+	23,  // 280: gorpc.GoGameClient.RelGameRankList:input_type -> gorpc.RelGameRankListReq
+	25,  // 281: gorpc.GoGameClient.RelGameVpnGroupAdd:input_type -> gorpc.RelGameVpnGroupVo
+	25,  // 282: gorpc.GoGameClient.RelGameVpnGroupUpdate:input_type -> gorpc.RelGameVpnGroupVo
+	12,  // 283: gorpc.GoGameClient.RelGameVpnGroupDel:input_type -> gorpc.Ids
+	26,  // 284: gorpc.GoGameClient.RelGameVpnGroupGet:input_type -> gorpc.RelGameVpnGroupReq
+	27,  // 285: gorpc.GoGameClient.RelGameVpnGroupList:input_type -> gorpc.RelGameVpnGroupListReq
+	32,  // 286: gorpc.GoGameClient.GameCustomerList:input_type -> gorpc.GameCustomerListReq
+	31,  // 287: gorpc.GoGameClient.GameCustomerAdd:input_type -> gorpc.GameCustomerVo
+	12,  // 288: gorpc.GoGameClient.GameCustomerDel:input_type -> gorpc.Ids
+	35,  // 289: gorpc.GoGameClient.GameCategoryAdd:input_type -> gorpc.GameCategoryVo
+	35,  // 290: gorpc.GoGameClient.GameCategoryUpdate:input_type -> gorpc.GameCategoryVo
+	12,  // 291: gorpc.GoGameClient.GameCategoryDel:input_type -> gorpc.Ids
+	36,  // 292: gorpc.GoGameClient.GameCategoryGet:input_type -> gorpc.GameCategoryReq
+	37,  // 293: gorpc.GoGameClient.GameCategoryList:input_type -> gorpc.GameCategoryListReq
+	13,  // 294: gorpc.GoGameClient.GameCategoryAll:input_type -> gorpc.Request
+	13,  // 295: gorpc.GoPmpClient.Ping:input_type -> gorpc.Request
+	41,  // 296: gorpc.GoPmpClient.GlobalParamAdd:input_type -> gorpc.GlobalParamVo
+	41,  // 297: gorpc.GoPmpClient.GlobalParamUpdate:input_type -> gorpc.GlobalParamVo
+	12,  // 298: gorpc.GoPmpClient.GlobalParamDel:input_type -> gorpc.Ids
+	41,  // 299: gorpc.GoPmpClient.GlobalParamGet:input_type -> gorpc.GlobalParamVo
+	42,  // 300: gorpc.GoPmpClient.GlobalParamGetWithLang:input_type -> gorpc.GlobalParamGetReq
+	43,  // 301: gorpc.GoPmpClient.GlobalParamList:input_type -> gorpc.GlobalParamListReq
+	45,  // 302: gorpc.GoPmpClient.ProductAdd:input_type -> gorpc.ProductVo
+	45,  // 303: gorpc.GoPmpClient.ProductUpdate:input_type -> gorpc.ProductVo
+	12,  // 304: gorpc.GoPmpClient.ProductDel:input_type -> gorpc.Ids
+	45,  // 305: gorpc.GoPmpClient.ProductGet:input_type -> gorpc.ProductVo
+	46,  // 306: gorpc.GoPmpClient.ProductList:input_type -> gorpc.ProductListReq
+	13,  // 307: gorpc.GoPmpClient.ProductAll:input_type -> gorpc.Request
+	48,  // 308: gorpc.GoPmpClient.ProductParamAdd:input_type -> gorpc.ProductParamVo
+	48,  // 309: gorpc.GoPmpClient.ProductParamUpdate:input_type -> gorpc.ProductParamVo
+	12,  // 310: gorpc.GoPmpClient.ProductParamDel:input_type -> gorpc.Ids
+	48,  // 311: gorpc.GoPmpClient.ProductParamGet:input_type -> gorpc.ProductParamVo
+	49,  // 312: gorpc.GoPmpClient.ProductParamGetWithLang:input_type -> gorpc.ProductParamGetReq
+	50,  // 313: gorpc.GoPmpClient.ProductParamList:input_type -> gorpc.ProductParamListReq
+	52,  // 314: gorpc.GoPmpClient.ProductActionAdd:input_type -> gorpc.ProductActionVo
+	52,  // 315: gorpc.GoPmpClient.ProductActionUpdate:input_type -> gorpc.ProductActionVo
+	12,  // 316: gorpc.GoPmpClient.ProductActionDel:input_type -> gorpc.Ids
+	53,  // 317: gorpc.GoPmpClient.ProductActionGet:input_type -> gorpc.ProductActionReq
+	54,  // 318: gorpc.GoPmpClient.ProductActionList:input_type -> gorpc.ProductActionListReq
+	56,  // 319: gorpc.GoPmpClient.AreaParamAdd:input_type -> gorpc.AreaParamVo
+	56,  // 320: gorpc.GoPmpClient.AreaParamUpdate:input_type -> gorpc.AreaParamVo
+	12,  // 321: gorpc.GoPmpClient.AreaParamDel:input_type -> gorpc.Ids
+	56,  // 322: gorpc.GoPmpClient.AreaParamGet:input_type -> gorpc.AreaParamVo
+	57,  // 323: gorpc.GoPmpClient.AreaParamList:input_type -> gorpc.AreaParamListReq
+	59,  // 324: gorpc.GoPmpClient.NationalLanguageAdd:input_type -> gorpc.NationalLanguageVo
+	59,  // 325: gorpc.GoPmpClient.NationalLanguageUpdate:input_type -> gorpc.NationalLanguageVo
+	12,  // 326: gorpc.GoPmpClient.NationalLanguageDel:input_type -> gorpc.Ids
+	59,  // 327: gorpc.GoPmpClient.NationalLanguageGet:input_type -> gorpc.NationalLanguageVo
+	60,  // 328: gorpc.GoPmpClient.NationalLanguageList:input_type -> gorpc.NationalLanguageListReq
+	62,  // 329: gorpc.GoPmpClient.TipAdd:input_type -> gorpc.TipVo
+	62,  // 330: gorpc.GoPmpClient.TipUpdate:input_type -> gorpc.TipVo
+	12,  // 331: gorpc.GoPmpClient.TipDel:input_type -> gorpc.Ids
+	63,  // 332: gorpc.GoPmpClient.TipGet:input_type -> gorpc.TipGetReq
+	64,  // 333: gorpc.GoPmpClient.TipList:input_type -> gorpc.TipListReq
+	66,  // 334: gorpc.GoPmpClient.DictAdd:input_type -> gorpc.DictVo
+	66,  // 335: gorpc.GoPmpClient.DictUpdate:input_type -> gorpc.DictVo
+	12,  // 336: gorpc.GoPmpClient.DictDel:input_type -> gorpc.Ids
+	67,  // 337: gorpc.GoPmpClient.DictGet:input_type -> gorpc.DictGetReq
+	68,  // 338: gorpc.GoPmpClient.DictList:input_type -> gorpc.DictListReq
+	70,  // 339: gorpc.GoPmpClient.UpgradePkgPlanAdd:input_type -> gorpc.UpgradePkgPlanVo
+	70,  // 340: gorpc.GoPmpClient.UpgradePkgPlanUpdate:input_type -> gorpc.UpgradePkgPlanVo
+	12,  // 341: gorpc.GoPmpClient.UpgradePkgPlanDel:input_type -> gorpc.Ids
+	70,  // 342: gorpc.GoPmpClient.UpgradePkgPlanGet:input_type -> gorpc.UpgradePkgPlanVo
+	71,  // 343: gorpc.GoPmpClient.UpgradePkgPlanList:input_type -> gorpc.UpgradePkgPlanListReq
+	73,  // 344: gorpc.GoPmpClient.UpgradePkgPlanDetailAdd:input_type -> gorpc.UpgradePkgPlanDetailVo
+	73,  // 345: gorpc.GoPmpClient.UpgradePkgPlanDetailUpdate:input_type -> gorpc.UpgradePkgPlanDetailVo
+	12,  // 346: gorpc.GoPmpClient.UpgradePkgPlanDetailDel:input_type -> gorpc.Ids
+	73,  // 347: gorpc.GoPmpClient.UpgradePkgPlanDetailGet:input_type -> gorpc.UpgradePkgPlanDetailVo
+	74,  // 348: gorpc.GoPmpClient.UpgradePkgPlanDetailList:input_type -> gorpc.UpgradePkgPlanDetailListReq
+	76,  // 349: gorpc.GoPmpClient.UpgradeResPlanAdd:input_type -> gorpc.UpgradeResPlanVo
+	76,  // 350: gorpc.GoPmpClient.UpgradeResPlanUpdate:input_type -> gorpc.UpgradeResPlanVo
+	12,  // 351: gorpc.GoPmpClient.UpgradeResPlanDel:input_type -> gorpc.Ids
+	76,  // 352: gorpc.GoPmpClient.UpgradeResPlanGet:input_type -> gorpc.UpgradeResPlanVo
+	77,  // 353: gorpc.GoPmpClient.UpgradeResPlanList:input_type -> gorpc.UpgradeResPlanListReq
+	79,  // 354: gorpc.GoPmpClient.UpgradeResPlanDetailAdd:input_type -> gorpc.UpgradeResPlanDetailVo
+	79,  // 355: gorpc.GoPmpClient.UpgradeResPlanDetailUpdate:input_type -> gorpc.UpgradeResPlanDetailVo
+	12,  // 356: gorpc.GoPmpClient.UpgradeResPlanDetailDel:input_type -> gorpc.Ids
+	79,  // 357: gorpc.GoPmpClient.UpgradeResPlanDetailGet:input_type -> gorpc.UpgradeResPlanDetailVo
+	80,  // 358: gorpc.GoPmpClient.UpgradeResPlanDetailList:input_type -> gorpc.UpgradeResPlanDetailListReq
+	82,  // 359: gorpc.GoPmpClient.AdPlanAdd:input_type -> gorpc.AdPlanVo
+	82,  // 360: gorpc.GoPmpClient.AdPlanUpdate:input_type -> gorpc.AdPlanVo
+	12,  // 361: gorpc.GoPmpClient.AdPlanDel:input_type -> gorpc.Ids
+	82,  // 362: gorpc.GoPmpClient.AdPlanGet:input_type -> gorpc.AdPlanVo
+	83,  // 363: gorpc.GoPmpClient.AdPlanList:input_type -> gorpc.AdPlanListReq
+	85,  // 364: gorpc.GoPmpClient.AdPlanDetailAdd:input_type -> gorpc.AdPlanDetailVo
+	85,  // 365: gorpc.GoPmpClient.AdPlanDetailUpdate:input_type -> gorpc.AdPlanDetailVo
+	12,  // 366: gorpc.GoPmpClient.AdPlanDetailDel:input_type -> gorpc.Ids
+	85,  // 367: gorpc.GoPmpClient.AdPlanDetailGet:input_type -> gorpc.AdPlanDetailVo
+	86,  // 368: gorpc.GoPmpClient.AdPlanDetailList:input_type -> gorpc.AdPlanDetailListReq
+	89,  // 369: gorpc.GoPmpClient.AdGlobalConfigGet:input_type -> gorpc.AdGlobalConfigGetReq
+	88,  // 370: gorpc.GoPmpClient.AdGlobalConfigUpdate:input_type -> gorpc.AdGlobalConfigVo
+	90,  // 371: gorpc.GoPmpClient.JobBatchAdd:input_type -> gorpc.JobBatchVo
+	91,  // 372: gorpc.GoPmpClient.JobBatchAddWithTasks:input_type -> gorpc.JobBatchWithTasksVo
+	90,  // 373: gorpc.GoPmpClient.JobBatchUpdate:input_type -> gorpc.JobBatchVo
+	12,  // 374: gorpc.GoPmpClient.JobBatchDel:input_type -> gorpc.Ids
+	90,  // 375: gorpc.GoPmpClient.JobBatchGet:input_type -> gorpc.JobBatchVo
+	90,  // 376: gorpc.GoPmpClient.JobBatchGetWithTasks:input_type -> gorpc.JobBatchVo
+	93,  // 377: gorpc.GoPmpClient.JobBatchList:input_type -> gorpc.JobBatchListReq
+	93,  // 378: gorpc.GoPmpClient.JobBatchListWithTasks:input_type -> gorpc.JobBatchListReq
+	96,  // 379: gorpc.GoPmpClient.JobTasksAdd:input_type -> gorpc.JobTasksVo
+	96,  // 380: gorpc.GoPmpClient.JobTasksUpdate:input_type -> gorpc.JobTasksVo
+	12,  // 381: gorpc.GoPmpClient.JobTasksDel:input_type -> gorpc.Ids
+	96,  // 382: gorpc.GoPmpClient.JobTasksGet:input_type -> gorpc.JobTasksVo
+	97,  // 383: gorpc.GoPmpClient.JobTasksList:input_type -> gorpc.JobTasksListReq
+	99,  // 384: gorpc.GoPmpClient.DeployConfigAdd:input_type -> gorpc.DeployConfigVo
+	99,  // 385: gorpc.GoPmpClient.DeployConfigUpdate:input_type -> gorpc.DeployConfigVo
+	12,  // 386: gorpc.GoPmpClient.DeployConfigDel:input_type -> gorpc.Ids
+	99,  // 387: gorpc.GoPmpClient.DeployConfigGet:input_type -> gorpc.DeployConfigVo
+	100, // 388: gorpc.GoPmpClient.DeployConfigList:input_type -> gorpc.DeployConfigListReq
+	102, // 389: gorpc.GoPmpClient.OperationLogAdd:input_type -> gorpc.OperationLogVo
+	102, // 390: gorpc.GoPmpClient.OperationLogUpdate:input_type -> gorpc.OperationLogVo
+	102, // 391: gorpc.GoPmpClient.OperationLogGet:input_type -> gorpc.OperationLogVo
+	103, // 392: gorpc.GoPmpClient.OperationLogList:input_type -> gorpc.OperationLogListReq
+	105, // 393: gorpc.GoPmpClient.AnnouncePlanAdd:input_type -> gorpc.AnnouncePlanVo
+	105, // 394: gorpc.GoPmpClient.AnnouncePlanUpdate:input_type -> gorpc.AnnouncePlanVo
+	12,  // 395: gorpc.GoPmpClient.AnnouncePlanDel:input_type -> gorpc.Ids
+	105, // 396: gorpc.GoPmpClient.AnnouncePlanGet:input_type -> gorpc.AnnouncePlanVo
+	106, // 397: gorpc.GoPmpClient.AnnouncePlanList:input_type -> gorpc.AnnouncePlanListReq
+	108, // 398: gorpc.GoPmpClient.AnnouncePlanDetailAdd:input_type -> gorpc.AnnouncePlanDetailVo
+	108, // 399: gorpc.GoPmpClient.AnnouncePlanDetailUpdate:input_type -> gorpc.AnnouncePlanDetailVo
+	12,  // 400: gorpc.GoPmpClient.AnnouncePlanDetailDel:input_type -> gorpc.Ids
+	108, // 401: gorpc.GoPmpClient.AnnouncePlanDetailGet:input_type -> gorpc.AnnouncePlanDetailVo
+	109, // 402: gorpc.GoPmpClient.AnnouncePlanDetailList:input_type -> gorpc.AnnouncePlanDetailListReq
+	115, // 403: gorpc.GoPmpClient.ServiceTypesAdd:input_type -> gorpc.ServiceTypesAddReq
+	116, // 404: gorpc.GoPmpClient.ServiceTypesUpdate:input_type -> gorpc.ServiceTypesUpdateReq
+	117, // 405: gorpc.GoPmpClient.ServiceTypesDel:input_type -> gorpc.ServiceTypesDelReq
+	112, // 406: gorpc.GoPmpClient.ServiceTypesGet:input_type -> gorpc.ServiceTypesGetReq
+	113, // 407: gorpc.GoPmpClient.ServiceTypesList:input_type -> gorpc.ServiceTypesListReq
+	122, // 408: gorpc.GoPmpClient.ServiceSetsAdd:input_type -> gorpc.ServiceSetsAddReq
+	123, // 409: gorpc.GoPmpClient.ServiceSetsUpdate:input_type -> gorpc.ServiceSetsUpdateReq
+	124, // 410: gorpc.GoPmpClient.ServiceSetsDel:input_type -> gorpc.ServiceSetsDelReq
+	119, // 411: gorpc.GoPmpClient.ServiceSetsGet:input_type -> gorpc.ServiceSetsGetReq
+	120, // 412: gorpc.GoPmpClient.ServiceSetsList:input_type -> gorpc.ServiceSetsListReq
+	125, // 413: gorpc.GoPmpClient.MessagePushAdd:input_type -> gorpc.MessagePushVo
+	125, // 414: gorpc.GoPmpClient.MessagePushUpdate:input_type -> gorpc.MessagePushVo
+	126, // 415: gorpc.GoPmpClient.MessagePushList:input_type -> gorpc.MessagePushListReq
+	135, // 416: gorpc.GoShortDramaClient.ShortDramaAdd:input_type -> gorpc.ShortDramaVo
+	135, // 417: gorpc.GoShortDramaClient.ShortDramaUpdate:input_type -> gorpc.ShortDramaVo
+	12,  // 418: gorpc.GoShortDramaClient.ShortDramaDel:input_type -> gorpc.Ids
+	136, // 419: gorpc.GoShortDramaClient.ShortDramaGet:input_type -> gorpc.ShortDramaGetReq
+	137, // 420: gorpc.GoShortDramaClient.ShortDramaList:input_type -> gorpc.ShortDramaListReq
+	146, // 421: gorpc.GoShortDramaClient.ShortDramaUpdateModifier:input_type -> gorpc.ShortDramaUpdateModifierReq
+	139, // 422: gorpc.GoShortDramaClient.ShortDramaLanguageList:input_type -> gorpc.ShortDramaLanguageListReq
+	128, // 423: gorpc.GoShortDramaClient.ShortDramaEpisodeAdd:input_type -> gorpc.ShortDramaEpisodeVo
+	132, // 424: gorpc.GoShortDramaClient.ShortDramaEpisodeBatchAdd:input_type -> gorpc.ShortDramaEpisodeBatchAddReq
+	128, // 425: gorpc.GoShortDramaClient.ShortDramaEpisodeUpdate:input_type -> gorpc.ShortDramaEpisodeVo
+	12,  // 426: gorpc.GoShortDramaClient.ShortDramaEpisodeDel:input_type -> gorpc.Ids
+	129, // 427: gorpc.GoShortDramaClient.ShortDramaEpisodeGet:input_type -> gorpc.ShortDramaEpisodeGetReq
+	130, // 428: gorpc.GoShortDramaClient.ShortDramaEpisodeList:input_type -> gorpc.ShortDramaEpisodeListReq
+	133, // 429: gorpc.GoShortDramaClient.ShortDramaEpisodeBatchRefreshUpdateTime:input_type -> gorpc.ShortDramaEpisodeBatchRefreshUpdateTimeReq
+	142, // 430: gorpc.GoShortDramaClient.ShortDramaEpisodeCount:input_type -> gorpc.ShortDramaEpisodeCountReq
+	144, // 431: gorpc.GoShortDramaClient.ShortDramaCheckName:input_type -> gorpc.ShortDramaCheckNameReq
+	147, // 432: gorpc.GoShortDramaClient.SetTotalStats:input_type -> gorpc.SetTotalStatsReq
+	149, // 433: gorpc.GoShortDramaClient.ShortDramaStatsPlaysTotalList:input_type -> gorpc.ShortDramaStatsPlaysTotalListReq
+	13,  // 434: gorpc.GoSysClient.Ping:input_type -> gorpc.Request
+	151, // 435: gorpc.GoSysClient.SysUserAdd:input_type -> gorpc.SysUserVo
+	151, // 436: gorpc.GoSysClient.SysUserUpdate:input_type -> gorpc.SysUserVo
+	12,  // 437: gorpc.GoSysClient.SysUserDelete:input_type -> gorpc.Ids
+	160, // 438: gorpc.GoSysClient.SysUserGet:input_type -> gorpc.SysUserGetReq
+	161, // 439: gorpc.GoSysClient.SysUserList:input_type -> gorpc.SysUserListReq
+	158, // 440: gorpc.GoSysClient.SysUserAddWithRolesAndPerms:input_type -> gorpc.SysUserWithRoleIdsAndPermRules
+	158, // 441: gorpc.GoSysClient.SysUserUpdateWithRolesAndPerms:input_type -> gorpc.SysUserWithRoleIdsAndPermRules
+	160, // 442: gorpc.GoSysClient.SysUserGetWithRolesAndPerms:input_type -> gorpc.SysUserGetReq
+	161, // 443: gorpc.GoSysClient.SysUserListWithRolesAndPerms:input_type -> gorpc.SysUserListReq
+	152, // 444: gorpc.GoSysClient.SysRoleAdd:input_type -> gorpc.SysRoleVo
+	152, // 445: gorpc.GoSysClient.SysRoleUpdate:input_type -> gorpc.SysRoleVo
+	12,  // 446: gorpc.GoSysClient.SysRoleDelete:input_type -> gorpc.Ids
+	166, // 447: gorpc.GoSysClient.SysRoleGet:input_type -> gorpc.SysRoleGetReq
+	167, // 448: gorpc.GoSysClient.SysRoleList:input_type -> gorpc.SysRoleListReq
+	164, // 449: gorpc.GoSysClient.SysRoleAddWithPerms:input_type -> gorpc.SysRoleWithPermIds
+	164, // 450: gorpc.GoSysClient.SysRoleUpdateWithPerms:input_type -> gorpc.SysRoleWithPermIds
+	166, // 451: gorpc.GoSysClient.SysRoleGetWithPerms:input_type -> gorpc.SysRoleGetReq
+	167, // 452: gorpc.GoSysClient.SysRoleListWithPerms:input_type -> gorpc.SysRoleListReq
+	153, // 453: gorpc.GoSysClient.SysPermAdd:input_type -> gorpc.SysPermVo
+	153, // 454: gorpc.GoSysClient.SysPermUpdate:input_type -> gorpc.SysPermVo
+	12,  // 455: gorpc.GoSysClient.SysPermDelete:input_type -> gorpc.Ids
+	170, // 456: gorpc.GoSysClient.SysPermGet:input_type -> gorpc.SysPermGetReq
+	171, // 457: gorpc.GoSysClient.SysPermList:input_type -> gorpc.SysPermListReq
+	154, // 458: gorpc.GoSysClient.SysUserRoleAdd:input_type -> gorpc.SysUserRoleVo
+	154, // 459: gorpc.GoSysClient.SysUserRoleUpdate:input_type -> gorpc.SysUserRoleVo
+	12,  // 460: gorpc.GoSysClient.SysUserRoleDelete:input_type -> gorpc.Ids
+	173, // 461: gorpc.GoSysClient.SysUserRoleGet:input_type -> gorpc.SysUserRoleGetReq
+	174, // 462: gorpc.GoSysClient.SysUserRoleList:input_type -> gorpc.SysUserRoleListReq
+	155, // 463: gorpc.GoSysClient.SysRolePermAdd:input_type -> gorpc.SysRolePermVo
+	155, // 464: gorpc.GoSysClient.SysRolePermUpdate:input_type -> gorpc.SysRolePermVo
+	12,  // 465: gorpc.GoSysClient.SysRolePermDelete:input_type -> gorpc.Ids
+	176, // 466: gorpc.GoSysClient.SysRolePermGet:input_type -> gorpc.SysRolePermGetReq
+	177, // 467: gorpc.GoSysClient.SysRolePermList:input_type -> gorpc.SysRolePermListReq
+	156, // 468: gorpc.GoSysClient.SysUserPermAdd:input_type -> gorpc.SysUserPermVo
+	156, // 469: gorpc.GoSysClient.SysUserPermUpdate:input_type -> gorpc.SysUserPermVo
+	12,  // 470: gorpc.GoSysClient.SysUserPermDelete:input_type -> gorpc.Ids
+	179, // 471: gorpc.GoSysClient.SysUserPermGet:input_type -> gorpc.SysUserPermGetReq
+	180, // 472: gorpc.GoSysClient.SysUserPermList:input_type -> gorpc.SysUserPermListReq
+	13,  // 473: gorpc.GoUserClient.Ping:input_type -> gorpc.Request
+	191, // 474: gorpc.GoUserClient.UserAppConfigAdd:input_type -> gorpc.UserAppConfigVo
+	191, // 475: gorpc.GoUserClient.UserAppConfigUpdate:input_type -> gorpc.UserAppConfigVo
+	12,  // 476: gorpc.GoUserClient.UserAppConfigDel:input_type -> gorpc.Ids
+	192, // 477: gorpc.GoUserClient.UserAppConfigGet:input_type -> gorpc.UserAppConfigGetReq
+	193, // 478: gorpc.GoUserClient.UserAppConfigList:input_type -> gorpc.UserAppConfigListReq
+	188, // 479: gorpc.GoUserClient.DeviceAdd:input_type -> gorpc.DeviceVo
+	188, // 480: gorpc.GoUserClient.DeviceUpdate:input_type -> gorpc.DeviceVo
+	12,  // 481: gorpc.GoUserClient.DeviceDel:input_type -> gorpc.Ids
+	188, // 482: gorpc.GoUserClient.DeviceGet:input_type -> gorpc.DeviceVo
+	189, // 483: gorpc.GoUserClient.DeviceList:input_type -> gorpc.DeviceListReq
+	182, // 484: gorpc.GoUserClient.AccountAdd:input_type -> gorpc.AccountVo
+	182, // 485: gorpc.GoUserClient.AccountUpdate:input_type -> gorpc.AccountVo
+	12,  // 486: gorpc.GoUserClient.AccountDel:input_type -> gorpc.Ids
+	182, // 487: gorpc.GoUserClient.AccountGet:input_type -> gorpc.AccountVo
+	183, // 488: gorpc.GoUserClient.AccountList:input_type -> gorpc.AccountListReq
+	185, // 489: gorpc.GoUserClient.AccountDeviceAdd:input_type -> gorpc.AccountDeviceVo
+	185, // 490: gorpc.GoUserClient.AccountDeviceUpdate:input_type -> gorpc.AccountDeviceVo
+	12,  // 491: gorpc.GoUserClient.AccountDeviceDel:input_type -> gorpc.Ids
+	185, // 492: gorpc.GoUserClient.AccountDeviceGet:input_type -> gorpc.AccountDeviceVo
+	186, // 493: gorpc.GoUserClient.AccountDeviceList:input_type -> gorpc.AccountDeviceListReq
+	13,  // 494: gorpc.GoVpnClient.Ping:input_type -> gorpc.Request
+	16,  // 495: gorpc.GoVpnClient.Transaction:input_type -> gorpc.TransactionReq
+	195, // 496: gorpc.GoVpnClient.VpnTagAdd:input_type -> gorpc.VpnTagVo
+	195, // 497: gorpc.GoVpnClient.VpnTagUpdate:input_type -> gorpc.VpnTagVo
+	12,  // 498: gorpc.GoVpnClient.VpnTagDel:input_type -> gorpc.Ids
+	196, // 499: gorpc.GoVpnClient.VpnTagGet:input_type -> gorpc.VpnTagGetReq
+	197, // 500: gorpc.GoVpnClient.VpnTagList:input_type -> gorpc.VpnTagListReq
+	199, // 501: gorpc.GoVpnClient.VpnTagBatchAdd:input_type -> gorpc.VpnTagBatchAddReq
+	201, // 502: gorpc.GoVpnClient.VpnTagBatchUpdate:input_type -> gorpc.VpnTagBatchUpdateReq
+	206, // 503: gorpc.GoVpnClient.VpnGroupAdd:input_type -> gorpc.VpnGroupAddReq
+	206, // 504: gorpc.GoVpnClient.VpnGroupUpdate:input_type -> gorpc.VpnGroupAddReq
+	12,  // 505: gorpc.GoVpnClient.VpnGroupDel:input_type -> gorpc.Ids
+	207, // 506: gorpc.GoVpnClient.VpnGroupGet:input_type -> gorpc.VpnGroupGetReq
+	208, // 507: gorpc.GoVpnClient.VpnGroupList:input_type -> gorpc.VpnGroupListReq
+	210, // 508: gorpc.GoVpnClient.VpnGroupBatchAdd:input_type -> gorpc.VpnGroupBatchAddReq
+	212, // 509: gorpc.GoVpnClient.VpnGroupBatchUpdate:input_type -> gorpc.VpnGroupBatchUpdateReq
+	215, // 510: gorpc.GoVpnClient.VpnGroupTagAdd:input_type -> gorpc.VpnGroupTagVo
+	215, // 511: gorpc.GoVpnClient.VpnGroupTagUpdate:input_type -> gorpc.VpnGroupTagVo
+	12,  // 512: gorpc.GoVpnClient.VpnGroupTagDel:input_type -> gorpc.Ids
+	215, // 513: gorpc.GoVpnClient.VpnGroupTagGet:input_type -> gorpc.VpnGroupTagVo
+	216, // 514: gorpc.GoVpnClient.VpnGroupTagList:input_type -> gorpc.VpnGroupTagListReq
+	218, // 515: gorpc.GoVpnClient.VpnLocationAdd:input_type -> gorpc.VpnLocationVo
+	218, // 516: gorpc.GoVpnClient.VpnLocationUpdate:input_type -> gorpc.VpnLocationVo
+	12,  // 517: gorpc.GoVpnClient.VpnLocationDel:input_type -> gorpc.Ids
+	220, // 518: gorpc.GoVpnClient.VpnLocationGet:input_type -> gorpc.VpnLocationGetReq
+	221, // 519: gorpc.GoVpnClient.VpnLocationList:input_type -> gorpc.VpnLocationListReq
+	223, // 520: gorpc.GoVpnClient.VpnLocationBatchAdd:input_type -> gorpc.VpnLocationBatchAddReq
+	225, // 521: gorpc.GoVpnClient.VpnLocationBatchUpdate:input_type -> gorpc.VpnLocationBatchUpdateReq
+	233, // 522: gorpc.GoVpnClient.VpnServerAdd:input_type -> gorpc.VpnServerAddReq
+	233, // 523: gorpc.GoVpnClient.VpnServerUpdate:input_type -> gorpc.VpnServerAddReq
+	12,  // 524: gorpc.GoVpnClient.VpnServerDel:input_type -> gorpc.Ids
+	228, // 525: gorpc.GoVpnClient.VpnServerGet:input_type -> gorpc.VpnServerVo
+	230, // 526: gorpc.GoVpnClient.VpnServerList:input_type -> gorpc.VpnServerListReq
+	230, // 527: gorpc.GoVpnClient.VpnServerExList:input_type -> gorpc.VpnServerListReq
+	234, // 528: gorpc.GoVpnClient.VpnServerBatchAdd:input_type -> gorpc.VpnServerBatchAddReq
+	236, // 529: gorpc.GoVpnClient.VpnServerBatchUpdate:input_type -> gorpc.VpnServerBatchUpdateReq
+	239, // 530: gorpc.GoVpnClient.VpnServerLocationAdd:input_type -> gorpc.VpnServerLocationVo
+	239, // 531: gorpc.GoVpnClient.VpnServerLocationUpdate:input_type -> gorpc.VpnServerLocationVo
+	12,  // 532: gorpc.GoVpnClient.VpnServerLocationDel:input_type -> gorpc.Ids
+	239, // 533: gorpc.GoVpnClient.VpnServerLocationGet:input_type -> gorpc.VpnServerLocationVo
+	240, // 534: gorpc.GoVpnClient.VpnServerLocationList:input_type -> gorpc.VpnServerLocationListReq
+	243, // 535: gorpc.GoVpnClient.VpnLocationServerCount:input_type -> gorpc.VpnLocationServerCountReq
+	245, // 536: gorpc.GoVpnClient.VpnProbeTaskAdd:input_type -> gorpc.VpnProbeTaskVo
+	245, // 537: gorpc.GoVpnClient.VpnProbeTaskUpdate:input_type -> gorpc.VpnProbeTaskVo
+	246, // 538: gorpc.GoVpnClient.VpnProbeTaskList:input_type -> gorpc.VpnProbeTaskListReq
+	17,  // 539: gorpc.GoGameClient.GameAdd:output_type -> gorpc.GameVo
+	4,   // 540: gorpc.GoGameClient.GameUpdate:output_type -> gorpc.Empty
+	4,   // 541: gorpc.GoGameClient.GameDel:output_type -> gorpc.Empty
+	17,  // 542: gorpc.GoGameClient.GameGet:output_type -> gorpc.GameVo
+	20,  // 543: gorpc.GoGameClient.GameList:output_type -> gorpc.GameListRes
+	20,  // 544: gorpc.GoGameClient.GameAll:output_type -> gorpc.GameListRes
+	30,  // 545: gorpc.GoGameClient.GameRedisHScanByName:output_type -> gorpc.GameRedisHScanByNameResp
+	21,  // 546: gorpc.GoGameClient.RelGameRankAdd:output_type -> gorpc.RelGameRankVo
+	4,   // 547: gorpc.GoGameClient.RelGameRankUpdate:output_type -> gorpc.Empty
+	4,   // 548: gorpc.GoGameClient.RelGameRankDel:output_type -> gorpc.Empty
+	21,  // 549: gorpc.GoGameClient.RelGameRankGet:output_type -> gorpc.RelGameRankVo
+	24,  // 550: gorpc.GoGameClient.RelGameRankList:output_type -> gorpc.RelGameRankListRes
+	25,  // 551: gorpc.GoGameClient.RelGameVpnGroupAdd:output_type -> gorpc.RelGameVpnGroupVo
+	4,   // 552: gorpc.GoGameClient.RelGameVpnGroupUpdate:output_type -> gorpc.Empty
+	4,   // 553: gorpc.GoGameClient.RelGameVpnGroupDel:output_type -> gorpc.Empty
+	25,  // 554: gorpc.GoGameClient.RelGameVpnGroupGet:output_type -> gorpc.RelGameVpnGroupVo
+	28,  // 555: gorpc.GoGameClient.RelGameVpnGroupList:output_type -> gorpc.RelGameVpnGroupListRes
+	33,  // 556: gorpc.GoGameClient.GameCustomerList:output_type -> gorpc.GameCustomerListRes
+	34,  // 557: gorpc.GoGameClient.GameCustomerAdd:output_type -> gorpc.GameCustomerAddResp
+	4,   // 558: gorpc.GoGameClient.GameCustomerDel:output_type -> gorpc.Empty
+	35,  // 559: gorpc.GoGameClient.GameCategoryAdd:output_type -> gorpc.GameCategoryVo
+	4,   // 560: gorpc.GoGameClient.GameCategoryUpdate:output_type -> gorpc.Empty
+	4,   // 561: gorpc.GoGameClient.GameCategoryDel:output_type -> gorpc.Empty
+	35,  // 562: gorpc.GoGameClient.GameCategoryGet:output_type -> gorpc.GameCategoryVo
+	38,  // 563: gorpc.GoGameClient.GameCategoryList:output_type -> gorpc.GameCategoryListRes
+	38,  // 564: gorpc.GoGameClient.GameCategoryAll:output_type -> gorpc.GameCategoryListRes
+	14,  // 565: gorpc.GoPmpClient.Ping:output_type -> gorpc.Response
+	41,  // 566: gorpc.GoPmpClient.GlobalParamAdd:output_type -> gorpc.GlobalParamVo
+	41,  // 567: gorpc.GoPmpClient.GlobalParamUpdate:output_type -> gorpc.GlobalParamVo
+	4,   // 568: gorpc.GoPmpClient.GlobalParamDel:output_type -> gorpc.Empty
+	41,  // 569: gorpc.GoPmpClient.GlobalParamGet:output_type -> gorpc.GlobalParamVo
+	41,  // 570: gorpc.GoPmpClient.GlobalParamGetWithLang:output_type -> gorpc.GlobalParamVo
+	44,  // 571: gorpc.GoPmpClient.GlobalParamList:output_type -> gorpc.GlobalParamListResp
+	45,  // 572: gorpc.GoPmpClient.ProductAdd:output_type -> gorpc.ProductVo
+	45,  // 573: gorpc.GoPmpClient.ProductUpdate:output_type -> gorpc.ProductVo
+	4,   // 574: gorpc.GoPmpClient.ProductDel:output_type -> gorpc.Empty
+	45,  // 575: gorpc.GoPmpClient.ProductGet:output_type -> gorpc.ProductVo
+	47,  // 576: gorpc.GoPmpClient.ProductList:output_type -> gorpc.ProductListResp
+	47,  // 577: gorpc.GoPmpClient.ProductAll:output_type -> gorpc.ProductListResp
+	48,  // 578: gorpc.GoPmpClient.ProductParamAdd:output_type -> gorpc.ProductParamVo
+	48,  // 579: gorpc.GoPmpClient.ProductParamUpdate:output_type -> gorpc.ProductParamVo
+	4,   // 580: gorpc.GoPmpClient.ProductParamDel:output_type -> gorpc.Empty
+	48,  // 581: gorpc.GoPmpClient.ProductParamGet:output_type -> gorpc.ProductParamVo
+	48,  // 582: gorpc.GoPmpClient.ProductParamGetWithLang:output_type -> gorpc.ProductParamVo
+	51,  // 583: gorpc.GoPmpClient.ProductParamList:output_type -> gorpc.ProductParamListResp
+	52,  // 584: gorpc.GoPmpClient.ProductActionAdd:output_type -> gorpc.ProductActionVo
+	52,  // 585: gorpc.GoPmpClient.ProductActionUpdate:output_type -> gorpc.ProductActionVo
+	4,   // 586: gorpc.GoPmpClient.ProductActionDel:output_type -> gorpc.Empty
+	52,  // 587: gorpc.GoPmpClient.ProductActionGet:output_type -> gorpc.ProductActionVo
+	55,  // 588: gorpc.GoPmpClient.ProductActionList:output_type -> gorpc.ProductActionListResp
+	56,  // 589: gorpc.GoPmpClient.AreaParamAdd:output_type -> gorpc.AreaParamVo
+	56,  // 590: gorpc.GoPmpClient.AreaParamUpdate:output_type -> gorpc.AreaParamVo
+	4,   // 591: gorpc.GoPmpClient.AreaParamDel:output_type -> gorpc.Empty
+	56,  // 592: gorpc.GoPmpClient.AreaParamGet:output_type -> gorpc.AreaParamVo
+	58,  // 593: gorpc.GoPmpClient.AreaParamList:output_type -> gorpc.AreaParamListResp
+	59,  // 594: gorpc.GoPmpClient.NationalLanguageAdd:output_type -> gorpc.NationalLanguageVo
+	59,  // 595: gorpc.GoPmpClient.NationalLanguageUpdate:output_type -> gorpc.NationalLanguageVo
+	4,   // 596: gorpc.GoPmpClient.NationalLanguageDel:output_type -> gorpc.Empty
+	59,  // 597: gorpc.GoPmpClient.NationalLanguageGet:output_type -> gorpc.NationalLanguageVo
+	61,  // 598: gorpc.GoPmpClient.NationalLanguageList:output_type -> gorpc.NationalLanguageListResp
+	62,  // 599: gorpc.GoPmpClient.TipAdd:output_type -> gorpc.TipVo
+	62,  // 600: gorpc.GoPmpClient.TipUpdate:output_type -> gorpc.TipVo
+	4,   // 601: gorpc.GoPmpClient.TipDel:output_type -> gorpc.Empty
+	62,  // 602: gorpc.GoPmpClient.TipGet:output_type -> gorpc.TipVo
+	65,  // 603: gorpc.GoPmpClient.TipList:output_type -> gorpc.TipListResp
+	66,  // 604: gorpc.GoPmpClient.DictAdd:output_type -> gorpc.DictVo
+	66,  // 605: gorpc.GoPmpClient.DictUpdate:output_type -> gorpc.DictVo
+	4,   // 606: gorpc.GoPmpClient.DictDel:output_type -> gorpc.Empty
+	66,  // 607: gorpc.GoPmpClient.DictGet:output_type -> gorpc.DictVo
+	69,  // 608: gorpc.GoPmpClient.DictList:output_type -> gorpc.DictListResp
+	70,  // 609: gorpc.GoPmpClient.UpgradePkgPlanAdd:output_type -> gorpc.UpgradePkgPlanVo
+	70,  // 610: gorpc.GoPmpClient.UpgradePkgPlanUpdate:output_type -> gorpc.UpgradePkgPlanVo
+	4,   // 611: gorpc.GoPmpClient.UpgradePkgPlanDel:output_type -> gorpc.Empty
+	70,  // 612: gorpc.GoPmpClient.UpgradePkgPlanGet:output_type -> gorpc.UpgradePkgPlanVo
+	72,  // 613: gorpc.GoPmpClient.UpgradePkgPlanList:output_type -> gorpc.UpgradePkgPlanListResp
+	73,  // 614: gorpc.GoPmpClient.UpgradePkgPlanDetailAdd:output_type -> gorpc.UpgradePkgPlanDetailVo
+	73,  // 615: gorpc.GoPmpClient.UpgradePkgPlanDetailUpdate:output_type -> gorpc.UpgradePkgPlanDetailVo
+	4,   // 616: gorpc.GoPmpClient.UpgradePkgPlanDetailDel:output_type -> gorpc.Empty
+	73,  // 617: gorpc.GoPmpClient.UpgradePkgPlanDetailGet:output_type -> gorpc.UpgradePkgPlanDetailVo
+	75,  // 618: gorpc.GoPmpClient.UpgradePkgPlanDetailList:output_type -> gorpc.UpgradePkgPlanDetailListResp
+	76,  // 619: gorpc.GoPmpClient.UpgradeResPlanAdd:output_type -> gorpc.UpgradeResPlanVo
+	76,  // 620: gorpc.GoPmpClient.UpgradeResPlanUpdate:output_type -> gorpc.UpgradeResPlanVo
+	4,   // 621: gorpc.GoPmpClient.UpgradeResPlanDel:output_type -> gorpc.Empty
+	76,  // 622: gorpc.GoPmpClient.UpgradeResPlanGet:output_type -> gorpc.UpgradeResPlanVo
+	78,  // 623: gorpc.GoPmpClient.UpgradeResPlanList:output_type -> gorpc.UpgradeResPlanListResp
+	79,  // 624: gorpc.GoPmpClient.UpgradeResPlanDetailAdd:output_type -> gorpc.UpgradeResPlanDetailVo
+	79,  // 625: gorpc.GoPmpClient.UpgradeResPlanDetailUpdate:output_type -> gorpc.UpgradeResPlanDetailVo
+	4,   // 626: gorpc.GoPmpClient.UpgradeResPlanDetailDel:output_type -> gorpc.Empty
+	79,  // 627: gorpc.GoPmpClient.UpgradeResPlanDetailGet:output_type -> gorpc.UpgradeResPlanDetailVo
+	81,  // 628: gorpc.GoPmpClient.UpgradeResPlanDetailList:output_type -> gorpc.UpgradeResPlanDetailListResp
+	82,  // 629: gorpc.GoPmpClient.AdPlanAdd:output_type -> gorpc.AdPlanVo
+	82,  // 630: gorpc.GoPmpClient.AdPlanUpdate:output_type -> gorpc.AdPlanVo
+	4,   // 631: gorpc.GoPmpClient.AdPlanDel:output_type -> gorpc.Empty
+	82,  // 632: gorpc.GoPmpClient.AdPlanGet:output_type -> gorpc.AdPlanVo
+	84,  // 633: gorpc.GoPmpClient.AdPlanList:output_type -> gorpc.AdPlanListResp
+	85,  // 634: gorpc.GoPmpClient.AdPlanDetailAdd:output_type -> gorpc.AdPlanDetailVo
+	85,  // 635: gorpc.GoPmpClient.AdPlanDetailUpdate:output_type -> gorpc.AdPlanDetailVo
+	4,   // 636: gorpc.GoPmpClient.AdPlanDetailDel:output_type -> gorpc.Empty
+	85,  // 637: gorpc.GoPmpClient.AdPlanDetailGet:output_type -> gorpc.AdPlanDetailVo
+	87,  // 638: gorpc.GoPmpClient.AdPlanDetailList:output_type -> gorpc.AdPlanDetailListResp
+	88,  // 639: gorpc.GoPmpClient.AdGlobalConfigGet:output_type -> gorpc.AdGlobalConfigVo
+	88,  // 640: gorpc.GoPmpClient.AdGlobalConfigUpdate:output_type -> gorpc.AdGlobalConfigVo
+	90,  // 641: gorpc.GoPmpClient.JobBatchAdd:output_type -> gorpc.JobBatchVo
+	91,  // 642: gorpc.GoPmpClient.JobBatchAddWithTasks:output_type -> gorpc.JobBatchWithTasksVo
+	90,  // 643: gorpc.GoPmpClient.JobBatchUpdate:output_type -> gorpc.JobBatchVo
+	4,   // 644: gorpc.GoPmpClient.JobBatchDel:output_type -> gorpc.Empty
+	90,  // 645: gorpc.GoPmpClient.JobBatchGet:output_type -> gorpc.JobBatchVo
+	91,  // 646: gorpc.GoPmpClient.JobBatchGetWithTasks:output_type -> gorpc.JobBatchWithTasksVo
+	94,  // 647: gorpc.GoPmpClient.JobBatchList:output_type -> gorpc.JobBatchListResp
+	95,  // 648: gorpc.GoPmpClient.JobBatchListWithTasks:output_type -> gorpc.JobBatchListWithTasksResp
+	96,  // 649: gorpc.GoPmpClient.JobTasksAdd:output_type -> gorpc.JobTasksVo
+	96,  // 650: gorpc.GoPmpClient.JobTasksUpdate:output_type -> gorpc.JobTasksVo
+	4,   // 651: gorpc.GoPmpClient.JobTasksDel:output_type -> gorpc.Empty
+	96,  // 652: gorpc.GoPmpClient.JobTasksGet:output_type -> gorpc.JobTasksVo
+	98,  // 653: gorpc.GoPmpClient.JobTasksList:output_type -> gorpc.JobTasksListResp
+	99,  // 654: gorpc.GoPmpClient.DeployConfigAdd:output_type -> gorpc.DeployConfigVo
+	99,  // 655: gorpc.GoPmpClient.DeployConfigUpdate:output_type -> gorpc.DeployConfigVo
+	4,   // 656: gorpc.GoPmpClient.DeployConfigDel:output_type -> gorpc.Empty
+	99,  // 657: gorpc.GoPmpClient.DeployConfigGet:output_type -> gorpc.DeployConfigVo
+	101, // 658: gorpc.GoPmpClient.DeployConfigList:output_type -> gorpc.DeployConfigListResp
+	102, // 659: gorpc.GoPmpClient.OperationLogAdd:output_type -> gorpc.OperationLogVo
+	102, // 660: gorpc.GoPmpClient.OperationLogUpdate:output_type -> gorpc.OperationLogVo
+	102, // 661: gorpc.GoPmpClient.OperationLogGet:output_type -> gorpc.OperationLogVo
+	104, // 662: gorpc.GoPmpClient.OperationLogList:output_type -> gorpc.OperationLogListResp
+	105, // 663: gorpc.GoPmpClient.AnnouncePlanAdd:output_type -> gorpc.AnnouncePlanVo
+	105, // 664: gorpc.GoPmpClient.AnnouncePlanUpdate:output_type -> gorpc.AnnouncePlanVo
+	4,   // 665: gorpc.GoPmpClient.AnnouncePlanDel:output_type -> gorpc.Empty
+	105, // 666: gorpc.GoPmpClient.AnnouncePlanGet:output_type -> gorpc.AnnouncePlanVo
+	107, // 667: gorpc.GoPmpClient.AnnouncePlanList:output_type -> gorpc.AnnouncePlanListResp
+	108, // 668: gorpc.GoPmpClient.AnnouncePlanDetailAdd:output_type -> gorpc.AnnouncePlanDetailVo
+	108, // 669: gorpc.GoPmpClient.AnnouncePlanDetailUpdate:output_type -> gorpc.AnnouncePlanDetailVo
+	4,   // 670: gorpc.GoPmpClient.AnnouncePlanDetailDel:output_type -> gorpc.Empty
+	108, // 671: gorpc.GoPmpClient.AnnouncePlanDetailGet:output_type -> gorpc.AnnouncePlanDetailVo
+	110, // 672: gorpc.GoPmpClient.AnnouncePlanDetailList:output_type -> gorpc.AnnouncePlanDetailListResp
+	111, // 673: gorpc.GoPmpClient.ServiceTypesAdd:output_type -> gorpc.ServiceTypesVo
+	111, // 674: gorpc.GoPmpClient.ServiceTypesUpdate:output_type -> gorpc.ServiceTypesVo
+	4,   // 675: gorpc.GoPmpClient.ServiceTypesDel:output_type -> gorpc.Empty
+	111, // 676: gorpc.GoPmpClient.ServiceTypesGet:output_type -> gorpc.ServiceTypesVo
+	114, // 677: gorpc.GoPmpClient.ServiceTypesList:output_type -> gorpc.ServiceTypesListResp
+	118, // 678: gorpc.GoPmpClient.ServiceSetsAdd:output_type -> gorpc.ServiceSetsVo
+	118, // 679: gorpc.GoPmpClient.ServiceSetsUpdate:output_type -> gorpc.ServiceSetsVo
+	4,   // 680: gorpc.GoPmpClient.ServiceSetsDel:output_type -> gorpc.Empty
+	118, // 681: gorpc.GoPmpClient.ServiceSetsGet:output_type -> gorpc.ServiceSetsVo
+	121, // 682: gorpc.GoPmpClient.ServiceSetsList:output_type -> gorpc.ServiceSetsListResp
+	125, // 683: gorpc.GoPmpClient.MessagePushAdd:output_type -> gorpc.MessagePushVo
+	125, // 684: gorpc.GoPmpClient.MessagePushUpdate:output_type -> gorpc.MessagePushVo
+	127, // 685: gorpc.GoPmpClient.MessagePushList:output_type -> gorpc.MessagePushListResp
+	135, // 686: gorpc.GoShortDramaClient.ShortDramaAdd:output_type -> gorpc.ShortDramaVo
+	4,   // 687: gorpc.GoShortDramaClient.ShortDramaUpdate:output_type -> gorpc.Empty
+	4,   // 688: gorpc.GoShortDramaClient.ShortDramaDel:output_type -> gorpc.Empty
+	135, // 689: gorpc.GoShortDramaClient.ShortDramaGet:output_type -> gorpc.ShortDramaVo
+	138, // 690: gorpc.GoShortDramaClient.ShortDramaList:output_type -> gorpc.ShortDramaListResp
+	4,   // 691: gorpc.GoShortDramaClient.ShortDramaUpdateModifier:output_type -> gorpc.Empty
+	140, // 692: gorpc.GoShortDramaClient.ShortDramaLanguageList:output_type -> gorpc.ShortDramaLanguageListResp
+	128, // 693: gorpc.GoShortDramaClient.ShortDramaEpisodeAdd:output_type -> gorpc.ShortDramaEpisodeVo
+	4,   // 694: gorpc.GoShortDramaClient.ShortDramaEpisodeBatchAdd:output_type -> gorpc.Empty
+	4,   // 695: gorpc.GoShortDramaClient.ShortDramaEpisodeUpdate:output_type -> gorpc.Empty
+	4,   // 696: gorpc.GoShortDramaClient.ShortDramaEpisodeDel:output_type -> gorpc.Empty
+	128, // 697: gorpc.GoShortDramaClient.ShortDramaEpisodeGet:output_type -> gorpc.ShortDramaEpisodeVo
+	131, // 698: gorpc.GoShortDramaClient.ShortDramaEpisodeList:output_type -> gorpc.ShortDramaEpisodeListResp
+	4,   // 699: gorpc.GoShortDramaClient.ShortDramaEpisodeBatchRefreshUpdateTime:output_type -> gorpc.Empty
+	143, // 700: gorpc.GoShortDramaClient.ShortDramaEpisodeCount:output_type -> gorpc.ShortDramaEpisodeCountResp
+	145, // 701: gorpc.GoShortDramaClient.ShortDramaCheckName:output_type -> gorpc.ShortDramaCheckNameResp
+	4,   // 702: gorpc.GoShortDramaClient.SetTotalStats:output_type -> gorpc.Empty
+	150, // 703: gorpc.GoShortDramaClient.ShortDramaStatsPlaysTotalList:output_type -> gorpc.ShortDramaStatsPlaysTotalListResp
+	14,  // 704: gorpc.GoSysClient.Ping:output_type -> gorpc.Response
+	151, // 705: gorpc.GoSysClient.SysUserAdd:output_type -> gorpc.SysUserVo
+	151, // 706: gorpc.GoSysClient.SysUserUpdate:output_type -> gorpc.SysUserVo
+	4,   // 707: gorpc.GoSysClient.SysUserDelete:output_type -> gorpc.Empty
+	151, // 708: gorpc.GoSysClient.SysUserGet:output_type -> gorpc.SysUserVo
+	162, // 709: gorpc.GoSysClient.SysUserList:output_type -> gorpc.SysUserListResp
+	159, // 710: gorpc.GoSysClient.SysUserAddWithRolesAndPerms:output_type -> gorpc.SysUserWithRolesAndPerms
+	159, // 711: gorpc.GoSysClient.SysUserUpdateWithRolesAndPerms:output_type -> gorpc.SysUserWithRolesAndPerms
+	159, // 712: gorpc.GoSysClient.SysUserGetWithRolesAndPerms:output_type -> gorpc.SysUserWithRolesAndPerms
+	163, // 713: gorpc.GoSysClient.SysUserListWithRolesAndPerms:output_type -> gorpc.SysUserListWithRolesAndPermsResp
+	152, // 714: gorpc.GoSysClient.SysRoleAdd:output_type -> gorpc.SysRoleVo
+	152, // 715: gorpc.GoSysClient.SysRoleUpdate:output_type -> gorpc.SysRoleVo
+	4,   // 716: gorpc.GoSysClient.SysRoleDelete:output_type -> gorpc.Empty
+	152, // 717: gorpc.GoSysClient.SysRoleGet:output_type -> gorpc.SysRoleVo
+	168, // 718: gorpc.GoSysClient.SysRoleList:output_type -> gorpc.SysRoleListResp
+	165, // 719: gorpc.GoSysClient.SysRoleAddWithPerms:output_type -> gorpc.SysRoleWithPerms
+	165, // 720: gorpc.GoSysClient.SysRoleUpdateWithPerms:output_type -> gorpc.SysRoleWithPerms
+	165, // 721: gorpc.GoSysClient.SysRoleGetWithPerms:output_type -> gorpc.SysRoleWithPerms
+	169, // 722: gorpc.GoSysClient.SysRoleListWithPerms:output_type -> gorpc.SysRoleListWithPermsResp
+	153, // 723: gorpc.GoSysClient.SysPermAdd:output_type -> gorpc.SysPermVo
+	153, // 724: gorpc.GoSysClient.SysPermUpdate:output_type -> gorpc.SysPermVo
+	4,   // 725: gorpc.GoSysClient.SysPermDelete:output_type -> gorpc.Empty
+	153, // 726: gorpc.GoSysClient.SysPermGet:output_type -> gorpc.SysPermVo
+	172, // 727: gorpc.GoSysClient.SysPermList:output_type -> gorpc.SysPermListResp
+	154, // 728: gorpc.GoSysClient.SysUserRoleAdd:output_type -> gorpc.SysUserRoleVo
+	154, // 729: gorpc.GoSysClient.SysUserRoleUpdate:output_type -> gorpc.SysUserRoleVo
+	4,   // 730: gorpc.GoSysClient.SysUserRoleDelete:output_type -> gorpc.Empty
+	154, // 731: gorpc.GoSysClient.SysUserRoleGet:output_type -> gorpc.SysUserRoleVo
+	175, // 732: gorpc.GoSysClient.SysUserRoleList:output_type -> gorpc.SysUserRoleListResp
+	155, // 733: gorpc.GoSysClient.SysRolePermAdd:output_type -> gorpc.SysRolePermVo
+	155, // 734: gorpc.GoSysClient.SysRolePermUpdate:output_type -> gorpc.SysRolePermVo
+	4,   // 735: gorpc.GoSysClient.SysRolePermDelete:output_type -> gorpc.Empty
+	155, // 736: gorpc.GoSysClient.SysRolePermGet:output_type -> gorpc.SysRolePermVo
+	178, // 737: gorpc.GoSysClient.SysRolePermList:output_type -> gorpc.SysRolePermListResp
+	156, // 738: gorpc.GoSysClient.SysUserPermAdd:output_type -> gorpc.SysUserPermVo
+	156, // 739: gorpc.GoSysClient.SysUserPermUpdate:output_type -> gorpc.SysUserPermVo
+	4,   // 740: gorpc.GoSysClient.SysUserPermDelete:output_type -> gorpc.Empty
+	156, // 741: gorpc.GoSysClient.SysUserPermGet:output_type -> gorpc.SysUserPermVo
+	181, // 742: gorpc.GoSysClient.SysUserPermList:output_type -> gorpc.SysUserPermListResp
+	14,  // 743: gorpc.GoUserClient.Ping:output_type -> gorpc.Response
+	191, // 744: gorpc.GoUserClient.UserAppConfigAdd:output_type -> gorpc.UserAppConfigVo
+	191, // 745: gorpc.GoUserClient.UserAppConfigUpdate:output_type -> gorpc.UserAppConfigVo
+	4,   // 746: gorpc.GoUserClient.UserAppConfigDel:output_type -> gorpc.Empty
+	191, // 747: gorpc.GoUserClient.UserAppConfigGet:output_type -> gorpc.UserAppConfigVo
+	194, // 748: gorpc.GoUserClient.UserAppConfigList:output_type -> gorpc.UserAppConfigListRes
+	188, // 749: gorpc.GoUserClient.DeviceAdd:output_type -> gorpc.DeviceVo
+	188, // 750: gorpc.GoUserClient.DeviceUpdate:output_type -> gorpc.DeviceVo
+	4,   // 751: gorpc.GoUserClient.DeviceDel:output_type -> gorpc.Empty
+	188, // 752: gorpc.GoUserClient.DeviceGet:output_type -> gorpc.DeviceVo
+	190, // 753: gorpc.GoUserClient.DeviceList:output_type -> gorpc.DeviceListRes
+	182, // 754: gorpc.GoUserClient.AccountAdd:output_type -> gorpc.AccountVo
+	182, // 755: gorpc.GoUserClient.AccountUpdate:output_type -> gorpc.AccountVo
+	4,   // 756: gorpc.GoUserClient.AccountDel:output_type -> gorpc.Empty
+	182, // 757: gorpc.GoUserClient.AccountGet:output_type -> gorpc.AccountVo
+	184, // 758: gorpc.GoUserClient.AccountList:output_type -> gorpc.AccountListResp
+	185, // 759: gorpc.GoUserClient.AccountDeviceAdd:output_type -> gorpc.AccountDeviceVo
+	185, // 760: gorpc.GoUserClient.AccountDeviceUpdate:output_type -> gorpc.AccountDeviceVo
+	4,   // 761: gorpc.GoUserClient.AccountDeviceDel:output_type -> gorpc.Empty
+	185, // 762: gorpc.GoUserClient.AccountDeviceGet:output_type -> gorpc.AccountDeviceVo
+	187, // 763: gorpc.GoUserClient.AccountDeviceList:output_type -> gorpc.AccountDeviceListResp
+	14,  // 764: gorpc.GoVpnClient.Ping:output_type -> gorpc.Response
+	4,   // 765: gorpc.GoVpnClient.Transaction:output_type -> gorpc.Empty
+	195, // 766: gorpc.GoVpnClient.VpnTagAdd:output_type -> gorpc.VpnTagVo
+	195, // 767: gorpc.GoVpnClient.VpnTagUpdate:output_type -> gorpc.VpnTagVo
+	4,   // 768: gorpc.GoVpnClient.VpnTagDel:output_type -> gorpc.Empty
+	195, // 769: gorpc.GoVpnClient.VpnTagGet:output_type -> gorpc.VpnTagVo
+	198, // 770: gorpc.GoVpnClient.VpnTagList:output_type -> gorpc.VpnTagListResp
+	200, // 771: gorpc.GoVpnClient.VpnTagBatchAdd:output_type -> gorpc.VpnTagBatchAddResp
+	202, // 772: gorpc.GoVpnClient.VpnTagBatchUpdate:output_type -> gorpc.VpnTagBatchUpdateResp
+	204, // 773: gorpc.GoVpnClient.VpnGroupAdd:output_type -> gorpc.VpnGroupVo
+	4,   // 774: gorpc.GoVpnClient.VpnGroupUpdate:output_type -> gorpc.Empty
+	4,   // 775: gorpc.GoVpnClient.VpnGroupDel:output_type -> gorpc.Empty
+	204, // 776: gorpc.GoVpnClient.VpnGroupGet:output_type -> gorpc.VpnGroupVo
+	209, // 777: gorpc.GoVpnClient.VpnGroupList:output_type -> gorpc.VpnGroupListResp
+	211, // 778: gorpc.GoVpnClient.VpnGroupBatchAdd:output_type -> gorpc.VpnGroupBatchAddResp
+	213, // 779: gorpc.GoVpnClient.VpnGroupBatchUpdate:output_type -> gorpc.VpnGroupBatchUpdateResp
+	215, // 780: gorpc.GoVpnClient.VpnGroupTagAdd:output_type -> gorpc.VpnGroupTagVo
+	215, // 781: gorpc.GoVpnClient.VpnGroupTagUpdate:output_type -> gorpc.VpnGroupTagVo
+	4,   // 782: gorpc.GoVpnClient.VpnGroupTagDel:output_type -> gorpc.Empty
+	215, // 783: gorpc.GoVpnClient.VpnGroupTagGet:output_type -> gorpc.VpnGroupTagVo
+	217, // 784: gorpc.GoVpnClient.VpnGroupTagList:output_type -> gorpc.VpnGroupTagListResp
+	218, // 785: gorpc.GoVpnClient.VpnLocationAdd:output_type -> gorpc.VpnLocationVo
+	4,   // 786: gorpc.GoVpnClient.VpnLocationUpdate:output_type -> gorpc.Empty
+	4,   // 787: gorpc.GoVpnClient.VpnLocationDel:output_type -> gorpc.Empty
+	218, // 788: gorpc.GoVpnClient.VpnLocationGet:output_type -> gorpc.VpnLocationVo
+	222, // 789: gorpc.GoVpnClient.VpnLocationList:output_type -> gorpc.VpnLocationListResp
+	224, // 790: gorpc.GoVpnClient.VpnLocationBatchAdd:output_type -> gorpc.VpnLocationBatchAddResp
+	226, // 791: gorpc.GoVpnClient.VpnLocationBatchUpdate:output_type -> gorpc.VpnLocationBatchUpdateResp
+	233, // 792: gorpc.GoVpnClient.VpnServerAdd:output_type -> gorpc.VpnServerAddReq
+	233, // 793: gorpc.GoVpnClient.VpnServerUpdate:output_type -> gorpc.VpnServerAddReq
+	4,   // 794: gorpc.GoVpnClient.VpnServerDel:output_type -> gorpc.Empty
+	228, // 795: gorpc.GoVpnClient.VpnServerGet:output_type -> gorpc.VpnServerVo
+	231, // 796: gorpc.GoVpnClient.VpnServerList:output_type -> gorpc.VpnServerListResp
+	232, // 797: gorpc.GoVpnClient.VpnServerExList:output_type -> gorpc.VpnServerExListResp
+	235, // 798: gorpc.GoVpnClient.VpnServerBatchAdd:output_type -> gorpc.VpnServerBatchAddResp
+	237, // 799: gorpc.GoVpnClient.VpnServerBatchUpdate:output_type -> gorpc.VpnServerBatchUpdateResp
+	239, // 800: gorpc.GoVpnClient.VpnServerLocationAdd:output_type -> gorpc.VpnServerLocationVo
+	4,   // 801: gorpc.GoVpnClient.VpnServerLocationUpdate:output_type -> gorpc.Empty
+	4,   // 802: gorpc.GoVpnClient.VpnServerLocationDel:output_type -> gorpc.Empty
+	239, // 803: gorpc.GoVpnClient.VpnServerLocationGet:output_type -> gorpc.VpnServerLocationVo
+	241, // 804: gorpc.GoVpnClient.VpnServerLocationList:output_type -> gorpc.VpnServerLocationListResp
+	244, // 805: gorpc.GoVpnClient.VpnLocationServerCount:output_type -> gorpc.VpnLocationServerCountResp
+	245, // 806: gorpc.GoVpnClient.VpnProbeTaskAdd:output_type -> gorpc.VpnProbeTaskVo
+	4,   // 807: gorpc.GoVpnClient.VpnProbeTaskUpdate:output_type -> gorpc.Empty
+	247, // 808: gorpc.GoVpnClient.VpnProbeTaskList:output_type -> gorpc.VpnProbeTaskListResp
+	539, // [539:809] is the sub-list for method output_type
+	269, // [269:539] is the sub-list for method input_type
+	269, // [269:269] is the sub-list for extension type_name
+	269, // [269:269] is the sub-list for extension extendee
+	0,   // [0:269] is the sub-list for field type_name
+}
+
+func init() { file_gorpc_proto_init() }
+func file_gorpc_proto_init() {
+	if File_gorpc_proto != nil {
+		return
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_gorpc_proto_rawDesc), len(file_gorpc_proto_rawDesc)),
+			NumEnums:      4,
+			NumMessages:   245,
+			NumExtensions: 0,
+			NumServices:   6,
+		},
+		GoTypes:           file_gorpc_proto_goTypes,
+		DependencyIndexes: file_gorpc_proto_depIdxs,
+		EnumInfos:         file_gorpc_proto_enumTypes,
+		MessageInfos:      file_gorpc_proto_msgTypes,
+	}.Build()
+	File_gorpc_proto = out.File
+	file_gorpc_proto_goTypes = nil
+	file_gorpc_proto_depIdxs = nil
+}

+ 10781 - 0
pb/pb/gorpc_grpc.pb.go

@@ -0,0 +1,10781 @@
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: gorpc.proto
+
+package pb
+
+import (
+	context "context"
+	grpc "google.golang.org/grpc"
+	codes "google.golang.org/grpc/codes"
+	status "google.golang.org/grpc/status"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	GoGameClient_GameAdd_FullMethodName               = "/gorpc.GoGameClient/GameAdd"
+	GoGameClient_GameUpdate_FullMethodName            = "/gorpc.GoGameClient/GameUpdate"
+	GoGameClient_GameDel_FullMethodName               = "/gorpc.GoGameClient/GameDel"
+	GoGameClient_GameGet_FullMethodName               = "/gorpc.GoGameClient/GameGet"
+	GoGameClient_GameList_FullMethodName              = "/gorpc.GoGameClient/GameList"
+	GoGameClient_GameAll_FullMethodName               = "/gorpc.GoGameClient/GameAll"
+	GoGameClient_GameRedisHScanByName_FullMethodName  = "/gorpc.GoGameClient/GameRedisHScanByName"
+	GoGameClient_RelGameRankAdd_FullMethodName        = "/gorpc.GoGameClient/RelGameRankAdd"
+	GoGameClient_RelGameRankUpdate_FullMethodName     = "/gorpc.GoGameClient/RelGameRankUpdate"
+	GoGameClient_RelGameRankDel_FullMethodName        = "/gorpc.GoGameClient/RelGameRankDel"
+	GoGameClient_RelGameRankGet_FullMethodName        = "/gorpc.GoGameClient/RelGameRankGet"
+	GoGameClient_RelGameRankList_FullMethodName       = "/gorpc.GoGameClient/RelGameRankList"
+	GoGameClient_RelGameVpnGroupAdd_FullMethodName    = "/gorpc.GoGameClient/RelGameVpnGroupAdd"
+	GoGameClient_RelGameVpnGroupUpdate_FullMethodName = "/gorpc.GoGameClient/RelGameVpnGroupUpdate"
+	GoGameClient_RelGameVpnGroupDel_FullMethodName    = "/gorpc.GoGameClient/RelGameVpnGroupDel"
+	GoGameClient_RelGameVpnGroupGet_FullMethodName    = "/gorpc.GoGameClient/RelGameVpnGroupGet"
+	GoGameClient_RelGameVpnGroupList_FullMethodName   = "/gorpc.GoGameClient/RelGameVpnGroupList"
+	GoGameClient_GameCustomerList_FullMethodName      = "/gorpc.GoGameClient/GameCustomerList"
+	GoGameClient_GameCustomerAdd_FullMethodName       = "/gorpc.GoGameClient/GameCustomerAdd"
+	GoGameClient_GameCustomerDel_FullMethodName       = "/gorpc.GoGameClient/GameCustomerDel"
+	GoGameClient_GameCategoryAdd_FullMethodName       = "/gorpc.GoGameClient/GameCategoryAdd"
+	GoGameClient_GameCategoryUpdate_FullMethodName    = "/gorpc.GoGameClient/GameCategoryUpdate"
+	GoGameClient_GameCategoryDel_FullMethodName       = "/gorpc.GoGameClient/GameCategoryDel"
+	GoGameClient_GameCategoryGet_FullMethodName       = "/gorpc.GoGameClient/GameCategoryGet"
+	GoGameClient_GameCategoryList_FullMethodName      = "/gorpc.GoGameClient/GameCategoryList"
+	GoGameClient_GameCategoryAll_FullMethodName       = "/gorpc.GoGameClient/GameCategoryAll"
+)
+
+// GoGameClientClient is the client API for GoGameClient service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+type GoGameClientClient interface {
+	// 加速器游戏管理
+	GameAdd(ctx context.Context, in *GameVo, opts ...grpc.CallOption) (*GameVo, error)
+	GameUpdate(ctx context.Context, in *GameVo, opts ...grpc.CallOption) (*Empty, error)
+	GameDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	GameGet(ctx context.Context, in *GameReq, opts ...grpc.CallOption) (*GameVo, error)
+	GameList(ctx context.Context, in *GameListReq, opts ...grpc.CallOption) (*GameListRes, error)
+	GameAll(ctx context.Context, in *Request, opts ...grpc.CallOption) (*GameListRes, error)
+	GameRedisHScanByName(ctx context.Context, in *GameRedisHScanByNameReq, opts ...grpc.CallOption) (*GameRedisHScanByNameResp, error)
+	// 游戏榜单关联关系
+	RelGameRankAdd(ctx context.Context, in *RelGameRankVo, opts ...grpc.CallOption) (*RelGameRankVo, error)
+	RelGameRankUpdate(ctx context.Context, in *RelGameRankVo, opts ...grpc.CallOption) (*Empty, error)
+	RelGameRankDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	RelGameRankGet(ctx context.Context, in *RelGameRankReq, opts ...grpc.CallOption) (*RelGameRankVo, error)
+	RelGameRankList(ctx context.Context, in *RelGameRankListReq, opts ...grpc.CallOption) (*RelGameRankListRes, error)
+	// 游戏地域关联关系
+	RelGameVpnGroupAdd(ctx context.Context, in *RelGameVpnGroupVo, opts ...grpc.CallOption) (*RelGameVpnGroupVo, error)
+	RelGameVpnGroupUpdate(ctx context.Context, in *RelGameVpnGroupVo, opts ...grpc.CallOption) (*Empty, error)
+	RelGameVpnGroupDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	RelGameVpnGroupGet(ctx context.Context, in *RelGameVpnGroupReq, opts ...grpc.CallOption) (*RelGameVpnGroupVo, error)
+	RelGameVpnGroupList(ctx context.Context, in *RelGameVpnGroupListReq, opts ...grpc.CallOption) (*RelGameVpnGroupListRes, error)
+	// 用户提交游戏
+	GameCustomerList(ctx context.Context, in *GameCustomerListReq, opts ...grpc.CallOption) (*GameCustomerListRes, error)
+	GameCustomerAdd(ctx context.Context, in *GameCustomerVo, opts ...grpc.CallOption) (*GameCustomerAddResp, error)
+	GameCustomerDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	GameCategoryAdd(ctx context.Context, in *GameCategoryVo, opts ...grpc.CallOption) (*GameCategoryVo, error)
+	GameCategoryUpdate(ctx context.Context, in *GameCategoryVo, opts ...grpc.CallOption) (*Empty, error)
+	GameCategoryDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	GameCategoryGet(ctx context.Context, in *GameCategoryReq, opts ...grpc.CallOption) (*GameCategoryVo, error)
+	GameCategoryList(ctx context.Context, in *GameCategoryListReq, opts ...grpc.CallOption) (*GameCategoryListRes, error)
+	GameCategoryAll(ctx context.Context, in *Request, opts ...grpc.CallOption) (*GameCategoryListRes, error)
+}
+
+type goGameClientClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewGoGameClientClient(cc grpc.ClientConnInterface) GoGameClientClient {
+	return &goGameClientClient{cc}
+}
+
+func (c *goGameClientClient) GameAdd(ctx context.Context, in *GameVo, opts ...grpc.CallOption) (*GameVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GameVo)
+	err := c.cc.Invoke(ctx, GoGameClient_GameAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameUpdate(ctx context.Context, in *GameVo, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoGameClient_GameUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoGameClient_GameDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameGet(ctx context.Context, in *GameReq, opts ...grpc.CallOption) (*GameVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GameVo)
+	err := c.cc.Invoke(ctx, GoGameClient_GameGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameList(ctx context.Context, in *GameListReq, opts ...grpc.CallOption) (*GameListRes, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GameListRes)
+	err := c.cc.Invoke(ctx, GoGameClient_GameList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameAll(ctx context.Context, in *Request, opts ...grpc.CallOption) (*GameListRes, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GameListRes)
+	err := c.cc.Invoke(ctx, GoGameClient_GameAll_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameRedisHScanByName(ctx context.Context, in *GameRedisHScanByNameReq, opts ...grpc.CallOption) (*GameRedisHScanByNameResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GameRedisHScanByNameResp)
+	err := c.cc.Invoke(ctx, GoGameClient_GameRedisHScanByName_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) RelGameRankAdd(ctx context.Context, in *RelGameRankVo, opts ...grpc.CallOption) (*RelGameRankVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(RelGameRankVo)
+	err := c.cc.Invoke(ctx, GoGameClient_RelGameRankAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) RelGameRankUpdate(ctx context.Context, in *RelGameRankVo, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoGameClient_RelGameRankUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) RelGameRankDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoGameClient_RelGameRankDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) RelGameRankGet(ctx context.Context, in *RelGameRankReq, opts ...grpc.CallOption) (*RelGameRankVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(RelGameRankVo)
+	err := c.cc.Invoke(ctx, GoGameClient_RelGameRankGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) RelGameRankList(ctx context.Context, in *RelGameRankListReq, opts ...grpc.CallOption) (*RelGameRankListRes, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(RelGameRankListRes)
+	err := c.cc.Invoke(ctx, GoGameClient_RelGameRankList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) RelGameVpnGroupAdd(ctx context.Context, in *RelGameVpnGroupVo, opts ...grpc.CallOption) (*RelGameVpnGroupVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(RelGameVpnGroupVo)
+	err := c.cc.Invoke(ctx, GoGameClient_RelGameVpnGroupAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) RelGameVpnGroupUpdate(ctx context.Context, in *RelGameVpnGroupVo, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoGameClient_RelGameVpnGroupUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) RelGameVpnGroupDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoGameClient_RelGameVpnGroupDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) RelGameVpnGroupGet(ctx context.Context, in *RelGameVpnGroupReq, opts ...grpc.CallOption) (*RelGameVpnGroupVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(RelGameVpnGroupVo)
+	err := c.cc.Invoke(ctx, GoGameClient_RelGameVpnGroupGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) RelGameVpnGroupList(ctx context.Context, in *RelGameVpnGroupListReq, opts ...grpc.CallOption) (*RelGameVpnGroupListRes, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(RelGameVpnGroupListRes)
+	err := c.cc.Invoke(ctx, GoGameClient_RelGameVpnGroupList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameCustomerList(ctx context.Context, in *GameCustomerListReq, opts ...grpc.CallOption) (*GameCustomerListRes, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GameCustomerListRes)
+	err := c.cc.Invoke(ctx, GoGameClient_GameCustomerList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameCustomerAdd(ctx context.Context, in *GameCustomerVo, opts ...grpc.CallOption) (*GameCustomerAddResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GameCustomerAddResp)
+	err := c.cc.Invoke(ctx, GoGameClient_GameCustomerAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameCustomerDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoGameClient_GameCustomerDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameCategoryAdd(ctx context.Context, in *GameCategoryVo, opts ...grpc.CallOption) (*GameCategoryVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GameCategoryVo)
+	err := c.cc.Invoke(ctx, GoGameClient_GameCategoryAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameCategoryUpdate(ctx context.Context, in *GameCategoryVo, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoGameClient_GameCategoryUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameCategoryDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoGameClient_GameCategoryDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameCategoryGet(ctx context.Context, in *GameCategoryReq, opts ...grpc.CallOption) (*GameCategoryVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GameCategoryVo)
+	err := c.cc.Invoke(ctx, GoGameClient_GameCategoryGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameCategoryList(ctx context.Context, in *GameCategoryListReq, opts ...grpc.CallOption) (*GameCategoryListRes, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GameCategoryListRes)
+	err := c.cc.Invoke(ctx, GoGameClient_GameCategoryList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goGameClientClient) GameCategoryAll(ctx context.Context, in *Request, opts ...grpc.CallOption) (*GameCategoryListRes, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GameCategoryListRes)
+	err := c.cc.Invoke(ctx, GoGameClient_GameCategoryAll_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// GoGameClientServer is the server API for GoGameClient service.
+// All implementations must embed UnimplementedGoGameClientServer
+// for forward compatibility.
+type GoGameClientServer interface {
+	// 加速器游戏管理
+	GameAdd(context.Context, *GameVo) (*GameVo, error)
+	GameUpdate(context.Context, *GameVo) (*Empty, error)
+	GameDel(context.Context, *Ids) (*Empty, error)
+	GameGet(context.Context, *GameReq) (*GameVo, error)
+	GameList(context.Context, *GameListReq) (*GameListRes, error)
+	GameAll(context.Context, *Request) (*GameListRes, error)
+	GameRedisHScanByName(context.Context, *GameRedisHScanByNameReq) (*GameRedisHScanByNameResp, error)
+	// 游戏榜单关联关系
+	RelGameRankAdd(context.Context, *RelGameRankVo) (*RelGameRankVo, error)
+	RelGameRankUpdate(context.Context, *RelGameRankVo) (*Empty, error)
+	RelGameRankDel(context.Context, *Ids) (*Empty, error)
+	RelGameRankGet(context.Context, *RelGameRankReq) (*RelGameRankVo, error)
+	RelGameRankList(context.Context, *RelGameRankListReq) (*RelGameRankListRes, error)
+	// 游戏地域关联关系
+	RelGameVpnGroupAdd(context.Context, *RelGameVpnGroupVo) (*RelGameVpnGroupVo, error)
+	RelGameVpnGroupUpdate(context.Context, *RelGameVpnGroupVo) (*Empty, error)
+	RelGameVpnGroupDel(context.Context, *Ids) (*Empty, error)
+	RelGameVpnGroupGet(context.Context, *RelGameVpnGroupReq) (*RelGameVpnGroupVo, error)
+	RelGameVpnGroupList(context.Context, *RelGameVpnGroupListReq) (*RelGameVpnGroupListRes, error)
+	// 用户提交游戏
+	GameCustomerList(context.Context, *GameCustomerListReq) (*GameCustomerListRes, error)
+	GameCustomerAdd(context.Context, *GameCustomerVo) (*GameCustomerAddResp, error)
+	GameCustomerDel(context.Context, *Ids) (*Empty, error)
+	GameCategoryAdd(context.Context, *GameCategoryVo) (*GameCategoryVo, error)
+	GameCategoryUpdate(context.Context, *GameCategoryVo) (*Empty, error)
+	GameCategoryDel(context.Context, *Ids) (*Empty, error)
+	GameCategoryGet(context.Context, *GameCategoryReq) (*GameCategoryVo, error)
+	GameCategoryList(context.Context, *GameCategoryListReq) (*GameCategoryListRes, error)
+	GameCategoryAll(context.Context, *Request) (*GameCategoryListRes, error)
+	mustEmbedUnimplementedGoGameClientServer()
+}
+
+// UnimplementedGoGameClientServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedGoGameClientServer struct{}
+
+func (UnimplementedGoGameClientServer) GameAdd(context.Context, *GameVo) (*GameVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameAdd not implemented")
+}
+func (UnimplementedGoGameClientServer) GameUpdate(context.Context, *GameVo) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameUpdate not implemented")
+}
+func (UnimplementedGoGameClientServer) GameDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameDel not implemented")
+}
+func (UnimplementedGoGameClientServer) GameGet(context.Context, *GameReq) (*GameVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameGet not implemented")
+}
+func (UnimplementedGoGameClientServer) GameList(context.Context, *GameListReq) (*GameListRes, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameList not implemented")
+}
+func (UnimplementedGoGameClientServer) GameAll(context.Context, *Request) (*GameListRes, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameAll not implemented")
+}
+func (UnimplementedGoGameClientServer) GameRedisHScanByName(context.Context, *GameRedisHScanByNameReq) (*GameRedisHScanByNameResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameRedisHScanByName not implemented")
+}
+func (UnimplementedGoGameClientServer) RelGameRankAdd(context.Context, *RelGameRankVo) (*RelGameRankVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method RelGameRankAdd not implemented")
+}
+func (UnimplementedGoGameClientServer) RelGameRankUpdate(context.Context, *RelGameRankVo) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method RelGameRankUpdate not implemented")
+}
+func (UnimplementedGoGameClientServer) RelGameRankDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method RelGameRankDel not implemented")
+}
+func (UnimplementedGoGameClientServer) RelGameRankGet(context.Context, *RelGameRankReq) (*RelGameRankVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method RelGameRankGet not implemented")
+}
+func (UnimplementedGoGameClientServer) RelGameRankList(context.Context, *RelGameRankListReq) (*RelGameRankListRes, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method RelGameRankList not implemented")
+}
+func (UnimplementedGoGameClientServer) RelGameVpnGroupAdd(context.Context, *RelGameVpnGroupVo) (*RelGameVpnGroupVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method RelGameVpnGroupAdd not implemented")
+}
+func (UnimplementedGoGameClientServer) RelGameVpnGroupUpdate(context.Context, *RelGameVpnGroupVo) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method RelGameVpnGroupUpdate not implemented")
+}
+func (UnimplementedGoGameClientServer) RelGameVpnGroupDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method RelGameVpnGroupDel not implemented")
+}
+func (UnimplementedGoGameClientServer) RelGameVpnGroupGet(context.Context, *RelGameVpnGroupReq) (*RelGameVpnGroupVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method RelGameVpnGroupGet not implemented")
+}
+func (UnimplementedGoGameClientServer) RelGameVpnGroupList(context.Context, *RelGameVpnGroupListReq) (*RelGameVpnGroupListRes, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method RelGameVpnGroupList not implemented")
+}
+func (UnimplementedGoGameClientServer) GameCustomerList(context.Context, *GameCustomerListReq) (*GameCustomerListRes, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameCustomerList not implemented")
+}
+func (UnimplementedGoGameClientServer) GameCustomerAdd(context.Context, *GameCustomerVo) (*GameCustomerAddResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameCustomerAdd not implemented")
+}
+func (UnimplementedGoGameClientServer) GameCustomerDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameCustomerDel not implemented")
+}
+func (UnimplementedGoGameClientServer) GameCategoryAdd(context.Context, *GameCategoryVo) (*GameCategoryVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameCategoryAdd not implemented")
+}
+func (UnimplementedGoGameClientServer) GameCategoryUpdate(context.Context, *GameCategoryVo) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameCategoryUpdate not implemented")
+}
+func (UnimplementedGoGameClientServer) GameCategoryDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameCategoryDel not implemented")
+}
+func (UnimplementedGoGameClientServer) GameCategoryGet(context.Context, *GameCategoryReq) (*GameCategoryVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameCategoryGet not implemented")
+}
+func (UnimplementedGoGameClientServer) GameCategoryList(context.Context, *GameCategoryListReq) (*GameCategoryListRes, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameCategoryList not implemented")
+}
+func (UnimplementedGoGameClientServer) GameCategoryAll(context.Context, *Request) (*GameCategoryListRes, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GameCategoryAll not implemented")
+}
+func (UnimplementedGoGameClientServer) mustEmbedUnimplementedGoGameClientServer() {}
+func (UnimplementedGoGameClientServer) testEmbeddedByValue()                      {}
+
+// UnsafeGoGameClientServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to GoGameClientServer will
+// result in compilation errors.
+type UnsafeGoGameClientServer interface {
+	mustEmbedUnimplementedGoGameClientServer()
+}
+
+func RegisterGoGameClientServer(s grpc.ServiceRegistrar, srv GoGameClientServer) {
+	// If the following call pancis, it indicates UnimplementedGoGameClientServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
+	s.RegisterService(&GoGameClient_ServiceDesc, srv)
+}
+
+func _GoGameClient_GameAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GameVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameAdd(ctx, req.(*GameVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GameVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameUpdate(ctx, req.(*GameVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GameReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameGet(ctx, req.(*GameReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GameListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameList(ctx, req.(*GameListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Request)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameAll(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameAll_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameAll(ctx, req.(*Request))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameRedisHScanByName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GameRedisHScanByNameReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameRedisHScanByName(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameRedisHScanByName_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameRedisHScanByName(ctx, req.(*GameRedisHScanByNameReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_RelGameRankAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(RelGameRankVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).RelGameRankAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_RelGameRankAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).RelGameRankAdd(ctx, req.(*RelGameRankVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_RelGameRankUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(RelGameRankVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).RelGameRankUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_RelGameRankUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).RelGameRankUpdate(ctx, req.(*RelGameRankVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_RelGameRankDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).RelGameRankDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_RelGameRankDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).RelGameRankDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_RelGameRankGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(RelGameRankReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).RelGameRankGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_RelGameRankGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).RelGameRankGet(ctx, req.(*RelGameRankReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_RelGameRankList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(RelGameRankListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).RelGameRankList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_RelGameRankList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).RelGameRankList(ctx, req.(*RelGameRankListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_RelGameVpnGroupAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(RelGameVpnGroupVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).RelGameVpnGroupAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_RelGameVpnGroupAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).RelGameVpnGroupAdd(ctx, req.(*RelGameVpnGroupVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_RelGameVpnGroupUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(RelGameVpnGroupVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).RelGameVpnGroupUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_RelGameVpnGroupUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).RelGameVpnGroupUpdate(ctx, req.(*RelGameVpnGroupVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_RelGameVpnGroupDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).RelGameVpnGroupDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_RelGameVpnGroupDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).RelGameVpnGroupDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_RelGameVpnGroupGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(RelGameVpnGroupReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).RelGameVpnGroupGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_RelGameVpnGroupGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).RelGameVpnGroupGet(ctx, req.(*RelGameVpnGroupReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_RelGameVpnGroupList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(RelGameVpnGroupListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).RelGameVpnGroupList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_RelGameVpnGroupList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).RelGameVpnGroupList(ctx, req.(*RelGameVpnGroupListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameCustomerList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GameCustomerListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameCustomerList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameCustomerList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameCustomerList(ctx, req.(*GameCustomerListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameCustomerAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GameCustomerVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameCustomerAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameCustomerAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameCustomerAdd(ctx, req.(*GameCustomerVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameCustomerDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameCustomerDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameCustomerDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameCustomerDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameCategoryAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GameCategoryVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameCategoryAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameCategoryAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameCategoryAdd(ctx, req.(*GameCategoryVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameCategoryUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GameCategoryVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameCategoryUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameCategoryUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameCategoryUpdate(ctx, req.(*GameCategoryVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameCategoryDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameCategoryDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameCategoryDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameCategoryDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameCategoryGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GameCategoryReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameCategoryGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameCategoryGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameCategoryGet(ctx, req.(*GameCategoryReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameCategoryList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GameCategoryListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameCategoryList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameCategoryList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameCategoryList(ctx, req.(*GameCategoryListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoGameClient_GameCategoryAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Request)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoGameClientServer).GameCategoryAll(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoGameClient_GameCategoryAll_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoGameClientServer).GameCategoryAll(ctx, req.(*Request))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// GoGameClient_ServiceDesc is the grpc.ServiceDesc for GoGameClient service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var GoGameClient_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "gorpc.GoGameClient",
+	HandlerType: (*GoGameClientServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "GameAdd",
+			Handler:    _GoGameClient_GameAdd_Handler,
+		},
+		{
+			MethodName: "GameUpdate",
+			Handler:    _GoGameClient_GameUpdate_Handler,
+		},
+		{
+			MethodName: "GameDel",
+			Handler:    _GoGameClient_GameDel_Handler,
+		},
+		{
+			MethodName: "GameGet",
+			Handler:    _GoGameClient_GameGet_Handler,
+		},
+		{
+			MethodName: "GameList",
+			Handler:    _GoGameClient_GameList_Handler,
+		},
+		{
+			MethodName: "GameAll",
+			Handler:    _GoGameClient_GameAll_Handler,
+		},
+		{
+			MethodName: "GameRedisHScanByName",
+			Handler:    _GoGameClient_GameRedisHScanByName_Handler,
+		},
+		{
+			MethodName: "RelGameRankAdd",
+			Handler:    _GoGameClient_RelGameRankAdd_Handler,
+		},
+		{
+			MethodName: "RelGameRankUpdate",
+			Handler:    _GoGameClient_RelGameRankUpdate_Handler,
+		},
+		{
+			MethodName: "RelGameRankDel",
+			Handler:    _GoGameClient_RelGameRankDel_Handler,
+		},
+		{
+			MethodName: "RelGameRankGet",
+			Handler:    _GoGameClient_RelGameRankGet_Handler,
+		},
+		{
+			MethodName: "RelGameRankList",
+			Handler:    _GoGameClient_RelGameRankList_Handler,
+		},
+		{
+			MethodName: "RelGameVpnGroupAdd",
+			Handler:    _GoGameClient_RelGameVpnGroupAdd_Handler,
+		},
+		{
+			MethodName: "RelGameVpnGroupUpdate",
+			Handler:    _GoGameClient_RelGameVpnGroupUpdate_Handler,
+		},
+		{
+			MethodName: "RelGameVpnGroupDel",
+			Handler:    _GoGameClient_RelGameVpnGroupDel_Handler,
+		},
+		{
+			MethodName: "RelGameVpnGroupGet",
+			Handler:    _GoGameClient_RelGameVpnGroupGet_Handler,
+		},
+		{
+			MethodName: "RelGameVpnGroupList",
+			Handler:    _GoGameClient_RelGameVpnGroupList_Handler,
+		},
+		{
+			MethodName: "GameCustomerList",
+			Handler:    _GoGameClient_GameCustomerList_Handler,
+		},
+		{
+			MethodName: "GameCustomerAdd",
+			Handler:    _GoGameClient_GameCustomerAdd_Handler,
+		},
+		{
+			MethodName: "GameCustomerDel",
+			Handler:    _GoGameClient_GameCustomerDel_Handler,
+		},
+		{
+			MethodName: "GameCategoryAdd",
+			Handler:    _GoGameClient_GameCategoryAdd_Handler,
+		},
+		{
+			MethodName: "GameCategoryUpdate",
+			Handler:    _GoGameClient_GameCategoryUpdate_Handler,
+		},
+		{
+			MethodName: "GameCategoryDel",
+			Handler:    _GoGameClient_GameCategoryDel_Handler,
+		},
+		{
+			MethodName: "GameCategoryGet",
+			Handler:    _GoGameClient_GameCategoryGet_Handler,
+		},
+		{
+			MethodName: "GameCategoryList",
+			Handler:    _GoGameClient_GameCategoryList_Handler,
+		},
+		{
+			MethodName: "GameCategoryAll",
+			Handler:    _GoGameClient_GameCategoryAll_Handler,
+		},
+	},
+	Streams:  []grpc.StreamDesc{},
+	Metadata: "gorpc.proto",
+}
+
+const (
+	GoPmpClient_Ping_FullMethodName                       = "/gorpc.GoPmpClient/Ping"
+	GoPmpClient_GlobalParamAdd_FullMethodName             = "/gorpc.GoPmpClient/GlobalParamAdd"
+	GoPmpClient_GlobalParamUpdate_FullMethodName          = "/gorpc.GoPmpClient/GlobalParamUpdate"
+	GoPmpClient_GlobalParamDel_FullMethodName             = "/gorpc.GoPmpClient/GlobalParamDel"
+	GoPmpClient_GlobalParamGet_FullMethodName             = "/gorpc.GoPmpClient/GlobalParamGet"
+	GoPmpClient_GlobalParamGetWithLang_FullMethodName     = "/gorpc.GoPmpClient/GlobalParamGetWithLang"
+	GoPmpClient_GlobalParamList_FullMethodName            = "/gorpc.GoPmpClient/GlobalParamList"
+	GoPmpClient_ProductAdd_FullMethodName                 = "/gorpc.GoPmpClient/ProductAdd"
+	GoPmpClient_ProductUpdate_FullMethodName              = "/gorpc.GoPmpClient/ProductUpdate"
+	GoPmpClient_ProductDel_FullMethodName                 = "/gorpc.GoPmpClient/ProductDel"
+	GoPmpClient_ProductGet_FullMethodName                 = "/gorpc.GoPmpClient/ProductGet"
+	GoPmpClient_ProductList_FullMethodName                = "/gorpc.GoPmpClient/ProductList"
+	GoPmpClient_ProductAll_FullMethodName                 = "/gorpc.GoPmpClient/ProductAll"
+	GoPmpClient_ProductParamAdd_FullMethodName            = "/gorpc.GoPmpClient/ProductParamAdd"
+	GoPmpClient_ProductParamUpdate_FullMethodName         = "/gorpc.GoPmpClient/ProductParamUpdate"
+	GoPmpClient_ProductParamDel_FullMethodName            = "/gorpc.GoPmpClient/ProductParamDel"
+	GoPmpClient_ProductParamGet_FullMethodName            = "/gorpc.GoPmpClient/ProductParamGet"
+	GoPmpClient_ProductParamGetWithLang_FullMethodName    = "/gorpc.GoPmpClient/ProductParamGetWithLang"
+	GoPmpClient_ProductParamList_FullMethodName           = "/gorpc.GoPmpClient/ProductParamList"
+	GoPmpClient_ProductActionAdd_FullMethodName           = "/gorpc.GoPmpClient/ProductActionAdd"
+	GoPmpClient_ProductActionUpdate_FullMethodName        = "/gorpc.GoPmpClient/ProductActionUpdate"
+	GoPmpClient_ProductActionDel_FullMethodName           = "/gorpc.GoPmpClient/ProductActionDel"
+	GoPmpClient_ProductActionGet_FullMethodName           = "/gorpc.GoPmpClient/ProductActionGet"
+	GoPmpClient_ProductActionList_FullMethodName          = "/gorpc.GoPmpClient/ProductActionList"
+	GoPmpClient_AreaParamAdd_FullMethodName               = "/gorpc.GoPmpClient/AreaParamAdd"
+	GoPmpClient_AreaParamUpdate_FullMethodName            = "/gorpc.GoPmpClient/AreaParamUpdate"
+	GoPmpClient_AreaParamDel_FullMethodName               = "/gorpc.GoPmpClient/AreaParamDel"
+	GoPmpClient_AreaParamGet_FullMethodName               = "/gorpc.GoPmpClient/AreaParamGet"
+	GoPmpClient_AreaParamList_FullMethodName              = "/gorpc.GoPmpClient/AreaParamList"
+	GoPmpClient_NationalLanguageAdd_FullMethodName        = "/gorpc.GoPmpClient/NationalLanguageAdd"
+	GoPmpClient_NationalLanguageUpdate_FullMethodName     = "/gorpc.GoPmpClient/NationalLanguageUpdate"
+	GoPmpClient_NationalLanguageDel_FullMethodName        = "/gorpc.GoPmpClient/NationalLanguageDel"
+	GoPmpClient_NationalLanguageGet_FullMethodName        = "/gorpc.GoPmpClient/NationalLanguageGet"
+	GoPmpClient_NationalLanguageList_FullMethodName       = "/gorpc.GoPmpClient/NationalLanguageList"
+	GoPmpClient_TipAdd_FullMethodName                     = "/gorpc.GoPmpClient/TipAdd"
+	GoPmpClient_TipUpdate_FullMethodName                  = "/gorpc.GoPmpClient/TipUpdate"
+	GoPmpClient_TipDel_FullMethodName                     = "/gorpc.GoPmpClient/TipDel"
+	GoPmpClient_TipGet_FullMethodName                     = "/gorpc.GoPmpClient/TipGet"
+	GoPmpClient_TipList_FullMethodName                    = "/gorpc.GoPmpClient/TipList"
+	GoPmpClient_DictAdd_FullMethodName                    = "/gorpc.GoPmpClient/DictAdd"
+	GoPmpClient_DictUpdate_FullMethodName                 = "/gorpc.GoPmpClient/DictUpdate"
+	GoPmpClient_DictDel_FullMethodName                    = "/gorpc.GoPmpClient/DictDel"
+	GoPmpClient_DictGet_FullMethodName                    = "/gorpc.GoPmpClient/DictGet"
+	GoPmpClient_DictList_FullMethodName                   = "/gorpc.GoPmpClient/DictList"
+	GoPmpClient_UpgradePkgPlanAdd_FullMethodName          = "/gorpc.GoPmpClient/UpgradePkgPlanAdd"
+	GoPmpClient_UpgradePkgPlanUpdate_FullMethodName       = "/gorpc.GoPmpClient/UpgradePkgPlanUpdate"
+	GoPmpClient_UpgradePkgPlanDel_FullMethodName          = "/gorpc.GoPmpClient/UpgradePkgPlanDel"
+	GoPmpClient_UpgradePkgPlanGet_FullMethodName          = "/gorpc.GoPmpClient/UpgradePkgPlanGet"
+	GoPmpClient_UpgradePkgPlanList_FullMethodName         = "/gorpc.GoPmpClient/UpgradePkgPlanList"
+	GoPmpClient_UpgradePkgPlanDetailAdd_FullMethodName    = "/gorpc.GoPmpClient/UpgradePkgPlanDetailAdd"
+	GoPmpClient_UpgradePkgPlanDetailUpdate_FullMethodName = "/gorpc.GoPmpClient/UpgradePkgPlanDetailUpdate"
+	GoPmpClient_UpgradePkgPlanDetailDel_FullMethodName    = "/gorpc.GoPmpClient/UpgradePkgPlanDetailDel"
+	GoPmpClient_UpgradePkgPlanDetailGet_FullMethodName    = "/gorpc.GoPmpClient/UpgradePkgPlanDetailGet"
+	GoPmpClient_UpgradePkgPlanDetailList_FullMethodName   = "/gorpc.GoPmpClient/UpgradePkgPlanDetailList"
+	GoPmpClient_UpgradeResPlanAdd_FullMethodName          = "/gorpc.GoPmpClient/UpgradeResPlanAdd"
+	GoPmpClient_UpgradeResPlanUpdate_FullMethodName       = "/gorpc.GoPmpClient/UpgradeResPlanUpdate"
+	GoPmpClient_UpgradeResPlanDel_FullMethodName          = "/gorpc.GoPmpClient/UpgradeResPlanDel"
+	GoPmpClient_UpgradeResPlanGet_FullMethodName          = "/gorpc.GoPmpClient/UpgradeResPlanGet"
+	GoPmpClient_UpgradeResPlanList_FullMethodName         = "/gorpc.GoPmpClient/UpgradeResPlanList"
+	GoPmpClient_UpgradeResPlanDetailAdd_FullMethodName    = "/gorpc.GoPmpClient/UpgradeResPlanDetailAdd"
+	GoPmpClient_UpgradeResPlanDetailUpdate_FullMethodName = "/gorpc.GoPmpClient/UpgradeResPlanDetailUpdate"
+	GoPmpClient_UpgradeResPlanDetailDel_FullMethodName    = "/gorpc.GoPmpClient/UpgradeResPlanDetailDel"
+	GoPmpClient_UpgradeResPlanDetailGet_FullMethodName    = "/gorpc.GoPmpClient/UpgradeResPlanDetailGet"
+	GoPmpClient_UpgradeResPlanDetailList_FullMethodName   = "/gorpc.GoPmpClient/UpgradeResPlanDetailList"
+	GoPmpClient_AdPlanAdd_FullMethodName                  = "/gorpc.GoPmpClient/AdPlanAdd"
+	GoPmpClient_AdPlanUpdate_FullMethodName               = "/gorpc.GoPmpClient/AdPlanUpdate"
+	GoPmpClient_AdPlanDel_FullMethodName                  = "/gorpc.GoPmpClient/AdPlanDel"
+	GoPmpClient_AdPlanGet_FullMethodName                  = "/gorpc.GoPmpClient/AdPlanGet"
+	GoPmpClient_AdPlanList_FullMethodName                 = "/gorpc.GoPmpClient/AdPlanList"
+	GoPmpClient_AdPlanDetailAdd_FullMethodName            = "/gorpc.GoPmpClient/AdPlanDetailAdd"
+	GoPmpClient_AdPlanDetailUpdate_FullMethodName         = "/gorpc.GoPmpClient/AdPlanDetailUpdate"
+	GoPmpClient_AdPlanDetailDel_FullMethodName            = "/gorpc.GoPmpClient/AdPlanDetailDel"
+	GoPmpClient_AdPlanDetailGet_FullMethodName            = "/gorpc.GoPmpClient/AdPlanDetailGet"
+	GoPmpClient_AdPlanDetailList_FullMethodName           = "/gorpc.GoPmpClient/AdPlanDetailList"
+	GoPmpClient_AdGlobalConfigGet_FullMethodName          = "/gorpc.GoPmpClient/AdGlobalConfigGet"
+	GoPmpClient_AdGlobalConfigUpdate_FullMethodName       = "/gorpc.GoPmpClient/AdGlobalConfigUpdate"
+	GoPmpClient_JobBatchAdd_FullMethodName                = "/gorpc.GoPmpClient/JobBatchAdd"
+	GoPmpClient_JobBatchAddWithTasks_FullMethodName       = "/gorpc.GoPmpClient/JobBatchAddWithTasks"
+	GoPmpClient_JobBatchUpdate_FullMethodName             = "/gorpc.GoPmpClient/JobBatchUpdate"
+	GoPmpClient_JobBatchDel_FullMethodName                = "/gorpc.GoPmpClient/JobBatchDel"
+	GoPmpClient_JobBatchGet_FullMethodName                = "/gorpc.GoPmpClient/JobBatchGet"
+	GoPmpClient_JobBatchGetWithTasks_FullMethodName       = "/gorpc.GoPmpClient/JobBatchGetWithTasks"
+	GoPmpClient_JobBatchList_FullMethodName               = "/gorpc.GoPmpClient/JobBatchList"
+	GoPmpClient_JobBatchListWithTasks_FullMethodName      = "/gorpc.GoPmpClient/JobBatchListWithTasks"
+	GoPmpClient_JobTasksAdd_FullMethodName                = "/gorpc.GoPmpClient/JobTasksAdd"
+	GoPmpClient_JobTasksUpdate_FullMethodName             = "/gorpc.GoPmpClient/JobTasksUpdate"
+	GoPmpClient_JobTasksDel_FullMethodName                = "/gorpc.GoPmpClient/JobTasksDel"
+	GoPmpClient_JobTasksGet_FullMethodName                = "/gorpc.GoPmpClient/JobTasksGet"
+	GoPmpClient_JobTasksList_FullMethodName               = "/gorpc.GoPmpClient/JobTasksList"
+	GoPmpClient_DeployConfigAdd_FullMethodName            = "/gorpc.GoPmpClient/DeployConfigAdd"
+	GoPmpClient_DeployConfigUpdate_FullMethodName         = "/gorpc.GoPmpClient/DeployConfigUpdate"
+	GoPmpClient_DeployConfigDel_FullMethodName            = "/gorpc.GoPmpClient/DeployConfigDel"
+	GoPmpClient_DeployConfigGet_FullMethodName            = "/gorpc.GoPmpClient/DeployConfigGet"
+	GoPmpClient_DeployConfigList_FullMethodName           = "/gorpc.GoPmpClient/DeployConfigList"
+	GoPmpClient_OperationLogAdd_FullMethodName            = "/gorpc.GoPmpClient/OperationLogAdd"
+	GoPmpClient_OperationLogUpdate_FullMethodName         = "/gorpc.GoPmpClient/OperationLogUpdate"
+	GoPmpClient_OperationLogGet_FullMethodName            = "/gorpc.GoPmpClient/OperationLogGet"
+	GoPmpClient_OperationLogList_FullMethodName           = "/gorpc.GoPmpClient/OperationLogList"
+	GoPmpClient_AnnouncePlanAdd_FullMethodName            = "/gorpc.GoPmpClient/AnnouncePlanAdd"
+	GoPmpClient_AnnouncePlanUpdate_FullMethodName         = "/gorpc.GoPmpClient/AnnouncePlanUpdate"
+	GoPmpClient_AnnouncePlanDel_FullMethodName            = "/gorpc.GoPmpClient/AnnouncePlanDel"
+	GoPmpClient_AnnouncePlanGet_FullMethodName            = "/gorpc.GoPmpClient/AnnouncePlanGet"
+	GoPmpClient_AnnouncePlanList_FullMethodName           = "/gorpc.GoPmpClient/AnnouncePlanList"
+	GoPmpClient_AnnouncePlanDetailAdd_FullMethodName      = "/gorpc.GoPmpClient/AnnouncePlanDetailAdd"
+	GoPmpClient_AnnouncePlanDetailUpdate_FullMethodName   = "/gorpc.GoPmpClient/AnnouncePlanDetailUpdate"
+	GoPmpClient_AnnouncePlanDetailDel_FullMethodName      = "/gorpc.GoPmpClient/AnnouncePlanDetailDel"
+	GoPmpClient_AnnouncePlanDetailGet_FullMethodName      = "/gorpc.GoPmpClient/AnnouncePlanDetailGet"
+	GoPmpClient_AnnouncePlanDetailList_FullMethodName     = "/gorpc.GoPmpClient/AnnouncePlanDetailList"
+	GoPmpClient_ServiceTypesAdd_FullMethodName            = "/gorpc.GoPmpClient/ServiceTypesAdd"
+	GoPmpClient_ServiceTypesUpdate_FullMethodName         = "/gorpc.GoPmpClient/ServiceTypesUpdate"
+	GoPmpClient_ServiceTypesDel_FullMethodName            = "/gorpc.GoPmpClient/ServiceTypesDel"
+	GoPmpClient_ServiceTypesGet_FullMethodName            = "/gorpc.GoPmpClient/ServiceTypesGet"
+	GoPmpClient_ServiceTypesList_FullMethodName           = "/gorpc.GoPmpClient/ServiceTypesList"
+	GoPmpClient_ServiceSetsAdd_FullMethodName             = "/gorpc.GoPmpClient/ServiceSetsAdd"
+	GoPmpClient_ServiceSetsUpdate_FullMethodName          = "/gorpc.GoPmpClient/ServiceSetsUpdate"
+	GoPmpClient_ServiceSetsDel_FullMethodName             = "/gorpc.GoPmpClient/ServiceSetsDel"
+	GoPmpClient_ServiceSetsGet_FullMethodName             = "/gorpc.GoPmpClient/ServiceSetsGet"
+	GoPmpClient_ServiceSetsList_FullMethodName            = "/gorpc.GoPmpClient/ServiceSetsList"
+	GoPmpClient_MessagePushAdd_FullMethodName             = "/gorpc.GoPmpClient/MessagePushAdd"
+	GoPmpClient_MessagePushUpdate_FullMethodName          = "/gorpc.GoPmpClient/MessagePushUpdate"
+	GoPmpClient_MessagePushList_FullMethodName            = "/gorpc.GoPmpClient/MessagePushList"
+)
+
+// GoPmpClientClient is the client API for GoPmpClient service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+//
+// 基础服务: 产品管理,产品配置,升级配置、更新资源管理,资源版本管理,全局配置
+type GoPmpClientClient interface {
+	Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
+	// GlobalParamVo
+	GlobalParamAdd(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error)
+	GlobalParamUpdate(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error)
+	GlobalParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	GlobalParamGet(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error)
+	GlobalParamGetWithLang(ctx context.Context, in *GlobalParamGetReq, opts ...grpc.CallOption) (*GlobalParamVo, error)
+	GlobalParamList(ctx context.Context, in *GlobalParamListReq, opts ...grpc.CallOption) (*GlobalParamListResp, error)
+	// ProductVo
+	ProductAdd(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error)
+	ProductUpdate(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error)
+	ProductDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	ProductGet(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error)
+	ProductList(ctx context.Context, in *ProductListReq, opts ...grpc.CallOption) (*ProductListResp, error)
+	ProductAll(ctx context.Context, in *Request, opts ...grpc.CallOption) (*ProductListResp, error)
+	// ProductParamVo
+	ProductParamAdd(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error)
+	ProductParamUpdate(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error)
+	ProductParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	ProductParamGet(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error)
+	ProductParamGetWithLang(ctx context.Context, in *ProductParamGetReq, opts ...grpc.CallOption) (*ProductParamVo, error)
+	ProductParamList(ctx context.Context, in *ProductParamListReq, opts ...grpc.CallOption) (*ProductParamListResp, error)
+	// ProductAction 产品行为配置
+	ProductActionAdd(ctx context.Context, in *ProductActionVo, opts ...grpc.CallOption) (*ProductActionVo, error)
+	ProductActionUpdate(ctx context.Context, in *ProductActionVo, opts ...grpc.CallOption) (*ProductActionVo, error)
+	ProductActionDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	ProductActionGet(ctx context.Context, in *ProductActionReq, opts ...grpc.CallOption) (*ProductActionVo, error)
+	ProductActionList(ctx context.Context, in *ProductActionListReq, opts ...grpc.CallOption) (*ProductActionListResp, error)
+	// AreaParamVo
+	AreaParamAdd(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error)
+	AreaParamUpdate(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error)
+	AreaParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	AreaParamGet(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error)
+	AreaParamList(ctx context.Context, in *AreaParamListReq, opts ...grpc.CallOption) (*AreaParamListResp, error)
+	// NationalLanguage
+	NationalLanguageAdd(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error)
+	NationalLanguageUpdate(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error)
+	NationalLanguageDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	NationalLanguageGet(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error)
+	NationalLanguageList(ctx context.Context, in *NationalLanguageListReq, opts ...grpc.CallOption) (*NationalLanguageListResp, error)
+	// Tip
+	TipAdd(ctx context.Context, in *TipVo, opts ...grpc.CallOption) (*TipVo, error)
+	TipUpdate(ctx context.Context, in *TipVo, opts ...grpc.CallOption) (*TipVo, error)
+	TipDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	TipGet(ctx context.Context, in *TipGetReq, opts ...grpc.CallOption) (*TipVo, error)
+	TipList(ctx context.Context, in *TipListReq, opts ...grpc.CallOption) (*TipListResp, error)
+	// Dict
+	DictAdd(ctx context.Context, in *DictVo, opts ...grpc.CallOption) (*DictVo, error)
+	DictUpdate(ctx context.Context, in *DictVo, opts ...grpc.CallOption) (*DictVo, error)
+	DictDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	DictGet(ctx context.Context, in *DictGetReq, opts ...grpc.CallOption) (*DictVo, error)
+	DictList(ctx context.Context, in *DictListReq, opts ...grpc.CallOption) (*DictListResp, error)
+	// UpgradePkgPlan
+	UpgradePkgPlanAdd(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error)
+	UpgradePkgPlanUpdate(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error)
+	UpgradePkgPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	UpgradePkgPlanGet(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error)
+	UpgradePkgPlanList(ctx context.Context, in *UpgradePkgPlanListReq, opts ...grpc.CallOption) (*UpgradePkgPlanListResp, error)
+	// UpgradePkgPlanDetail
+	UpgradePkgPlanDetailAdd(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error)
+	UpgradePkgPlanDetailUpdate(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error)
+	UpgradePkgPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	UpgradePkgPlanDetailGet(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error)
+	UpgradePkgPlanDetailList(ctx context.Context, in *UpgradePkgPlanDetailListReq, opts ...grpc.CallOption) (*UpgradePkgPlanDetailListResp, error)
+	// UpgradeResPlan
+	UpgradeResPlanAdd(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error)
+	UpgradeResPlanUpdate(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error)
+	UpgradeResPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	UpgradeResPlanGet(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error)
+	UpgradeResPlanList(ctx context.Context, in *UpgradeResPlanListReq, opts ...grpc.CallOption) (*UpgradeResPlanListResp, error)
+	// UpgradeResPlanDetail
+	UpgradeResPlanDetailAdd(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error)
+	UpgradeResPlanDetailUpdate(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error)
+	UpgradeResPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	UpgradeResPlanDetailGet(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error)
+	UpgradeResPlanDetailList(ctx context.Context, in *UpgradeResPlanDetailListReq, opts ...grpc.CallOption) (*UpgradeResPlanDetailListResp, error)
+	// AdPlan
+	AdPlanAdd(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error)
+	AdPlanUpdate(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error)
+	AdPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	AdPlanGet(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error)
+	AdPlanList(ctx context.Context, in *AdPlanListReq, opts ...grpc.CallOption) (*AdPlanListResp, error)
+	// AdPlanDetail
+	AdPlanDetailAdd(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error)
+	AdPlanDetailUpdate(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error)
+	AdPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	AdPlanDetailGet(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error)
+	AdPlanDetailList(ctx context.Context, in *AdPlanDetailListReq, opts ...grpc.CallOption) (*AdPlanDetailListResp, error)
+	// AdGlobalConfig
+	AdGlobalConfigGet(ctx context.Context, in *AdGlobalConfigGetReq, opts ...grpc.CallOption) (*AdGlobalConfigVo, error)
+	AdGlobalConfigUpdate(ctx context.Context, in *AdGlobalConfigVo, opts ...grpc.CallOption) (*AdGlobalConfigVo, error)
+	// JobBatch
+	JobBatchAdd(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error)
+	JobBatchAddWithTasks(ctx context.Context, in *JobBatchWithTasksVo, opts ...grpc.CallOption) (*JobBatchWithTasksVo, error)
+	JobBatchUpdate(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error)
+	JobBatchDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	JobBatchGet(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error)
+	JobBatchGetWithTasks(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchWithTasksVo, error)
+	JobBatchList(ctx context.Context, in *JobBatchListReq, opts ...grpc.CallOption) (*JobBatchListResp, error)
+	JobBatchListWithTasks(ctx context.Context, in *JobBatchListReq, opts ...grpc.CallOption) (*JobBatchListWithTasksResp, error)
+	// JobTasks
+	JobTasksAdd(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error)
+	JobTasksUpdate(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error)
+	JobTasksDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	JobTasksGet(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error)
+	JobTasksList(ctx context.Context, in *JobTasksListReq, opts ...grpc.CallOption) (*JobTasksListResp, error)
+	// DeployConfig
+	DeployConfigAdd(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error)
+	DeployConfigUpdate(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error)
+	DeployConfigDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	DeployConfigGet(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error)
+	DeployConfigList(ctx context.Context, in *DeployConfigListReq, opts ...grpc.CallOption) (*DeployConfigListResp, error)
+	// OperationLog
+	OperationLogAdd(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error)
+	OperationLogUpdate(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error)
+	OperationLogGet(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error)
+	OperationLogList(ctx context.Context, in *OperationLogListReq, opts ...grpc.CallOption) (*OperationLogListResp, error)
+	// AnnouncePlan
+	AnnouncePlanAdd(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error)
+	AnnouncePlanUpdate(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error)
+	AnnouncePlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	AnnouncePlanGet(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error)
+	AnnouncePlanList(ctx context.Context, in *AnnouncePlanListReq, opts ...grpc.CallOption) (*AnnouncePlanListResp, error)
+	// AnnouncePlanDetail
+	AnnouncePlanDetailAdd(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error)
+	AnnouncePlanDetailUpdate(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error)
+	AnnouncePlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	AnnouncePlanDetailGet(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error)
+	AnnouncePlanDetailList(ctx context.Context, in *AnnouncePlanDetailListReq, opts ...grpc.CallOption) (*AnnouncePlanDetailListResp, error)
+	// ServiceTypes
+	ServiceTypesAdd(ctx context.Context, in *ServiceTypesAddReq, opts ...grpc.CallOption) (*ServiceTypesVo, error)
+	ServiceTypesUpdate(ctx context.Context, in *ServiceTypesUpdateReq, opts ...grpc.CallOption) (*ServiceTypesVo, error)
+	ServiceTypesDel(ctx context.Context, in *ServiceTypesDelReq, opts ...grpc.CallOption) (*Empty, error)
+	ServiceTypesGet(ctx context.Context, in *ServiceTypesGetReq, opts ...grpc.CallOption) (*ServiceTypesVo, error)
+	ServiceTypesList(ctx context.Context, in *ServiceTypesListReq, opts ...grpc.CallOption) (*ServiceTypesListResp, error)
+	// ServiceSets
+	ServiceSetsAdd(ctx context.Context, in *ServiceSetsAddReq, opts ...grpc.CallOption) (*ServiceSetsVo, error)
+	ServiceSetsUpdate(ctx context.Context, in *ServiceSetsUpdateReq, opts ...grpc.CallOption) (*ServiceSetsVo, error)
+	ServiceSetsDel(ctx context.Context, in *ServiceSetsDelReq, opts ...grpc.CallOption) (*Empty, error)
+	ServiceSetsGet(ctx context.Context, in *ServiceSetsGetReq, opts ...grpc.CallOption) (*ServiceSetsVo, error)
+	ServiceSetsList(ctx context.Context, in *ServiceSetsListReq, opts ...grpc.CallOption) (*ServiceSetsListResp, error)
+	// MessagePush
+	MessagePushAdd(ctx context.Context, in *MessagePushVo, opts ...grpc.CallOption) (*MessagePushVo, error)
+	MessagePushUpdate(ctx context.Context, in *MessagePushVo, opts ...grpc.CallOption) (*MessagePushVo, error)
+	MessagePushList(ctx context.Context, in *MessagePushListReq, opts ...grpc.CallOption) (*MessagePushListResp, error)
+}
+
+type goPmpClientClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewGoPmpClientClient(cc grpc.ClientConnInterface) GoPmpClientClient {
+	return &goPmpClientClient{cc}
+}
+
+func (c *goPmpClientClient) Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Response)
+	err := c.cc.Invoke(ctx, GoPmpClient_Ping_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) GlobalParamAdd(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GlobalParamVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_GlobalParamAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) GlobalParamUpdate(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GlobalParamVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_GlobalParamUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) GlobalParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_GlobalParamDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) GlobalParamGet(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GlobalParamVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_GlobalParamGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) GlobalParamGetWithLang(ctx context.Context, in *GlobalParamGetReq, opts ...grpc.CallOption) (*GlobalParamVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GlobalParamVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_GlobalParamGetWithLang_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) GlobalParamList(ctx context.Context, in *GlobalParamListReq, opts ...grpc.CallOption) (*GlobalParamListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GlobalParamListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_GlobalParamList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductAdd(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ProductVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductUpdate(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ProductVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductGet(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ProductVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductList(ctx context.Context, in *ProductListReq, opts ...grpc.CallOption) (*ProductListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ProductListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductAll(ctx context.Context, in *Request, opts ...grpc.CallOption) (*ProductListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ProductListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductAll_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductParamAdd(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ProductParamVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductParamAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductParamUpdate(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ProductParamVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductParamUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductParamDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductParamGet(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ProductParamVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductParamGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductParamGetWithLang(ctx context.Context, in *ProductParamGetReq, opts ...grpc.CallOption) (*ProductParamVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ProductParamVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductParamGetWithLang_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductParamList(ctx context.Context, in *ProductParamListReq, opts ...grpc.CallOption) (*ProductParamListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ProductParamListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductParamList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductActionAdd(ctx context.Context, in *ProductActionVo, opts ...grpc.CallOption) (*ProductActionVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ProductActionVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductActionAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductActionUpdate(ctx context.Context, in *ProductActionVo, opts ...grpc.CallOption) (*ProductActionVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ProductActionVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductActionUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductActionDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductActionDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductActionGet(ctx context.Context, in *ProductActionReq, opts ...grpc.CallOption) (*ProductActionVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ProductActionVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductActionGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ProductActionList(ctx context.Context, in *ProductActionListReq, opts ...grpc.CallOption) (*ProductActionListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ProductActionListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_ProductActionList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AreaParamAdd(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AreaParamVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AreaParamAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AreaParamUpdate(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AreaParamVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AreaParamUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AreaParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_AreaParamDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AreaParamGet(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AreaParamVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AreaParamGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AreaParamList(ctx context.Context, in *AreaParamListReq, opts ...grpc.CallOption) (*AreaParamListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AreaParamListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_AreaParamList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) NationalLanguageAdd(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(NationalLanguageVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_NationalLanguageAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) NationalLanguageUpdate(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(NationalLanguageVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_NationalLanguageUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) NationalLanguageDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_NationalLanguageDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) NationalLanguageGet(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(NationalLanguageVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_NationalLanguageGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) NationalLanguageList(ctx context.Context, in *NationalLanguageListReq, opts ...grpc.CallOption) (*NationalLanguageListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(NationalLanguageListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_NationalLanguageList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) TipAdd(ctx context.Context, in *TipVo, opts ...grpc.CallOption) (*TipVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(TipVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_TipAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) TipUpdate(ctx context.Context, in *TipVo, opts ...grpc.CallOption) (*TipVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(TipVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_TipUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) TipDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_TipDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) TipGet(ctx context.Context, in *TipGetReq, opts ...grpc.CallOption) (*TipVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(TipVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_TipGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) TipList(ctx context.Context, in *TipListReq, opts ...grpc.CallOption) (*TipListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(TipListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_TipList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) DictAdd(ctx context.Context, in *DictVo, opts ...grpc.CallOption) (*DictVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DictVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_DictAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) DictUpdate(ctx context.Context, in *DictVo, opts ...grpc.CallOption) (*DictVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DictVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_DictUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) DictDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_DictDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) DictGet(ctx context.Context, in *DictGetReq, opts ...grpc.CallOption) (*DictVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DictVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_DictGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) DictList(ctx context.Context, in *DictListReq, opts ...grpc.CallOption) (*DictListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DictListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_DictList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradePkgPlanAdd(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradePkgPlanVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradePkgPlanAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradePkgPlanUpdate(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradePkgPlanVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradePkgPlanUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradePkgPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradePkgPlanDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradePkgPlanGet(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradePkgPlanVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradePkgPlanGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradePkgPlanList(ctx context.Context, in *UpgradePkgPlanListReq, opts ...grpc.CallOption) (*UpgradePkgPlanListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradePkgPlanListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradePkgPlanList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradePkgPlanDetailAdd(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradePkgPlanDetailVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradePkgPlanDetailAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradePkgPlanDetailUpdate(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradePkgPlanDetailVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradePkgPlanDetailUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradePkgPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradePkgPlanDetailDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradePkgPlanDetailGet(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradePkgPlanDetailVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradePkgPlanDetailGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradePkgPlanDetailList(ctx context.Context, in *UpgradePkgPlanDetailListReq, opts ...grpc.CallOption) (*UpgradePkgPlanDetailListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradePkgPlanDetailListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradePkgPlanDetailList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradeResPlanAdd(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradeResPlanVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradeResPlanAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradeResPlanUpdate(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradeResPlanVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradeResPlanUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradeResPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradeResPlanDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradeResPlanGet(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradeResPlanVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradeResPlanGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradeResPlanList(ctx context.Context, in *UpgradeResPlanListReq, opts ...grpc.CallOption) (*UpgradeResPlanListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradeResPlanListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradeResPlanList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradeResPlanDetailAdd(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradeResPlanDetailVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradeResPlanDetailAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradeResPlanDetailUpdate(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradeResPlanDetailVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradeResPlanDetailUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradeResPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradeResPlanDetailDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradeResPlanDetailGet(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradeResPlanDetailVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradeResPlanDetailGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) UpgradeResPlanDetailList(ctx context.Context, in *UpgradeResPlanDetailListReq, opts ...grpc.CallOption) (*UpgradeResPlanDetailListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UpgradeResPlanDetailListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_UpgradeResPlanDetailList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AdPlanAdd(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AdPlanVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AdPlanAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AdPlanUpdate(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AdPlanVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AdPlanUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AdPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_AdPlanDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AdPlanGet(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AdPlanVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AdPlanGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AdPlanList(ctx context.Context, in *AdPlanListReq, opts ...grpc.CallOption) (*AdPlanListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AdPlanListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_AdPlanList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AdPlanDetailAdd(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AdPlanDetailVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AdPlanDetailAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AdPlanDetailUpdate(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AdPlanDetailVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AdPlanDetailUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AdPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_AdPlanDetailDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AdPlanDetailGet(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AdPlanDetailVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AdPlanDetailGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AdPlanDetailList(ctx context.Context, in *AdPlanDetailListReq, opts ...grpc.CallOption) (*AdPlanDetailListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AdPlanDetailListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_AdPlanDetailList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AdGlobalConfigGet(ctx context.Context, in *AdGlobalConfigGetReq, opts ...grpc.CallOption) (*AdGlobalConfigVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AdGlobalConfigVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AdGlobalConfigGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AdGlobalConfigUpdate(ctx context.Context, in *AdGlobalConfigVo, opts ...grpc.CallOption) (*AdGlobalConfigVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AdGlobalConfigVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AdGlobalConfigUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) JobBatchAdd(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(JobBatchVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_JobBatchAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) JobBatchAddWithTasks(ctx context.Context, in *JobBatchWithTasksVo, opts ...grpc.CallOption) (*JobBatchWithTasksVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(JobBatchWithTasksVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_JobBatchAddWithTasks_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) JobBatchUpdate(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(JobBatchVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_JobBatchUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) JobBatchDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_JobBatchDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) JobBatchGet(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(JobBatchVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_JobBatchGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) JobBatchGetWithTasks(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchWithTasksVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(JobBatchWithTasksVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_JobBatchGetWithTasks_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) JobBatchList(ctx context.Context, in *JobBatchListReq, opts ...grpc.CallOption) (*JobBatchListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(JobBatchListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_JobBatchList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) JobBatchListWithTasks(ctx context.Context, in *JobBatchListReq, opts ...grpc.CallOption) (*JobBatchListWithTasksResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(JobBatchListWithTasksResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_JobBatchListWithTasks_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) JobTasksAdd(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(JobTasksVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_JobTasksAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) JobTasksUpdate(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(JobTasksVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_JobTasksUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) JobTasksDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_JobTasksDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) JobTasksGet(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(JobTasksVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_JobTasksGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) JobTasksList(ctx context.Context, in *JobTasksListReq, opts ...grpc.CallOption) (*JobTasksListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(JobTasksListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_JobTasksList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) DeployConfigAdd(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeployConfigVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_DeployConfigAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) DeployConfigUpdate(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeployConfigVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_DeployConfigUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) DeployConfigDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_DeployConfigDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) DeployConfigGet(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeployConfigVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_DeployConfigGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) DeployConfigList(ctx context.Context, in *DeployConfigListReq, opts ...grpc.CallOption) (*DeployConfigListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeployConfigListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_DeployConfigList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) OperationLogAdd(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(OperationLogVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_OperationLogAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) OperationLogUpdate(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(OperationLogVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_OperationLogUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) OperationLogGet(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(OperationLogVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_OperationLogGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) OperationLogList(ctx context.Context, in *OperationLogListReq, opts ...grpc.CallOption) (*OperationLogListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(OperationLogListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_OperationLogList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AnnouncePlanAdd(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AnnouncePlanVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AnnouncePlanAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AnnouncePlanUpdate(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AnnouncePlanVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AnnouncePlanUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AnnouncePlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_AnnouncePlanDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AnnouncePlanGet(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AnnouncePlanVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AnnouncePlanGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AnnouncePlanList(ctx context.Context, in *AnnouncePlanListReq, opts ...grpc.CallOption) (*AnnouncePlanListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AnnouncePlanListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_AnnouncePlanList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AnnouncePlanDetailAdd(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AnnouncePlanDetailVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AnnouncePlanDetailAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AnnouncePlanDetailUpdate(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AnnouncePlanDetailVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AnnouncePlanDetailUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AnnouncePlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_AnnouncePlanDetailDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AnnouncePlanDetailGet(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AnnouncePlanDetailVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_AnnouncePlanDetailGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) AnnouncePlanDetailList(ctx context.Context, in *AnnouncePlanDetailListReq, opts ...grpc.CallOption) (*AnnouncePlanDetailListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AnnouncePlanDetailListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_AnnouncePlanDetailList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ServiceTypesAdd(ctx context.Context, in *ServiceTypesAddReq, opts ...grpc.CallOption) (*ServiceTypesVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ServiceTypesVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ServiceTypesAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ServiceTypesUpdate(ctx context.Context, in *ServiceTypesUpdateReq, opts ...grpc.CallOption) (*ServiceTypesVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ServiceTypesVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ServiceTypesUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ServiceTypesDel(ctx context.Context, in *ServiceTypesDelReq, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_ServiceTypesDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ServiceTypesGet(ctx context.Context, in *ServiceTypesGetReq, opts ...grpc.CallOption) (*ServiceTypesVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ServiceTypesVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ServiceTypesGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ServiceTypesList(ctx context.Context, in *ServiceTypesListReq, opts ...grpc.CallOption) (*ServiceTypesListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ServiceTypesListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_ServiceTypesList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ServiceSetsAdd(ctx context.Context, in *ServiceSetsAddReq, opts ...grpc.CallOption) (*ServiceSetsVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ServiceSetsVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ServiceSetsAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ServiceSetsUpdate(ctx context.Context, in *ServiceSetsUpdateReq, opts ...grpc.CallOption) (*ServiceSetsVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ServiceSetsVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ServiceSetsUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ServiceSetsDel(ctx context.Context, in *ServiceSetsDelReq, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoPmpClient_ServiceSetsDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ServiceSetsGet(ctx context.Context, in *ServiceSetsGetReq, opts ...grpc.CallOption) (*ServiceSetsVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ServiceSetsVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_ServiceSetsGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) ServiceSetsList(ctx context.Context, in *ServiceSetsListReq, opts ...grpc.CallOption) (*ServiceSetsListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ServiceSetsListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_ServiceSetsList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) MessagePushAdd(ctx context.Context, in *MessagePushVo, opts ...grpc.CallOption) (*MessagePushVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(MessagePushVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_MessagePushAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) MessagePushUpdate(ctx context.Context, in *MessagePushVo, opts ...grpc.CallOption) (*MessagePushVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(MessagePushVo)
+	err := c.cc.Invoke(ctx, GoPmpClient_MessagePushUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goPmpClientClient) MessagePushList(ctx context.Context, in *MessagePushListReq, opts ...grpc.CallOption) (*MessagePushListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(MessagePushListResp)
+	err := c.cc.Invoke(ctx, GoPmpClient_MessagePushList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// GoPmpClientServer is the server API for GoPmpClient service.
+// All implementations must embed UnimplementedGoPmpClientServer
+// for forward compatibility.
+//
+// 基础服务: 产品管理,产品配置,升级配置、更新资源管理,资源版本管理,全局配置
+type GoPmpClientServer interface {
+	Ping(context.Context, *Request) (*Response, error)
+	// GlobalParamVo
+	GlobalParamAdd(context.Context, *GlobalParamVo) (*GlobalParamVo, error)
+	GlobalParamUpdate(context.Context, *GlobalParamVo) (*GlobalParamVo, error)
+	GlobalParamDel(context.Context, *Ids) (*Empty, error)
+	GlobalParamGet(context.Context, *GlobalParamVo) (*GlobalParamVo, error)
+	GlobalParamGetWithLang(context.Context, *GlobalParamGetReq) (*GlobalParamVo, error)
+	GlobalParamList(context.Context, *GlobalParamListReq) (*GlobalParamListResp, error)
+	// ProductVo
+	ProductAdd(context.Context, *ProductVo) (*ProductVo, error)
+	ProductUpdate(context.Context, *ProductVo) (*ProductVo, error)
+	ProductDel(context.Context, *Ids) (*Empty, error)
+	ProductGet(context.Context, *ProductVo) (*ProductVo, error)
+	ProductList(context.Context, *ProductListReq) (*ProductListResp, error)
+	ProductAll(context.Context, *Request) (*ProductListResp, error)
+	// ProductParamVo
+	ProductParamAdd(context.Context, *ProductParamVo) (*ProductParamVo, error)
+	ProductParamUpdate(context.Context, *ProductParamVo) (*ProductParamVo, error)
+	ProductParamDel(context.Context, *Ids) (*Empty, error)
+	ProductParamGet(context.Context, *ProductParamVo) (*ProductParamVo, error)
+	ProductParamGetWithLang(context.Context, *ProductParamGetReq) (*ProductParamVo, error)
+	ProductParamList(context.Context, *ProductParamListReq) (*ProductParamListResp, error)
+	// ProductAction 产品行为配置
+	ProductActionAdd(context.Context, *ProductActionVo) (*ProductActionVo, error)
+	ProductActionUpdate(context.Context, *ProductActionVo) (*ProductActionVo, error)
+	ProductActionDel(context.Context, *Ids) (*Empty, error)
+	ProductActionGet(context.Context, *ProductActionReq) (*ProductActionVo, error)
+	ProductActionList(context.Context, *ProductActionListReq) (*ProductActionListResp, error)
+	// AreaParamVo
+	AreaParamAdd(context.Context, *AreaParamVo) (*AreaParamVo, error)
+	AreaParamUpdate(context.Context, *AreaParamVo) (*AreaParamVo, error)
+	AreaParamDel(context.Context, *Ids) (*Empty, error)
+	AreaParamGet(context.Context, *AreaParamVo) (*AreaParamVo, error)
+	AreaParamList(context.Context, *AreaParamListReq) (*AreaParamListResp, error)
+	// NationalLanguage
+	NationalLanguageAdd(context.Context, *NationalLanguageVo) (*NationalLanguageVo, error)
+	NationalLanguageUpdate(context.Context, *NationalLanguageVo) (*NationalLanguageVo, error)
+	NationalLanguageDel(context.Context, *Ids) (*Empty, error)
+	NationalLanguageGet(context.Context, *NationalLanguageVo) (*NationalLanguageVo, error)
+	NationalLanguageList(context.Context, *NationalLanguageListReq) (*NationalLanguageListResp, error)
+	// Tip
+	TipAdd(context.Context, *TipVo) (*TipVo, error)
+	TipUpdate(context.Context, *TipVo) (*TipVo, error)
+	TipDel(context.Context, *Ids) (*Empty, error)
+	TipGet(context.Context, *TipGetReq) (*TipVo, error)
+	TipList(context.Context, *TipListReq) (*TipListResp, error)
+	// Dict
+	DictAdd(context.Context, *DictVo) (*DictVo, error)
+	DictUpdate(context.Context, *DictVo) (*DictVo, error)
+	DictDel(context.Context, *Ids) (*Empty, error)
+	DictGet(context.Context, *DictGetReq) (*DictVo, error)
+	DictList(context.Context, *DictListReq) (*DictListResp, error)
+	// UpgradePkgPlan
+	UpgradePkgPlanAdd(context.Context, *UpgradePkgPlanVo) (*UpgradePkgPlanVo, error)
+	UpgradePkgPlanUpdate(context.Context, *UpgradePkgPlanVo) (*UpgradePkgPlanVo, error)
+	UpgradePkgPlanDel(context.Context, *Ids) (*Empty, error)
+	UpgradePkgPlanGet(context.Context, *UpgradePkgPlanVo) (*UpgradePkgPlanVo, error)
+	UpgradePkgPlanList(context.Context, *UpgradePkgPlanListReq) (*UpgradePkgPlanListResp, error)
+	// UpgradePkgPlanDetail
+	UpgradePkgPlanDetailAdd(context.Context, *UpgradePkgPlanDetailVo) (*UpgradePkgPlanDetailVo, error)
+	UpgradePkgPlanDetailUpdate(context.Context, *UpgradePkgPlanDetailVo) (*UpgradePkgPlanDetailVo, error)
+	UpgradePkgPlanDetailDel(context.Context, *Ids) (*Empty, error)
+	UpgradePkgPlanDetailGet(context.Context, *UpgradePkgPlanDetailVo) (*UpgradePkgPlanDetailVo, error)
+	UpgradePkgPlanDetailList(context.Context, *UpgradePkgPlanDetailListReq) (*UpgradePkgPlanDetailListResp, error)
+	// UpgradeResPlan
+	UpgradeResPlanAdd(context.Context, *UpgradeResPlanVo) (*UpgradeResPlanVo, error)
+	UpgradeResPlanUpdate(context.Context, *UpgradeResPlanVo) (*UpgradeResPlanVo, error)
+	UpgradeResPlanDel(context.Context, *Ids) (*Empty, error)
+	UpgradeResPlanGet(context.Context, *UpgradeResPlanVo) (*UpgradeResPlanVo, error)
+	UpgradeResPlanList(context.Context, *UpgradeResPlanListReq) (*UpgradeResPlanListResp, error)
+	// UpgradeResPlanDetail
+	UpgradeResPlanDetailAdd(context.Context, *UpgradeResPlanDetailVo) (*UpgradeResPlanDetailVo, error)
+	UpgradeResPlanDetailUpdate(context.Context, *UpgradeResPlanDetailVo) (*UpgradeResPlanDetailVo, error)
+	UpgradeResPlanDetailDel(context.Context, *Ids) (*Empty, error)
+	UpgradeResPlanDetailGet(context.Context, *UpgradeResPlanDetailVo) (*UpgradeResPlanDetailVo, error)
+	UpgradeResPlanDetailList(context.Context, *UpgradeResPlanDetailListReq) (*UpgradeResPlanDetailListResp, error)
+	// AdPlan
+	AdPlanAdd(context.Context, *AdPlanVo) (*AdPlanVo, error)
+	AdPlanUpdate(context.Context, *AdPlanVo) (*AdPlanVo, error)
+	AdPlanDel(context.Context, *Ids) (*Empty, error)
+	AdPlanGet(context.Context, *AdPlanVo) (*AdPlanVo, error)
+	AdPlanList(context.Context, *AdPlanListReq) (*AdPlanListResp, error)
+	// AdPlanDetail
+	AdPlanDetailAdd(context.Context, *AdPlanDetailVo) (*AdPlanDetailVo, error)
+	AdPlanDetailUpdate(context.Context, *AdPlanDetailVo) (*AdPlanDetailVo, error)
+	AdPlanDetailDel(context.Context, *Ids) (*Empty, error)
+	AdPlanDetailGet(context.Context, *AdPlanDetailVo) (*AdPlanDetailVo, error)
+	AdPlanDetailList(context.Context, *AdPlanDetailListReq) (*AdPlanDetailListResp, error)
+	// AdGlobalConfig
+	AdGlobalConfigGet(context.Context, *AdGlobalConfigGetReq) (*AdGlobalConfigVo, error)
+	AdGlobalConfigUpdate(context.Context, *AdGlobalConfigVo) (*AdGlobalConfigVo, error)
+	// JobBatch
+	JobBatchAdd(context.Context, *JobBatchVo) (*JobBatchVo, error)
+	JobBatchAddWithTasks(context.Context, *JobBatchWithTasksVo) (*JobBatchWithTasksVo, error)
+	JobBatchUpdate(context.Context, *JobBatchVo) (*JobBatchVo, error)
+	JobBatchDel(context.Context, *Ids) (*Empty, error)
+	JobBatchGet(context.Context, *JobBatchVo) (*JobBatchVo, error)
+	JobBatchGetWithTasks(context.Context, *JobBatchVo) (*JobBatchWithTasksVo, error)
+	JobBatchList(context.Context, *JobBatchListReq) (*JobBatchListResp, error)
+	JobBatchListWithTasks(context.Context, *JobBatchListReq) (*JobBatchListWithTasksResp, error)
+	// JobTasks
+	JobTasksAdd(context.Context, *JobTasksVo) (*JobTasksVo, error)
+	JobTasksUpdate(context.Context, *JobTasksVo) (*JobTasksVo, error)
+	JobTasksDel(context.Context, *Ids) (*Empty, error)
+	JobTasksGet(context.Context, *JobTasksVo) (*JobTasksVo, error)
+	JobTasksList(context.Context, *JobTasksListReq) (*JobTasksListResp, error)
+	// DeployConfig
+	DeployConfigAdd(context.Context, *DeployConfigVo) (*DeployConfigVo, error)
+	DeployConfigUpdate(context.Context, *DeployConfigVo) (*DeployConfigVo, error)
+	DeployConfigDel(context.Context, *Ids) (*Empty, error)
+	DeployConfigGet(context.Context, *DeployConfigVo) (*DeployConfigVo, error)
+	DeployConfigList(context.Context, *DeployConfigListReq) (*DeployConfigListResp, error)
+	// OperationLog
+	OperationLogAdd(context.Context, *OperationLogVo) (*OperationLogVo, error)
+	OperationLogUpdate(context.Context, *OperationLogVo) (*OperationLogVo, error)
+	OperationLogGet(context.Context, *OperationLogVo) (*OperationLogVo, error)
+	OperationLogList(context.Context, *OperationLogListReq) (*OperationLogListResp, error)
+	// AnnouncePlan
+	AnnouncePlanAdd(context.Context, *AnnouncePlanVo) (*AnnouncePlanVo, error)
+	AnnouncePlanUpdate(context.Context, *AnnouncePlanVo) (*AnnouncePlanVo, error)
+	AnnouncePlanDel(context.Context, *Ids) (*Empty, error)
+	AnnouncePlanGet(context.Context, *AnnouncePlanVo) (*AnnouncePlanVo, error)
+	AnnouncePlanList(context.Context, *AnnouncePlanListReq) (*AnnouncePlanListResp, error)
+	// AnnouncePlanDetail
+	AnnouncePlanDetailAdd(context.Context, *AnnouncePlanDetailVo) (*AnnouncePlanDetailVo, error)
+	AnnouncePlanDetailUpdate(context.Context, *AnnouncePlanDetailVo) (*AnnouncePlanDetailVo, error)
+	AnnouncePlanDetailDel(context.Context, *Ids) (*Empty, error)
+	AnnouncePlanDetailGet(context.Context, *AnnouncePlanDetailVo) (*AnnouncePlanDetailVo, error)
+	AnnouncePlanDetailList(context.Context, *AnnouncePlanDetailListReq) (*AnnouncePlanDetailListResp, error)
+	// ServiceTypes
+	ServiceTypesAdd(context.Context, *ServiceTypesAddReq) (*ServiceTypesVo, error)
+	ServiceTypesUpdate(context.Context, *ServiceTypesUpdateReq) (*ServiceTypesVo, error)
+	ServiceTypesDel(context.Context, *ServiceTypesDelReq) (*Empty, error)
+	ServiceTypesGet(context.Context, *ServiceTypesGetReq) (*ServiceTypesVo, error)
+	ServiceTypesList(context.Context, *ServiceTypesListReq) (*ServiceTypesListResp, error)
+	// ServiceSets
+	ServiceSetsAdd(context.Context, *ServiceSetsAddReq) (*ServiceSetsVo, error)
+	ServiceSetsUpdate(context.Context, *ServiceSetsUpdateReq) (*ServiceSetsVo, error)
+	ServiceSetsDel(context.Context, *ServiceSetsDelReq) (*Empty, error)
+	ServiceSetsGet(context.Context, *ServiceSetsGetReq) (*ServiceSetsVo, error)
+	ServiceSetsList(context.Context, *ServiceSetsListReq) (*ServiceSetsListResp, error)
+	// MessagePush
+	MessagePushAdd(context.Context, *MessagePushVo) (*MessagePushVo, error)
+	MessagePushUpdate(context.Context, *MessagePushVo) (*MessagePushVo, error)
+	MessagePushList(context.Context, *MessagePushListReq) (*MessagePushListResp, error)
+	mustEmbedUnimplementedGoPmpClientServer()
+}
+
+// UnimplementedGoPmpClientServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedGoPmpClientServer struct{}
+
+func (UnimplementedGoPmpClientServer) Ping(context.Context, *Request) (*Response, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented")
+}
+func (UnimplementedGoPmpClientServer) GlobalParamAdd(context.Context, *GlobalParamVo) (*GlobalParamVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GlobalParamAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) GlobalParamUpdate(context.Context, *GlobalParamVo) (*GlobalParamVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GlobalParamUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) GlobalParamDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GlobalParamDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) GlobalParamGet(context.Context, *GlobalParamVo) (*GlobalParamVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GlobalParamGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) GlobalParamGetWithLang(context.Context, *GlobalParamGetReq) (*GlobalParamVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GlobalParamGetWithLang not implemented")
+}
+func (UnimplementedGoPmpClientServer) GlobalParamList(context.Context, *GlobalParamListReq) (*GlobalParamListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GlobalParamList not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductAdd(context.Context, *ProductVo) (*ProductVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductUpdate(context.Context, *ProductVo) (*ProductVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductGet(context.Context, *ProductVo) (*ProductVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductList(context.Context, *ProductListReq) (*ProductListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductList not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductAll(context.Context, *Request) (*ProductListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductAll not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductParamAdd(context.Context, *ProductParamVo) (*ProductParamVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductParamAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductParamUpdate(context.Context, *ProductParamVo) (*ProductParamVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductParamUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductParamDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductParamDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductParamGet(context.Context, *ProductParamVo) (*ProductParamVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductParamGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductParamGetWithLang(context.Context, *ProductParamGetReq) (*ProductParamVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductParamGetWithLang not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductParamList(context.Context, *ProductParamListReq) (*ProductParamListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductParamList not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductActionAdd(context.Context, *ProductActionVo) (*ProductActionVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductActionAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductActionUpdate(context.Context, *ProductActionVo) (*ProductActionVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductActionUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductActionDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductActionDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductActionGet(context.Context, *ProductActionReq) (*ProductActionVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductActionGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) ProductActionList(context.Context, *ProductActionListReq) (*ProductActionListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ProductActionList not implemented")
+}
+func (UnimplementedGoPmpClientServer) AreaParamAdd(context.Context, *AreaParamVo) (*AreaParamVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AreaParamAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) AreaParamUpdate(context.Context, *AreaParamVo) (*AreaParamVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AreaParamUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) AreaParamDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AreaParamDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) AreaParamGet(context.Context, *AreaParamVo) (*AreaParamVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AreaParamGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) AreaParamList(context.Context, *AreaParamListReq) (*AreaParamListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AreaParamList not implemented")
+}
+func (UnimplementedGoPmpClientServer) NationalLanguageAdd(context.Context, *NationalLanguageVo) (*NationalLanguageVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method NationalLanguageAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) NationalLanguageUpdate(context.Context, *NationalLanguageVo) (*NationalLanguageVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method NationalLanguageUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) NationalLanguageDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method NationalLanguageDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) NationalLanguageGet(context.Context, *NationalLanguageVo) (*NationalLanguageVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method NationalLanguageGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) NationalLanguageList(context.Context, *NationalLanguageListReq) (*NationalLanguageListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method NationalLanguageList not implemented")
+}
+func (UnimplementedGoPmpClientServer) TipAdd(context.Context, *TipVo) (*TipVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method TipAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) TipUpdate(context.Context, *TipVo) (*TipVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method TipUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) TipDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method TipDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) TipGet(context.Context, *TipGetReq) (*TipVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method TipGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) TipList(context.Context, *TipListReq) (*TipListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method TipList not implemented")
+}
+func (UnimplementedGoPmpClientServer) DictAdd(context.Context, *DictVo) (*DictVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DictAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) DictUpdate(context.Context, *DictVo) (*DictVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DictUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) DictDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DictDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) DictGet(context.Context, *DictGetReq) (*DictVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DictGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) DictList(context.Context, *DictListReq) (*DictListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DictList not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradePkgPlanAdd(context.Context, *UpgradePkgPlanVo) (*UpgradePkgPlanVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradePkgPlanAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradePkgPlanUpdate(context.Context, *UpgradePkgPlanVo) (*UpgradePkgPlanVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradePkgPlanUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradePkgPlanDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradePkgPlanDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradePkgPlanGet(context.Context, *UpgradePkgPlanVo) (*UpgradePkgPlanVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradePkgPlanGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradePkgPlanList(context.Context, *UpgradePkgPlanListReq) (*UpgradePkgPlanListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradePkgPlanList not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradePkgPlanDetailAdd(context.Context, *UpgradePkgPlanDetailVo) (*UpgradePkgPlanDetailVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradePkgPlanDetailAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradePkgPlanDetailUpdate(context.Context, *UpgradePkgPlanDetailVo) (*UpgradePkgPlanDetailVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradePkgPlanDetailUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradePkgPlanDetailDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradePkgPlanDetailDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradePkgPlanDetailGet(context.Context, *UpgradePkgPlanDetailVo) (*UpgradePkgPlanDetailVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradePkgPlanDetailGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradePkgPlanDetailList(context.Context, *UpgradePkgPlanDetailListReq) (*UpgradePkgPlanDetailListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradePkgPlanDetailList not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradeResPlanAdd(context.Context, *UpgradeResPlanVo) (*UpgradeResPlanVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradeResPlanAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradeResPlanUpdate(context.Context, *UpgradeResPlanVo) (*UpgradeResPlanVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradeResPlanUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradeResPlanDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradeResPlanDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradeResPlanGet(context.Context, *UpgradeResPlanVo) (*UpgradeResPlanVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradeResPlanGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradeResPlanList(context.Context, *UpgradeResPlanListReq) (*UpgradeResPlanListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradeResPlanList not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradeResPlanDetailAdd(context.Context, *UpgradeResPlanDetailVo) (*UpgradeResPlanDetailVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradeResPlanDetailAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradeResPlanDetailUpdate(context.Context, *UpgradeResPlanDetailVo) (*UpgradeResPlanDetailVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradeResPlanDetailUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradeResPlanDetailDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradeResPlanDetailDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradeResPlanDetailGet(context.Context, *UpgradeResPlanDetailVo) (*UpgradeResPlanDetailVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradeResPlanDetailGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) UpgradeResPlanDetailList(context.Context, *UpgradeResPlanDetailListReq) (*UpgradeResPlanDetailListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradeResPlanDetailList not implemented")
+}
+func (UnimplementedGoPmpClientServer) AdPlanAdd(context.Context, *AdPlanVo) (*AdPlanVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AdPlanAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) AdPlanUpdate(context.Context, *AdPlanVo) (*AdPlanVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AdPlanUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) AdPlanDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AdPlanDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) AdPlanGet(context.Context, *AdPlanVo) (*AdPlanVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AdPlanGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) AdPlanList(context.Context, *AdPlanListReq) (*AdPlanListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AdPlanList not implemented")
+}
+func (UnimplementedGoPmpClientServer) AdPlanDetailAdd(context.Context, *AdPlanDetailVo) (*AdPlanDetailVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AdPlanDetailAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) AdPlanDetailUpdate(context.Context, *AdPlanDetailVo) (*AdPlanDetailVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AdPlanDetailUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) AdPlanDetailDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AdPlanDetailDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) AdPlanDetailGet(context.Context, *AdPlanDetailVo) (*AdPlanDetailVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AdPlanDetailGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) AdPlanDetailList(context.Context, *AdPlanDetailListReq) (*AdPlanDetailListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AdPlanDetailList not implemented")
+}
+func (UnimplementedGoPmpClientServer) AdGlobalConfigGet(context.Context, *AdGlobalConfigGetReq) (*AdGlobalConfigVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AdGlobalConfigGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) AdGlobalConfigUpdate(context.Context, *AdGlobalConfigVo) (*AdGlobalConfigVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AdGlobalConfigUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) JobBatchAdd(context.Context, *JobBatchVo) (*JobBatchVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method JobBatchAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) JobBatchAddWithTasks(context.Context, *JobBatchWithTasksVo) (*JobBatchWithTasksVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method JobBatchAddWithTasks not implemented")
+}
+func (UnimplementedGoPmpClientServer) JobBatchUpdate(context.Context, *JobBatchVo) (*JobBatchVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method JobBatchUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) JobBatchDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method JobBatchDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) JobBatchGet(context.Context, *JobBatchVo) (*JobBatchVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method JobBatchGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) JobBatchGetWithTasks(context.Context, *JobBatchVo) (*JobBatchWithTasksVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method JobBatchGetWithTasks not implemented")
+}
+func (UnimplementedGoPmpClientServer) JobBatchList(context.Context, *JobBatchListReq) (*JobBatchListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method JobBatchList not implemented")
+}
+func (UnimplementedGoPmpClientServer) JobBatchListWithTasks(context.Context, *JobBatchListReq) (*JobBatchListWithTasksResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method JobBatchListWithTasks not implemented")
+}
+func (UnimplementedGoPmpClientServer) JobTasksAdd(context.Context, *JobTasksVo) (*JobTasksVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method JobTasksAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) JobTasksUpdate(context.Context, *JobTasksVo) (*JobTasksVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method JobTasksUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) JobTasksDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method JobTasksDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) JobTasksGet(context.Context, *JobTasksVo) (*JobTasksVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method JobTasksGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) JobTasksList(context.Context, *JobTasksListReq) (*JobTasksListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method JobTasksList not implemented")
+}
+func (UnimplementedGoPmpClientServer) DeployConfigAdd(context.Context, *DeployConfigVo) (*DeployConfigVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DeployConfigAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) DeployConfigUpdate(context.Context, *DeployConfigVo) (*DeployConfigVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DeployConfigUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) DeployConfigDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DeployConfigDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) DeployConfigGet(context.Context, *DeployConfigVo) (*DeployConfigVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DeployConfigGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) DeployConfigList(context.Context, *DeployConfigListReq) (*DeployConfigListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DeployConfigList not implemented")
+}
+func (UnimplementedGoPmpClientServer) OperationLogAdd(context.Context, *OperationLogVo) (*OperationLogVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method OperationLogAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) OperationLogUpdate(context.Context, *OperationLogVo) (*OperationLogVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method OperationLogUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) OperationLogGet(context.Context, *OperationLogVo) (*OperationLogVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method OperationLogGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) OperationLogList(context.Context, *OperationLogListReq) (*OperationLogListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method OperationLogList not implemented")
+}
+func (UnimplementedGoPmpClientServer) AnnouncePlanAdd(context.Context, *AnnouncePlanVo) (*AnnouncePlanVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AnnouncePlanAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) AnnouncePlanUpdate(context.Context, *AnnouncePlanVo) (*AnnouncePlanVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AnnouncePlanUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) AnnouncePlanDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AnnouncePlanDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) AnnouncePlanGet(context.Context, *AnnouncePlanVo) (*AnnouncePlanVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AnnouncePlanGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) AnnouncePlanList(context.Context, *AnnouncePlanListReq) (*AnnouncePlanListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AnnouncePlanList not implemented")
+}
+func (UnimplementedGoPmpClientServer) AnnouncePlanDetailAdd(context.Context, *AnnouncePlanDetailVo) (*AnnouncePlanDetailVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AnnouncePlanDetailAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) AnnouncePlanDetailUpdate(context.Context, *AnnouncePlanDetailVo) (*AnnouncePlanDetailVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AnnouncePlanDetailUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) AnnouncePlanDetailDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AnnouncePlanDetailDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) AnnouncePlanDetailGet(context.Context, *AnnouncePlanDetailVo) (*AnnouncePlanDetailVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AnnouncePlanDetailGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) AnnouncePlanDetailList(context.Context, *AnnouncePlanDetailListReq) (*AnnouncePlanDetailListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AnnouncePlanDetailList not implemented")
+}
+func (UnimplementedGoPmpClientServer) ServiceTypesAdd(context.Context, *ServiceTypesAddReq) (*ServiceTypesVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ServiceTypesAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) ServiceTypesUpdate(context.Context, *ServiceTypesUpdateReq) (*ServiceTypesVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ServiceTypesUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) ServiceTypesDel(context.Context, *ServiceTypesDelReq) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ServiceTypesDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) ServiceTypesGet(context.Context, *ServiceTypesGetReq) (*ServiceTypesVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ServiceTypesGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) ServiceTypesList(context.Context, *ServiceTypesListReq) (*ServiceTypesListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ServiceTypesList not implemented")
+}
+func (UnimplementedGoPmpClientServer) ServiceSetsAdd(context.Context, *ServiceSetsAddReq) (*ServiceSetsVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ServiceSetsAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) ServiceSetsUpdate(context.Context, *ServiceSetsUpdateReq) (*ServiceSetsVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ServiceSetsUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) ServiceSetsDel(context.Context, *ServiceSetsDelReq) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ServiceSetsDel not implemented")
+}
+func (UnimplementedGoPmpClientServer) ServiceSetsGet(context.Context, *ServiceSetsGetReq) (*ServiceSetsVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ServiceSetsGet not implemented")
+}
+func (UnimplementedGoPmpClientServer) ServiceSetsList(context.Context, *ServiceSetsListReq) (*ServiceSetsListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ServiceSetsList not implemented")
+}
+func (UnimplementedGoPmpClientServer) MessagePushAdd(context.Context, *MessagePushVo) (*MessagePushVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method MessagePushAdd not implemented")
+}
+func (UnimplementedGoPmpClientServer) MessagePushUpdate(context.Context, *MessagePushVo) (*MessagePushVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method MessagePushUpdate not implemented")
+}
+func (UnimplementedGoPmpClientServer) MessagePushList(context.Context, *MessagePushListReq) (*MessagePushListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method MessagePushList not implemented")
+}
+func (UnimplementedGoPmpClientServer) mustEmbedUnimplementedGoPmpClientServer() {}
+func (UnimplementedGoPmpClientServer) testEmbeddedByValue()                     {}
+
+// UnsafeGoPmpClientServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to GoPmpClientServer will
+// result in compilation errors.
+type UnsafeGoPmpClientServer interface {
+	mustEmbedUnimplementedGoPmpClientServer()
+}
+
+func RegisterGoPmpClientServer(s grpc.ServiceRegistrar, srv GoPmpClientServer) {
+	// If the following call pancis, it indicates UnimplementedGoPmpClientServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
+	s.RegisterService(&GoPmpClient_ServiceDesc, srv)
+}
+
+func _GoPmpClient_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Request)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).Ping(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_Ping_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).Ping(ctx, req.(*Request))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_GlobalParamAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GlobalParamVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).GlobalParamAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_GlobalParamAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).GlobalParamAdd(ctx, req.(*GlobalParamVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_GlobalParamUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GlobalParamVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).GlobalParamUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_GlobalParamUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).GlobalParamUpdate(ctx, req.(*GlobalParamVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_GlobalParamDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).GlobalParamDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_GlobalParamDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).GlobalParamDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_GlobalParamGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GlobalParamVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).GlobalParamGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_GlobalParamGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).GlobalParamGet(ctx, req.(*GlobalParamVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_GlobalParamGetWithLang_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GlobalParamGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).GlobalParamGetWithLang(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_GlobalParamGetWithLang_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).GlobalParamGetWithLang(ctx, req.(*GlobalParamGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_GlobalParamList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GlobalParamListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).GlobalParamList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_GlobalParamList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).GlobalParamList(ctx, req.(*GlobalParamListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ProductVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductAdd(ctx, req.(*ProductVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ProductVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductUpdate(ctx, req.(*ProductVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ProductVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductGet(ctx, req.(*ProductVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ProductListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductList(ctx, req.(*ProductListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Request)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductAll(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductAll_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductAll(ctx, req.(*Request))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductParamAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ProductParamVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductParamAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductParamAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductParamAdd(ctx, req.(*ProductParamVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductParamUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ProductParamVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductParamUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductParamUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductParamUpdate(ctx, req.(*ProductParamVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductParamDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductParamDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductParamDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductParamDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductParamGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ProductParamVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductParamGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductParamGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductParamGet(ctx, req.(*ProductParamVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductParamGetWithLang_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ProductParamGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductParamGetWithLang(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductParamGetWithLang_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductParamGetWithLang(ctx, req.(*ProductParamGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductParamList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ProductParamListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductParamList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductParamList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductParamList(ctx, req.(*ProductParamListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductActionAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ProductActionVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductActionAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductActionAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductActionAdd(ctx, req.(*ProductActionVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductActionUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ProductActionVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductActionUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductActionUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductActionUpdate(ctx, req.(*ProductActionVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductActionDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductActionDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductActionDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductActionDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductActionGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ProductActionReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductActionGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductActionGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductActionGet(ctx, req.(*ProductActionReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ProductActionList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ProductActionListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ProductActionList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ProductActionList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ProductActionList(ctx, req.(*ProductActionListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AreaParamAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AreaParamVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AreaParamAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AreaParamAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AreaParamAdd(ctx, req.(*AreaParamVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AreaParamUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AreaParamVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AreaParamUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AreaParamUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AreaParamUpdate(ctx, req.(*AreaParamVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AreaParamDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AreaParamDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AreaParamDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AreaParamDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AreaParamGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AreaParamVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AreaParamGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AreaParamGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AreaParamGet(ctx, req.(*AreaParamVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AreaParamList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AreaParamListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AreaParamList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AreaParamList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AreaParamList(ctx, req.(*AreaParamListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_NationalLanguageAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(NationalLanguageVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).NationalLanguageAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_NationalLanguageAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).NationalLanguageAdd(ctx, req.(*NationalLanguageVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_NationalLanguageUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(NationalLanguageVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).NationalLanguageUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_NationalLanguageUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).NationalLanguageUpdate(ctx, req.(*NationalLanguageVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_NationalLanguageDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).NationalLanguageDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_NationalLanguageDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).NationalLanguageDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_NationalLanguageGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(NationalLanguageVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).NationalLanguageGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_NationalLanguageGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).NationalLanguageGet(ctx, req.(*NationalLanguageVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_NationalLanguageList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(NationalLanguageListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).NationalLanguageList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_NationalLanguageList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).NationalLanguageList(ctx, req.(*NationalLanguageListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_TipAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(TipVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).TipAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_TipAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).TipAdd(ctx, req.(*TipVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_TipUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(TipVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).TipUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_TipUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).TipUpdate(ctx, req.(*TipVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_TipDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).TipDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_TipDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).TipDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_TipGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(TipGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).TipGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_TipGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).TipGet(ctx, req.(*TipGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_TipList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(TipListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).TipList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_TipList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).TipList(ctx, req.(*TipListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_DictAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DictVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).DictAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_DictAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).DictAdd(ctx, req.(*DictVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_DictUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DictVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).DictUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_DictUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).DictUpdate(ctx, req.(*DictVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_DictDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).DictDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_DictDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).DictDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_DictGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DictGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).DictGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_DictGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).DictGet(ctx, req.(*DictGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_DictList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DictListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).DictList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_DictList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).DictList(ctx, req.(*DictListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradePkgPlanAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradePkgPlanVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradePkgPlanAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradePkgPlanAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradePkgPlanAdd(ctx, req.(*UpgradePkgPlanVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradePkgPlanUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradePkgPlanVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradePkgPlanUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradePkgPlanUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradePkgPlanUpdate(ctx, req.(*UpgradePkgPlanVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradePkgPlanDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradePkgPlanDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradePkgPlanDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradePkgPlanDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradePkgPlanGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradePkgPlanVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradePkgPlanGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradePkgPlanGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradePkgPlanGet(ctx, req.(*UpgradePkgPlanVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradePkgPlanList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradePkgPlanListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradePkgPlanList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradePkgPlanList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradePkgPlanList(ctx, req.(*UpgradePkgPlanListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradePkgPlanDetailAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradePkgPlanDetailVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradePkgPlanDetailAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradePkgPlanDetailAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradePkgPlanDetailAdd(ctx, req.(*UpgradePkgPlanDetailVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradePkgPlanDetailUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradePkgPlanDetailVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradePkgPlanDetailUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradePkgPlanDetailUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradePkgPlanDetailUpdate(ctx, req.(*UpgradePkgPlanDetailVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradePkgPlanDetailDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradePkgPlanDetailDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradePkgPlanDetailDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradePkgPlanDetailDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradePkgPlanDetailGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradePkgPlanDetailVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradePkgPlanDetailGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradePkgPlanDetailGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradePkgPlanDetailGet(ctx, req.(*UpgradePkgPlanDetailVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradePkgPlanDetailList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradePkgPlanDetailListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradePkgPlanDetailList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradePkgPlanDetailList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradePkgPlanDetailList(ctx, req.(*UpgradePkgPlanDetailListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradeResPlanAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradeResPlanVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradeResPlanAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradeResPlanAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradeResPlanAdd(ctx, req.(*UpgradeResPlanVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradeResPlanUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradeResPlanVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradeResPlanUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradeResPlanUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradeResPlanUpdate(ctx, req.(*UpgradeResPlanVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradeResPlanDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradeResPlanDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradeResPlanDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradeResPlanDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradeResPlanGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradeResPlanVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradeResPlanGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradeResPlanGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradeResPlanGet(ctx, req.(*UpgradeResPlanVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradeResPlanList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradeResPlanListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradeResPlanList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradeResPlanList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradeResPlanList(ctx, req.(*UpgradeResPlanListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradeResPlanDetailAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradeResPlanDetailVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradeResPlanDetailAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradeResPlanDetailAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradeResPlanDetailAdd(ctx, req.(*UpgradeResPlanDetailVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradeResPlanDetailUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradeResPlanDetailVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradeResPlanDetailUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradeResPlanDetailUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradeResPlanDetailUpdate(ctx, req.(*UpgradeResPlanDetailVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradeResPlanDetailDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradeResPlanDetailDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradeResPlanDetailDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradeResPlanDetailDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradeResPlanDetailGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradeResPlanDetailVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradeResPlanDetailGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradeResPlanDetailGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradeResPlanDetailGet(ctx, req.(*UpgradeResPlanDetailVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_UpgradeResPlanDetailList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradeResPlanDetailListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).UpgradeResPlanDetailList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_UpgradeResPlanDetailList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).UpgradeResPlanDetailList(ctx, req.(*UpgradeResPlanDetailListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AdPlanAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AdPlanVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AdPlanAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AdPlanAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AdPlanAdd(ctx, req.(*AdPlanVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AdPlanUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AdPlanVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AdPlanUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AdPlanUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AdPlanUpdate(ctx, req.(*AdPlanVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AdPlanDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AdPlanDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AdPlanDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AdPlanDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AdPlanGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AdPlanVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AdPlanGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AdPlanGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AdPlanGet(ctx, req.(*AdPlanVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AdPlanList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AdPlanListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AdPlanList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AdPlanList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AdPlanList(ctx, req.(*AdPlanListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AdPlanDetailAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AdPlanDetailVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AdPlanDetailAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AdPlanDetailAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AdPlanDetailAdd(ctx, req.(*AdPlanDetailVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AdPlanDetailUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AdPlanDetailVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AdPlanDetailUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AdPlanDetailUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AdPlanDetailUpdate(ctx, req.(*AdPlanDetailVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AdPlanDetailDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AdPlanDetailDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AdPlanDetailDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AdPlanDetailDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AdPlanDetailGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AdPlanDetailVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AdPlanDetailGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AdPlanDetailGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AdPlanDetailGet(ctx, req.(*AdPlanDetailVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AdPlanDetailList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AdPlanDetailListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AdPlanDetailList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AdPlanDetailList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AdPlanDetailList(ctx, req.(*AdPlanDetailListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AdGlobalConfigGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AdGlobalConfigGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AdGlobalConfigGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AdGlobalConfigGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AdGlobalConfigGet(ctx, req.(*AdGlobalConfigGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AdGlobalConfigUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AdGlobalConfigVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AdGlobalConfigUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AdGlobalConfigUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AdGlobalConfigUpdate(ctx, req.(*AdGlobalConfigVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_JobBatchAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(JobBatchVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).JobBatchAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_JobBatchAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).JobBatchAdd(ctx, req.(*JobBatchVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_JobBatchAddWithTasks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(JobBatchWithTasksVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).JobBatchAddWithTasks(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_JobBatchAddWithTasks_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).JobBatchAddWithTasks(ctx, req.(*JobBatchWithTasksVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_JobBatchUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(JobBatchVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).JobBatchUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_JobBatchUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).JobBatchUpdate(ctx, req.(*JobBatchVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_JobBatchDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).JobBatchDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_JobBatchDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).JobBatchDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_JobBatchGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(JobBatchVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).JobBatchGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_JobBatchGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).JobBatchGet(ctx, req.(*JobBatchVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_JobBatchGetWithTasks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(JobBatchVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).JobBatchGetWithTasks(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_JobBatchGetWithTasks_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).JobBatchGetWithTasks(ctx, req.(*JobBatchVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_JobBatchList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(JobBatchListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).JobBatchList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_JobBatchList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).JobBatchList(ctx, req.(*JobBatchListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_JobBatchListWithTasks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(JobBatchListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).JobBatchListWithTasks(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_JobBatchListWithTasks_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).JobBatchListWithTasks(ctx, req.(*JobBatchListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_JobTasksAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(JobTasksVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).JobTasksAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_JobTasksAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).JobTasksAdd(ctx, req.(*JobTasksVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_JobTasksUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(JobTasksVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).JobTasksUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_JobTasksUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).JobTasksUpdate(ctx, req.(*JobTasksVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_JobTasksDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).JobTasksDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_JobTasksDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).JobTasksDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_JobTasksGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(JobTasksVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).JobTasksGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_JobTasksGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).JobTasksGet(ctx, req.(*JobTasksVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_JobTasksList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(JobTasksListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).JobTasksList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_JobTasksList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).JobTasksList(ctx, req.(*JobTasksListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_DeployConfigAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeployConfigVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).DeployConfigAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_DeployConfigAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).DeployConfigAdd(ctx, req.(*DeployConfigVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_DeployConfigUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeployConfigVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).DeployConfigUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_DeployConfigUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).DeployConfigUpdate(ctx, req.(*DeployConfigVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_DeployConfigDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).DeployConfigDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_DeployConfigDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).DeployConfigDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_DeployConfigGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeployConfigVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).DeployConfigGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_DeployConfigGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).DeployConfigGet(ctx, req.(*DeployConfigVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_DeployConfigList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeployConfigListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).DeployConfigList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_DeployConfigList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).DeployConfigList(ctx, req.(*DeployConfigListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_OperationLogAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(OperationLogVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).OperationLogAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_OperationLogAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).OperationLogAdd(ctx, req.(*OperationLogVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_OperationLogUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(OperationLogVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).OperationLogUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_OperationLogUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).OperationLogUpdate(ctx, req.(*OperationLogVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_OperationLogGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(OperationLogVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).OperationLogGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_OperationLogGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).OperationLogGet(ctx, req.(*OperationLogVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_OperationLogList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(OperationLogListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).OperationLogList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_OperationLogList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).OperationLogList(ctx, req.(*OperationLogListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AnnouncePlanAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AnnouncePlanVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AnnouncePlanAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AnnouncePlanAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AnnouncePlanAdd(ctx, req.(*AnnouncePlanVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AnnouncePlanUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AnnouncePlanVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AnnouncePlanUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AnnouncePlanUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AnnouncePlanUpdate(ctx, req.(*AnnouncePlanVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AnnouncePlanDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AnnouncePlanDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AnnouncePlanDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AnnouncePlanDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AnnouncePlanGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AnnouncePlanVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AnnouncePlanGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AnnouncePlanGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AnnouncePlanGet(ctx, req.(*AnnouncePlanVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AnnouncePlanList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AnnouncePlanListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AnnouncePlanList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AnnouncePlanList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AnnouncePlanList(ctx, req.(*AnnouncePlanListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AnnouncePlanDetailAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AnnouncePlanDetailVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AnnouncePlanDetailAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AnnouncePlanDetailAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AnnouncePlanDetailAdd(ctx, req.(*AnnouncePlanDetailVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AnnouncePlanDetailUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AnnouncePlanDetailVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AnnouncePlanDetailUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AnnouncePlanDetailUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AnnouncePlanDetailUpdate(ctx, req.(*AnnouncePlanDetailVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AnnouncePlanDetailDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AnnouncePlanDetailDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AnnouncePlanDetailDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AnnouncePlanDetailDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AnnouncePlanDetailGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AnnouncePlanDetailVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AnnouncePlanDetailGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AnnouncePlanDetailGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AnnouncePlanDetailGet(ctx, req.(*AnnouncePlanDetailVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_AnnouncePlanDetailList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AnnouncePlanDetailListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).AnnouncePlanDetailList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_AnnouncePlanDetailList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).AnnouncePlanDetailList(ctx, req.(*AnnouncePlanDetailListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ServiceTypesAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ServiceTypesAddReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ServiceTypesAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ServiceTypesAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ServiceTypesAdd(ctx, req.(*ServiceTypesAddReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ServiceTypesUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ServiceTypesUpdateReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ServiceTypesUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ServiceTypesUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ServiceTypesUpdate(ctx, req.(*ServiceTypesUpdateReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ServiceTypesDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ServiceTypesDelReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ServiceTypesDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ServiceTypesDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ServiceTypesDel(ctx, req.(*ServiceTypesDelReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ServiceTypesGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ServiceTypesGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ServiceTypesGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ServiceTypesGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ServiceTypesGet(ctx, req.(*ServiceTypesGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ServiceTypesList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ServiceTypesListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ServiceTypesList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ServiceTypesList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ServiceTypesList(ctx, req.(*ServiceTypesListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ServiceSetsAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ServiceSetsAddReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ServiceSetsAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ServiceSetsAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ServiceSetsAdd(ctx, req.(*ServiceSetsAddReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ServiceSetsUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ServiceSetsUpdateReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ServiceSetsUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ServiceSetsUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ServiceSetsUpdate(ctx, req.(*ServiceSetsUpdateReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ServiceSetsDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ServiceSetsDelReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ServiceSetsDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ServiceSetsDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ServiceSetsDel(ctx, req.(*ServiceSetsDelReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ServiceSetsGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ServiceSetsGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ServiceSetsGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ServiceSetsGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ServiceSetsGet(ctx, req.(*ServiceSetsGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_ServiceSetsList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ServiceSetsListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).ServiceSetsList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_ServiceSetsList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).ServiceSetsList(ctx, req.(*ServiceSetsListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_MessagePushAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(MessagePushVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).MessagePushAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_MessagePushAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).MessagePushAdd(ctx, req.(*MessagePushVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_MessagePushUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(MessagePushVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).MessagePushUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_MessagePushUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).MessagePushUpdate(ctx, req.(*MessagePushVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoPmpClient_MessagePushList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(MessagePushListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoPmpClientServer).MessagePushList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoPmpClient_MessagePushList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoPmpClientServer).MessagePushList(ctx, req.(*MessagePushListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// GoPmpClient_ServiceDesc is the grpc.ServiceDesc for GoPmpClient service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var GoPmpClient_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "gorpc.GoPmpClient",
+	HandlerType: (*GoPmpClientServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "Ping",
+			Handler:    _GoPmpClient_Ping_Handler,
+		},
+		{
+			MethodName: "GlobalParamAdd",
+			Handler:    _GoPmpClient_GlobalParamAdd_Handler,
+		},
+		{
+			MethodName: "GlobalParamUpdate",
+			Handler:    _GoPmpClient_GlobalParamUpdate_Handler,
+		},
+		{
+			MethodName: "GlobalParamDel",
+			Handler:    _GoPmpClient_GlobalParamDel_Handler,
+		},
+		{
+			MethodName: "GlobalParamGet",
+			Handler:    _GoPmpClient_GlobalParamGet_Handler,
+		},
+		{
+			MethodName: "GlobalParamGetWithLang",
+			Handler:    _GoPmpClient_GlobalParamGetWithLang_Handler,
+		},
+		{
+			MethodName: "GlobalParamList",
+			Handler:    _GoPmpClient_GlobalParamList_Handler,
+		},
+		{
+			MethodName: "ProductAdd",
+			Handler:    _GoPmpClient_ProductAdd_Handler,
+		},
+		{
+			MethodName: "ProductUpdate",
+			Handler:    _GoPmpClient_ProductUpdate_Handler,
+		},
+		{
+			MethodName: "ProductDel",
+			Handler:    _GoPmpClient_ProductDel_Handler,
+		},
+		{
+			MethodName: "ProductGet",
+			Handler:    _GoPmpClient_ProductGet_Handler,
+		},
+		{
+			MethodName: "ProductList",
+			Handler:    _GoPmpClient_ProductList_Handler,
+		},
+		{
+			MethodName: "ProductAll",
+			Handler:    _GoPmpClient_ProductAll_Handler,
+		},
+		{
+			MethodName: "ProductParamAdd",
+			Handler:    _GoPmpClient_ProductParamAdd_Handler,
+		},
+		{
+			MethodName: "ProductParamUpdate",
+			Handler:    _GoPmpClient_ProductParamUpdate_Handler,
+		},
+		{
+			MethodName: "ProductParamDel",
+			Handler:    _GoPmpClient_ProductParamDel_Handler,
+		},
+		{
+			MethodName: "ProductParamGet",
+			Handler:    _GoPmpClient_ProductParamGet_Handler,
+		},
+		{
+			MethodName: "ProductParamGetWithLang",
+			Handler:    _GoPmpClient_ProductParamGetWithLang_Handler,
+		},
+		{
+			MethodName: "ProductParamList",
+			Handler:    _GoPmpClient_ProductParamList_Handler,
+		},
+		{
+			MethodName: "ProductActionAdd",
+			Handler:    _GoPmpClient_ProductActionAdd_Handler,
+		},
+		{
+			MethodName: "ProductActionUpdate",
+			Handler:    _GoPmpClient_ProductActionUpdate_Handler,
+		},
+		{
+			MethodName: "ProductActionDel",
+			Handler:    _GoPmpClient_ProductActionDel_Handler,
+		},
+		{
+			MethodName: "ProductActionGet",
+			Handler:    _GoPmpClient_ProductActionGet_Handler,
+		},
+		{
+			MethodName: "ProductActionList",
+			Handler:    _GoPmpClient_ProductActionList_Handler,
+		},
+		{
+			MethodName: "AreaParamAdd",
+			Handler:    _GoPmpClient_AreaParamAdd_Handler,
+		},
+		{
+			MethodName: "AreaParamUpdate",
+			Handler:    _GoPmpClient_AreaParamUpdate_Handler,
+		},
+		{
+			MethodName: "AreaParamDel",
+			Handler:    _GoPmpClient_AreaParamDel_Handler,
+		},
+		{
+			MethodName: "AreaParamGet",
+			Handler:    _GoPmpClient_AreaParamGet_Handler,
+		},
+		{
+			MethodName: "AreaParamList",
+			Handler:    _GoPmpClient_AreaParamList_Handler,
+		},
+		{
+			MethodName: "NationalLanguageAdd",
+			Handler:    _GoPmpClient_NationalLanguageAdd_Handler,
+		},
+		{
+			MethodName: "NationalLanguageUpdate",
+			Handler:    _GoPmpClient_NationalLanguageUpdate_Handler,
+		},
+		{
+			MethodName: "NationalLanguageDel",
+			Handler:    _GoPmpClient_NationalLanguageDel_Handler,
+		},
+		{
+			MethodName: "NationalLanguageGet",
+			Handler:    _GoPmpClient_NationalLanguageGet_Handler,
+		},
+		{
+			MethodName: "NationalLanguageList",
+			Handler:    _GoPmpClient_NationalLanguageList_Handler,
+		},
+		{
+			MethodName: "TipAdd",
+			Handler:    _GoPmpClient_TipAdd_Handler,
+		},
+		{
+			MethodName: "TipUpdate",
+			Handler:    _GoPmpClient_TipUpdate_Handler,
+		},
+		{
+			MethodName: "TipDel",
+			Handler:    _GoPmpClient_TipDel_Handler,
+		},
+		{
+			MethodName: "TipGet",
+			Handler:    _GoPmpClient_TipGet_Handler,
+		},
+		{
+			MethodName: "TipList",
+			Handler:    _GoPmpClient_TipList_Handler,
+		},
+		{
+			MethodName: "DictAdd",
+			Handler:    _GoPmpClient_DictAdd_Handler,
+		},
+		{
+			MethodName: "DictUpdate",
+			Handler:    _GoPmpClient_DictUpdate_Handler,
+		},
+		{
+			MethodName: "DictDel",
+			Handler:    _GoPmpClient_DictDel_Handler,
+		},
+		{
+			MethodName: "DictGet",
+			Handler:    _GoPmpClient_DictGet_Handler,
+		},
+		{
+			MethodName: "DictList",
+			Handler:    _GoPmpClient_DictList_Handler,
+		},
+		{
+			MethodName: "UpgradePkgPlanAdd",
+			Handler:    _GoPmpClient_UpgradePkgPlanAdd_Handler,
+		},
+		{
+			MethodName: "UpgradePkgPlanUpdate",
+			Handler:    _GoPmpClient_UpgradePkgPlanUpdate_Handler,
+		},
+		{
+			MethodName: "UpgradePkgPlanDel",
+			Handler:    _GoPmpClient_UpgradePkgPlanDel_Handler,
+		},
+		{
+			MethodName: "UpgradePkgPlanGet",
+			Handler:    _GoPmpClient_UpgradePkgPlanGet_Handler,
+		},
+		{
+			MethodName: "UpgradePkgPlanList",
+			Handler:    _GoPmpClient_UpgradePkgPlanList_Handler,
+		},
+		{
+			MethodName: "UpgradePkgPlanDetailAdd",
+			Handler:    _GoPmpClient_UpgradePkgPlanDetailAdd_Handler,
+		},
+		{
+			MethodName: "UpgradePkgPlanDetailUpdate",
+			Handler:    _GoPmpClient_UpgradePkgPlanDetailUpdate_Handler,
+		},
+		{
+			MethodName: "UpgradePkgPlanDetailDel",
+			Handler:    _GoPmpClient_UpgradePkgPlanDetailDel_Handler,
+		},
+		{
+			MethodName: "UpgradePkgPlanDetailGet",
+			Handler:    _GoPmpClient_UpgradePkgPlanDetailGet_Handler,
+		},
+		{
+			MethodName: "UpgradePkgPlanDetailList",
+			Handler:    _GoPmpClient_UpgradePkgPlanDetailList_Handler,
+		},
+		{
+			MethodName: "UpgradeResPlanAdd",
+			Handler:    _GoPmpClient_UpgradeResPlanAdd_Handler,
+		},
+		{
+			MethodName: "UpgradeResPlanUpdate",
+			Handler:    _GoPmpClient_UpgradeResPlanUpdate_Handler,
+		},
+		{
+			MethodName: "UpgradeResPlanDel",
+			Handler:    _GoPmpClient_UpgradeResPlanDel_Handler,
+		},
+		{
+			MethodName: "UpgradeResPlanGet",
+			Handler:    _GoPmpClient_UpgradeResPlanGet_Handler,
+		},
+		{
+			MethodName: "UpgradeResPlanList",
+			Handler:    _GoPmpClient_UpgradeResPlanList_Handler,
+		},
+		{
+			MethodName: "UpgradeResPlanDetailAdd",
+			Handler:    _GoPmpClient_UpgradeResPlanDetailAdd_Handler,
+		},
+		{
+			MethodName: "UpgradeResPlanDetailUpdate",
+			Handler:    _GoPmpClient_UpgradeResPlanDetailUpdate_Handler,
+		},
+		{
+			MethodName: "UpgradeResPlanDetailDel",
+			Handler:    _GoPmpClient_UpgradeResPlanDetailDel_Handler,
+		},
+		{
+			MethodName: "UpgradeResPlanDetailGet",
+			Handler:    _GoPmpClient_UpgradeResPlanDetailGet_Handler,
+		},
+		{
+			MethodName: "UpgradeResPlanDetailList",
+			Handler:    _GoPmpClient_UpgradeResPlanDetailList_Handler,
+		},
+		{
+			MethodName: "AdPlanAdd",
+			Handler:    _GoPmpClient_AdPlanAdd_Handler,
+		},
+		{
+			MethodName: "AdPlanUpdate",
+			Handler:    _GoPmpClient_AdPlanUpdate_Handler,
+		},
+		{
+			MethodName: "AdPlanDel",
+			Handler:    _GoPmpClient_AdPlanDel_Handler,
+		},
+		{
+			MethodName: "AdPlanGet",
+			Handler:    _GoPmpClient_AdPlanGet_Handler,
+		},
+		{
+			MethodName: "AdPlanList",
+			Handler:    _GoPmpClient_AdPlanList_Handler,
+		},
+		{
+			MethodName: "AdPlanDetailAdd",
+			Handler:    _GoPmpClient_AdPlanDetailAdd_Handler,
+		},
+		{
+			MethodName: "AdPlanDetailUpdate",
+			Handler:    _GoPmpClient_AdPlanDetailUpdate_Handler,
+		},
+		{
+			MethodName: "AdPlanDetailDel",
+			Handler:    _GoPmpClient_AdPlanDetailDel_Handler,
+		},
+		{
+			MethodName: "AdPlanDetailGet",
+			Handler:    _GoPmpClient_AdPlanDetailGet_Handler,
+		},
+		{
+			MethodName: "AdPlanDetailList",
+			Handler:    _GoPmpClient_AdPlanDetailList_Handler,
+		},
+		{
+			MethodName: "AdGlobalConfigGet",
+			Handler:    _GoPmpClient_AdGlobalConfigGet_Handler,
+		},
+		{
+			MethodName: "AdGlobalConfigUpdate",
+			Handler:    _GoPmpClient_AdGlobalConfigUpdate_Handler,
+		},
+		{
+			MethodName: "JobBatchAdd",
+			Handler:    _GoPmpClient_JobBatchAdd_Handler,
+		},
+		{
+			MethodName: "JobBatchAddWithTasks",
+			Handler:    _GoPmpClient_JobBatchAddWithTasks_Handler,
+		},
+		{
+			MethodName: "JobBatchUpdate",
+			Handler:    _GoPmpClient_JobBatchUpdate_Handler,
+		},
+		{
+			MethodName: "JobBatchDel",
+			Handler:    _GoPmpClient_JobBatchDel_Handler,
+		},
+		{
+			MethodName: "JobBatchGet",
+			Handler:    _GoPmpClient_JobBatchGet_Handler,
+		},
+		{
+			MethodName: "JobBatchGetWithTasks",
+			Handler:    _GoPmpClient_JobBatchGetWithTasks_Handler,
+		},
+		{
+			MethodName: "JobBatchList",
+			Handler:    _GoPmpClient_JobBatchList_Handler,
+		},
+		{
+			MethodName: "JobBatchListWithTasks",
+			Handler:    _GoPmpClient_JobBatchListWithTasks_Handler,
+		},
+		{
+			MethodName: "JobTasksAdd",
+			Handler:    _GoPmpClient_JobTasksAdd_Handler,
+		},
+		{
+			MethodName: "JobTasksUpdate",
+			Handler:    _GoPmpClient_JobTasksUpdate_Handler,
+		},
+		{
+			MethodName: "JobTasksDel",
+			Handler:    _GoPmpClient_JobTasksDel_Handler,
+		},
+		{
+			MethodName: "JobTasksGet",
+			Handler:    _GoPmpClient_JobTasksGet_Handler,
+		},
+		{
+			MethodName: "JobTasksList",
+			Handler:    _GoPmpClient_JobTasksList_Handler,
+		},
+		{
+			MethodName: "DeployConfigAdd",
+			Handler:    _GoPmpClient_DeployConfigAdd_Handler,
+		},
+		{
+			MethodName: "DeployConfigUpdate",
+			Handler:    _GoPmpClient_DeployConfigUpdate_Handler,
+		},
+		{
+			MethodName: "DeployConfigDel",
+			Handler:    _GoPmpClient_DeployConfigDel_Handler,
+		},
+		{
+			MethodName: "DeployConfigGet",
+			Handler:    _GoPmpClient_DeployConfigGet_Handler,
+		},
+		{
+			MethodName: "DeployConfigList",
+			Handler:    _GoPmpClient_DeployConfigList_Handler,
+		},
+		{
+			MethodName: "OperationLogAdd",
+			Handler:    _GoPmpClient_OperationLogAdd_Handler,
+		},
+		{
+			MethodName: "OperationLogUpdate",
+			Handler:    _GoPmpClient_OperationLogUpdate_Handler,
+		},
+		{
+			MethodName: "OperationLogGet",
+			Handler:    _GoPmpClient_OperationLogGet_Handler,
+		},
+		{
+			MethodName: "OperationLogList",
+			Handler:    _GoPmpClient_OperationLogList_Handler,
+		},
+		{
+			MethodName: "AnnouncePlanAdd",
+			Handler:    _GoPmpClient_AnnouncePlanAdd_Handler,
+		},
+		{
+			MethodName: "AnnouncePlanUpdate",
+			Handler:    _GoPmpClient_AnnouncePlanUpdate_Handler,
+		},
+		{
+			MethodName: "AnnouncePlanDel",
+			Handler:    _GoPmpClient_AnnouncePlanDel_Handler,
+		},
+		{
+			MethodName: "AnnouncePlanGet",
+			Handler:    _GoPmpClient_AnnouncePlanGet_Handler,
+		},
+		{
+			MethodName: "AnnouncePlanList",
+			Handler:    _GoPmpClient_AnnouncePlanList_Handler,
+		},
+		{
+			MethodName: "AnnouncePlanDetailAdd",
+			Handler:    _GoPmpClient_AnnouncePlanDetailAdd_Handler,
+		},
+		{
+			MethodName: "AnnouncePlanDetailUpdate",
+			Handler:    _GoPmpClient_AnnouncePlanDetailUpdate_Handler,
+		},
+		{
+			MethodName: "AnnouncePlanDetailDel",
+			Handler:    _GoPmpClient_AnnouncePlanDetailDel_Handler,
+		},
+		{
+			MethodName: "AnnouncePlanDetailGet",
+			Handler:    _GoPmpClient_AnnouncePlanDetailGet_Handler,
+		},
+		{
+			MethodName: "AnnouncePlanDetailList",
+			Handler:    _GoPmpClient_AnnouncePlanDetailList_Handler,
+		},
+		{
+			MethodName: "ServiceTypesAdd",
+			Handler:    _GoPmpClient_ServiceTypesAdd_Handler,
+		},
+		{
+			MethodName: "ServiceTypesUpdate",
+			Handler:    _GoPmpClient_ServiceTypesUpdate_Handler,
+		},
+		{
+			MethodName: "ServiceTypesDel",
+			Handler:    _GoPmpClient_ServiceTypesDel_Handler,
+		},
+		{
+			MethodName: "ServiceTypesGet",
+			Handler:    _GoPmpClient_ServiceTypesGet_Handler,
+		},
+		{
+			MethodName: "ServiceTypesList",
+			Handler:    _GoPmpClient_ServiceTypesList_Handler,
+		},
+		{
+			MethodName: "ServiceSetsAdd",
+			Handler:    _GoPmpClient_ServiceSetsAdd_Handler,
+		},
+		{
+			MethodName: "ServiceSetsUpdate",
+			Handler:    _GoPmpClient_ServiceSetsUpdate_Handler,
+		},
+		{
+			MethodName: "ServiceSetsDel",
+			Handler:    _GoPmpClient_ServiceSetsDel_Handler,
+		},
+		{
+			MethodName: "ServiceSetsGet",
+			Handler:    _GoPmpClient_ServiceSetsGet_Handler,
+		},
+		{
+			MethodName: "ServiceSetsList",
+			Handler:    _GoPmpClient_ServiceSetsList_Handler,
+		},
+		{
+			MethodName: "MessagePushAdd",
+			Handler:    _GoPmpClient_MessagePushAdd_Handler,
+		},
+		{
+			MethodName: "MessagePushUpdate",
+			Handler:    _GoPmpClient_MessagePushUpdate_Handler,
+		},
+		{
+			MethodName: "MessagePushList",
+			Handler:    _GoPmpClient_MessagePushList_Handler,
+		},
+	},
+	Streams:  []grpc.StreamDesc{},
+	Metadata: "gorpc.proto",
+}
+
+const (
+	GoShortDramaClient_ShortDramaAdd_FullMethodName                           = "/gorpc.GoShortDramaClient/ShortDramaAdd"
+	GoShortDramaClient_ShortDramaUpdate_FullMethodName                        = "/gorpc.GoShortDramaClient/ShortDramaUpdate"
+	GoShortDramaClient_ShortDramaDel_FullMethodName                           = "/gorpc.GoShortDramaClient/ShortDramaDel"
+	GoShortDramaClient_ShortDramaGet_FullMethodName                           = "/gorpc.GoShortDramaClient/ShortDramaGet"
+	GoShortDramaClient_ShortDramaList_FullMethodName                          = "/gorpc.GoShortDramaClient/ShortDramaList"
+	GoShortDramaClient_ShortDramaUpdateModifier_FullMethodName                = "/gorpc.GoShortDramaClient/ShortDramaUpdateModifier"
+	GoShortDramaClient_ShortDramaLanguageList_FullMethodName                  = "/gorpc.GoShortDramaClient/ShortDramaLanguageList"
+	GoShortDramaClient_ShortDramaEpisodeAdd_FullMethodName                    = "/gorpc.GoShortDramaClient/ShortDramaEpisodeAdd"
+	GoShortDramaClient_ShortDramaEpisodeBatchAdd_FullMethodName               = "/gorpc.GoShortDramaClient/ShortDramaEpisodeBatchAdd"
+	GoShortDramaClient_ShortDramaEpisodeUpdate_FullMethodName                 = "/gorpc.GoShortDramaClient/ShortDramaEpisodeUpdate"
+	GoShortDramaClient_ShortDramaEpisodeDel_FullMethodName                    = "/gorpc.GoShortDramaClient/ShortDramaEpisodeDel"
+	GoShortDramaClient_ShortDramaEpisodeGet_FullMethodName                    = "/gorpc.GoShortDramaClient/ShortDramaEpisodeGet"
+	GoShortDramaClient_ShortDramaEpisodeList_FullMethodName                   = "/gorpc.GoShortDramaClient/ShortDramaEpisodeList"
+	GoShortDramaClient_ShortDramaEpisodeBatchRefreshUpdateTime_FullMethodName = "/gorpc.GoShortDramaClient/ShortDramaEpisodeBatchRefreshUpdateTime"
+	GoShortDramaClient_ShortDramaEpisodeCount_FullMethodName                  = "/gorpc.GoShortDramaClient/ShortDramaEpisodeCount"
+	GoShortDramaClient_ShortDramaCheckName_FullMethodName                     = "/gorpc.GoShortDramaClient/ShortDramaCheckName"
+	GoShortDramaClient_SetTotalStats_FullMethodName                           = "/gorpc.GoShortDramaClient/SetTotalStats"
+	GoShortDramaClient_ShortDramaStatsPlaysTotalList_FullMethodName           = "/gorpc.GoShortDramaClient/ShortDramaStatsPlaysTotalList"
+)
+
+// GoShortDramaClientClient is the client API for GoShortDramaClient service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+type GoShortDramaClientClient interface {
+	// ShortDrama
+	ShortDramaAdd(ctx context.Context, in *ShortDramaVo, opts ...grpc.CallOption) (*ShortDramaVo, error)
+	ShortDramaUpdate(ctx context.Context, in *ShortDramaVo, opts ...grpc.CallOption) (*Empty, error)
+	ShortDramaDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	ShortDramaGet(ctx context.Context, in *ShortDramaGetReq, opts ...grpc.CallOption) (*ShortDramaVo, error)
+	ShortDramaList(ctx context.Context, in *ShortDramaListReq, opts ...grpc.CallOption) (*ShortDramaListResp, error)
+	ShortDramaUpdateModifier(ctx context.Context, in *ShortDramaUpdateModifierReq, opts ...grpc.CallOption) (*Empty, error)
+	// ShortDramaLanguage
+	ShortDramaLanguageList(ctx context.Context, in *ShortDramaLanguageListReq, opts ...grpc.CallOption) (*ShortDramaLanguageListResp, error)
+	// ShortDramaEpisode
+	ShortDramaEpisodeAdd(ctx context.Context, in *ShortDramaEpisodeVo, opts ...grpc.CallOption) (*ShortDramaEpisodeVo, error)
+	ShortDramaEpisodeBatchAdd(ctx context.Context, in *ShortDramaEpisodeBatchAddReq, opts ...grpc.CallOption) (*Empty, error)
+	ShortDramaEpisodeUpdate(ctx context.Context, in *ShortDramaEpisodeVo, opts ...grpc.CallOption) (*Empty, error)
+	ShortDramaEpisodeDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	ShortDramaEpisodeGet(ctx context.Context, in *ShortDramaEpisodeGetReq, opts ...grpc.CallOption) (*ShortDramaEpisodeVo, error)
+	ShortDramaEpisodeList(ctx context.Context, in *ShortDramaEpisodeListReq, opts ...grpc.CallOption) (*ShortDramaEpisodeListResp, error)
+	ShortDramaEpisodeBatchRefreshUpdateTime(ctx context.Context, in *ShortDramaEpisodeBatchRefreshUpdateTimeReq, opts ...grpc.CallOption) (*Empty, error)
+	// ShortDramaEpisodeCount
+	ShortDramaEpisodeCount(ctx context.Context, in *ShortDramaEpisodeCountReq, opts ...grpc.CallOption) (*ShortDramaEpisodeCountResp, error)
+	ShortDramaCheckName(ctx context.Context, in *ShortDramaCheckNameReq, opts ...grpc.CallOption) (*ShortDramaCheckNameResp, error)
+	// ShortDramaStats
+	SetTotalStats(ctx context.Context, in *SetTotalStatsReq, opts ...grpc.CallOption) (*Empty, error)
+	// ShortDramaStatsPlaysTotal
+	ShortDramaStatsPlaysTotalList(ctx context.Context, in *ShortDramaStatsPlaysTotalListReq, opts ...grpc.CallOption) (*ShortDramaStatsPlaysTotalListResp, error)
+}
+
+type goShortDramaClientClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewGoShortDramaClientClient(cc grpc.ClientConnInterface) GoShortDramaClientClient {
+	return &goShortDramaClientClient{cc}
+}
+
+func (c *goShortDramaClientClient) ShortDramaAdd(ctx context.Context, in *ShortDramaVo, opts ...grpc.CallOption) (*ShortDramaVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ShortDramaVo)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaUpdate(ctx context.Context, in *ShortDramaVo, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaGet(ctx context.Context, in *ShortDramaGetReq, opts ...grpc.CallOption) (*ShortDramaVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ShortDramaVo)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaList(ctx context.Context, in *ShortDramaListReq, opts ...grpc.CallOption) (*ShortDramaListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ShortDramaListResp)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaUpdateModifier(ctx context.Context, in *ShortDramaUpdateModifierReq, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaUpdateModifier_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaLanguageList(ctx context.Context, in *ShortDramaLanguageListReq, opts ...grpc.CallOption) (*ShortDramaLanguageListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ShortDramaLanguageListResp)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaLanguageList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaEpisodeAdd(ctx context.Context, in *ShortDramaEpisodeVo, opts ...grpc.CallOption) (*ShortDramaEpisodeVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ShortDramaEpisodeVo)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaEpisodeAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaEpisodeBatchAdd(ctx context.Context, in *ShortDramaEpisodeBatchAddReq, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaEpisodeBatchAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaEpisodeUpdate(ctx context.Context, in *ShortDramaEpisodeVo, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaEpisodeUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaEpisodeDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaEpisodeDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaEpisodeGet(ctx context.Context, in *ShortDramaEpisodeGetReq, opts ...grpc.CallOption) (*ShortDramaEpisodeVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ShortDramaEpisodeVo)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaEpisodeGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaEpisodeList(ctx context.Context, in *ShortDramaEpisodeListReq, opts ...grpc.CallOption) (*ShortDramaEpisodeListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ShortDramaEpisodeListResp)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaEpisodeList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaEpisodeBatchRefreshUpdateTime(ctx context.Context, in *ShortDramaEpisodeBatchRefreshUpdateTimeReq, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaEpisodeBatchRefreshUpdateTime_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaEpisodeCount(ctx context.Context, in *ShortDramaEpisodeCountReq, opts ...grpc.CallOption) (*ShortDramaEpisodeCountResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ShortDramaEpisodeCountResp)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaEpisodeCount_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaCheckName(ctx context.Context, in *ShortDramaCheckNameReq, opts ...grpc.CallOption) (*ShortDramaCheckNameResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ShortDramaCheckNameResp)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaCheckName_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) SetTotalStats(ctx context.Context, in *SetTotalStatsReq, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_SetTotalStats_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goShortDramaClientClient) ShortDramaStatsPlaysTotalList(ctx context.Context, in *ShortDramaStatsPlaysTotalListReq, opts ...grpc.CallOption) (*ShortDramaStatsPlaysTotalListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ShortDramaStatsPlaysTotalListResp)
+	err := c.cc.Invoke(ctx, GoShortDramaClient_ShortDramaStatsPlaysTotalList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// GoShortDramaClientServer is the server API for GoShortDramaClient service.
+// All implementations must embed UnimplementedGoShortDramaClientServer
+// for forward compatibility.
+type GoShortDramaClientServer interface {
+	// ShortDrama
+	ShortDramaAdd(context.Context, *ShortDramaVo) (*ShortDramaVo, error)
+	ShortDramaUpdate(context.Context, *ShortDramaVo) (*Empty, error)
+	ShortDramaDel(context.Context, *Ids) (*Empty, error)
+	ShortDramaGet(context.Context, *ShortDramaGetReq) (*ShortDramaVo, error)
+	ShortDramaList(context.Context, *ShortDramaListReq) (*ShortDramaListResp, error)
+	ShortDramaUpdateModifier(context.Context, *ShortDramaUpdateModifierReq) (*Empty, error)
+	// ShortDramaLanguage
+	ShortDramaLanguageList(context.Context, *ShortDramaLanguageListReq) (*ShortDramaLanguageListResp, error)
+	// ShortDramaEpisode
+	ShortDramaEpisodeAdd(context.Context, *ShortDramaEpisodeVo) (*ShortDramaEpisodeVo, error)
+	ShortDramaEpisodeBatchAdd(context.Context, *ShortDramaEpisodeBatchAddReq) (*Empty, error)
+	ShortDramaEpisodeUpdate(context.Context, *ShortDramaEpisodeVo) (*Empty, error)
+	ShortDramaEpisodeDel(context.Context, *Ids) (*Empty, error)
+	ShortDramaEpisodeGet(context.Context, *ShortDramaEpisodeGetReq) (*ShortDramaEpisodeVo, error)
+	ShortDramaEpisodeList(context.Context, *ShortDramaEpisodeListReq) (*ShortDramaEpisodeListResp, error)
+	ShortDramaEpisodeBatchRefreshUpdateTime(context.Context, *ShortDramaEpisodeBatchRefreshUpdateTimeReq) (*Empty, error)
+	// ShortDramaEpisodeCount
+	ShortDramaEpisodeCount(context.Context, *ShortDramaEpisodeCountReq) (*ShortDramaEpisodeCountResp, error)
+	ShortDramaCheckName(context.Context, *ShortDramaCheckNameReq) (*ShortDramaCheckNameResp, error)
+	// ShortDramaStats
+	SetTotalStats(context.Context, *SetTotalStatsReq) (*Empty, error)
+	// ShortDramaStatsPlaysTotal
+	ShortDramaStatsPlaysTotalList(context.Context, *ShortDramaStatsPlaysTotalListReq) (*ShortDramaStatsPlaysTotalListResp, error)
+	mustEmbedUnimplementedGoShortDramaClientServer()
+}
+
+// UnimplementedGoShortDramaClientServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedGoShortDramaClientServer struct{}
+
+func (UnimplementedGoShortDramaClientServer) ShortDramaAdd(context.Context, *ShortDramaVo) (*ShortDramaVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaAdd not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaUpdate(context.Context, *ShortDramaVo) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaUpdate not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaDel not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaGet(context.Context, *ShortDramaGetReq) (*ShortDramaVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaGet not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaList(context.Context, *ShortDramaListReq) (*ShortDramaListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaList not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaUpdateModifier(context.Context, *ShortDramaUpdateModifierReq) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaUpdateModifier not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaLanguageList(context.Context, *ShortDramaLanguageListReq) (*ShortDramaLanguageListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaLanguageList not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaEpisodeAdd(context.Context, *ShortDramaEpisodeVo) (*ShortDramaEpisodeVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaEpisodeAdd not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaEpisodeBatchAdd(context.Context, *ShortDramaEpisodeBatchAddReq) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaEpisodeBatchAdd not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaEpisodeUpdate(context.Context, *ShortDramaEpisodeVo) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaEpisodeUpdate not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaEpisodeDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaEpisodeDel not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaEpisodeGet(context.Context, *ShortDramaEpisodeGetReq) (*ShortDramaEpisodeVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaEpisodeGet not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaEpisodeList(context.Context, *ShortDramaEpisodeListReq) (*ShortDramaEpisodeListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaEpisodeList not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaEpisodeBatchRefreshUpdateTime(context.Context, *ShortDramaEpisodeBatchRefreshUpdateTimeReq) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaEpisodeBatchRefreshUpdateTime not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaEpisodeCount(context.Context, *ShortDramaEpisodeCountReq) (*ShortDramaEpisodeCountResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaEpisodeCount not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaCheckName(context.Context, *ShortDramaCheckNameReq) (*ShortDramaCheckNameResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaCheckName not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) SetTotalStats(context.Context, *SetTotalStatsReq) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SetTotalStats not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) ShortDramaStatsPlaysTotalList(context.Context, *ShortDramaStatsPlaysTotalListReq) (*ShortDramaStatsPlaysTotalListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShortDramaStatsPlaysTotalList not implemented")
+}
+func (UnimplementedGoShortDramaClientServer) mustEmbedUnimplementedGoShortDramaClientServer() {}
+func (UnimplementedGoShortDramaClientServer) testEmbeddedByValue()                            {}
+
+// UnsafeGoShortDramaClientServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to GoShortDramaClientServer will
+// result in compilation errors.
+type UnsafeGoShortDramaClientServer interface {
+	mustEmbedUnimplementedGoShortDramaClientServer()
+}
+
+func RegisterGoShortDramaClientServer(s grpc.ServiceRegistrar, srv GoShortDramaClientServer) {
+	// If the following call pancis, it indicates UnimplementedGoShortDramaClientServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
+	s.RegisterService(&GoShortDramaClient_ServiceDesc, srv)
+}
+
+func _GoShortDramaClient_ShortDramaAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaAdd(ctx, req.(*ShortDramaVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaUpdate(ctx, req.(*ShortDramaVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaGet(ctx, req.(*ShortDramaGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaList(ctx, req.(*ShortDramaListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaUpdateModifier_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaUpdateModifierReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaUpdateModifier(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaUpdateModifier_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaUpdateModifier(ctx, req.(*ShortDramaUpdateModifierReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaLanguageList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaLanguageListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaLanguageList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaLanguageList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaLanguageList(ctx, req.(*ShortDramaLanguageListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaEpisodeAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaEpisodeVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaEpisodeAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeAdd(ctx, req.(*ShortDramaEpisodeVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaEpisodeBatchAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaEpisodeBatchAddReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeBatchAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaEpisodeBatchAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeBatchAdd(ctx, req.(*ShortDramaEpisodeBatchAddReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaEpisodeUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaEpisodeVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaEpisodeUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeUpdate(ctx, req.(*ShortDramaEpisodeVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaEpisodeDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaEpisodeDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaEpisodeGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaEpisodeGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaEpisodeGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeGet(ctx, req.(*ShortDramaEpisodeGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaEpisodeList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaEpisodeListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaEpisodeList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeList(ctx, req.(*ShortDramaEpisodeListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaEpisodeBatchRefreshUpdateTime_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaEpisodeBatchRefreshUpdateTimeReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeBatchRefreshUpdateTime(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaEpisodeBatchRefreshUpdateTime_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeBatchRefreshUpdateTime(ctx, req.(*ShortDramaEpisodeBatchRefreshUpdateTimeReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaEpisodeCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaEpisodeCountReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeCount(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaEpisodeCount_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaEpisodeCount(ctx, req.(*ShortDramaEpisodeCountReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaCheckName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaCheckNameReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaCheckName(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaCheckName_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaCheckName(ctx, req.(*ShortDramaCheckNameReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_SetTotalStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SetTotalStatsReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).SetTotalStats(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_SetTotalStats_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).SetTotalStats(ctx, req.(*SetTotalStatsReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoShortDramaClient_ShortDramaStatsPlaysTotalList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShortDramaStatsPlaysTotalListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoShortDramaClientServer).ShortDramaStatsPlaysTotalList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoShortDramaClient_ShortDramaStatsPlaysTotalList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoShortDramaClientServer).ShortDramaStatsPlaysTotalList(ctx, req.(*ShortDramaStatsPlaysTotalListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// GoShortDramaClient_ServiceDesc is the grpc.ServiceDesc for GoShortDramaClient service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var GoShortDramaClient_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "gorpc.GoShortDramaClient",
+	HandlerType: (*GoShortDramaClientServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "ShortDramaAdd",
+			Handler:    _GoShortDramaClient_ShortDramaAdd_Handler,
+		},
+		{
+			MethodName: "ShortDramaUpdate",
+			Handler:    _GoShortDramaClient_ShortDramaUpdate_Handler,
+		},
+		{
+			MethodName: "ShortDramaDel",
+			Handler:    _GoShortDramaClient_ShortDramaDel_Handler,
+		},
+		{
+			MethodName: "ShortDramaGet",
+			Handler:    _GoShortDramaClient_ShortDramaGet_Handler,
+		},
+		{
+			MethodName: "ShortDramaList",
+			Handler:    _GoShortDramaClient_ShortDramaList_Handler,
+		},
+		{
+			MethodName: "ShortDramaUpdateModifier",
+			Handler:    _GoShortDramaClient_ShortDramaUpdateModifier_Handler,
+		},
+		{
+			MethodName: "ShortDramaLanguageList",
+			Handler:    _GoShortDramaClient_ShortDramaLanguageList_Handler,
+		},
+		{
+			MethodName: "ShortDramaEpisodeAdd",
+			Handler:    _GoShortDramaClient_ShortDramaEpisodeAdd_Handler,
+		},
+		{
+			MethodName: "ShortDramaEpisodeBatchAdd",
+			Handler:    _GoShortDramaClient_ShortDramaEpisodeBatchAdd_Handler,
+		},
+		{
+			MethodName: "ShortDramaEpisodeUpdate",
+			Handler:    _GoShortDramaClient_ShortDramaEpisodeUpdate_Handler,
+		},
+		{
+			MethodName: "ShortDramaEpisodeDel",
+			Handler:    _GoShortDramaClient_ShortDramaEpisodeDel_Handler,
+		},
+		{
+			MethodName: "ShortDramaEpisodeGet",
+			Handler:    _GoShortDramaClient_ShortDramaEpisodeGet_Handler,
+		},
+		{
+			MethodName: "ShortDramaEpisodeList",
+			Handler:    _GoShortDramaClient_ShortDramaEpisodeList_Handler,
+		},
+		{
+			MethodName: "ShortDramaEpisodeBatchRefreshUpdateTime",
+			Handler:    _GoShortDramaClient_ShortDramaEpisodeBatchRefreshUpdateTime_Handler,
+		},
+		{
+			MethodName: "ShortDramaEpisodeCount",
+			Handler:    _GoShortDramaClient_ShortDramaEpisodeCount_Handler,
+		},
+		{
+			MethodName: "ShortDramaCheckName",
+			Handler:    _GoShortDramaClient_ShortDramaCheckName_Handler,
+		},
+		{
+			MethodName: "SetTotalStats",
+			Handler:    _GoShortDramaClient_SetTotalStats_Handler,
+		},
+		{
+			MethodName: "ShortDramaStatsPlaysTotalList",
+			Handler:    _GoShortDramaClient_ShortDramaStatsPlaysTotalList_Handler,
+		},
+	},
+	Streams:  []grpc.StreamDesc{},
+	Metadata: "gorpc.proto",
+}
+
+const (
+	GoSysClient_Ping_FullMethodName                           = "/gorpc.GoSysClient/Ping"
+	GoSysClient_SysUserAdd_FullMethodName                     = "/gorpc.GoSysClient/SysUserAdd"
+	GoSysClient_SysUserUpdate_FullMethodName                  = "/gorpc.GoSysClient/SysUserUpdate"
+	GoSysClient_SysUserDelete_FullMethodName                  = "/gorpc.GoSysClient/SysUserDelete"
+	GoSysClient_SysUserGet_FullMethodName                     = "/gorpc.GoSysClient/SysUserGet"
+	GoSysClient_SysUserList_FullMethodName                    = "/gorpc.GoSysClient/SysUserList"
+	GoSysClient_SysUserAddWithRolesAndPerms_FullMethodName    = "/gorpc.GoSysClient/SysUserAddWithRolesAndPerms"
+	GoSysClient_SysUserUpdateWithRolesAndPerms_FullMethodName = "/gorpc.GoSysClient/SysUserUpdateWithRolesAndPerms"
+	GoSysClient_SysUserGetWithRolesAndPerms_FullMethodName    = "/gorpc.GoSysClient/SysUserGetWithRolesAndPerms"
+	GoSysClient_SysUserListWithRolesAndPerms_FullMethodName   = "/gorpc.GoSysClient/SysUserListWithRolesAndPerms"
+	GoSysClient_SysRoleAdd_FullMethodName                     = "/gorpc.GoSysClient/SysRoleAdd"
+	GoSysClient_SysRoleUpdate_FullMethodName                  = "/gorpc.GoSysClient/SysRoleUpdate"
+	GoSysClient_SysRoleDelete_FullMethodName                  = "/gorpc.GoSysClient/SysRoleDelete"
+	GoSysClient_SysRoleGet_FullMethodName                     = "/gorpc.GoSysClient/SysRoleGet"
+	GoSysClient_SysRoleList_FullMethodName                    = "/gorpc.GoSysClient/SysRoleList"
+	GoSysClient_SysRoleAddWithPerms_FullMethodName            = "/gorpc.GoSysClient/SysRoleAddWithPerms"
+	GoSysClient_SysRoleUpdateWithPerms_FullMethodName         = "/gorpc.GoSysClient/SysRoleUpdateWithPerms"
+	GoSysClient_SysRoleGetWithPerms_FullMethodName            = "/gorpc.GoSysClient/SysRoleGetWithPerms"
+	GoSysClient_SysRoleListWithPerms_FullMethodName           = "/gorpc.GoSysClient/SysRoleListWithPerms"
+	GoSysClient_SysPermAdd_FullMethodName                     = "/gorpc.GoSysClient/SysPermAdd"
+	GoSysClient_SysPermUpdate_FullMethodName                  = "/gorpc.GoSysClient/SysPermUpdate"
+	GoSysClient_SysPermDelete_FullMethodName                  = "/gorpc.GoSysClient/SysPermDelete"
+	GoSysClient_SysPermGet_FullMethodName                     = "/gorpc.GoSysClient/SysPermGet"
+	GoSysClient_SysPermList_FullMethodName                    = "/gorpc.GoSysClient/SysPermList"
+	GoSysClient_SysUserRoleAdd_FullMethodName                 = "/gorpc.GoSysClient/SysUserRoleAdd"
+	GoSysClient_SysUserRoleUpdate_FullMethodName              = "/gorpc.GoSysClient/SysUserRoleUpdate"
+	GoSysClient_SysUserRoleDelete_FullMethodName              = "/gorpc.GoSysClient/SysUserRoleDelete"
+	GoSysClient_SysUserRoleGet_FullMethodName                 = "/gorpc.GoSysClient/SysUserRoleGet"
+	GoSysClient_SysUserRoleList_FullMethodName                = "/gorpc.GoSysClient/SysUserRoleList"
+	GoSysClient_SysRolePermAdd_FullMethodName                 = "/gorpc.GoSysClient/SysRolePermAdd"
+	GoSysClient_SysRolePermUpdate_FullMethodName              = "/gorpc.GoSysClient/SysRolePermUpdate"
+	GoSysClient_SysRolePermDelete_FullMethodName              = "/gorpc.GoSysClient/SysRolePermDelete"
+	GoSysClient_SysRolePermGet_FullMethodName                 = "/gorpc.GoSysClient/SysRolePermGet"
+	GoSysClient_SysRolePermList_FullMethodName                = "/gorpc.GoSysClient/SysRolePermList"
+	GoSysClient_SysUserPermAdd_FullMethodName                 = "/gorpc.GoSysClient/SysUserPermAdd"
+	GoSysClient_SysUserPermUpdate_FullMethodName              = "/gorpc.GoSysClient/SysUserPermUpdate"
+	GoSysClient_SysUserPermDelete_FullMethodName              = "/gorpc.GoSysClient/SysUserPermDelete"
+	GoSysClient_SysUserPermGet_FullMethodName                 = "/gorpc.GoSysClient/SysUserPermGet"
+	GoSysClient_SysUserPermList_FullMethodName                = "/gorpc.GoSysClient/SysUserPermList"
+)
+
+// GoSysClientClient is the client API for GoSysClient service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+type GoSysClientClient interface {
+	Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
+	// 用户管理
+	SysUserAdd(ctx context.Context, in *SysUserVo, opts ...grpc.CallOption) (*SysUserVo, error)
+	SysUserUpdate(ctx context.Context, in *SysUserVo, opts ...grpc.CallOption) (*SysUserVo, error)
+	SysUserDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	SysUserGet(ctx context.Context, in *SysUserGetReq, opts ...grpc.CallOption) (*SysUserVo, error)
+	SysUserList(ctx context.Context, in *SysUserListReq, opts ...grpc.CallOption) (*SysUserListResp, error)
+	SysUserAddWithRolesAndPerms(ctx context.Context, in *SysUserWithRoleIdsAndPermRules, opts ...grpc.CallOption) (*SysUserWithRolesAndPerms, error)
+	SysUserUpdateWithRolesAndPerms(ctx context.Context, in *SysUserWithRoleIdsAndPermRules, opts ...grpc.CallOption) (*SysUserWithRolesAndPerms, error)
+	SysUserGetWithRolesAndPerms(ctx context.Context, in *SysUserGetReq, opts ...grpc.CallOption) (*SysUserWithRolesAndPerms, error)
+	SysUserListWithRolesAndPerms(ctx context.Context, in *SysUserListReq, opts ...grpc.CallOption) (*SysUserListWithRolesAndPermsResp, error)
+	// 角色管理
+	SysRoleAdd(ctx context.Context, in *SysRoleVo, opts ...grpc.CallOption) (*SysRoleVo, error)
+	SysRoleUpdate(ctx context.Context, in *SysRoleVo, opts ...grpc.CallOption) (*SysRoleVo, error)
+	SysRoleDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	SysRoleGet(ctx context.Context, in *SysRoleGetReq, opts ...grpc.CallOption) (*SysRoleVo, error)
+	SysRoleList(ctx context.Context, in *SysRoleListReq, opts ...grpc.CallOption) (*SysRoleListResp, error)
+	SysRoleAddWithPerms(ctx context.Context, in *SysRoleWithPermIds, opts ...grpc.CallOption) (*SysRoleWithPerms, error)
+	SysRoleUpdateWithPerms(ctx context.Context, in *SysRoleWithPermIds, opts ...grpc.CallOption) (*SysRoleWithPerms, error)
+	SysRoleGetWithPerms(ctx context.Context, in *SysRoleGetReq, opts ...grpc.CallOption) (*SysRoleWithPerms, error)
+	SysRoleListWithPerms(ctx context.Context, in *SysRoleListReq, opts ...grpc.CallOption) (*SysRoleListWithPermsResp, error)
+	// 权限管理
+	SysPermAdd(ctx context.Context, in *SysPermVo, opts ...grpc.CallOption) (*SysPermVo, error)
+	SysPermUpdate(ctx context.Context, in *SysPermVo, opts ...grpc.CallOption) (*SysPermVo, error)
+	SysPermDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	SysPermGet(ctx context.Context, in *SysPermGetReq, opts ...grpc.CallOption) (*SysPermVo, error)
+	SysPermList(ctx context.Context, in *SysPermListReq, opts ...grpc.CallOption) (*SysPermListResp, error)
+	// 用户角色管理
+	SysUserRoleAdd(ctx context.Context, in *SysUserRoleVo, opts ...grpc.CallOption) (*SysUserRoleVo, error)
+	SysUserRoleUpdate(ctx context.Context, in *SysUserRoleVo, opts ...grpc.CallOption) (*SysUserRoleVo, error)
+	SysUserRoleDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	SysUserRoleGet(ctx context.Context, in *SysUserRoleGetReq, opts ...grpc.CallOption) (*SysUserRoleVo, error)
+	SysUserRoleList(ctx context.Context, in *SysUserRoleListReq, opts ...grpc.CallOption) (*SysUserRoleListResp, error)
+	// 角色权限管理
+	SysRolePermAdd(ctx context.Context, in *SysRolePermVo, opts ...grpc.CallOption) (*SysRolePermVo, error)
+	SysRolePermUpdate(ctx context.Context, in *SysRolePermVo, opts ...grpc.CallOption) (*SysRolePermVo, error)
+	SysRolePermDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	SysRolePermGet(ctx context.Context, in *SysRolePermGetReq, opts ...grpc.CallOption) (*SysRolePermVo, error)
+	SysRolePermList(ctx context.Context, in *SysRolePermListReq, opts ...grpc.CallOption) (*SysRolePermListResp, error)
+	// 用户权限管理
+	SysUserPermAdd(ctx context.Context, in *SysUserPermVo, opts ...grpc.CallOption) (*SysUserPermVo, error)
+	SysUserPermUpdate(ctx context.Context, in *SysUserPermVo, opts ...grpc.CallOption) (*SysUserPermVo, error)
+	SysUserPermDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	SysUserPermGet(ctx context.Context, in *SysUserPermGetReq, opts ...grpc.CallOption) (*SysUserPermVo, error)
+	SysUserPermList(ctx context.Context, in *SysUserPermListReq, opts ...grpc.CallOption) (*SysUserPermListResp, error)
+}
+
+type goSysClientClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewGoSysClientClient(cc grpc.ClientConnInterface) GoSysClientClient {
+	return &goSysClientClient{cc}
+}
+
+func (c *goSysClientClient) Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Response)
+	err := c.cc.Invoke(ctx, GoSysClient_Ping_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserAdd(ctx context.Context, in *SysUserVo, opts ...grpc.CallOption) (*SysUserVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserUpdate(ctx context.Context, in *SysUserVo, opts ...grpc.CallOption) (*SysUserVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserDelete_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserGet(ctx context.Context, in *SysUserGetReq, opts ...grpc.CallOption) (*SysUserVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserList(ctx context.Context, in *SysUserListReq, opts ...grpc.CallOption) (*SysUserListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserListResp)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserAddWithRolesAndPerms(ctx context.Context, in *SysUserWithRoleIdsAndPermRules, opts ...grpc.CallOption) (*SysUserWithRolesAndPerms, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserWithRolesAndPerms)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserAddWithRolesAndPerms_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserUpdateWithRolesAndPerms(ctx context.Context, in *SysUserWithRoleIdsAndPermRules, opts ...grpc.CallOption) (*SysUserWithRolesAndPerms, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserWithRolesAndPerms)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserUpdateWithRolesAndPerms_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserGetWithRolesAndPerms(ctx context.Context, in *SysUserGetReq, opts ...grpc.CallOption) (*SysUserWithRolesAndPerms, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserWithRolesAndPerms)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserGetWithRolesAndPerms_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserListWithRolesAndPerms(ctx context.Context, in *SysUserListReq, opts ...grpc.CallOption) (*SysUserListWithRolesAndPermsResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserListWithRolesAndPermsResp)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserListWithRolesAndPerms_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysRoleAdd(ctx context.Context, in *SysRoleVo, opts ...grpc.CallOption) (*SysRoleVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysRoleVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysRoleAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysRoleUpdate(ctx context.Context, in *SysRoleVo, opts ...grpc.CallOption) (*SysRoleVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysRoleVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysRoleUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysRoleDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoSysClient_SysRoleDelete_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysRoleGet(ctx context.Context, in *SysRoleGetReq, opts ...grpc.CallOption) (*SysRoleVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysRoleVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysRoleGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysRoleList(ctx context.Context, in *SysRoleListReq, opts ...grpc.CallOption) (*SysRoleListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysRoleListResp)
+	err := c.cc.Invoke(ctx, GoSysClient_SysRoleList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysRoleAddWithPerms(ctx context.Context, in *SysRoleWithPermIds, opts ...grpc.CallOption) (*SysRoleWithPerms, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysRoleWithPerms)
+	err := c.cc.Invoke(ctx, GoSysClient_SysRoleAddWithPerms_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysRoleUpdateWithPerms(ctx context.Context, in *SysRoleWithPermIds, opts ...grpc.CallOption) (*SysRoleWithPerms, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysRoleWithPerms)
+	err := c.cc.Invoke(ctx, GoSysClient_SysRoleUpdateWithPerms_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysRoleGetWithPerms(ctx context.Context, in *SysRoleGetReq, opts ...grpc.CallOption) (*SysRoleWithPerms, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysRoleWithPerms)
+	err := c.cc.Invoke(ctx, GoSysClient_SysRoleGetWithPerms_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysRoleListWithPerms(ctx context.Context, in *SysRoleListReq, opts ...grpc.CallOption) (*SysRoleListWithPermsResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysRoleListWithPermsResp)
+	err := c.cc.Invoke(ctx, GoSysClient_SysRoleListWithPerms_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysPermAdd(ctx context.Context, in *SysPermVo, opts ...grpc.CallOption) (*SysPermVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysPermVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysPermAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysPermUpdate(ctx context.Context, in *SysPermVo, opts ...grpc.CallOption) (*SysPermVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysPermVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysPermUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysPermDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoSysClient_SysPermDelete_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysPermGet(ctx context.Context, in *SysPermGetReq, opts ...grpc.CallOption) (*SysPermVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysPermVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysPermGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysPermList(ctx context.Context, in *SysPermListReq, opts ...grpc.CallOption) (*SysPermListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysPermListResp)
+	err := c.cc.Invoke(ctx, GoSysClient_SysPermList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserRoleAdd(ctx context.Context, in *SysUserRoleVo, opts ...grpc.CallOption) (*SysUserRoleVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserRoleVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserRoleAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserRoleUpdate(ctx context.Context, in *SysUserRoleVo, opts ...grpc.CallOption) (*SysUserRoleVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserRoleVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserRoleUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserRoleDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserRoleDelete_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserRoleGet(ctx context.Context, in *SysUserRoleGetReq, opts ...grpc.CallOption) (*SysUserRoleVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserRoleVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserRoleGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserRoleList(ctx context.Context, in *SysUserRoleListReq, opts ...grpc.CallOption) (*SysUserRoleListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserRoleListResp)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserRoleList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysRolePermAdd(ctx context.Context, in *SysRolePermVo, opts ...grpc.CallOption) (*SysRolePermVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysRolePermVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysRolePermAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysRolePermUpdate(ctx context.Context, in *SysRolePermVo, opts ...grpc.CallOption) (*SysRolePermVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysRolePermVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysRolePermUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysRolePermDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoSysClient_SysRolePermDelete_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysRolePermGet(ctx context.Context, in *SysRolePermGetReq, opts ...grpc.CallOption) (*SysRolePermVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysRolePermVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysRolePermGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysRolePermList(ctx context.Context, in *SysRolePermListReq, opts ...grpc.CallOption) (*SysRolePermListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysRolePermListResp)
+	err := c.cc.Invoke(ctx, GoSysClient_SysRolePermList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserPermAdd(ctx context.Context, in *SysUserPermVo, opts ...grpc.CallOption) (*SysUserPermVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserPermVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserPermAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserPermUpdate(ctx context.Context, in *SysUserPermVo, opts ...grpc.CallOption) (*SysUserPermVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserPermVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserPermUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserPermDelete(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserPermDelete_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserPermGet(ctx context.Context, in *SysUserPermGetReq, opts ...grpc.CallOption) (*SysUserPermVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserPermVo)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserPermGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goSysClientClient) SysUserPermList(ctx context.Context, in *SysUserPermListReq, opts ...grpc.CallOption) (*SysUserPermListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SysUserPermListResp)
+	err := c.cc.Invoke(ctx, GoSysClient_SysUserPermList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// GoSysClientServer is the server API for GoSysClient service.
+// All implementations must embed UnimplementedGoSysClientServer
+// for forward compatibility.
+type GoSysClientServer interface {
+	Ping(context.Context, *Request) (*Response, error)
+	// 用户管理
+	SysUserAdd(context.Context, *SysUserVo) (*SysUserVo, error)
+	SysUserUpdate(context.Context, *SysUserVo) (*SysUserVo, error)
+	SysUserDelete(context.Context, *Ids) (*Empty, error)
+	SysUserGet(context.Context, *SysUserGetReq) (*SysUserVo, error)
+	SysUserList(context.Context, *SysUserListReq) (*SysUserListResp, error)
+	SysUserAddWithRolesAndPerms(context.Context, *SysUserWithRoleIdsAndPermRules) (*SysUserWithRolesAndPerms, error)
+	SysUserUpdateWithRolesAndPerms(context.Context, *SysUserWithRoleIdsAndPermRules) (*SysUserWithRolesAndPerms, error)
+	SysUserGetWithRolesAndPerms(context.Context, *SysUserGetReq) (*SysUserWithRolesAndPerms, error)
+	SysUserListWithRolesAndPerms(context.Context, *SysUserListReq) (*SysUserListWithRolesAndPermsResp, error)
+	// 角色管理
+	SysRoleAdd(context.Context, *SysRoleVo) (*SysRoleVo, error)
+	SysRoleUpdate(context.Context, *SysRoleVo) (*SysRoleVo, error)
+	SysRoleDelete(context.Context, *Ids) (*Empty, error)
+	SysRoleGet(context.Context, *SysRoleGetReq) (*SysRoleVo, error)
+	SysRoleList(context.Context, *SysRoleListReq) (*SysRoleListResp, error)
+	SysRoleAddWithPerms(context.Context, *SysRoleWithPermIds) (*SysRoleWithPerms, error)
+	SysRoleUpdateWithPerms(context.Context, *SysRoleWithPermIds) (*SysRoleWithPerms, error)
+	SysRoleGetWithPerms(context.Context, *SysRoleGetReq) (*SysRoleWithPerms, error)
+	SysRoleListWithPerms(context.Context, *SysRoleListReq) (*SysRoleListWithPermsResp, error)
+	// 权限管理
+	SysPermAdd(context.Context, *SysPermVo) (*SysPermVo, error)
+	SysPermUpdate(context.Context, *SysPermVo) (*SysPermVo, error)
+	SysPermDelete(context.Context, *Ids) (*Empty, error)
+	SysPermGet(context.Context, *SysPermGetReq) (*SysPermVo, error)
+	SysPermList(context.Context, *SysPermListReq) (*SysPermListResp, error)
+	// 用户角色管理
+	SysUserRoleAdd(context.Context, *SysUserRoleVo) (*SysUserRoleVo, error)
+	SysUserRoleUpdate(context.Context, *SysUserRoleVo) (*SysUserRoleVo, error)
+	SysUserRoleDelete(context.Context, *Ids) (*Empty, error)
+	SysUserRoleGet(context.Context, *SysUserRoleGetReq) (*SysUserRoleVo, error)
+	SysUserRoleList(context.Context, *SysUserRoleListReq) (*SysUserRoleListResp, error)
+	// 角色权限管理
+	SysRolePermAdd(context.Context, *SysRolePermVo) (*SysRolePermVo, error)
+	SysRolePermUpdate(context.Context, *SysRolePermVo) (*SysRolePermVo, error)
+	SysRolePermDelete(context.Context, *Ids) (*Empty, error)
+	SysRolePermGet(context.Context, *SysRolePermGetReq) (*SysRolePermVo, error)
+	SysRolePermList(context.Context, *SysRolePermListReq) (*SysRolePermListResp, error)
+	// 用户权限管理
+	SysUserPermAdd(context.Context, *SysUserPermVo) (*SysUserPermVo, error)
+	SysUserPermUpdate(context.Context, *SysUserPermVo) (*SysUserPermVo, error)
+	SysUserPermDelete(context.Context, *Ids) (*Empty, error)
+	SysUserPermGet(context.Context, *SysUserPermGetReq) (*SysUserPermVo, error)
+	SysUserPermList(context.Context, *SysUserPermListReq) (*SysUserPermListResp, error)
+	mustEmbedUnimplementedGoSysClientServer()
+}
+
+// UnimplementedGoSysClientServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedGoSysClientServer struct{}
+
+func (UnimplementedGoSysClientServer) Ping(context.Context, *Request) (*Response, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserAdd(context.Context, *SysUserVo) (*SysUserVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserAdd not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserUpdate(context.Context, *SysUserVo) (*SysUserVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserUpdate not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserDelete(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserDelete not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserGet(context.Context, *SysUserGetReq) (*SysUserVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserGet not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserList(context.Context, *SysUserListReq) (*SysUserListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserList not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserAddWithRolesAndPerms(context.Context, *SysUserWithRoleIdsAndPermRules) (*SysUserWithRolesAndPerms, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserAddWithRolesAndPerms not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserUpdateWithRolesAndPerms(context.Context, *SysUserWithRoleIdsAndPermRules) (*SysUserWithRolesAndPerms, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserUpdateWithRolesAndPerms not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserGetWithRolesAndPerms(context.Context, *SysUserGetReq) (*SysUserWithRolesAndPerms, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserGetWithRolesAndPerms not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserListWithRolesAndPerms(context.Context, *SysUserListReq) (*SysUserListWithRolesAndPermsResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserListWithRolesAndPerms not implemented")
+}
+func (UnimplementedGoSysClientServer) SysRoleAdd(context.Context, *SysRoleVo) (*SysRoleVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysRoleAdd not implemented")
+}
+func (UnimplementedGoSysClientServer) SysRoleUpdate(context.Context, *SysRoleVo) (*SysRoleVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysRoleUpdate not implemented")
+}
+func (UnimplementedGoSysClientServer) SysRoleDelete(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysRoleDelete not implemented")
+}
+func (UnimplementedGoSysClientServer) SysRoleGet(context.Context, *SysRoleGetReq) (*SysRoleVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysRoleGet not implemented")
+}
+func (UnimplementedGoSysClientServer) SysRoleList(context.Context, *SysRoleListReq) (*SysRoleListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysRoleList not implemented")
+}
+func (UnimplementedGoSysClientServer) SysRoleAddWithPerms(context.Context, *SysRoleWithPermIds) (*SysRoleWithPerms, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysRoleAddWithPerms not implemented")
+}
+func (UnimplementedGoSysClientServer) SysRoleUpdateWithPerms(context.Context, *SysRoleWithPermIds) (*SysRoleWithPerms, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysRoleUpdateWithPerms not implemented")
+}
+func (UnimplementedGoSysClientServer) SysRoleGetWithPerms(context.Context, *SysRoleGetReq) (*SysRoleWithPerms, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysRoleGetWithPerms not implemented")
+}
+func (UnimplementedGoSysClientServer) SysRoleListWithPerms(context.Context, *SysRoleListReq) (*SysRoleListWithPermsResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysRoleListWithPerms not implemented")
+}
+func (UnimplementedGoSysClientServer) SysPermAdd(context.Context, *SysPermVo) (*SysPermVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysPermAdd not implemented")
+}
+func (UnimplementedGoSysClientServer) SysPermUpdate(context.Context, *SysPermVo) (*SysPermVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysPermUpdate not implemented")
+}
+func (UnimplementedGoSysClientServer) SysPermDelete(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysPermDelete not implemented")
+}
+func (UnimplementedGoSysClientServer) SysPermGet(context.Context, *SysPermGetReq) (*SysPermVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysPermGet not implemented")
+}
+func (UnimplementedGoSysClientServer) SysPermList(context.Context, *SysPermListReq) (*SysPermListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysPermList not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserRoleAdd(context.Context, *SysUserRoleVo) (*SysUserRoleVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserRoleAdd not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserRoleUpdate(context.Context, *SysUserRoleVo) (*SysUserRoleVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserRoleUpdate not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserRoleDelete(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserRoleDelete not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserRoleGet(context.Context, *SysUserRoleGetReq) (*SysUserRoleVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserRoleGet not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserRoleList(context.Context, *SysUserRoleListReq) (*SysUserRoleListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserRoleList not implemented")
+}
+func (UnimplementedGoSysClientServer) SysRolePermAdd(context.Context, *SysRolePermVo) (*SysRolePermVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysRolePermAdd not implemented")
+}
+func (UnimplementedGoSysClientServer) SysRolePermUpdate(context.Context, *SysRolePermVo) (*SysRolePermVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysRolePermUpdate not implemented")
+}
+func (UnimplementedGoSysClientServer) SysRolePermDelete(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysRolePermDelete not implemented")
+}
+func (UnimplementedGoSysClientServer) SysRolePermGet(context.Context, *SysRolePermGetReq) (*SysRolePermVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysRolePermGet not implemented")
+}
+func (UnimplementedGoSysClientServer) SysRolePermList(context.Context, *SysRolePermListReq) (*SysRolePermListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysRolePermList not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserPermAdd(context.Context, *SysUserPermVo) (*SysUserPermVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserPermAdd not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserPermUpdate(context.Context, *SysUserPermVo) (*SysUserPermVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserPermUpdate not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserPermDelete(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserPermDelete not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserPermGet(context.Context, *SysUserPermGetReq) (*SysUserPermVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserPermGet not implemented")
+}
+func (UnimplementedGoSysClientServer) SysUserPermList(context.Context, *SysUserPermListReq) (*SysUserPermListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SysUserPermList not implemented")
+}
+func (UnimplementedGoSysClientServer) mustEmbedUnimplementedGoSysClientServer() {}
+func (UnimplementedGoSysClientServer) testEmbeddedByValue()                     {}
+
+// UnsafeGoSysClientServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to GoSysClientServer will
+// result in compilation errors.
+type UnsafeGoSysClientServer interface {
+	mustEmbedUnimplementedGoSysClientServer()
+}
+
+func RegisterGoSysClientServer(s grpc.ServiceRegistrar, srv GoSysClientServer) {
+	// If the following call pancis, it indicates UnimplementedGoSysClientServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
+	s.RegisterService(&GoSysClient_ServiceDesc, srv)
+}
+
+func _GoSysClient_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Request)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).Ping(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_Ping_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).Ping(ctx, req.(*Request))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserAdd(ctx, req.(*SysUserVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserUpdate(ctx, req.(*SysUserVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserDelete(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserDelete_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserDelete(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserGet(ctx, req.(*SysUserGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserList(ctx, req.(*SysUserListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserAddWithRolesAndPerms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserWithRoleIdsAndPermRules)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserAddWithRolesAndPerms(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserAddWithRolesAndPerms_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserAddWithRolesAndPerms(ctx, req.(*SysUserWithRoleIdsAndPermRules))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserUpdateWithRolesAndPerms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserWithRoleIdsAndPermRules)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserUpdateWithRolesAndPerms(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserUpdateWithRolesAndPerms_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserUpdateWithRolesAndPerms(ctx, req.(*SysUserWithRoleIdsAndPermRules))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserGetWithRolesAndPerms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserGetWithRolesAndPerms(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserGetWithRolesAndPerms_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserGetWithRolesAndPerms(ctx, req.(*SysUserGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserListWithRolesAndPerms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserListWithRolesAndPerms(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserListWithRolesAndPerms_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserListWithRolesAndPerms(ctx, req.(*SysUserListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysRoleAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysRoleVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysRoleAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysRoleAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysRoleAdd(ctx, req.(*SysRoleVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysRoleUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysRoleVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysRoleUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysRoleUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysRoleUpdate(ctx, req.(*SysRoleVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysRoleDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysRoleDelete(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysRoleDelete_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysRoleDelete(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysRoleGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysRoleGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysRoleGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysRoleGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysRoleGet(ctx, req.(*SysRoleGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysRoleList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysRoleListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysRoleList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysRoleList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysRoleList(ctx, req.(*SysRoleListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysRoleAddWithPerms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysRoleWithPermIds)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysRoleAddWithPerms(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysRoleAddWithPerms_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysRoleAddWithPerms(ctx, req.(*SysRoleWithPermIds))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysRoleUpdateWithPerms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysRoleWithPermIds)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysRoleUpdateWithPerms(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysRoleUpdateWithPerms_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysRoleUpdateWithPerms(ctx, req.(*SysRoleWithPermIds))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysRoleGetWithPerms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysRoleGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysRoleGetWithPerms(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysRoleGetWithPerms_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysRoleGetWithPerms(ctx, req.(*SysRoleGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysRoleListWithPerms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysRoleListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysRoleListWithPerms(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysRoleListWithPerms_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysRoleListWithPerms(ctx, req.(*SysRoleListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysPermAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysPermVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysPermAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysPermAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysPermAdd(ctx, req.(*SysPermVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysPermUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysPermVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysPermUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysPermUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysPermUpdate(ctx, req.(*SysPermVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysPermDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysPermDelete(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysPermDelete_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysPermDelete(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysPermGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysPermGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysPermGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysPermGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysPermGet(ctx, req.(*SysPermGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysPermList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysPermListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysPermList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysPermList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysPermList(ctx, req.(*SysPermListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserRoleAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserRoleVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserRoleAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserRoleAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserRoleAdd(ctx, req.(*SysUserRoleVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserRoleUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserRoleVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserRoleUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserRoleUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserRoleUpdate(ctx, req.(*SysUserRoleVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserRoleDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserRoleDelete(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserRoleDelete_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserRoleDelete(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserRoleGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserRoleGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserRoleGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserRoleGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserRoleGet(ctx, req.(*SysUserRoleGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserRoleList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserRoleListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserRoleList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserRoleList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserRoleList(ctx, req.(*SysUserRoleListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysRolePermAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysRolePermVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysRolePermAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysRolePermAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysRolePermAdd(ctx, req.(*SysRolePermVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysRolePermUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysRolePermVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysRolePermUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysRolePermUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysRolePermUpdate(ctx, req.(*SysRolePermVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysRolePermDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysRolePermDelete(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysRolePermDelete_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysRolePermDelete(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysRolePermGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysRolePermGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysRolePermGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysRolePermGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysRolePermGet(ctx, req.(*SysRolePermGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysRolePermList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysRolePermListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysRolePermList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysRolePermList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysRolePermList(ctx, req.(*SysRolePermListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserPermAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserPermVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserPermAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserPermAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserPermAdd(ctx, req.(*SysUserPermVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserPermUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserPermVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserPermUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserPermUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserPermUpdate(ctx, req.(*SysUserPermVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserPermDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserPermDelete(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserPermDelete_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserPermDelete(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserPermGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserPermGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserPermGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserPermGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserPermGet(ctx, req.(*SysUserPermGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoSysClient_SysUserPermList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SysUserPermListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoSysClientServer).SysUserPermList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoSysClient_SysUserPermList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoSysClientServer).SysUserPermList(ctx, req.(*SysUserPermListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// GoSysClient_ServiceDesc is the grpc.ServiceDesc for GoSysClient service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var GoSysClient_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "gorpc.GoSysClient",
+	HandlerType: (*GoSysClientServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "Ping",
+			Handler:    _GoSysClient_Ping_Handler,
+		},
+		{
+			MethodName: "SysUserAdd",
+			Handler:    _GoSysClient_SysUserAdd_Handler,
+		},
+		{
+			MethodName: "SysUserUpdate",
+			Handler:    _GoSysClient_SysUserUpdate_Handler,
+		},
+		{
+			MethodName: "SysUserDelete",
+			Handler:    _GoSysClient_SysUserDelete_Handler,
+		},
+		{
+			MethodName: "SysUserGet",
+			Handler:    _GoSysClient_SysUserGet_Handler,
+		},
+		{
+			MethodName: "SysUserList",
+			Handler:    _GoSysClient_SysUserList_Handler,
+		},
+		{
+			MethodName: "SysUserAddWithRolesAndPerms",
+			Handler:    _GoSysClient_SysUserAddWithRolesAndPerms_Handler,
+		},
+		{
+			MethodName: "SysUserUpdateWithRolesAndPerms",
+			Handler:    _GoSysClient_SysUserUpdateWithRolesAndPerms_Handler,
+		},
+		{
+			MethodName: "SysUserGetWithRolesAndPerms",
+			Handler:    _GoSysClient_SysUserGetWithRolesAndPerms_Handler,
+		},
+		{
+			MethodName: "SysUserListWithRolesAndPerms",
+			Handler:    _GoSysClient_SysUserListWithRolesAndPerms_Handler,
+		},
+		{
+			MethodName: "SysRoleAdd",
+			Handler:    _GoSysClient_SysRoleAdd_Handler,
+		},
+		{
+			MethodName: "SysRoleUpdate",
+			Handler:    _GoSysClient_SysRoleUpdate_Handler,
+		},
+		{
+			MethodName: "SysRoleDelete",
+			Handler:    _GoSysClient_SysRoleDelete_Handler,
+		},
+		{
+			MethodName: "SysRoleGet",
+			Handler:    _GoSysClient_SysRoleGet_Handler,
+		},
+		{
+			MethodName: "SysRoleList",
+			Handler:    _GoSysClient_SysRoleList_Handler,
+		},
+		{
+			MethodName: "SysRoleAddWithPerms",
+			Handler:    _GoSysClient_SysRoleAddWithPerms_Handler,
+		},
+		{
+			MethodName: "SysRoleUpdateWithPerms",
+			Handler:    _GoSysClient_SysRoleUpdateWithPerms_Handler,
+		},
+		{
+			MethodName: "SysRoleGetWithPerms",
+			Handler:    _GoSysClient_SysRoleGetWithPerms_Handler,
+		},
+		{
+			MethodName: "SysRoleListWithPerms",
+			Handler:    _GoSysClient_SysRoleListWithPerms_Handler,
+		},
+		{
+			MethodName: "SysPermAdd",
+			Handler:    _GoSysClient_SysPermAdd_Handler,
+		},
+		{
+			MethodName: "SysPermUpdate",
+			Handler:    _GoSysClient_SysPermUpdate_Handler,
+		},
+		{
+			MethodName: "SysPermDelete",
+			Handler:    _GoSysClient_SysPermDelete_Handler,
+		},
+		{
+			MethodName: "SysPermGet",
+			Handler:    _GoSysClient_SysPermGet_Handler,
+		},
+		{
+			MethodName: "SysPermList",
+			Handler:    _GoSysClient_SysPermList_Handler,
+		},
+		{
+			MethodName: "SysUserRoleAdd",
+			Handler:    _GoSysClient_SysUserRoleAdd_Handler,
+		},
+		{
+			MethodName: "SysUserRoleUpdate",
+			Handler:    _GoSysClient_SysUserRoleUpdate_Handler,
+		},
+		{
+			MethodName: "SysUserRoleDelete",
+			Handler:    _GoSysClient_SysUserRoleDelete_Handler,
+		},
+		{
+			MethodName: "SysUserRoleGet",
+			Handler:    _GoSysClient_SysUserRoleGet_Handler,
+		},
+		{
+			MethodName: "SysUserRoleList",
+			Handler:    _GoSysClient_SysUserRoleList_Handler,
+		},
+		{
+			MethodName: "SysRolePermAdd",
+			Handler:    _GoSysClient_SysRolePermAdd_Handler,
+		},
+		{
+			MethodName: "SysRolePermUpdate",
+			Handler:    _GoSysClient_SysRolePermUpdate_Handler,
+		},
+		{
+			MethodName: "SysRolePermDelete",
+			Handler:    _GoSysClient_SysRolePermDelete_Handler,
+		},
+		{
+			MethodName: "SysRolePermGet",
+			Handler:    _GoSysClient_SysRolePermGet_Handler,
+		},
+		{
+			MethodName: "SysRolePermList",
+			Handler:    _GoSysClient_SysRolePermList_Handler,
+		},
+		{
+			MethodName: "SysUserPermAdd",
+			Handler:    _GoSysClient_SysUserPermAdd_Handler,
+		},
+		{
+			MethodName: "SysUserPermUpdate",
+			Handler:    _GoSysClient_SysUserPermUpdate_Handler,
+		},
+		{
+			MethodName: "SysUserPermDelete",
+			Handler:    _GoSysClient_SysUserPermDelete_Handler,
+		},
+		{
+			MethodName: "SysUserPermGet",
+			Handler:    _GoSysClient_SysUserPermGet_Handler,
+		},
+		{
+			MethodName: "SysUserPermList",
+			Handler:    _GoSysClient_SysUserPermList_Handler,
+		},
+	},
+	Streams:  []grpc.StreamDesc{},
+	Metadata: "gorpc.proto",
+}
+
+const (
+	GoUserClient_Ping_FullMethodName                = "/gorpc.GoUserClient/Ping"
+	GoUserClient_UserAppConfigAdd_FullMethodName    = "/gorpc.GoUserClient/UserAppConfigAdd"
+	GoUserClient_UserAppConfigUpdate_FullMethodName = "/gorpc.GoUserClient/UserAppConfigUpdate"
+	GoUserClient_UserAppConfigDel_FullMethodName    = "/gorpc.GoUserClient/UserAppConfigDel"
+	GoUserClient_UserAppConfigGet_FullMethodName    = "/gorpc.GoUserClient/UserAppConfigGet"
+	GoUserClient_UserAppConfigList_FullMethodName   = "/gorpc.GoUserClient/UserAppConfigList"
+	GoUserClient_DeviceAdd_FullMethodName           = "/gorpc.GoUserClient/DeviceAdd"
+	GoUserClient_DeviceUpdate_FullMethodName        = "/gorpc.GoUserClient/DeviceUpdate"
+	GoUserClient_DeviceDel_FullMethodName           = "/gorpc.GoUserClient/DeviceDel"
+	GoUserClient_DeviceGet_FullMethodName           = "/gorpc.GoUserClient/DeviceGet"
+	GoUserClient_DeviceList_FullMethodName          = "/gorpc.GoUserClient/DeviceList"
+	GoUserClient_AccountAdd_FullMethodName          = "/gorpc.GoUserClient/AccountAdd"
+	GoUserClient_AccountUpdate_FullMethodName       = "/gorpc.GoUserClient/AccountUpdate"
+	GoUserClient_AccountDel_FullMethodName          = "/gorpc.GoUserClient/AccountDel"
+	GoUserClient_AccountGet_FullMethodName          = "/gorpc.GoUserClient/AccountGet"
+	GoUserClient_AccountList_FullMethodName         = "/gorpc.GoUserClient/AccountList"
+	GoUserClient_AccountDeviceAdd_FullMethodName    = "/gorpc.GoUserClient/AccountDeviceAdd"
+	GoUserClient_AccountDeviceUpdate_FullMethodName = "/gorpc.GoUserClient/AccountDeviceUpdate"
+	GoUserClient_AccountDeviceDel_FullMethodName    = "/gorpc.GoUserClient/AccountDeviceDel"
+	GoUserClient_AccountDeviceGet_FullMethodName    = "/gorpc.GoUserClient/AccountDeviceGet"
+	GoUserClient_AccountDeviceList_FullMethodName   = "/gorpc.GoUserClient/AccountDeviceList"
+)
+
+// GoUserClientClient is the client API for GoUserClient service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+//
+// 用户模块
+type GoUserClientClient interface {
+	Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
+	// 用户app配置管理(ring)
+	UserAppConfigAdd(ctx context.Context, in *UserAppConfigVo, opts ...grpc.CallOption) (*UserAppConfigVo, error)
+	UserAppConfigUpdate(ctx context.Context, in *UserAppConfigVo, opts ...grpc.CallOption) (*UserAppConfigVo, error)
+	UserAppConfigDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	UserAppConfigGet(ctx context.Context, in *UserAppConfigGetReq, opts ...grpc.CallOption) (*UserAppConfigVo, error)
+	UserAppConfigList(ctx context.Context, in *UserAppConfigListReq, opts ...grpc.CallOption) (*UserAppConfigListRes, error)
+	// 设备管理
+	DeviceAdd(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error)
+	DeviceUpdate(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error)
+	DeviceDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	DeviceGet(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error)
+	DeviceList(ctx context.Context, in *DeviceListReq, opts ...grpc.CallOption) (*DeviceListRes, error)
+	// Account
+	AccountAdd(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error)
+	AccountUpdate(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error)
+	AccountDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	AccountGet(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error)
+	AccountList(ctx context.Context, in *AccountListReq, opts ...grpc.CallOption) (*AccountListResp, error)
+	// AccountDevice
+	AccountDeviceAdd(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error)
+	AccountDeviceUpdate(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error)
+	AccountDeviceDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	AccountDeviceGet(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error)
+	AccountDeviceList(ctx context.Context, in *AccountDeviceListReq, opts ...grpc.CallOption) (*AccountDeviceListResp, error)
+}
+
+type goUserClientClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewGoUserClientClient(cc grpc.ClientConnInterface) GoUserClientClient {
+	return &goUserClientClient{cc}
+}
+
+func (c *goUserClientClient) Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Response)
+	err := c.cc.Invoke(ctx, GoUserClient_Ping_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) UserAppConfigAdd(ctx context.Context, in *UserAppConfigVo, opts ...grpc.CallOption) (*UserAppConfigVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UserAppConfigVo)
+	err := c.cc.Invoke(ctx, GoUserClient_UserAppConfigAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) UserAppConfigUpdate(ctx context.Context, in *UserAppConfigVo, opts ...grpc.CallOption) (*UserAppConfigVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UserAppConfigVo)
+	err := c.cc.Invoke(ctx, GoUserClient_UserAppConfigUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) UserAppConfigDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoUserClient_UserAppConfigDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) UserAppConfigGet(ctx context.Context, in *UserAppConfigGetReq, opts ...grpc.CallOption) (*UserAppConfigVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UserAppConfigVo)
+	err := c.cc.Invoke(ctx, GoUserClient_UserAppConfigGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) UserAppConfigList(ctx context.Context, in *UserAppConfigListReq, opts ...grpc.CallOption) (*UserAppConfigListRes, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(UserAppConfigListRes)
+	err := c.cc.Invoke(ctx, GoUserClient_UserAppConfigList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) DeviceAdd(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeviceVo)
+	err := c.cc.Invoke(ctx, GoUserClient_DeviceAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) DeviceUpdate(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeviceVo)
+	err := c.cc.Invoke(ctx, GoUserClient_DeviceUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) DeviceDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoUserClient_DeviceDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) DeviceGet(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeviceVo)
+	err := c.cc.Invoke(ctx, GoUserClient_DeviceGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) DeviceList(ctx context.Context, in *DeviceListReq, opts ...grpc.CallOption) (*DeviceListRes, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeviceListRes)
+	err := c.cc.Invoke(ctx, GoUserClient_DeviceList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) AccountAdd(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AccountVo)
+	err := c.cc.Invoke(ctx, GoUserClient_AccountAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) AccountUpdate(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AccountVo)
+	err := c.cc.Invoke(ctx, GoUserClient_AccountUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) AccountDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoUserClient_AccountDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) AccountGet(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AccountVo)
+	err := c.cc.Invoke(ctx, GoUserClient_AccountGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) AccountList(ctx context.Context, in *AccountListReq, opts ...grpc.CallOption) (*AccountListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AccountListResp)
+	err := c.cc.Invoke(ctx, GoUserClient_AccountList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) AccountDeviceAdd(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AccountDeviceVo)
+	err := c.cc.Invoke(ctx, GoUserClient_AccountDeviceAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) AccountDeviceUpdate(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AccountDeviceVo)
+	err := c.cc.Invoke(ctx, GoUserClient_AccountDeviceUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) AccountDeviceDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoUserClient_AccountDeviceDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) AccountDeviceGet(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AccountDeviceVo)
+	err := c.cc.Invoke(ctx, GoUserClient_AccountDeviceGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goUserClientClient) AccountDeviceList(ctx context.Context, in *AccountDeviceListReq, opts ...grpc.CallOption) (*AccountDeviceListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(AccountDeviceListResp)
+	err := c.cc.Invoke(ctx, GoUserClient_AccountDeviceList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// GoUserClientServer is the server API for GoUserClient service.
+// All implementations must embed UnimplementedGoUserClientServer
+// for forward compatibility.
+//
+// 用户模块
+type GoUserClientServer interface {
+	Ping(context.Context, *Request) (*Response, error)
+	// 用户app配置管理(ring)
+	UserAppConfigAdd(context.Context, *UserAppConfigVo) (*UserAppConfigVo, error)
+	UserAppConfigUpdate(context.Context, *UserAppConfigVo) (*UserAppConfigVo, error)
+	UserAppConfigDel(context.Context, *Ids) (*Empty, error)
+	UserAppConfigGet(context.Context, *UserAppConfigGetReq) (*UserAppConfigVo, error)
+	UserAppConfigList(context.Context, *UserAppConfigListReq) (*UserAppConfigListRes, error)
+	// 设备管理
+	DeviceAdd(context.Context, *DeviceVo) (*DeviceVo, error)
+	DeviceUpdate(context.Context, *DeviceVo) (*DeviceVo, error)
+	DeviceDel(context.Context, *Ids) (*Empty, error)
+	DeviceGet(context.Context, *DeviceVo) (*DeviceVo, error)
+	DeviceList(context.Context, *DeviceListReq) (*DeviceListRes, error)
+	// Account
+	AccountAdd(context.Context, *AccountVo) (*AccountVo, error)
+	AccountUpdate(context.Context, *AccountVo) (*AccountVo, error)
+	AccountDel(context.Context, *Ids) (*Empty, error)
+	AccountGet(context.Context, *AccountVo) (*AccountVo, error)
+	AccountList(context.Context, *AccountListReq) (*AccountListResp, error)
+	// AccountDevice
+	AccountDeviceAdd(context.Context, *AccountDeviceVo) (*AccountDeviceVo, error)
+	AccountDeviceUpdate(context.Context, *AccountDeviceVo) (*AccountDeviceVo, error)
+	AccountDeviceDel(context.Context, *Ids) (*Empty, error)
+	AccountDeviceGet(context.Context, *AccountDeviceVo) (*AccountDeviceVo, error)
+	AccountDeviceList(context.Context, *AccountDeviceListReq) (*AccountDeviceListResp, error)
+	mustEmbedUnimplementedGoUserClientServer()
+}
+
+// UnimplementedGoUserClientServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedGoUserClientServer struct{}
+
+func (UnimplementedGoUserClientServer) Ping(context.Context, *Request) (*Response, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented")
+}
+func (UnimplementedGoUserClientServer) UserAppConfigAdd(context.Context, *UserAppConfigVo) (*UserAppConfigVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UserAppConfigAdd not implemented")
+}
+func (UnimplementedGoUserClientServer) UserAppConfigUpdate(context.Context, *UserAppConfigVo) (*UserAppConfigVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UserAppConfigUpdate not implemented")
+}
+func (UnimplementedGoUserClientServer) UserAppConfigDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UserAppConfigDel not implemented")
+}
+func (UnimplementedGoUserClientServer) UserAppConfigGet(context.Context, *UserAppConfigGetReq) (*UserAppConfigVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UserAppConfigGet not implemented")
+}
+func (UnimplementedGoUserClientServer) UserAppConfigList(context.Context, *UserAppConfigListReq) (*UserAppConfigListRes, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UserAppConfigList not implemented")
+}
+func (UnimplementedGoUserClientServer) DeviceAdd(context.Context, *DeviceVo) (*DeviceVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DeviceAdd not implemented")
+}
+func (UnimplementedGoUserClientServer) DeviceUpdate(context.Context, *DeviceVo) (*DeviceVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DeviceUpdate not implemented")
+}
+func (UnimplementedGoUserClientServer) DeviceDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DeviceDel not implemented")
+}
+func (UnimplementedGoUserClientServer) DeviceGet(context.Context, *DeviceVo) (*DeviceVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DeviceGet not implemented")
+}
+func (UnimplementedGoUserClientServer) DeviceList(context.Context, *DeviceListReq) (*DeviceListRes, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DeviceList not implemented")
+}
+func (UnimplementedGoUserClientServer) AccountAdd(context.Context, *AccountVo) (*AccountVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AccountAdd not implemented")
+}
+func (UnimplementedGoUserClientServer) AccountUpdate(context.Context, *AccountVo) (*AccountVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AccountUpdate not implemented")
+}
+func (UnimplementedGoUserClientServer) AccountDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AccountDel not implemented")
+}
+func (UnimplementedGoUserClientServer) AccountGet(context.Context, *AccountVo) (*AccountVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AccountGet not implemented")
+}
+func (UnimplementedGoUserClientServer) AccountList(context.Context, *AccountListReq) (*AccountListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AccountList not implemented")
+}
+func (UnimplementedGoUserClientServer) AccountDeviceAdd(context.Context, *AccountDeviceVo) (*AccountDeviceVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AccountDeviceAdd not implemented")
+}
+func (UnimplementedGoUserClientServer) AccountDeviceUpdate(context.Context, *AccountDeviceVo) (*AccountDeviceVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AccountDeviceUpdate not implemented")
+}
+func (UnimplementedGoUserClientServer) AccountDeviceDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AccountDeviceDel not implemented")
+}
+func (UnimplementedGoUserClientServer) AccountDeviceGet(context.Context, *AccountDeviceVo) (*AccountDeviceVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AccountDeviceGet not implemented")
+}
+func (UnimplementedGoUserClientServer) AccountDeviceList(context.Context, *AccountDeviceListReq) (*AccountDeviceListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AccountDeviceList not implemented")
+}
+func (UnimplementedGoUserClientServer) mustEmbedUnimplementedGoUserClientServer() {}
+func (UnimplementedGoUserClientServer) testEmbeddedByValue()                      {}
+
+// UnsafeGoUserClientServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to GoUserClientServer will
+// result in compilation errors.
+type UnsafeGoUserClientServer interface {
+	mustEmbedUnimplementedGoUserClientServer()
+}
+
+func RegisterGoUserClientServer(s grpc.ServiceRegistrar, srv GoUserClientServer) {
+	// If the following call pancis, it indicates UnimplementedGoUserClientServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
+	s.RegisterService(&GoUserClient_ServiceDesc, srv)
+}
+
+func _GoUserClient_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Request)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).Ping(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_Ping_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).Ping(ctx, req.(*Request))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_UserAppConfigAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UserAppConfigVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).UserAppConfigAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_UserAppConfigAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).UserAppConfigAdd(ctx, req.(*UserAppConfigVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_UserAppConfigUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UserAppConfigVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).UserAppConfigUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_UserAppConfigUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).UserAppConfigUpdate(ctx, req.(*UserAppConfigVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_UserAppConfigDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).UserAppConfigDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_UserAppConfigDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).UserAppConfigDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_UserAppConfigGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UserAppConfigGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).UserAppConfigGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_UserAppConfigGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).UserAppConfigGet(ctx, req.(*UserAppConfigGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_UserAppConfigList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UserAppConfigListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).UserAppConfigList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_UserAppConfigList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).UserAppConfigList(ctx, req.(*UserAppConfigListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_DeviceAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeviceVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).DeviceAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_DeviceAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).DeviceAdd(ctx, req.(*DeviceVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_DeviceUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeviceVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).DeviceUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_DeviceUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).DeviceUpdate(ctx, req.(*DeviceVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_DeviceDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).DeviceDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_DeviceDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).DeviceDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_DeviceGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeviceVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).DeviceGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_DeviceGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).DeviceGet(ctx, req.(*DeviceVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_DeviceList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeviceListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).DeviceList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_DeviceList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).DeviceList(ctx, req.(*DeviceListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_AccountAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AccountVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).AccountAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_AccountAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).AccountAdd(ctx, req.(*AccountVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_AccountUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AccountVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).AccountUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_AccountUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).AccountUpdate(ctx, req.(*AccountVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_AccountDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).AccountDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_AccountDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).AccountDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_AccountGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AccountVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).AccountGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_AccountGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).AccountGet(ctx, req.(*AccountVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_AccountList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AccountListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).AccountList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_AccountList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).AccountList(ctx, req.(*AccountListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_AccountDeviceAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AccountDeviceVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).AccountDeviceAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_AccountDeviceAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).AccountDeviceAdd(ctx, req.(*AccountDeviceVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_AccountDeviceUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AccountDeviceVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).AccountDeviceUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_AccountDeviceUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).AccountDeviceUpdate(ctx, req.(*AccountDeviceVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_AccountDeviceDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).AccountDeviceDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_AccountDeviceDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).AccountDeviceDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_AccountDeviceGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AccountDeviceVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).AccountDeviceGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_AccountDeviceGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).AccountDeviceGet(ctx, req.(*AccountDeviceVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoUserClient_AccountDeviceList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AccountDeviceListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoUserClientServer).AccountDeviceList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoUserClient_AccountDeviceList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoUserClientServer).AccountDeviceList(ctx, req.(*AccountDeviceListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// GoUserClient_ServiceDesc is the grpc.ServiceDesc for GoUserClient service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var GoUserClient_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "gorpc.GoUserClient",
+	HandlerType: (*GoUserClientServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "Ping",
+			Handler:    _GoUserClient_Ping_Handler,
+		},
+		{
+			MethodName: "UserAppConfigAdd",
+			Handler:    _GoUserClient_UserAppConfigAdd_Handler,
+		},
+		{
+			MethodName: "UserAppConfigUpdate",
+			Handler:    _GoUserClient_UserAppConfigUpdate_Handler,
+		},
+		{
+			MethodName: "UserAppConfigDel",
+			Handler:    _GoUserClient_UserAppConfigDel_Handler,
+		},
+		{
+			MethodName: "UserAppConfigGet",
+			Handler:    _GoUserClient_UserAppConfigGet_Handler,
+		},
+		{
+			MethodName: "UserAppConfigList",
+			Handler:    _GoUserClient_UserAppConfigList_Handler,
+		},
+		{
+			MethodName: "DeviceAdd",
+			Handler:    _GoUserClient_DeviceAdd_Handler,
+		},
+		{
+			MethodName: "DeviceUpdate",
+			Handler:    _GoUserClient_DeviceUpdate_Handler,
+		},
+		{
+			MethodName: "DeviceDel",
+			Handler:    _GoUserClient_DeviceDel_Handler,
+		},
+		{
+			MethodName: "DeviceGet",
+			Handler:    _GoUserClient_DeviceGet_Handler,
+		},
+		{
+			MethodName: "DeviceList",
+			Handler:    _GoUserClient_DeviceList_Handler,
+		},
+		{
+			MethodName: "AccountAdd",
+			Handler:    _GoUserClient_AccountAdd_Handler,
+		},
+		{
+			MethodName: "AccountUpdate",
+			Handler:    _GoUserClient_AccountUpdate_Handler,
+		},
+		{
+			MethodName: "AccountDel",
+			Handler:    _GoUserClient_AccountDel_Handler,
+		},
+		{
+			MethodName: "AccountGet",
+			Handler:    _GoUserClient_AccountGet_Handler,
+		},
+		{
+			MethodName: "AccountList",
+			Handler:    _GoUserClient_AccountList_Handler,
+		},
+		{
+			MethodName: "AccountDeviceAdd",
+			Handler:    _GoUserClient_AccountDeviceAdd_Handler,
+		},
+		{
+			MethodName: "AccountDeviceUpdate",
+			Handler:    _GoUserClient_AccountDeviceUpdate_Handler,
+		},
+		{
+			MethodName: "AccountDeviceDel",
+			Handler:    _GoUserClient_AccountDeviceDel_Handler,
+		},
+		{
+			MethodName: "AccountDeviceGet",
+			Handler:    _GoUserClient_AccountDeviceGet_Handler,
+		},
+		{
+			MethodName: "AccountDeviceList",
+			Handler:    _GoUserClient_AccountDeviceList_Handler,
+		},
+	},
+	Streams:  []grpc.StreamDesc{},
+	Metadata: "gorpc.proto",
+}
+
+const (
+	GoVpnClient_Ping_FullMethodName                    = "/gorpc.GoVpnClient/Ping"
+	GoVpnClient_Transaction_FullMethodName             = "/gorpc.GoVpnClient/Transaction"
+	GoVpnClient_VpnTagAdd_FullMethodName               = "/gorpc.GoVpnClient/VpnTagAdd"
+	GoVpnClient_VpnTagUpdate_FullMethodName            = "/gorpc.GoVpnClient/VpnTagUpdate"
+	GoVpnClient_VpnTagDel_FullMethodName               = "/gorpc.GoVpnClient/VpnTagDel"
+	GoVpnClient_VpnTagGet_FullMethodName               = "/gorpc.GoVpnClient/VpnTagGet"
+	GoVpnClient_VpnTagList_FullMethodName              = "/gorpc.GoVpnClient/VpnTagList"
+	GoVpnClient_VpnTagBatchAdd_FullMethodName          = "/gorpc.GoVpnClient/VpnTagBatchAdd"
+	GoVpnClient_VpnTagBatchUpdate_FullMethodName       = "/gorpc.GoVpnClient/VpnTagBatchUpdate"
+	GoVpnClient_VpnGroupAdd_FullMethodName             = "/gorpc.GoVpnClient/VpnGroupAdd"
+	GoVpnClient_VpnGroupUpdate_FullMethodName          = "/gorpc.GoVpnClient/VpnGroupUpdate"
+	GoVpnClient_VpnGroupDel_FullMethodName             = "/gorpc.GoVpnClient/VpnGroupDel"
+	GoVpnClient_VpnGroupGet_FullMethodName             = "/gorpc.GoVpnClient/VpnGroupGet"
+	GoVpnClient_VpnGroupList_FullMethodName            = "/gorpc.GoVpnClient/VpnGroupList"
+	GoVpnClient_VpnGroupBatchAdd_FullMethodName        = "/gorpc.GoVpnClient/VpnGroupBatchAdd"
+	GoVpnClient_VpnGroupBatchUpdate_FullMethodName     = "/gorpc.GoVpnClient/VpnGroupBatchUpdate"
+	GoVpnClient_VpnGroupTagAdd_FullMethodName          = "/gorpc.GoVpnClient/VpnGroupTagAdd"
+	GoVpnClient_VpnGroupTagUpdate_FullMethodName       = "/gorpc.GoVpnClient/VpnGroupTagUpdate"
+	GoVpnClient_VpnGroupTagDel_FullMethodName          = "/gorpc.GoVpnClient/VpnGroupTagDel"
+	GoVpnClient_VpnGroupTagGet_FullMethodName          = "/gorpc.GoVpnClient/VpnGroupTagGet"
+	GoVpnClient_VpnGroupTagList_FullMethodName         = "/gorpc.GoVpnClient/VpnGroupTagList"
+	GoVpnClient_VpnLocationAdd_FullMethodName          = "/gorpc.GoVpnClient/VpnLocationAdd"
+	GoVpnClient_VpnLocationUpdate_FullMethodName       = "/gorpc.GoVpnClient/VpnLocationUpdate"
+	GoVpnClient_VpnLocationDel_FullMethodName          = "/gorpc.GoVpnClient/VpnLocationDel"
+	GoVpnClient_VpnLocationGet_FullMethodName          = "/gorpc.GoVpnClient/VpnLocationGet"
+	GoVpnClient_VpnLocationList_FullMethodName         = "/gorpc.GoVpnClient/VpnLocationList"
+	GoVpnClient_VpnLocationBatchAdd_FullMethodName     = "/gorpc.GoVpnClient/VpnLocationBatchAdd"
+	GoVpnClient_VpnLocationBatchUpdate_FullMethodName  = "/gorpc.GoVpnClient/VpnLocationBatchUpdate"
+	GoVpnClient_VpnServerAdd_FullMethodName            = "/gorpc.GoVpnClient/VpnServerAdd"
+	GoVpnClient_VpnServerUpdate_FullMethodName         = "/gorpc.GoVpnClient/VpnServerUpdate"
+	GoVpnClient_VpnServerDel_FullMethodName            = "/gorpc.GoVpnClient/VpnServerDel"
+	GoVpnClient_VpnServerGet_FullMethodName            = "/gorpc.GoVpnClient/VpnServerGet"
+	GoVpnClient_VpnServerList_FullMethodName           = "/gorpc.GoVpnClient/VpnServerList"
+	GoVpnClient_VpnServerExList_FullMethodName         = "/gorpc.GoVpnClient/VpnServerExList"
+	GoVpnClient_VpnServerBatchAdd_FullMethodName       = "/gorpc.GoVpnClient/VpnServerBatchAdd"
+	GoVpnClient_VpnServerBatchUpdate_FullMethodName    = "/gorpc.GoVpnClient/VpnServerBatchUpdate"
+	GoVpnClient_VpnServerLocationAdd_FullMethodName    = "/gorpc.GoVpnClient/VpnServerLocationAdd"
+	GoVpnClient_VpnServerLocationUpdate_FullMethodName = "/gorpc.GoVpnClient/VpnServerLocationUpdate"
+	GoVpnClient_VpnServerLocationDel_FullMethodName    = "/gorpc.GoVpnClient/VpnServerLocationDel"
+	GoVpnClient_VpnServerLocationGet_FullMethodName    = "/gorpc.GoVpnClient/VpnServerLocationGet"
+	GoVpnClient_VpnServerLocationList_FullMethodName   = "/gorpc.GoVpnClient/VpnServerLocationList"
+	GoVpnClient_VpnLocationServerCount_FullMethodName  = "/gorpc.GoVpnClient/VpnLocationServerCount"
+	GoVpnClient_VpnProbeTaskAdd_FullMethodName         = "/gorpc.GoVpnClient/VpnProbeTaskAdd"
+	GoVpnClient_VpnProbeTaskUpdate_FullMethodName      = "/gorpc.GoVpnClient/VpnProbeTaskUpdate"
+	GoVpnClient_VpnProbeTaskList_FullMethodName        = "/gorpc.GoVpnClient/VpnProbeTaskList"
+)
+
+// GoVpnClientClient is the client API for GoVpnClient service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+//
+// govpn 模块,VPN相关服务
+type GoVpnClientClient interface {
+	Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
+	// 表的事务操作
+	Transaction(ctx context.Context, in *TransactionReq, opts ...grpc.CallOption) (*Empty, error)
+	// VpnTag
+	VpnTagAdd(ctx context.Context, in *VpnTagVo, opts ...grpc.CallOption) (*VpnTagVo, error)
+	VpnTagUpdate(ctx context.Context, in *VpnTagVo, opts ...grpc.CallOption) (*VpnTagVo, error)
+	VpnTagDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	VpnTagGet(ctx context.Context, in *VpnTagGetReq, opts ...grpc.CallOption) (*VpnTagVo, error)
+	VpnTagList(ctx context.Context, in *VpnTagListReq, opts ...grpc.CallOption) (*VpnTagListResp, error)
+	VpnTagBatchAdd(ctx context.Context, in *VpnTagBatchAddReq, opts ...grpc.CallOption) (*VpnTagBatchAddResp, error)
+	VpnTagBatchUpdate(ctx context.Context, in *VpnTagBatchUpdateReq, opts ...grpc.CallOption) (*VpnTagBatchUpdateResp, error)
+	// VpnGroup
+	VpnGroupAdd(ctx context.Context, in *VpnGroupAddReq, opts ...grpc.CallOption) (*VpnGroupVo, error)
+	VpnGroupUpdate(ctx context.Context, in *VpnGroupAddReq, opts ...grpc.CallOption) (*Empty, error)
+	VpnGroupDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	VpnGroupGet(ctx context.Context, in *VpnGroupGetReq, opts ...grpc.CallOption) (*VpnGroupVo, error)
+	VpnGroupList(ctx context.Context, in *VpnGroupListReq, opts ...grpc.CallOption) (*VpnGroupListResp, error)
+	VpnGroupBatchAdd(ctx context.Context, in *VpnGroupBatchAddReq, opts ...grpc.CallOption) (*VpnGroupBatchAddResp, error)
+	VpnGroupBatchUpdate(ctx context.Context, in *VpnGroupBatchUpdateReq, opts ...grpc.CallOption) (*VpnGroupBatchUpdateResp, error)
+	// VpnGroupTag
+	VpnGroupTagAdd(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error)
+	VpnGroupTagUpdate(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error)
+	VpnGroupTagDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	VpnGroupTagGet(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error)
+	VpnGroupTagList(ctx context.Context, in *VpnGroupTagListReq, opts ...grpc.CallOption) (*VpnGroupTagListResp, error)
+	// VpnLocation
+	VpnLocationAdd(ctx context.Context, in *VpnLocationVo, opts ...grpc.CallOption) (*VpnLocationVo, error)
+	VpnLocationUpdate(ctx context.Context, in *VpnLocationVo, opts ...grpc.CallOption) (*Empty, error)
+	VpnLocationDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	VpnLocationGet(ctx context.Context, in *VpnLocationGetReq, opts ...grpc.CallOption) (*VpnLocationVo, error)
+	VpnLocationList(ctx context.Context, in *VpnLocationListReq, opts ...grpc.CallOption) (*VpnLocationListResp, error)
+	VpnLocationBatchAdd(ctx context.Context, in *VpnLocationBatchAddReq, opts ...grpc.CallOption) (*VpnLocationBatchAddResp, error)
+	VpnLocationBatchUpdate(ctx context.Context, in *VpnLocationBatchUpdateReq, opts ...grpc.CallOption) (*VpnLocationBatchUpdateResp, error)
+	// VpnServer
+	VpnServerAdd(ctx context.Context, in *VpnServerAddReq, opts ...grpc.CallOption) (*VpnServerAddReq, error)
+	VpnServerUpdate(ctx context.Context, in *VpnServerAddReq, opts ...grpc.CallOption) (*VpnServerAddReq, error)
+	VpnServerDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	VpnServerGet(ctx context.Context, in *VpnServerVo, opts ...grpc.CallOption) (*VpnServerVo, error)
+	VpnServerList(ctx context.Context, in *VpnServerListReq, opts ...grpc.CallOption) (*VpnServerListResp, error)
+	VpnServerExList(ctx context.Context, in *VpnServerListReq, opts ...grpc.CallOption) (*VpnServerExListResp, error)
+	VpnServerBatchAdd(ctx context.Context, in *VpnServerBatchAddReq, opts ...grpc.CallOption) (*VpnServerBatchAddResp, error)
+	VpnServerBatchUpdate(ctx context.Context, in *VpnServerBatchUpdateReq, opts ...grpc.CallOption) (*VpnServerBatchUpdateResp, error)
+	// VpnServerLocation
+	VpnServerLocationAdd(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*VpnServerLocationVo, error)
+	VpnServerLocationUpdate(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*Empty, error)
+	VpnServerLocationDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
+	VpnServerLocationGet(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*VpnServerLocationVo, error)
+	VpnServerLocationList(ctx context.Context, in *VpnServerLocationListReq, opts ...grpc.CallOption) (*VpnServerLocationListResp, error)
+	// VpnLocationServerCount
+	VpnLocationServerCount(ctx context.Context, in *VpnLocationServerCountReq, opts ...grpc.CallOption) (*VpnLocationServerCountResp, error)
+	// VpnProbeTask
+	VpnProbeTaskAdd(ctx context.Context, in *VpnProbeTaskVo, opts ...grpc.CallOption) (*VpnProbeTaskVo, error)
+	VpnProbeTaskUpdate(ctx context.Context, in *VpnProbeTaskVo, opts ...grpc.CallOption) (*Empty, error)
+	VpnProbeTaskList(ctx context.Context, in *VpnProbeTaskListReq, opts ...grpc.CallOption) (*VpnProbeTaskListResp, error)
+}
+
+type goVpnClientClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewGoVpnClientClient(cc grpc.ClientConnInterface) GoVpnClientClient {
+	return &goVpnClientClient{cc}
+}
+
+func (c *goVpnClientClient) Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Response)
+	err := c.cc.Invoke(ctx, GoVpnClient_Ping_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) Transaction(ctx context.Context, in *TransactionReq, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoVpnClient_Transaction_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnTagAdd(ctx context.Context, in *VpnTagVo, opts ...grpc.CallOption) (*VpnTagVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnTagVo)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnTagAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnTagUpdate(ctx context.Context, in *VpnTagVo, opts ...grpc.CallOption) (*VpnTagVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnTagVo)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnTagUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnTagDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnTagDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnTagGet(ctx context.Context, in *VpnTagGetReq, opts ...grpc.CallOption) (*VpnTagVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnTagVo)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnTagGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnTagList(ctx context.Context, in *VpnTagListReq, opts ...grpc.CallOption) (*VpnTagListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnTagListResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnTagList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnTagBatchAdd(ctx context.Context, in *VpnTagBatchAddReq, opts ...grpc.CallOption) (*VpnTagBatchAddResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnTagBatchAddResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnTagBatchAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnTagBatchUpdate(ctx context.Context, in *VpnTagBatchUpdateReq, opts ...grpc.CallOption) (*VpnTagBatchUpdateResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnTagBatchUpdateResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnTagBatchUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnGroupAdd(ctx context.Context, in *VpnGroupAddReq, opts ...grpc.CallOption) (*VpnGroupVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnGroupVo)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnGroupAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnGroupUpdate(ctx context.Context, in *VpnGroupAddReq, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnGroupUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnGroupDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnGroupDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnGroupGet(ctx context.Context, in *VpnGroupGetReq, opts ...grpc.CallOption) (*VpnGroupVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnGroupVo)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnGroupGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnGroupList(ctx context.Context, in *VpnGroupListReq, opts ...grpc.CallOption) (*VpnGroupListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnGroupListResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnGroupList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnGroupBatchAdd(ctx context.Context, in *VpnGroupBatchAddReq, opts ...grpc.CallOption) (*VpnGroupBatchAddResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnGroupBatchAddResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnGroupBatchAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnGroupBatchUpdate(ctx context.Context, in *VpnGroupBatchUpdateReq, opts ...grpc.CallOption) (*VpnGroupBatchUpdateResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnGroupBatchUpdateResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnGroupBatchUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnGroupTagAdd(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnGroupTagVo)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnGroupTagAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnGroupTagUpdate(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnGroupTagVo)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnGroupTagUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnGroupTagDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnGroupTagDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnGroupTagGet(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnGroupTagVo)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnGroupTagGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnGroupTagList(ctx context.Context, in *VpnGroupTagListReq, opts ...grpc.CallOption) (*VpnGroupTagListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnGroupTagListResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnGroupTagList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnLocationAdd(ctx context.Context, in *VpnLocationVo, opts ...grpc.CallOption) (*VpnLocationVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnLocationVo)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnLocationAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnLocationUpdate(ctx context.Context, in *VpnLocationVo, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnLocationUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnLocationDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnLocationDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnLocationGet(ctx context.Context, in *VpnLocationGetReq, opts ...grpc.CallOption) (*VpnLocationVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnLocationVo)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnLocationGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnLocationList(ctx context.Context, in *VpnLocationListReq, opts ...grpc.CallOption) (*VpnLocationListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnLocationListResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnLocationList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnLocationBatchAdd(ctx context.Context, in *VpnLocationBatchAddReq, opts ...grpc.CallOption) (*VpnLocationBatchAddResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnLocationBatchAddResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnLocationBatchAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnLocationBatchUpdate(ctx context.Context, in *VpnLocationBatchUpdateReq, opts ...grpc.CallOption) (*VpnLocationBatchUpdateResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnLocationBatchUpdateResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnLocationBatchUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnServerAdd(ctx context.Context, in *VpnServerAddReq, opts ...grpc.CallOption) (*VpnServerAddReq, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnServerAddReq)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnServerAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnServerUpdate(ctx context.Context, in *VpnServerAddReq, opts ...grpc.CallOption) (*VpnServerAddReq, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnServerAddReq)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnServerUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnServerDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnServerDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnServerGet(ctx context.Context, in *VpnServerVo, opts ...grpc.CallOption) (*VpnServerVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnServerVo)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnServerGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnServerList(ctx context.Context, in *VpnServerListReq, opts ...grpc.CallOption) (*VpnServerListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnServerListResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnServerList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnServerExList(ctx context.Context, in *VpnServerListReq, opts ...grpc.CallOption) (*VpnServerExListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnServerExListResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnServerExList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnServerBatchAdd(ctx context.Context, in *VpnServerBatchAddReq, opts ...grpc.CallOption) (*VpnServerBatchAddResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnServerBatchAddResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnServerBatchAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnServerBatchUpdate(ctx context.Context, in *VpnServerBatchUpdateReq, opts ...grpc.CallOption) (*VpnServerBatchUpdateResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnServerBatchUpdateResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnServerBatchUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnServerLocationAdd(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*VpnServerLocationVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnServerLocationVo)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnServerLocationAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnServerLocationUpdate(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnServerLocationUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnServerLocationDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnServerLocationDel_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnServerLocationGet(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*VpnServerLocationVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnServerLocationVo)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnServerLocationGet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnServerLocationList(ctx context.Context, in *VpnServerLocationListReq, opts ...grpc.CallOption) (*VpnServerLocationListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnServerLocationListResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnServerLocationList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnLocationServerCount(ctx context.Context, in *VpnLocationServerCountReq, opts ...grpc.CallOption) (*VpnLocationServerCountResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnLocationServerCountResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnLocationServerCount_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnProbeTaskAdd(ctx context.Context, in *VpnProbeTaskVo, opts ...grpc.CallOption) (*VpnProbeTaskVo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnProbeTaskVo)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnProbeTaskAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnProbeTaskUpdate(ctx context.Context, in *VpnProbeTaskVo, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnProbeTaskUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *goVpnClientClient) VpnProbeTaskList(ctx context.Context, in *VpnProbeTaskListReq, opts ...grpc.CallOption) (*VpnProbeTaskListResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnProbeTaskListResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnProbeTaskList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// GoVpnClientServer is the server API for GoVpnClient service.
+// All implementations must embed UnimplementedGoVpnClientServer
+// for forward compatibility.
+//
+// govpn 模块,VPN相关服务
+type GoVpnClientServer interface {
+	Ping(context.Context, *Request) (*Response, error)
+	// 表的事务操作
+	Transaction(context.Context, *TransactionReq) (*Empty, error)
+	// VpnTag
+	VpnTagAdd(context.Context, *VpnTagVo) (*VpnTagVo, error)
+	VpnTagUpdate(context.Context, *VpnTagVo) (*VpnTagVo, error)
+	VpnTagDel(context.Context, *Ids) (*Empty, error)
+	VpnTagGet(context.Context, *VpnTagGetReq) (*VpnTagVo, error)
+	VpnTagList(context.Context, *VpnTagListReq) (*VpnTagListResp, error)
+	VpnTagBatchAdd(context.Context, *VpnTagBatchAddReq) (*VpnTagBatchAddResp, error)
+	VpnTagBatchUpdate(context.Context, *VpnTagBatchUpdateReq) (*VpnTagBatchUpdateResp, error)
+	// VpnGroup
+	VpnGroupAdd(context.Context, *VpnGroupAddReq) (*VpnGroupVo, error)
+	VpnGroupUpdate(context.Context, *VpnGroupAddReq) (*Empty, error)
+	VpnGroupDel(context.Context, *Ids) (*Empty, error)
+	VpnGroupGet(context.Context, *VpnGroupGetReq) (*VpnGroupVo, error)
+	VpnGroupList(context.Context, *VpnGroupListReq) (*VpnGroupListResp, error)
+	VpnGroupBatchAdd(context.Context, *VpnGroupBatchAddReq) (*VpnGroupBatchAddResp, error)
+	VpnGroupBatchUpdate(context.Context, *VpnGroupBatchUpdateReq) (*VpnGroupBatchUpdateResp, error)
+	// VpnGroupTag
+	VpnGroupTagAdd(context.Context, *VpnGroupTagVo) (*VpnGroupTagVo, error)
+	VpnGroupTagUpdate(context.Context, *VpnGroupTagVo) (*VpnGroupTagVo, error)
+	VpnGroupTagDel(context.Context, *Ids) (*Empty, error)
+	VpnGroupTagGet(context.Context, *VpnGroupTagVo) (*VpnGroupTagVo, error)
+	VpnGroupTagList(context.Context, *VpnGroupTagListReq) (*VpnGroupTagListResp, error)
+	// VpnLocation
+	VpnLocationAdd(context.Context, *VpnLocationVo) (*VpnLocationVo, error)
+	VpnLocationUpdate(context.Context, *VpnLocationVo) (*Empty, error)
+	VpnLocationDel(context.Context, *Ids) (*Empty, error)
+	VpnLocationGet(context.Context, *VpnLocationGetReq) (*VpnLocationVo, error)
+	VpnLocationList(context.Context, *VpnLocationListReq) (*VpnLocationListResp, error)
+	VpnLocationBatchAdd(context.Context, *VpnLocationBatchAddReq) (*VpnLocationBatchAddResp, error)
+	VpnLocationBatchUpdate(context.Context, *VpnLocationBatchUpdateReq) (*VpnLocationBatchUpdateResp, error)
+	// VpnServer
+	VpnServerAdd(context.Context, *VpnServerAddReq) (*VpnServerAddReq, error)
+	VpnServerUpdate(context.Context, *VpnServerAddReq) (*VpnServerAddReq, error)
+	VpnServerDel(context.Context, *Ids) (*Empty, error)
+	VpnServerGet(context.Context, *VpnServerVo) (*VpnServerVo, error)
+	VpnServerList(context.Context, *VpnServerListReq) (*VpnServerListResp, error)
+	VpnServerExList(context.Context, *VpnServerListReq) (*VpnServerExListResp, error)
+	VpnServerBatchAdd(context.Context, *VpnServerBatchAddReq) (*VpnServerBatchAddResp, error)
+	VpnServerBatchUpdate(context.Context, *VpnServerBatchUpdateReq) (*VpnServerBatchUpdateResp, error)
+	// VpnServerLocation
+	VpnServerLocationAdd(context.Context, *VpnServerLocationVo) (*VpnServerLocationVo, error)
+	VpnServerLocationUpdate(context.Context, *VpnServerLocationVo) (*Empty, error)
+	VpnServerLocationDel(context.Context, *Ids) (*Empty, error)
+	VpnServerLocationGet(context.Context, *VpnServerLocationVo) (*VpnServerLocationVo, error)
+	VpnServerLocationList(context.Context, *VpnServerLocationListReq) (*VpnServerLocationListResp, error)
+	// VpnLocationServerCount
+	VpnLocationServerCount(context.Context, *VpnLocationServerCountReq) (*VpnLocationServerCountResp, error)
+	// VpnProbeTask
+	VpnProbeTaskAdd(context.Context, *VpnProbeTaskVo) (*VpnProbeTaskVo, error)
+	VpnProbeTaskUpdate(context.Context, *VpnProbeTaskVo) (*Empty, error)
+	VpnProbeTaskList(context.Context, *VpnProbeTaskListReq) (*VpnProbeTaskListResp, error)
+	mustEmbedUnimplementedGoVpnClientServer()
+}
+
+// UnimplementedGoVpnClientServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedGoVpnClientServer struct{}
+
+func (UnimplementedGoVpnClientServer) Ping(context.Context, *Request) (*Response, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented")
+}
+func (UnimplementedGoVpnClientServer) Transaction(context.Context, *TransactionReq) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method Transaction not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnTagAdd(context.Context, *VpnTagVo) (*VpnTagVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnTagAdd not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnTagUpdate(context.Context, *VpnTagVo) (*VpnTagVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnTagUpdate not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnTagDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnTagDel not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnTagGet(context.Context, *VpnTagGetReq) (*VpnTagVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnTagGet not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnTagList(context.Context, *VpnTagListReq) (*VpnTagListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnTagList not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnTagBatchAdd(context.Context, *VpnTagBatchAddReq) (*VpnTagBatchAddResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnTagBatchAdd not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnTagBatchUpdate(context.Context, *VpnTagBatchUpdateReq) (*VpnTagBatchUpdateResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnTagBatchUpdate not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnGroupAdd(context.Context, *VpnGroupAddReq) (*VpnGroupVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnGroupAdd not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnGroupUpdate(context.Context, *VpnGroupAddReq) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnGroupUpdate not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnGroupDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnGroupDel not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnGroupGet(context.Context, *VpnGroupGetReq) (*VpnGroupVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnGroupGet not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnGroupList(context.Context, *VpnGroupListReq) (*VpnGroupListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnGroupList not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnGroupBatchAdd(context.Context, *VpnGroupBatchAddReq) (*VpnGroupBatchAddResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnGroupBatchAdd not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnGroupBatchUpdate(context.Context, *VpnGroupBatchUpdateReq) (*VpnGroupBatchUpdateResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnGroupBatchUpdate not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnGroupTagAdd(context.Context, *VpnGroupTagVo) (*VpnGroupTagVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnGroupTagAdd not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnGroupTagUpdate(context.Context, *VpnGroupTagVo) (*VpnGroupTagVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnGroupTagUpdate not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnGroupTagDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnGroupTagDel not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnGroupTagGet(context.Context, *VpnGroupTagVo) (*VpnGroupTagVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnGroupTagGet not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnGroupTagList(context.Context, *VpnGroupTagListReq) (*VpnGroupTagListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnGroupTagList not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnLocationAdd(context.Context, *VpnLocationVo) (*VpnLocationVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnLocationAdd not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnLocationUpdate(context.Context, *VpnLocationVo) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnLocationUpdate not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnLocationDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnLocationDel not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnLocationGet(context.Context, *VpnLocationGetReq) (*VpnLocationVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnLocationGet not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnLocationList(context.Context, *VpnLocationListReq) (*VpnLocationListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnLocationList not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnLocationBatchAdd(context.Context, *VpnLocationBatchAddReq) (*VpnLocationBatchAddResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnLocationBatchAdd not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnLocationBatchUpdate(context.Context, *VpnLocationBatchUpdateReq) (*VpnLocationBatchUpdateResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnLocationBatchUpdate not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnServerAdd(context.Context, *VpnServerAddReq) (*VpnServerAddReq, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnServerAdd not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnServerUpdate(context.Context, *VpnServerAddReq) (*VpnServerAddReq, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnServerUpdate not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnServerDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnServerDel not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnServerGet(context.Context, *VpnServerVo) (*VpnServerVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnServerGet not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnServerList(context.Context, *VpnServerListReq) (*VpnServerListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnServerList not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnServerExList(context.Context, *VpnServerListReq) (*VpnServerExListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnServerExList not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnServerBatchAdd(context.Context, *VpnServerBatchAddReq) (*VpnServerBatchAddResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnServerBatchAdd not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnServerBatchUpdate(context.Context, *VpnServerBatchUpdateReq) (*VpnServerBatchUpdateResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnServerBatchUpdate not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnServerLocationAdd(context.Context, *VpnServerLocationVo) (*VpnServerLocationVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnServerLocationAdd not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnServerLocationUpdate(context.Context, *VpnServerLocationVo) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnServerLocationUpdate not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnServerLocationDel(context.Context, *Ids) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnServerLocationDel not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnServerLocationGet(context.Context, *VpnServerLocationVo) (*VpnServerLocationVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnServerLocationGet not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnServerLocationList(context.Context, *VpnServerLocationListReq) (*VpnServerLocationListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnServerLocationList not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnLocationServerCount(context.Context, *VpnLocationServerCountReq) (*VpnLocationServerCountResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnLocationServerCount not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnProbeTaskAdd(context.Context, *VpnProbeTaskVo) (*VpnProbeTaskVo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnProbeTaskAdd not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnProbeTaskUpdate(context.Context, *VpnProbeTaskVo) (*Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnProbeTaskUpdate not implemented")
+}
+func (UnimplementedGoVpnClientServer) VpnProbeTaskList(context.Context, *VpnProbeTaskListReq) (*VpnProbeTaskListResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnProbeTaskList not implemented")
+}
+func (UnimplementedGoVpnClientServer) mustEmbedUnimplementedGoVpnClientServer() {}
+func (UnimplementedGoVpnClientServer) testEmbeddedByValue()                     {}
+
+// UnsafeGoVpnClientServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to GoVpnClientServer will
+// result in compilation errors.
+type UnsafeGoVpnClientServer interface {
+	mustEmbedUnimplementedGoVpnClientServer()
+}
+
+func RegisterGoVpnClientServer(s grpc.ServiceRegistrar, srv GoVpnClientServer) {
+	// If the following call pancis, it indicates UnimplementedGoVpnClientServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
+	s.RegisterService(&GoVpnClient_ServiceDesc, srv)
+}
+
+func _GoVpnClient_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Request)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).Ping(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_Ping_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).Ping(ctx, req.(*Request))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_Transaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(TransactionReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).Transaction(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_Transaction_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).Transaction(ctx, req.(*TransactionReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnTagAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnTagVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnTagAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnTagAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnTagAdd(ctx, req.(*VpnTagVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnTagUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnTagVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnTagUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnTagUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnTagUpdate(ctx, req.(*VpnTagVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnTagDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnTagDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnTagDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnTagDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnTagGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnTagGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnTagGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnTagGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnTagGet(ctx, req.(*VpnTagGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnTagList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnTagListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnTagList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnTagList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnTagList(ctx, req.(*VpnTagListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnTagBatchAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnTagBatchAddReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnTagBatchAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnTagBatchAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnTagBatchAdd(ctx, req.(*VpnTagBatchAddReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnTagBatchUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnTagBatchUpdateReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnTagBatchUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnTagBatchUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnTagBatchUpdate(ctx, req.(*VpnTagBatchUpdateReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnGroupAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnGroupAddReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnGroupAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnGroupAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnGroupAdd(ctx, req.(*VpnGroupAddReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnGroupUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnGroupAddReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnGroupUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnGroupUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnGroupUpdate(ctx, req.(*VpnGroupAddReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnGroupDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnGroupDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnGroupDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnGroupDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnGroupGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnGroupGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnGroupGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnGroupGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnGroupGet(ctx, req.(*VpnGroupGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnGroupList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnGroupListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnGroupList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnGroupList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnGroupList(ctx, req.(*VpnGroupListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnGroupBatchAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnGroupBatchAddReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnGroupBatchAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnGroupBatchAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnGroupBatchAdd(ctx, req.(*VpnGroupBatchAddReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnGroupBatchUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnGroupBatchUpdateReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnGroupBatchUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnGroupBatchUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnGroupBatchUpdate(ctx, req.(*VpnGroupBatchUpdateReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnGroupTagAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnGroupTagVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnGroupTagAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnGroupTagAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnGroupTagAdd(ctx, req.(*VpnGroupTagVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnGroupTagUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnGroupTagVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnGroupTagUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnGroupTagUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnGroupTagUpdate(ctx, req.(*VpnGroupTagVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnGroupTagDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnGroupTagDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnGroupTagDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnGroupTagDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnGroupTagGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnGroupTagVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnGroupTagGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnGroupTagGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnGroupTagGet(ctx, req.(*VpnGroupTagVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnGroupTagList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnGroupTagListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnGroupTagList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnGroupTagList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnGroupTagList(ctx, req.(*VpnGroupTagListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnLocationAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnLocationVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnLocationAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnLocationAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnLocationAdd(ctx, req.(*VpnLocationVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnLocationUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnLocationVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnLocationUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnLocationUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnLocationUpdate(ctx, req.(*VpnLocationVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnLocationDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnLocationDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnLocationDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnLocationDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnLocationGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnLocationGetReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnLocationGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnLocationGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnLocationGet(ctx, req.(*VpnLocationGetReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnLocationList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnLocationListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnLocationList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnLocationList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnLocationList(ctx, req.(*VpnLocationListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnLocationBatchAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnLocationBatchAddReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnLocationBatchAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnLocationBatchAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnLocationBatchAdd(ctx, req.(*VpnLocationBatchAddReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnLocationBatchUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnLocationBatchUpdateReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnLocationBatchUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnLocationBatchUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnLocationBatchUpdate(ctx, req.(*VpnLocationBatchUpdateReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnServerAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnServerAddReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnServerAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnServerAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnServerAdd(ctx, req.(*VpnServerAddReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnServerUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnServerAddReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnServerUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnServerUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnServerUpdate(ctx, req.(*VpnServerAddReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnServerDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnServerDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnServerDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnServerDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnServerGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnServerVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnServerGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnServerGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnServerGet(ctx, req.(*VpnServerVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnServerList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnServerListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnServerList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnServerList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnServerList(ctx, req.(*VpnServerListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnServerExList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnServerListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnServerExList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnServerExList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnServerExList(ctx, req.(*VpnServerListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnServerBatchAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnServerBatchAddReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnServerBatchAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnServerBatchAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnServerBatchAdd(ctx, req.(*VpnServerBatchAddReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnServerBatchUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnServerBatchUpdateReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnServerBatchUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnServerBatchUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnServerBatchUpdate(ctx, req.(*VpnServerBatchUpdateReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnServerLocationAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnServerLocationVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnServerLocationAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnServerLocationAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnServerLocationAdd(ctx, req.(*VpnServerLocationVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnServerLocationUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnServerLocationVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnServerLocationUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnServerLocationUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnServerLocationUpdate(ctx, req.(*VpnServerLocationVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnServerLocationDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Ids)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnServerLocationDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnServerLocationDel_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnServerLocationDel(ctx, req.(*Ids))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnServerLocationGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnServerLocationVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnServerLocationGet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnServerLocationGet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnServerLocationGet(ctx, req.(*VpnServerLocationVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnServerLocationList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnServerLocationListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnServerLocationList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnServerLocationList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnServerLocationList(ctx, req.(*VpnServerLocationListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnLocationServerCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnLocationServerCountReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnLocationServerCount(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnLocationServerCount_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnLocationServerCount(ctx, req.(*VpnLocationServerCountReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnProbeTaskAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnProbeTaskVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnProbeTaskAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnProbeTaskAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnProbeTaskAdd(ctx, req.(*VpnProbeTaskVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnProbeTaskUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnProbeTaskVo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnProbeTaskUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnProbeTaskUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnProbeTaskUpdate(ctx, req.(*VpnProbeTaskVo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _GoVpnClient_VpnProbeTaskList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnProbeTaskListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnProbeTaskList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnProbeTaskList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnProbeTaskList(ctx, req.(*VpnProbeTaskListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// GoVpnClient_ServiceDesc is the grpc.ServiceDesc for GoVpnClient service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var GoVpnClient_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "gorpc.GoVpnClient",
+	HandlerType: (*GoVpnClientServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "Ping",
+			Handler:    _GoVpnClient_Ping_Handler,
+		},
+		{
+			MethodName: "Transaction",
+			Handler:    _GoVpnClient_Transaction_Handler,
+		},
+		{
+			MethodName: "VpnTagAdd",
+			Handler:    _GoVpnClient_VpnTagAdd_Handler,
+		},
+		{
+			MethodName: "VpnTagUpdate",
+			Handler:    _GoVpnClient_VpnTagUpdate_Handler,
+		},
+		{
+			MethodName: "VpnTagDel",
+			Handler:    _GoVpnClient_VpnTagDel_Handler,
+		},
+		{
+			MethodName: "VpnTagGet",
+			Handler:    _GoVpnClient_VpnTagGet_Handler,
+		},
+		{
+			MethodName: "VpnTagList",
+			Handler:    _GoVpnClient_VpnTagList_Handler,
+		},
+		{
+			MethodName: "VpnTagBatchAdd",
+			Handler:    _GoVpnClient_VpnTagBatchAdd_Handler,
+		},
+		{
+			MethodName: "VpnTagBatchUpdate",
+			Handler:    _GoVpnClient_VpnTagBatchUpdate_Handler,
+		},
+		{
+			MethodName: "VpnGroupAdd",
+			Handler:    _GoVpnClient_VpnGroupAdd_Handler,
+		},
+		{
+			MethodName: "VpnGroupUpdate",
+			Handler:    _GoVpnClient_VpnGroupUpdate_Handler,
+		},
+		{
+			MethodName: "VpnGroupDel",
+			Handler:    _GoVpnClient_VpnGroupDel_Handler,
+		},
+		{
+			MethodName: "VpnGroupGet",
+			Handler:    _GoVpnClient_VpnGroupGet_Handler,
+		},
+		{
+			MethodName: "VpnGroupList",
+			Handler:    _GoVpnClient_VpnGroupList_Handler,
+		},
+		{
+			MethodName: "VpnGroupBatchAdd",
+			Handler:    _GoVpnClient_VpnGroupBatchAdd_Handler,
+		},
+		{
+			MethodName: "VpnGroupBatchUpdate",
+			Handler:    _GoVpnClient_VpnGroupBatchUpdate_Handler,
+		},
+		{
+			MethodName: "VpnGroupTagAdd",
+			Handler:    _GoVpnClient_VpnGroupTagAdd_Handler,
+		},
+		{
+			MethodName: "VpnGroupTagUpdate",
+			Handler:    _GoVpnClient_VpnGroupTagUpdate_Handler,
+		},
+		{
+			MethodName: "VpnGroupTagDel",
+			Handler:    _GoVpnClient_VpnGroupTagDel_Handler,
+		},
+		{
+			MethodName: "VpnGroupTagGet",
+			Handler:    _GoVpnClient_VpnGroupTagGet_Handler,
+		},
+		{
+			MethodName: "VpnGroupTagList",
+			Handler:    _GoVpnClient_VpnGroupTagList_Handler,
+		},
+		{
+			MethodName: "VpnLocationAdd",
+			Handler:    _GoVpnClient_VpnLocationAdd_Handler,
+		},
+		{
+			MethodName: "VpnLocationUpdate",
+			Handler:    _GoVpnClient_VpnLocationUpdate_Handler,
+		},
+		{
+			MethodName: "VpnLocationDel",
+			Handler:    _GoVpnClient_VpnLocationDel_Handler,
+		},
+		{
+			MethodName: "VpnLocationGet",
+			Handler:    _GoVpnClient_VpnLocationGet_Handler,
+		},
+		{
+			MethodName: "VpnLocationList",
+			Handler:    _GoVpnClient_VpnLocationList_Handler,
+		},
+		{
+			MethodName: "VpnLocationBatchAdd",
+			Handler:    _GoVpnClient_VpnLocationBatchAdd_Handler,
+		},
+		{
+			MethodName: "VpnLocationBatchUpdate",
+			Handler:    _GoVpnClient_VpnLocationBatchUpdate_Handler,
+		},
+		{
+			MethodName: "VpnServerAdd",
+			Handler:    _GoVpnClient_VpnServerAdd_Handler,
+		},
+		{
+			MethodName: "VpnServerUpdate",
+			Handler:    _GoVpnClient_VpnServerUpdate_Handler,
+		},
+		{
+			MethodName: "VpnServerDel",
+			Handler:    _GoVpnClient_VpnServerDel_Handler,
+		},
+		{
+			MethodName: "VpnServerGet",
+			Handler:    _GoVpnClient_VpnServerGet_Handler,
+		},
+		{
+			MethodName: "VpnServerList",
+			Handler:    _GoVpnClient_VpnServerList_Handler,
+		},
+		{
+			MethodName: "VpnServerExList",
+			Handler:    _GoVpnClient_VpnServerExList_Handler,
+		},
+		{
+			MethodName: "VpnServerBatchAdd",
+			Handler:    _GoVpnClient_VpnServerBatchAdd_Handler,
+		},
+		{
+			MethodName: "VpnServerBatchUpdate",
+			Handler:    _GoVpnClient_VpnServerBatchUpdate_Handler,
+		},
+		{
+			MethodName: "VpnServerLocationAdd",
+			Handler:    _GoVpnClient_VpnServerLocationAdd_Handler,
+		},
+		{
+			MethodName: "VpnServerLocationUpdate",
+			Handler:    _GoVpnClient_VpnServerLocationUpdate_Handler,
+		},
+		{
+			MethodName: "VpnServerLocationDel",
+			Handler:    _GoVpnClient_VpnServerLocationDel_Handler,
+		},
+		{
+			MethodName: "VpnServerLocationGet",
+			Handler:    _GoVpnClient_VpnServerLocationGet_Handler,
+		},
+		{
+			MethodName: "VpnServerLocationList",
+			Handler:    _GoVpnClient_VpnServerLocationList_Handler,
+		},
+		{
+			MethodName: "VpnLocationServerCount",
+			Handler:    _GoVpnClient_VpnLocationServerCount_Handler,
+		},
+		{
+			MethodName: "VpnProbeTaskAdd",
+			Handler:    _GoVpnClient_VpnProbeTaskAdd_Handler,
+		},
+		{
+			MethodName: "VpnProbeTaskUpdate",
+			Handler:    _GoVpnClient_VpnProbeTaskUpdate_Handler,
+		},
+		{
+			MethodName: "VpnProbeTaskList",
+			Handler:    _GoVpnClient_VpnProbeTaskList_Handler,
+		},
+	},
+	Streams:  []grpc.StreamDesc{},
+	Metadata: "gorpc.proto",
+}

+ 1113 - 0
pb/pmp.proto

@@ -0,0 +1,1113 @@
+syntax = "proto3";
+
+package gorpc;
+option go_package = "git.goio.dev/pb/go-service-pb/client";
+
+import "pb/common.proto";
+
+message I18nVo {
+  string code = 1;
+  string value = 2;
+}
+
+message ConfigGetReq {
+  int64 id = 1;    // ID
+  string code = 2; // 类型标识
+}
+
+// GlobalParam
+message GlobalParamVo {
+  int64 id = 1;
+  string paramKey = 2;
+  string paramValue = 3;
+  string valueType = 4;
+  float minValue = 5;
+  float maxValue = 6;
+  string name = 7;
+  BoolInt editable = 8;
+  BoolInt nullable = 9;
+  BoolInt hidden = 10;
+  BoolInt mutiLang = 11;
+  int64 sort = 12;
+  string remark = 13;
+  BoolInt apiExport = 14;
+  string apiExportName = 15;
+  int64 createTime = 16;
+  int64 updateTime = 17;
+  // valueType 为 string、text、json、string[], 且 mutiLang 为 true
+  // 时,需要同时干查询/修改/插入多语言数据
+  repeated I18nVo i18ns = 18;
+}
+
+message GlobalParamGetReq {
+  GlobalParamVo vo = 1;
+  string lang = 2;
+}
+
+message GlobalParamListReq {
+  Page page = 1;
+  GlobalParamVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+};
+
+message GlobalParamListResp {
+  int64 total = 1;
+  repeated GlobalParamVo list = 2;
+};
+// end GlobalParam
+
+// Product
+message ProductVo {
+  int64 id = 1;
+  string code = 2;
+  string name = 3;
+  string domain = 4;
+  Status status = 5;
+  string langs = 6;
+  string defaultLang = 7;
+  string remark = 8;
+  int64 createTime = 9;
+  int64 updateTime = 10;
+}
+
+message ProductListReq {
+  Page page = 1;
+  ProductVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message ProductListResp {
+  int64 total = 1;
+  repeated ProductVo list = 2;
+}
+// end Product
+
+// ProductParam
+message ProductParamVo {
+  int64 id = 1;
+  string productCode = 2;
+  string paramKey = 3;
+  string paramValue = 4;
+  string valueType = 5;
+  float minValue = 6;
+  float maxValue = 7;
+  string name = 8;
+  BoolInt editable = 9;
+  BoolInt nullable = 10;
+  BoolInt hidden = 11;
+  BoolInt mutiLang = 12;
+  int64 sort = 13;
+  string remark = 14;
+  BoolInt apiExport = 15;
+  string apiExportName = 16;
+  int64 createTime = 17;
+  int64 updateTime = 18;
+  // valueType 为 string、text、json、string[], 且 mutiLang 为 true
+  // 时,需要同时干查询/修改/插入多语言数据
+  repeated I18nVo i18ns = 19;
+}
+
+message ProductParamGetReq {
+  ProductParamVo vo = 1;
+  string lang = 2;
+}
+
+message ProductParamListReq {
+  Page page = 1;
+  ProductParamVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+};
+
+message ProductParamListResp {
+  int64 total = 1;
+  repeated ProductParamVo list = 2;
+};
+// end ProductParam
+
+// ProductAction
+message ProductActionVo {
+  int64 id = 1;
+  string productCode = 2;
+  string imgUrl = 3;
+  string actionType = 4;
+  string actionData = 5;
+  string title = 6;
+  Status status = 7;
+  int64 createTime = 8;
+  int64 updateTime = 9;
+  int64 sort = 10;
+}
+
+message ProductActionReq { ProductActionVo vo = 1; }
+message ProductActionListReq {
+  Page page = 1;
+  ProductActionVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+message ProductActionListResp {
+  int64 total = 1;
+  repeated ProductActionVo list = 2;
+}
+// end ProductAction
+
+// AreaParam
+message AreaParamVo {
+  int64 id = 1;
+  string productCode = 2;
+  string name = 3;
+  string areas = 4;
+  string paramValue = 5;
+  Status status = 6;
+  int64 sort = 7;
+  string remark = 8;
+  int64 createTime = 9;
+  int64 updateTime = 10;
+  string version = 11;
+}
+
+message AreaParamListReq {
+  Page page = 1;
+  AreaParamVo vo = 2;
+  repeated string productCodes = 3; // 产品code
+  repeated int64 excludeIds = 4;    // 排除的ID
+}
+
+message AreaParamListResp {
+  int64 total = 1;
+  repeated AreaParamVo list = 2;
+}
+// end AreaParam
+
+// NationalLanguage
+message NationalLanguageVo {
+  int64 id = 1;
+  string tbName = 2;
+  int64 tbRowId = 3;
+  string tbFieldName = 4;
+  string lan = 5;
+  string value = 6;
+  Status status = 7;
+  int64 updateTime = 8;
+  int64 createTime = 9;
+}
+
+message NationalLanguageListReq {
+  Page page = 1;
+  NationalLanguageVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+}
+
+message NationalLanguageListResp {
+  int64 total = 1;
+  repeated NationalLanguageVo list = 2;
+}
+// end NationalLanguage
+
+// Tip
+message TipVo {
+  int64 id = 1;
+  string productCode = 2;
+  string paramKey = 3;
+  string paramValue = 4;
+  string code = 5;
+  int64 showType = 6;
+  int64 sort = 7;
+  string remark = 8;
+  int64 createTime = 9;
+  int64 updateTime = 10;
+  repeated I18nVo i18ns = 11;
+}
+
+message TipGetReq {
+  TipVo vo = 1;
+  string lang = 2;
+}
+
+message TipListReq {
+  Page page = 1;
+  TipVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4; // 排除的ID
+}
+
+message TipListResp {
+  int64 total = 1;
+  repeated TipVo list = 2;
+}
+// end Tip
+
+// Dict
+message DictVo {
+  int64 id = 1;
+  string productCode = 2;
+  int64 parentId = 3;
+  string dataType = 4;
+  string name = 5;
+  string payload = 6;
+  int64 sort = 7;
+  Status status = 8;
+  string remark = 9;
+  int64 createTime = 10;
+  int64 updateTime = 11;
+  string payloadJson = 12;
+}
+
+message DictGetReq { DictVo vo = 1; }
+
+message DictListReq {
+  Page page = 1;
+  DictVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message DictListResp {
+  int64 total = 1;
+  repeated DictVo list = 2;
+}
+// end Dict
+
+// message UpgradeResVo {
+//   int64 id = 1;
+//   string title = 2;
+//   string path = 3;
+//   string fileMd5 = 4;
+//   string filePath = 5;
+//   string metadataId = 6;
+//   string createdAt = 7;
+//   string runtimeVersion = 8;
+//   int64 runtimeVersionCode = 9;
+//   string appVersionName = 10;
+//   int64 appVersionCode = 11;
+//   Status status = 12;
+//   string remark = 13;
+//   int64 createTime = 14;
+//   int64 updateTime = 15;
+//   int64 resSize = 16;
+// }
+
+// message UpgradeResConfigVo {
+//   int64 id = 1;
+//   int64 productId = 2;
+//   string platform = 3;
+//   string channel = 4;
+//   int64 resId = 5;
+//   int64 isForceUpdate = 6;
+//   string forceIntro = 7;
+//   string areaConfigs = 8;
+//   string versionConfigs = 9;
+//   int64 interval = 10;
+//   int64 upgradeRate = 11;
+//   string intro = 12;
+//   string apis = 13;
+//   Status status = 14;
+//   string remark = 15;
+//   string userIds = 16;
+//   int64 createTime = 17;
+//   int64 updateTime = 18;
+//   string forceVersionConfigs = 19;
+//   string forceAreaConfigs = 20;
+//   string runtimeVersionConfigs = 21;
+//   string title = 22;
+//   int64 isSilent = 23;
+// }
+
+// message UpgradePkgVo {
+//   int64 id = 1;
+//   int64 productId = 2;
+//   string platform = 3;
+//   string channel = 4;
+//   int64 versionCode = 5;
+//   string versionName = 6;
+//   string fileMd5 = 7;
+//   string areaConfigs = 8;
+//   string versionConfigs = 9;
+//   int64 interval = 10;
+//   int64 upgradeRate = 11;
+//   string intro = 12;
+//   string appStoreUrl = 13;
+//   string url = 14;
+//   string onlineUrls = 15;
+//   string userIds = 16;
+//   int64 isForceUpdate = 17;
+//   string forceIntro = 18;
+//   string forceVersionConfigs = 19;
+//   Status status = 20;
+//   string remark = 21;
+//   int64 createTime = 22;
+//   int64 updateTime = 23;
+//   string title = 24;
+//   string forceAreaConfigs = 25;
+// }
+
+// message UpgradeResConfigGetReq {
+//   Page page = 1;
+//   int64 id = 2;
+// }
+
+// message UpgradeResConfigListReq {
+//   Page page = 1;
+//   UpgradeResConfigVo vo = 2;
+// }
+
+// message UpgradeResConfigListResp {
+//   int64 total = 1;
+//   repeated UpgradeResConfigVo list = 2;
+// }
+
+// message UpgradePkgGetReq { UpgradePkgVo vo = 1; }
+
+// message UpgradePkgListReq {
+//   Page page = 1;
+//   UpgradePkgVo vo = 2;
+// }
+
+// message UpgradePkgListResp {
+//   int64 total = 1;
+//   repeated UpgradePkgVo list = 2;
+// }
+
+// message UpgradeResGetReq { UpgradeResVo vo = 1; }
+
+// message UpgradeResListReq {
+//   Page page = 1;
+//   UpgradeResVo vo = 2;
+// }
+// message UpgradeResListResp {
+//   int64 total = 1;
+//   repeated UpgradeResVo list = 2;
+// }
+
+// message ResourceDelReq {
+//   repeated int64 ids = 1;
+//   string fileMd5 = 2;
+// }
+
+// UpgradePkgPlan
+message UpgradePkgPlanVo {
+  int64 id = 1;
+  string productCode = 2; // 产品code
+  string areas = 3;       // 地区列表
+  int64 sort = 4;
+  Status status = 5; // 状态
+  string remark = 6;
+  int64 createTime = 7;
+  int64 updateTime = 8;
+}
+
+message UpgradePkgPlanListReq {
+  Page page = 1;
+  UpgradePkgPlanVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message UpgradePkgPlanListResp {
+  int64 total = 1;
+  repeated UpgradePkgPlanVo list = 2;
+}
+// end UpgradePkgPlan
+
+// UpgradePkgPlanDetail
+message UpgradePkgPlanDetailVo {
+  int64 id = 1;
+  int64 planId = 2;                     // 方案ID
+  string platform = 3;                  // 平台
+  string channel = 4;                   // 渠道
+  string name = 5;                      // 名称
+  int64 ver = 6;                        // 版本号
+  string url = 7;                       // 商店地址
+  string websiteUrl = 8;                // 官网地址
+  string directUrl = 9;                 // 直接下载地址
+  string md5 = 10;                      // MD5
+  string info = 11;                     // 更新信息
+  string testUpgradePolicyConfig = 12;  // 测试更新策略配置
+  string upgradePolicyConfig = 13;      // 更新策略配置
+  string forceUpgradePolicyConfig = 14; // 强制更新策略
+  Status status = 15;                   // 状态
+  string remark = 16;
+  int64 createTime = 17;
+  int64 updateTime = 18;
+}
+
+message UpgradePkgPlanDetailListReq {
+  Page page = 1;
+  UpgradePkgPlanDetailVo vo = 2;
+  repeated int64 planIds = 3;
+}
+
+message UpgradePkgPlanDetailListResp {
+  int64 total = 1;
+  repeated UpgradePkgPlanDetailVo list = 2;
+}
+// end UpgradePkgPlanDetail
+
+// UpgradeResPlan
+message UpgradeResPlanVo {
+  int64 id = 1;
+  string productCode = 2; // 产品code
+  string areas = 3;       // 地区列表
+  int64 sort = 4;
+  Status status = 5; // 状态
+  string remark = 6;
+  int64 createTime = 7;
+  int64 updateTime = 8;
+}
+
+message UpgradeResPlanListReq {
+  Page page = 1;
+  UpgradeResPlanVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message UpgradeResPlanListResp {
+  int64 total = 1;
+  repeated UpgradeResPlanVo list = 2;
+}
+// end UpgradeResPlan
+
+// UpgradeResPlanDetail
+message UpgradeResPlanDetailVo {
+  int64 id = 1;                         // ID
+  int64 planId = 2;                     // 方案ID
+  string platform = 3;                  // 平台
+  string channel = 4;                   // 渠道
+  string name = 5;                      // 名称
+  int64 ver = 6;                        // 资源版本号
+  string url = 7;                       // 资源地址
+  string info = 8;                      // 更新信息
+  string md5 = 9;                       // 资源 md5值
+  int64 size = 10;                      // 资源大小
+  string testUpgradePolicyConfig = 11;  // 测试更新策略配置
+  string upgradePolicyConfig = 12;      // 更新策略配置
+  string forceUpgradePolicyConfig = 13; // 强制更新策略
+  Status status = 14;                   // 状态,1=正常,2=冻结
+  string remark = 15;                   // 备注
+  int64 createTime = 16;                // 创建时间秒
+  int64 updateTime = 17;                // 修改时间秒
+}
+
+message UpgradeResPlanDetailListReq {
+  Page page = 1;
+  UpgradeResPlanDetailVo vo = 2;
+  repeated int64 planIds = 3;
+}
+
+message UpgradeResPlanDetailListResp {
+  int64 total = 1;
+  repeated UpgradeResPlanDetailVo list = 2;
+}
+// end UpgradeResPlanDetail
+
+// AdPlan
+message AdPlanVo {
+  int64 id = 1;
+  string productCode = 2; // 产品code
+  string areas = 3;       // 地区列表
+  string config = 4;      // 配置
+  int64 sort = 5;
+  Status status = 6; // 状态
+  string remark = 7;
+  int64 createTime = 8;
+  int64 updateTime = 9;
+}
+
+message AdPlanListReq {
+  Page page = 1;
+  AdPlanVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message AdPlanListResp {
+  int64 total = 1;
+  repeated AdPlanVo list = 2;
+}
+// end AdPlan
+
+// AdPlanDetail
+message AdPlanDetailVo {
+  int64 id = 1;
+  int64 planId = 2;            // 方案ID
+  string adPlatform = 3;       // 平台
+  string adType = 4;           // 广告类型
+  string adSlot = 5;           // 广告位置
+  string adDatas = 6;          // 广告资源
+  string testPolicyConfig = 7; // 策略配置
+  string policyConfig = 8;     // 策略配置
+  int64 sort = 9;              // 排序
+  Status status = 10;          // 0未知,1正常,2暂停
+  string remark = 11;
+  int64 createTime = 12;
+  int64 updateTime = 13;
+  string version = 14;
+}
+
+message AdPlanDetailListReq {
+  Page page = 1;
+  AdPlanDetailVo vo = 2;
+  repeated int64 planIds = 3;
+}
+
+message AdPlanDetailListResp {
+  int64 total = 1;
+  repeated AdPlanDetailVo list = 2;
+}
+// end AdPlanDetail
+
+// AdGlobalConfig
+message AdGlobalConfigVo {
+  int64 id = 1;
+  string productCode = 2;     // 产品code
+  string platforms = 3;       // 按平台分类的广告配置JSON
+  string remark = 4;          // 备注
+  int64 createTime = 5;       // 创建时间
+  int64 updateTime = 6;       // 更新时间
+}
+
+message AdGlobalConfigGetReq {
+  string productCode = 1;     // 产品代码
+}
+// end AdGlobalConfig
+
+// JobBatch
+message JobBatchVo {
+  int64 id = 1;          // ID
+  string name = 2;       // 作业名称
+  string type = 3;       // 作业类型
+  string initParams = 4; // 作业初始化参数
+  string contextData =
+      5; // 上下文数据,可用于存储此次批量作业的任务过程中产生的通用的中间数据
+  string beginHandler = 6; // 预处理函数/URL
+  string afterHandler = 7; // 后处理函数/URL
+  int64 concurrency = 8;   // 并发控制数
+  string retryPolicy = 9;  // 子任务重试策略
+  int64 startedTime = 10;  // 批量作业开始时间
+  int64 finishedTime = 11; // 批量作业完成时间
+  string result = 12;      // 批量作业返回结果
+  string status = 13;      // 批量作业完成状态
+  string remark = 14;      // 备注
+  int64 createAt = 15;     // 创建者ID
+  int64 updateAt = 16;     // 更新者ID
+  int64 createTime = 17;   // 创建时间
+  int64 updateTime = 18;   // 更新时间
+}
+
+message JobBatchWithTasksVo {
+  JobBatchVo jobBatch = 1;
+  repeated JobTasksVo jobTasks = 2;
+}
+
+message TimeRange {
+  int64 start = 1;
+  int64 end = 2;
+}
+
+message JobBatchListReq {
+  Page page = 1;
+  JobBatchVo vo = 2;
+  TimeRange startedTimeRange = 3;
+  TimeRange finishedTimeRange = 4;
+  repeated string statuses = 5;
+  repeated int64 excludeIds = 6;
+}
+
+message JobBatchListResp {
+  int64 total = 1;
+  repeated JobBatchVo list = 2;
+}
+
+message JobBatchListWithTasksResp {
+  int64 total = 1;
+  repeated JobBatchWithTasksVo list = 2;
+}
+// end JobBatch
+
+// JobTasks
+message JobTasksVo {
+  int64 id = 1;          // 任务id
+  int64 batchId = 2;     // 批量作业Id
+  string name = 3;       // 任务名称
+  string initParams = 4; // 任务初始化配置及数据
+  string runtimeData =
+      5; // 任务运行时数据,用于临时存储任务过程中各个关键节点的中间数据
+  string externalRefs = 6; // 外部系统引用,用于记录与外部系统交互产生的关联标识
+  int64 startedTime = 7;   // 任务开始时间
+  int64 finishedTime = 8;  // 任务结束时间
+  int64 retryCount = 9;    // 当前已重试次数
+  string result = 10;      // 任务执行结果
+  string status = 11;      // 任务状态
+  string remark = 12;      // 备注
+  int64 createAt = 13;     // 创建者ID
+  int64 updateAt = 14;     // 更新者ID
+  int64 createTime = 15;   // 创建时间
+  int64 updateTime = 16;   // 更新时间
+}
+
+message JobTasksListReq {
+  Page page = 1;
+  JobTasksVo vo = 2;
+  TimeRange startedTimeRange = 3;
+  TimeRange finishedTimeRange = 4;
+  repeated string statuses = 5;
+  repeated int64 excludeIds = 6;
+}
+
+message JobTasksListResp {
+  int64 total = 1;
+  repeated JobTasksVo list = 2;
+}
+// end JobTasks
+
+// DeployConfig
+message DeployConfigVo {
+  int64 id = 1;         // ID
+  string name = 2;      // 名称
+  string type = 3;      // 类型
+  string data = 4;      // 数据
+  Status status = 5;    // 状态
+  string remark = 6;    // 备注
+  int64 createTime = 7; // 创建时间
+  int64 updateTime = 8; // 更新时间
+}
+
+message DeployConfigListReq {
+  Page page = 1;
+  DeployConfigVo vo = 2;
+  repeated int64 excludeIds = 3;
+}
+
+message DeployConfigListResp {
+  int64 total = 1;
+  repeated DeployConfigVo list = 2;
+}
+// end DeployConfig
+
+// OperationLog
+message OperationLogVo {
+  int64 id = 1;
+  int64 sysUserId = 2;
+  string productCode = 3;
+  string model = 4;
+  string action = 5;
+  string details = 6;
+  string result = 7;
+  int64 updateTime = 8;
+  int64 createTime = 9;
+}
+
+message OperationLogListReq {
+  Page page = 1;
+  OperationLogVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message OperationLogListResp {
+  int64 total = 1;
+  repeated OperationLogVo list = 2;
+}
+// end OperationLog
+
+// AnnouncePlan
+message AnnouncePlanVo {
+  int64 id = 1;
+  string productCode = 2; // 产品code
+  string areas = 3;       // 地区列表
+  int64 sort = 4;
+  Status status = 5; // 状态
+  string remark = 6;
+  int64 createTime = 7;
+  int64 updateTime = 8;
+}
+
+message AnnouncePlanListReq {
+  Page page = 1;
+  AnnouncePlanVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message AnnouncePlanListResp {
+  int64 total = 1;
+  repeated AnnouncePlanVo list = 2;
+}
+// end AnnouncePlan
+
+// AnnouncePlanDetail
+message AnnouncePlanDetailVo {
+  int64 id = 1;
+  int64 planId = 2;         // 方案ID
+  string platforms = 3;     // 平台
+  string channels = 4;      // 渠道
+  string icon = 5;          // 图标
+  string title = 6;         // 标题
+  string content = 7;       // 内容
+  string url = 8;           // 商店地址
+  string buttonText = 9;    // 按钮文本
+  int64 closeable = 10;     // 是否可关闭
+  int64 sort = 11;          // 排序
+  string policyConfig = 12; // 更新策略配置
+  Status status = 13;       // 状态
+  string remark = 14;
+  int64 createTime = 15;
+  int64 updateTime = 16;
+}
+
+message AnnouncePlanDetailListReq {
+  Page page = 1;
+  AnnouncePlanDetailVo vo = 2;
+  repeated int64 planIds = 3;
+}
+
+message AnnouncePlanDetailListResp {
+  int64 total = 1;
+  repeated AnnouncePlanDetailVo list = 2;
+}
+// end AnnouncePlanDetail
+
+// ServiceTypes
+message ServiceTypesVo {
+  int64 id = 1;
+  string productCode = 2;
+  string name = 3;
+  int64 userLevel = 4;
+  int64 deviceLimit = 5;  // 可选字段,Go中是 *int64
+  int64 sort = 6;
+  string config = 7;
+  Status status = 8;
+  string remark = 9;
+  int64 createTime = 10;
+  int64 updateTime = 11;
+}
+
+message ServiceTypesGetReq {
+  int64 id = 1;
+}
+
+message ServiceTypesListReq {
+  Page page = 1;
+  ServiceTypesVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+
+message ServiceTypesListResp {
+  int64 total = 1;
+  repeated ServiceTypesVo list = 2;
+}
+
+message ServiceTypesAddReq {
+  ServiceTypesVo vo = 1;
+}
+
+message ServiceTypesUpdateReq {
+  ServiceTypesVo vo = 1;
+}
+
+message ServiceTypesDelReq {
+  int64 id = 1;
+}
+// end ServiceTypes
+
+// ServiceSets
+message ServiceSetsVo {
+  int64 id = 1;
+  string productCode = 2;
+  int64 serviceTypeId = 3;
+  string name = 4;
+  int64 licenseDays = 5;
+  string channel = 6;
+  string channelItemId = 7;
+  int64 refPortalServiceSetId = 8;  // Go中是 sql.int64,转换为 int64
+  string appleChannelItemId = 9;
+  string googleChannelItemId = 10;
+  string title = 11;
+  string subTitle = 12;
+  string introduce = 13;
+  float orgPrice = 14;
+  float price = 15;
+  BoolInt display = 16;
+  BoolInt isDefault = 17;
+  BoolInt recommend = 18;
+  BoolInt hidden = 19;
+  int64 sort = 20;
+  Status status = 21;
+  string remark = 22;
+  int64 createTime = 23;
+  int64 updateTime = 24;
+}
+
+message ServiceSetsGetReq {
+  int64 id = 1;
+}
+
+message ServiceSetsListReq {
+  Page page = 1;
+  ServiceSetsVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 serviceTypeIds = 4;
+  repeated int64 excludeIds = 5;
+}
+
+message ServiceSetsListResp {
+  int64 total = 1;
+  repeated ServiceSetsVo list = 2;
+}
+
+message ServiceSetsAddReq {
+  ServiceSetsVo vo = 1;
+}
+
+message ServiceSetsUpdateReq {
+  ServiceSetsVo vo = 1;
+}
+
+message ServiceSetsDelReq {
+  int64 id = 1;
+}
+// end ServiceSets
+
+message MessagePushVo {
+  int64 id = 1;
+  string status = 2;
+  int64 operator = 3;
+  string module = 4;
+  string title = 5;
+  string message = 6;
+  string imgUrl = 7;
+  string data = 8;
+  string productCode = 9;
+  int64 areaParam = 10;
+  repeated string topics = 11;
+  repeated string firebaseTokens = 12;
+  int64 publishTime = 13;
+  int64 createTime = 14;
+  int64 updateTime = 15;
+}
+
+message MessagePushListReq {
+  Page page = 1;
+  MessagePushVo vo = 2;
+}
+
+message MessagePushListResp {
+  int64 total = 1;
+  repeated MessagePushVo list = 2;
+}
+
+// 基础服务: 产品管理,产品配置,升级配置、更新资源管理,资源版本管理,全局配置
+service GoPmpClient {
+  rpc Ping(Request) returns (Response);
+
+  // GlobalParamVo
+  rpc GlobalParamAdd(GlobalParamVo) returns (GlobalParamVo);
+  rpc GlobalParamUpdate(GlobalParamVo) returns (GlobalParamVo);
+  rpc GlobalParamDel(Ids) returns (Empty);
+  rpc GlobalParamGet(GlobalParamVo) returns (GlobalParamVo); // 兼容旧接口,新版本代码中请不要调用
+  rpc GlobalParamGetWithLang(GlobalParamGetReq) returns (GlobalParamVo);
+  rpc GlobalParamList(GlobalParamListReq) returns (GlobalParamListResp);
+
+  // ProductVo
+  rpc ProductAdd(ProductVo) returns (ProductVo);
+  rpc ProductUpdate(ProductVo) returns (ProductVo);
+  rpc ProductDel(Ids) returns (Empty);
+  rpc ProductGet(ProductVo) returns (ProductVo);
+  rpc ProductList(ProductListReq) returns (ProductListResp);
+  rpc ProductAll(Request) returns (ProductListResp);
+
+  // ProductParamVo
+  rpc ProductParamAdd(ProductParamVo) returns (ProductParamVo);
+  rpc ProductParamUpdate(ProductParamVo) returns (ProductParamVo);
+  rpc ProductParamDel(Ids) returns (Empty);
+  rpc ProductParamGet(ProductParamVo) returns (ProductParamVo); // 兼容旧接口,新版本代码中请不要调用
+  rpc ProductParamGetWithLang(ProductParamGetReq) returns (ProductParamVo);
+  rpc ProductParamList(ProductParamListReq) returns (ProductParamListResp);
+
+  // ProductAction 产品行为配置
+  rpc ProductActionAdd(ProductActionVo) returns (ProductActionVo);
+  rpc ProductActionUpdate(ProductActionVo) returns (ProductActionVo);
+  rpc ProductActionDel(Ids) returns (Empty);
+  rpc ProductActionGet(ProductActionReq) returns (ProductActionVo);
+  rpc ProductActionList(ProductActionListReq) returns (ProductActionListResp);
+
+  // AreaParamVo
+  rpc AreaParamAdd(AreaParamVo) returns (AreaParamVo);
+  rpc AreaParamUpdate(AreaParamVo) returns (AreaParamVo);
+  rpc AreaParamDel(Ids) returns (Empty);
+  rpc AreaParamGet(AreaParamVo) returns (AreaParamVo);
+  rpc AreaParamList(AreaParamListReq) returns (AreaParamListResp);
+
+  // NationalLanguage
+  rpc NationalLanguageAdd(NationalLanguageVo) returns (NationalLanguageVo);
+  rpc NationalLanguageUpdate(NationalLanguageVo) returns (NationalLanguageVo);
+  rpc NationalLanguageDel(Ids) returns (Empty);
+  rpc NationalLanguageGet(NationalLanguageVo) returns (NationalLanguageVo);
+  rpc NationalLanguageList(NationalLanguageListReq)
+      returns (NationalLanguageListResp);
+
+  // Tip
+  rpc TipAdd(TipVo) returns (TipVo);
+  rpc TipUpdate(TipVo) returns (TipVo);
+  rpc TipDel(Ids) returns (Empty);
+  rpc TipGet(TipGetReq) returns (TipVo);
+  rpc TipList(TipListReq) returns (TipListResp);
+
+  // Dict
+  rpc DictAdd(DictVo) returns (DictVo);
+  rpc DictUpdate(DictVo) returns (DictVo);
+  rpc DictDel(Ids) returns (Empty);
+  rpc DictGet(DictGetReq) returns (DictVo);
+  rpc DictList(DictListReq) returns (DictListResp);
+
+  // // UpgradeRes 热更新代码资源管理
+  // rpc UpgradeResAdd(UpgradeResVo) returns (UpgradeResVo);
+  // rpc UpgradeResUpdate(UpgradeResVo) returns (Empty);
+  // rpc UpgradeResDel(ResourceDelReq) returns (Empty);
+  // rpc UpgradeResGet(UpgradeResGetReq) returns (UpgradeResVo);
+  // rpc UpgradeResList(UpgradeResListReq) returns (UpgradeResListResp);
+
+  // // UpgradePkg app 包更新管理
+  // rpc UpgradePkgAdd(UpgradePkgVo) returns (UpgradePkgVo);
+  // rpc UpgradePkgUpdate(UpgradePkgVo) returns (Empty);
+  // rpc UpgradePkgDel(Ids) returns (Empty);
+  // rpc UpgradePkgGet(UpgradePkgGetReq) returns (UpgradePkgVo);
+  // rpc UpgradePkgList(UpgradePkgListReq) returns (UpgradePkgListResp);
+
+  // // UpgradeResConfig
+  // 热更新【代码资源】配置管理,控制哪些版本地区的用户可以更新 rpc
+  // UpgradeResConfigAdd(UpgradeResConfigVo) returns (UpgradeResConfigVo); rpc
+  // UpgradeResConfigUpdate(UpgradeResConfigVo) returns (Empty); rpc
+  // UpgradeResConfigDel(Ids) returns (Empty); rpc
+  // UpgradeResConfigGet(UpgradeResConfigGetReq) returns (UpgradeResConfigVo);
+  // rpc UpgradeResConfigList(UpgradeResConfigListReq)
+  //     returns (UpgradeResConfigListResp);
+
+  // UpgradePkgPlan
+  rpc UpgradePkgPlanAdd(UpgradePkgPlanVo) returns (UpgradePkgPlanVo);
+  rpc UpgradePkgPlanUpdate(UpgradePkgPlanVo) returns (UpgradePkgPlanVo);
+  rpc UpgradePkgPlanDel(Ids) returns (Empty);
+  rpc UpgradePkgPlanGet(UpgradePkgPlanVo) returns (UpgradePkgPlanVo);
+  rpc UpgradePkgPlanList(UpgradePkgPlanListReq)
+      returns (UpgradePkgPlanListResp);
+
+  // UpgradePkgPlanDetail
+  rpc UpgradePkgPlanDetailAdd(UpgradePkgPlanDetailVo)
+      returns (UpgradePkgPlanDetailVo);
+  rpc UpgradePkgPlanDetailUpdate(UpgradePkgPlanDetailVo)
+      returns (UpgradePkgPlanDetailVo);
+  rpc UpgradePkgPlanDetailDel(Ids) returns (Empty);
+  rpc UpgradePkgPlanDetailGet(UpgradePkgPlanDetailVo)
+      returns (UpgradePkgPlanDetailVo);
+  rpc UpgradePkgPlanDetailList(UpgradePkgPlanDetailListReq)
+      returns (UpgradePkgPlanDetailListResp);
+
+  // UpgradeResPlan
+  rpc UpgradeResPlanAdd(UpgradeResPlanVo) returns (UpgradeResPlanVo);
+  rpc UpgradeResPlanUpdate(UpgradeResPlanVo) returns (UpgradeResPlanVo);
+  rpc UpgradeResPlanDel(Ids) returns (Empty);
+  rpc UpgradeResPlanGet(UpgradeResPlanVo) returns (UpgradeResPlanVo);
+  rpc UpgradeResPlanList(UpgradeResPlanListReq)
+      returns (UpgradeResPlanListResp);
+
+  // UpgradeResPlanDetail
+  rpc UpgradeResPlanDetailAdd(UpgradeResPlanDetailVo)
+      returns (UpgradeResPlanDetailVo);
+  rpc UpgradeResPlanDetailUpdate(UpgradeResPlanDetailVo)
+      returns (UpgradeResPlanDetailVo);
+  rpc UpgradeResPlanDetailDel(Ids) returns (Empty);
+  rpc UpgradeResPlanDetailGet(UpgradeResPlanDetailVo)
+      returns (UpgradeResPlanDetailVo);
+  rpc UpgradeResPlanDetailList(UpgradeResPlanDetailListReq)
+      returns (UpgradeResPlanDetailListResp);
+
+  // AdPlan
+  rpc AdPlanAdd(AdPlanVo) returns (AdPlanVo);
+  rpc AdPlanUpdate(AdPlanVo) returns (AdPlanVo);
+  rpc AdPlanDel(Ids) returns (Empty);
+  rpc AdPlanGet(AdPlanVo) returns (AdPlanVo);
+  rpc AdPlanList(AdPlanListReq) returns (AdPlanListResp);
+
+  // AdPlanDetail
+  rpc AdPlanDetailAdd(AdPlanDetailVo) returns (AdPlanDetailVo);
+  rpc AdPlanDetailUpdate(AdPlanDetailVo) returns (AdPlanDetailVo);
+  rpc AdPlanDetailDel(Ids) returns (Empty);
+  rpc AdPlanDetailGet(AdPlanDetailVo) returns (AdPlanDetailVo);
+  rpc AdPlanDetailList(AdPlanDetailListReq) returns (AdPlanDetailListResp);
+
+  // AdGlobalConfig
+  rpc AdGlobalConfigGet(AdGlobalConfigGetReq) returns (AdGlobalConfigVo);
+  rpc AdGlobalConfigUpdate(AdGlobalConfigVo) returns (AdGlobalConfigVo);
+
+  // JobBatch
+  rpc JobBatchAdd(JobBatchVo) returns (JobBatchVo);
+  rpc JobBatchAddWithTasks(JobBatchWithTasksVo) returns (JobBatchWithTasksVo);
+  rpc JobBatchUpdate(JobBatchVo) returns (JobBatchVo);
+  rpc JobBatchDel(Ids) returns (Empty);
+  rpc JobBatchGet(JobBatchVo) returns (JobBatchVo);
+  rpc JobBatchGetWithTasks(JobBatchVo) returns (JobBatchWithTasksVo);
+  rpc JobBatchList(JobBatchListReq) returns (JobBatchListResp);
+  rpc JobBatchListWithTasks(JobBatchListReq)
+      returns (JobBatchListWithTasksResp);
+
+  // JobTasks
+  rpc JobTasksAdd(JobTasksVo) returns (JobTasksVo);
+  rpc JobTasksUpdate(JobTasksVo) returns (JobTasksVo);
+  rpc JobTasksDel(Ids) returns (Empty);
+  rpc JobTasksGet(JobTasksVo) returns (JobTasksVo);
+  rpc JobTasksList(JobTasksListReq) returns (JobTasksListResp);
+
+  // DeployConfig
+  rpc DeployConfigAdd(DeployConfigVo) returns (DeployConfigVo);
+  rpc DeployConfigUpdate(DeployConfigVo) returns (DeployConfigVo);
+  rpc DeployConfigDel(Ids) returns (Empty);
+  rpc DeployConfigGet(DeployConfigVo) returns (DeployConfigVo);
+  rpc DeployConfigList(DeployConfigListReq) returns (DeployConfigListResp);
+
+  // OperationLog
+  rpc OperationLogAdd(OperationLogVo) returns (OperationLogVo);
+  rpc OperationLogUpdate(OperationLogVo) returns (OperationLogVo);
+  rpc OperationLogGet(OperationLogVo) returns (OperationLogVo);
+  rpc OperationLogList(OperationLogListReq) returns (OperationLogListResp);
+
+  // AnnouncePlan
+  rpc AnnouncePlanAdd(AnnouncePlanVo) returns (AnnouncePlanVo);
+  rpc AnnouncePlanUpdate(AnnouncePlanVo) returns (AnnouncePlanVo);
+  rpc AnnouncePlanDel(Ids) returns (Empty);
+  rpc AnnouncePlanGet(AnnouncePlanVo) returns (AnnouncePlanVo);
+  rpc AnnouncePlanList(AnnouncePlanListReq) returns (AnnouncePlanListResp);
+
+  // AnnouncePlanDetail
+  rpc AnnouncePlanDetailAdd(AnnouncePlanDetailVo)
+      returns (AnnouncePlanDetailVo);
+  rpc AnnouncePlanDetailUpdate(AnnouncePlanDetailVo)
+      returns (AnnouncePlanDetailVo);
+  rpc AnnouncePlanDetailDel(Ids) returns (Empty);
+  rpc AnnouncePlanDetailGet(AnnouncePlanDetailVo)
+      returns (AnnouncePlanDetailVo);
+  rpc AnnouncePlanDetailList(AnnouncePlanDetailListReq)
+      returns (AnnouncePlanDetailListResp);
+
+  // ServiceTypes
+  rpc ServiceTypesAdd(ServiceTypesAddReq) returns (ServiceTypesVo);
+  rpc ServiceTypesUpdate(ServiceTypesUpdateReq) returns (ServiceTypesVo);
+  rpc ServiceTypesDel(ServiceTypesDelReq) returns (Empty);
+  rpc ServiceTypesGet(ServiceTypesGetReq) returns (ServiceTypesVo);
+  rpc ServiceTypesList(ServiceTypesListReq) returns (ServiceTypesListResp);
+
+  // ServiceSets
+  rpc ServiceSetsAdd(ServiceSetsAddReq) returns (ServiceSetsVo);
+  rpc ServiceSetsUpdate(ServiceSetsUpdateReq) returns (ServiceSetsVo);
+  rpc ServiceSetsDel(ServiceSetsDelReq) returns (Empty);
+  rpc ServiceSetsGet(ServiceSetsGetReq) returns (ServiceSetsVo);
+  rpc ServiceSetsList(ServiceSetsListReq) returns (ServiceSetsListResp);
+
+  // MessagePush
+  rpc MessagePushAdd(MessagePushVo) returns (MessagePushVo);
+  rpc MessagePushUpdate(MessagePushVo) returns (MessagePushVo);
+  rpc MessagePushList(MessagePushListReq) returns (MessagePushListResp);
+}

+ 202 - 0
pb/shortdrama.proto

@@ -0,0 +1,202 @@
+syntax = "proto3";
+
+package gorpc;
+option go_package = "git.goio.dev/pb/go-service-pb/client";
+
+import "pb/common.proto";
+
+
+
+message ShortDramaEpisodeVo {
+  int64 id = 1;
+  int64 dramaId = 2;
+  int64 type = 3;
+  string name = 4;
+  int64 sort = 5;
+  string videos = 6;
+  string subtitles = 7;
+  Status status = 8;
+  int64 createTime = 9;
+  int64 updateTime = 10;
+  string danmakuUrl = 11;
+}
+
+message ShortDramaEpisodeGetReq { ShortDramaEpisodeVo vo = 1; }
+message ShortDramaEpisodeListReq {
+  Page page = 1;
+  ShortDramaEpisodeVo vo = 2;
+  repeated int64 dramaIds = 3;
+}
+message ShortDramaEpisodeListResp {
+  int64 total = 1;
+  repeated ShortDramaEpisodeVo list = 2;
+}
+
+message ShortDramaEpisodeBatchAddReq {
+  int64 dramaId = 1;
+  repeated ShortDramaEpisodeVo episodes = 2;
+}
+
+message ShortDramaEpisodeBatchRefreshUpdateTimeReq {
+  int64 dramaId = 1;
+}
+
+message ShortDramaLanguageVo {
+  int64 id = 1;
+  int64 dramaId = 2;
+  string lang = 3;
+  string title = 4;
+  string description = 5;
+  string covers = 6;
+  string coverDominantColor = 7;
+  int64 createTime = 8;
+  int64 updateTime = 9;
+}
+
+message ShortDramaVo {
+  int64 id = 1;
+  string productCodes = 2;
+  string title = 3;
+  string description = 4;
+  string covers = 5;
+  string coverDominantColor = 6;
+  string type = 7;
+  string tags = 8;
+  string releaseRegions = 9;
+  int64 releaseDate = 10;
+  int64 totalEpisodes = 11;
+  int64 completedStatus = 12;
+  string copyrightSupplier = 13;
+  string copyrightDoc = 14;
+  int64 copyrightPurchaseDate = 15;
+  int64 copyrightExpireDate = 16;
+  int64 status = 17;
+  int64 createTime = 18;
+  int64 updateTime = 19;
+  string ghostCutId = 20;
+  int64 recommend = 21;
+  string otherConfig = 22;
+  repeated ShortDramaLanguageVo shortDramaLanguages = 23;
+  int64 mainEpisodeCount = 24;
+  int64 trailerEpisodeCount = 25;
+  int64 copyrightId = 26;
+  int64 creator = 27;
+  int64 modifier = 28;
+}
+
+message ShortDramaGetReq { ShortDramaVo vo = 1; string productCode = 2; string countryCode = 3; string lang = 4;}
+message ShortDramaListReq {
+  Page page = 1;
+  ShortDramaVo vo = 2;
+  repeated int64 excludeIds = 3;
+  string productCode = 4;
+  string countryCode = 5;
+  string lang = 6;
+}
+message ShortDramaListResp {
+  int64 total = 1;
+  repeated ShortDramaVo list = 2;
+}
+
+message ShortDramaLanguageListReq {
+  Page page = 1;
+  ShortDramaLanguageVo vo = 2;
+  
+}
+message ShortDramaLanguageListResp {
+  int64 total = 1;
+  repeated ShortDramaLanguageVo list = 2;
+}
+
+message ShortDramaEpisodeCountVo {
+  int64 dramaId = 1;
+  int64 episodeCount = 2;
+}
+
+message ShortDramaEpisodeCountReq {
+  Page page = 1;
+  Status status = 2;
+  int64 type = 3;
+  repeated int64 dramaIds = 4;
+}
+
+message ShortDramaEpisodeCountResp {
+  int64 total = 1;
+  repeated ShortDramaEpisodeCountVo list = 2;
+}
+
+message ShortDramaCheckNameReq {
+  string title = 1; // 短剧名称
+  int64 id = 2; // 编辑时排除当前短剧ID
+}
+
+message ShortDramaCheckNameResp {
+  bool exists = 1; // 是否存在
+}
+
+message ShortDramaUpdateModifierReq {
+  int64 id = 1;
+  int64 modifier = 2;
+}
+
+message SetTotalStatsReq {
+  int64 dramaId = 1;
+  string country = 2;
+  int64 todayPlayCount = 3;
+  int64 weeklyPlayCount = 4;
+  int64 monthlyPlayCount = 5;
+}
+
+message ShortDramaStatsPlaysTotalVo {
+  int64 id = 1;
+  int64 dramaId = 2;
+  string country = 3;
+  int64 todayPlayCount = 4;
+  int64 weeklyPlayCount = 5;
+  int64 monthlyPlayCount = 6;
+  int64 createTime = 7;
+  int64 updateTime = 8;
+}
+
+message ShortDramaStatsPlaysTotalListReq {
+  Page page = 1;
+  string country = 2; // 国家代码
+}
+
+message ShortDramaStatsPlaysTotalListResp {
+  int64 total = 1;
+  repeated ShortDramaStatsPlaysTotalVo list = 2;
+}
+
+service GoShortDramaClient {
+  // ShortDrama
+  rpc ShortDramaAdd(ShortDramaVo) returns (ShortDramaVo);
+  rpc ShortDramaUpdate(ShortDramaVo) returns (Empty);
+  rpc ShortDramaDel(Ids) returns (Empty);
+  rpc ShortDramaGet(ShortDramaGetReq) returns (ShortDramaVo);
+  rpc ShortDramaList(ShortDramaListReq) returns (ShortDramaListResp);
+  rpc ShortDramaUpdateModifier(ShortDramaUpdateModifierReq) returns (Empty);
+
+  // ShortDramaLanguage
+  rpc ShortDramaLanguageList(ShortDramaLanguageListReq) returns (ShortDramaLanguageListResp);
+
+  // ShortDramaEpisode
+  rpc ShortDramaEpisodeAdd(ShortDramaEpisodeVo) returns (ShortDramaEpisodeVo);
+  rpc ShortDramaEpisodeBatchAdd(ShortDramaEpisodeBatchAddReq) returns (Empty);
+  rpc ShortDramaEpisodeUpdate(ShortDramaEpisodeVo) returns (Empty);
+  rpc ShortDramaEpisodeDel(Ids) returns (Empty);
+  rpc ShortDramaEpisodeGet(ShortDramaEpisodeGetReq) returns (ShortDramaEpisodeVo);
+  rpc ShortDramaEpisodeList(ShortDramaEpisodeListReq) returns (ShortDramaEpisodeListResp);
+  rpc ShortDramaEpisodeBatchRefreshUpdateTime(ShortDramaEpisodeBatchRefreshUpdateTimeReq) returns (Empty);
+
+  // ShortDramaEpisodeCount
+  rpc ShortDramaEpisodeCount(ShortDramaEpisodeCountReq) returns (ShortDramaEpisodeCountResp);
+
+  rpc ShortDramaCheckName(ShortDramaCheckNameReq) returns (ShortDramaCheckNameResp);
+
+  // ShortDramaStats
+  rpc SetTotalStats(SetTotalStatsReq) returns (Empty);
+
+  // ShortDramaStatsPlaysTotal
+  rpc ShortDramaStatsPlaysTotalList(ShortDramaStatsPlaysTotalListReq) returns (ShortDramaStatsPlaysTotalListResp);
+}

+ 244 - 0
pb/sys.proto

@@ -0,0 +1,244 @@
+syntax = "proto3";
+
+package gorpc;
+option go_package = "git.goio.dev/pb/go-service-pb/client";
+
+// 根据需要增加状态
+
+import "pb/common.proto";
+
+message SysUserVo {
+  int64 id = 1;             // ID
+  string username = 2;      // 登录名
+  string password = 3;      // 登录密码
+  string nickname = 4;      // 昵称
+  string avatar = 5;        // 头像
+  string email = 6;         // 邮箱
+  string phone = 7;         // 手机号
+  string remark = 8;        // 备注
+  BoolInt isSuperAdmin = 9; // 是否为超级管理员 1是 2否
+  int64 permsLevel = 10;    // 权限等级 值越大 权限越小
+  Status status = 11;       // 状态 1正常 2冻结
+  int64 createTime = 12;    // 创建时间
+  int64 updateTime = 13;    // 修改时间
+}
+
+message SysRoleVo {
+  int64 id = 1;           // ID
+  string productCode = 2; // 所属产品
+  string name = 3;        // 角色名
+  string remark = 4;      // 备注
+  Status status = 5;      // 状态 1启用 2禁用
+  int64 createTime = 6;   // 创建时间
+  int64 updateTime = 7;   // 修改时间
+  int64 permsLevel = 8;   // 权限等级 值越大 权限越小
+}
+
+message SysPermVo {
+  int64 id = 1;         // ID
+  string name = 2;      // 权限名
+  string code = 3;      // 权限code
+  string remark = 4;    // 备注
+  Status status = 5;    // 状态 1启用 2禁用
+  int64 createTime = 6; // 创建时间
+  int64 updateTime = 7; // 修改时间
+}
+
+message SysUserRoleVo {
+  int64 id = 1;         // ID
+  int64 userId = 2;     // 用户ID
+  int64 roleId = 3;     // 角色ID
+  int64 createTime = 4; // 创建时间
+  int64 updateTime = 5; // 修改时间
+}
+
+message SysRolePermVo {
+  int64 id = 1;         // ID
+  int64 roleId = 2;     // 角色ID
+  int64 permId = 3;     // 权限ID
+  int64 createTime = 4; // 创建时间
+  int64 updateTime = 5; // 修改时间
+}
+
+message SysUserPermVo {
+  int64 id = 1;         // ID
+  int64 userId = 2;     // 用户ID
+  int64 permId = 3;     // 权限ID
+  string effect = 4;    // 权限控制策略 ALLOW允许 DENY拒绝
+  int64 createTime = 5; // 创建时间
+  int64 updateTime = 6; // 修改时间
+}
+
+message SysPermRule {
+  int64 permId = 1;
+  string effect = 2; // ALLOW允许 DENY拒绝
+}
+
+message SysUserWithRoleIdsAndPermRules {
+  SysUserVo user = 1;                 // 用户信息
+  repeated int64 roleIds = 2;         // 角色
+  repeated SysPermRule permRules = 3; // 权限
+}
+
+message SysUserWithRolesAndPerms {
+  SysUserVo user = 1;           // 用户信息
+  repeated SysRoleVo roles = 2; // 角色
+  repeated SysPermVo perms = 3; // 权限
+}
+
+message SysUserGetReq { SysUserVo vo = 1; }
+
+message SysUserListReq {
+  Page page = 1;
+  SysUserVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+}
+
+message SysUserListResp {
+  int64 total = 1;
+  repeated SysUserVo list = 2;
+}
+
+message SysUserListWithRolesAndPermsResp {
+  int64 total = 1;
+  repeated SysUserWithRolesAndPerms list = 2;
+}
+
+message SysRoleWithPermIds {
+  SysRoleVo role = 1;
+  repeated int64 permIds = 2;
+}
+
+message SysRoleWithPerms {
+  SysRoleVo role = 1;
+  repeated SysPermVo perms = 2;
+}
+
+message SysRoleGetReq { SysRoleVo vo = 1; }
+
+message SysRoleListReq {
+  Page page = 1;
+  SysRoleVo vo = 2;
+  repeated string productCodes = 3; // 所属产品
+  repeated int64 excludeIds = 4;    // 排除的ID
+}
+
+message SysRoleListResp {
+  int64 total = 1;
+  repeated SysRoleVo list = 2;
+}
+
+message SysRoleListWithPermsResp {
+  int64 total = 1;
+  repeated SysRoleWithPerms list = 2;
+}
+
+message SysPermGetReq { SysPermVo vo = 1; }
+
+message SysPermListReq {
+  Page page = 1;
+  SysPermVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+}
+
+message SysPermListResp {
+  int64 total = 1;
+  repeated SysPermVo list = 2;
+}
+
+message SysUserRoleGetReq { SysUserRoleVo vo = 1; }
+
+message SysUserRoleListReq {
+  Page page = 1;
+  SysUserRoleVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+}
+
+message SysUserRoleListResp {
+  int64 total = 1;
+  repeated SysUserRoleVo list = 2;
+}
+
+message SysRolePermGetReq { SysRolePermVo vo = 1; }
+
+message SysRolePermListReq {
+  Page page = 1;
+  SysRolePermVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+}
+
+message SysRolePermListResp {
+  int64 total = 1;
+  repeated SysRolePermVo list = 2;
+}
+
+message SysUserPermGetReq { SysUserPermVo vo = 1; }
+
+message SysUserPermListReq {
+  Page page = 1;
+  SysUserPermVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+}
+
+message SysUserPermListResp {
+  int64 total = 1;
+  repeated SysUserPermVo list = 2;
+}
+
+service GoSysClient {
+  rpc Ping(Request) returns (Response);
+
+  // 用户管理
+  rpc SysUserAdd(SysUserVo) returns (SysUserVo);
+  rpc SysUserUpdate(SysUserVo) returns (SysUserVo);
+  rpc SysUserDelete(Ids) returns (Empty);
+  rpc SysUserGet(SysUserGetReq) returns (SysUserVo);
+  rpc SysUserList(SysUserListReq) returns (SysUserListResp);
+  rpc SysUserAddWithRolesAndPerms(SysUserWithRoleIdsAndPermRules)
+      returns (SysUserWithRolesAndPerms);
+  rpc SysUserUpdateWithRolesAndPerms(SysUserWithRoleIdsAndPermRules)
+      returns (SysUserWithRolesAndPerms);
+  rpc SysUserGetWithRolesAndPerms(SysUserGetReq)
+      returns (SysUserWithRolesAndPerms);
+  rpc SysUserListWithRolesAndPerms(SysUserListReq)
+      returns (SysUserListWithRolesAndPermsResp);
+
+  // 角色管理
+  rpc SysRoleAdd(SysRoleVo) returns (SysRoleVo);
+  rpc SysRoleUpdate(SysRoleVo) returns (SysRoleVo);
+  rpc SysRoleDelete(Ids) returns (Empty);
+  rpc SysRoleGet(SysRoleGetReq) returns (SysRoleVo);
+  rpc SysRoleList(SysRoleListReq) returns (SysRoleListResp);
+  rpc SysRoleAddWithPerms(SysRoleWithPermIds) returns (SysRoleWithPerms);
+  rpc SysRoleUpdateWithPerms(SysRoleWithPermIds) returns (SysRoleWithPerms);
+  rpc SysRoleGetWithPerms(SysRoleGetReq) returns (SysRoleWithPerms);
+  rpc SysRoleListWithPerms(SysRoleListReq) returns (SysRoleListWithPermsResp);
+
+  // 权限管理
+  rpc SysPermAdd(SysPermVo) returns (SysPermVo);
+  rpc SysPermUpdate(SysPermVo) returns (SysPermVo);
+  rpc SysPermDelete(Ids) returns (Empty);
+  rpc SysPermGet(SysPermGetReq) returns (SysPermVo);
+  rpc SysPermList(SysPermListReq) returns (SysPermListResp);
+
+  // 用户角色管理
+  rpc SysUserRoleAdd(SysUserRoleVo) returns (SysUserRoleVo);
+  rpc SysUserRoleUpdate(SysUserRoleVo) returns (SysUserRoleVo);
+  rpc SysUserRoleDelete(Ids) returns (Empty);
+  rpc SysUserRoleGet(SysUserRoleGetReq) returns (SysUserRoleVo);
+  rpc SysUserRoleList(SysUserRoleListReq) returns (SysUserRoleListResp);
+
+  // 角色权限管理
+  rpc SysRolePermAdd(SysRolePermVo) returns (SysRolePermVo);
+  rpc SysRolePermUpdate(SysRolePermVo) returns (SysRolePermVo);
+  rpc SysRolePermDelete(Ids) returns (Empty);
+  rpc SysRolePermGet(SysRolePermGetReq) returns (SysRolePermVo);
+  rpc SysRolePermList(SysRolePermListReq) returns (SysRolePermListResp);
+
+  // 用户权限管理
+  rpc SysUserPermAdd(SysUserPermVo) returns (SysUserPermVo);
+  rpc SysUserPermUpdate(SysUserPermVo) returns (SysUserPermVo);
+  rpc SysUserPermDelete(Ids) returns (Empty);
+  rpc SysUserPermGet(SysUserPermGetReq) returns (SysUserPermVo);
+  rpc SysUserPermList(SysUserPermListReq) returns (SysUserPermListResp);
+}

+ 178 - 0
pb/user.proto

@@ -0,0 +1,178 @@
+syntax = "proto3";
+
+package gorpc;
+option go_package = "git.goio.dev/pb/go-service-pb/client";
+
+import "pb/common.proto";
+
+// Account
+message AccountVo {
+  int64 id = 1;                 // 主键ID
+  string userUuid = 2;          // 用户UUID
+  string productCode = 3;       // 产品ID
+  string username = 4;          // 用户名
+  string password = 5;          // 密码
+  string accountKey = 6;        // 账号KEY
+  string accountPassword = 7;   // 账号密码
+  int64 accountType = 8;        // 账号类型
+  int64 registMode = 9;         // 注册方式
+  string provider = 10;         // 授权登录标识
+  BoolInt whitelistUser = 11;   // 白名单用户
+  BoolInt activated = 12;       // 是否激活
+  string config = 13;           // 配置
+  Status status = 14;           // 状态
+  string avatar = 15;           // 头像
+  string area = 16;             // 指定地区
+  string remark = 17;           // 备注
+  string deviceId = 18;         // 设备ID
+  string platform = 19;         // 平台
+  string channel = 20;          // 渠道
+  string deviceModel = 21;      // 设备型号
+  string deviceOs = 22;         // 设备系统
+  int64 timezone = 23;          // 时区
+  string lang = 24;             // 语言
+  string ip = 25;               // IP
+  string country = 26;          // 国家
+  string province = 27;         // 省份
+  string city = 28;             // 城市
+  string isp = 29;              // ISP
+  int64 appVer = 30;            // 产品版本号
+  int64 appRuntimeCode = 31;    // 产品运行码
+  int64 createTime = 32;        // 创建时间
+  int64 updateTime = 33;        // 更新时间
+  string version = 34;          // 数据版本
+  string sessionId = 35;        // 登录凭证
+  int64 sessionCreateTime = 36; // 凭证创建时间
+}
+
+message AccountListReq {
+  Page page = 1;
+  AccountVo vo = 2;
+  repeated string productCodes = 3; // 产品code
+  repeated int64 excludeIds = 4;    // 排除的ID
+}
+
+message AccountListResp {
+  int64 total = 1;
+  repeated AccountVo list = 2;
+}
+
+// AccountDevice
+message AccountDeviceVo {
+  int64 id = 1;
+  int64 accountId = 2;         // 用户ID
+  int64 deviceId = 3;          // 设备ID
+  string sessionId = 4;        // 登录凭证
+  int64 sessionCreateTime = 5; // 凭证创建时间
+  int64 updateTime = 6;
+  int64 createTime = 7;
+}
+
+message AccountDeviceListReq {
+  Page page = 1;
+  AccountDeviceVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+}
+
+message AccountDeviceListResp {
+  int64 total = 1;
+  repeated AccountDeviceVo list = 2;
+}
+
+message DeviceVo {
+  int64 id = 1;
+  string userUuid = 2;
+  string productCode = 3;
+  string deviceId = 4;
+  string accountKey = 5;
+  string accountPassword = 6;
+  string platform = 7;
+  string channel = 8;
+  string referChannel = 9;
+  string deviceModel = 10;
+  string deviceOs = 11;
+  int64 timezone = 12;
+  string lang = 13;
+  int64 appVer = 14;
+  string ip = 15;
+  string country = 16;
+  string province = 17;
+  string city = 18;
+  string isp = 19;
+  int64 createTime = 20;
+  int64 updateTime = 21;
+  Status status = 22;
+  string refer = 23;
+  int64 whitelistUser = 24; // 白名单用户 1正常用户 2: 白名单用户
+  int64 testUser = 25; // 测试用户 1正常用户 2: 测试用户
+  string mockCountry = 26; // 指定国家
+  string mockApi = 27; // 指定API
+  string mockRouter = 28; // 指定路由
+
+}
+
+message DeviceListReq {
+  Page page = 1;
+  DeviceVo vo = 2;
+  repeated string productCodes = 3; // 产品code
+  repeated int64 excludeIds = 4;    // 排除的ID
+  repeated string dateRange = 5; // 日期范围
+  int64 createStartTime = 6; // 创建开始时间
+  int64 createEndTime = 7; // 创建结束时间
+}
+message DeviceListRes {
+  int64 total = 1;
+  repeated DeviceVo list = 2;
+}
+
+message UserAppConfigVo {
+  int64 id = 1;
+  string deviceId = 2;
+  string key = 3;
+  string value = 4;
+  Status status = 5;
+  int64 createTime = 6;
+  int64 updateTime = 7;
+}
+message UserAppConfigGetReq { UserAppConfigVo vo = 1; }
+message UserAppConfigListReq {
+  Page page = 1;
+  UserAppConfigVo vo = 2;
+}
+message UserAppConfigListRes {
+  int64 total = 1;
+  repeated UserAppConfigVo list = 2;
+}
+
+// 用户模块
+service GoUserClient {
+  rpc Ping(Request) returns (Response);
+
+  // 用户app配置管理(ring)
+  rpc UserAppConfigAdd(UserAppConfigVo) returns (UserAppConfigVo);
+  rpc UserAppConfigUpdate(UserAppConfigVo) returns (UserAppConfigVo);
+  rpc UserAppConfigDel(Ids) returns (Empty);
+  rpc UserAppConfigGet(UserAppConfigGetReq) returns (UserAppConfigVo);
+  rpc UserAppConfigList(UserAppConfigListReq) returns (UserAppConfigListRes);
+
+  // 设备管理
+  rpc DeviceAdd(DeviceVo) returns (DeviceVo);
+  rpc DeviceUpdate(DeviceVo) returns (DeviceVo);
+  rpc DeviceDel(Ids) returns (Empty);
+  rpc DeviceGet(DeviceVo) returns (DeviceVo);
+  rpc DeviceList(DeviceListReq) returns (DeviceListRes);
+
+  // Account
+  rpc AccountAdd(AccountVo) returns (AccountVo);
+  rpc AccountUpdate(AccountVo) returns (AccountVo);
+  rpc AccountDel(Ids) returns (Empty);
+  rpc AccountGet(AccountVo) returns (AccountVo);
+  rpc AccountList(AccountListReq) returns (AccountListResp);
+
+  // AccountDevice
+  rpc AccountDeviceAdd(AccountDeviceVo) returns (AccountDeviceVo);
+  rpc AccountDeviceUpdate(AccountDeviceVo) returns (AccountDeviceVo);
+  rpc AccountDeviceDel(Ids) returns (Empty);
+  rpc AccountDeviceGet(AccountDeviceVo) returns (AccountDeviceVo);
+  rpc AccountDeviceList(AccountDeviceListReq) returns (AccountDeviceListResp);
+}

+ 346 - 0
pb/vpn.proto

@@ -0,0 +1,346 @@
+syntax = "proto3";
+
+package gorpc;
+option go_package = "git.goio.dev/pb/go-service-pb/client";
+
+import "pb/common.proto";
+
+// VpnTag
+message VpnTagVo {
+  int64 id = 1;
+  string productCode = 2;
+  string type = 3;
+  string name = 4;
+  int64 sort = 5;
+  Status status = 6;
+  string remark = 7;
+  int64 createTime = 8;
+  int64 updateTime = 9;
+  string otherConfig = 10;
+}
+
+message VpnTagGetReq { VpnTagVo vo = 1; }
+
+message VpnTagListReq {
+  Page page = 1;
+  VpnTagVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+message VpnTagListResp {
+  int64 total = 1;
+  repeated VpnTagVo list = 2;
+}
+
+message VpnTagBatchAddReq { repeated VpnTagVo list = 1; }
+message VpnTagBatchAddResp { repeated VpnTagVo list = 1; }
+
+message VpnTagBatchUpdateReq { repeated VpnTagVo list = 1; }
+message VpnTagBatchUpdateResp { repeated VpnTagVo list = 1; }
+
+message VpnTagBatchDelReq { repeated int64 ids = 1; }
+
+// VpnTag
+message VpnGroupVo {
+  int64 id = 1;
+  string productCode = 2;
+  string name = 3;
+  string icon = 4;
+  int64 sort = 5;
+  Status status = 6;
+  string remark = 7;
+  int64 createTime = 8;
+  int64 updateTime = 9;
+  string version = 10;
+  string otherConfig = 11;
+}
+
+message VpnGroupExVo {
+  VpnGroupVo vo = 1;
+  repeated int64 tagIds = 2;
+}
+
+message VpnGroupAddReq {
+  VpnGroupVo vo = 1;
+  repeated int64 tagIds = 2;
+}
+
+message VpnGroupGetReq { VpnGroupVo vo = 1; }
+
+message VpnGroupListReq {
+  Page page = 1;
+  VpnGroupVo vo = 2;
+  repeated string productCodes = 3;
+  repeated int64 excludeIds = 4;
+}
+message VpnGroupListResp {
+  int64 total = 1;
+  repeated VpnGroupVo list = 2;
+}
+
+message VpnGroupBatchAddReq { repeated VpnGroupExVo list = 1; }
+message VpnGroupBatchAddResp { repeated VpnGroupExVo list = 1; }
+
+message VpnGroupBatchUpdateReq { repeated VpnGroupExVo list = 1; }
+message VpnGroupBatchUpdateResp { repeated VpnGroupExVo list = 1; }
+
+message VpnGroupBatchDelReq { repeated int64 ids = 1; }
+
+// VpnGroupTag
+message VpnGroupTagVo {
+  int64 id = 1;
+  int64 groupId = 2;
+  int64 tagId = 3;
+  int64 createTime = 4;
+  int64 updateTime = 5;
+}
+
+message VpnGroupTagListReq {
+  Page page = 1;
+  VpnGroupTagVo vo = 2;
+  repeated int64 groupIds = 3;
+  repeated int64 tagIds = 4;
+}
+
+message VpnGroupTagListResp {
+  int64 total = 1;
+  repeated VpnGroupTagVo list = 2;
+}
+
+// VpnLocation
+message VpnLocationVo {
+  int64 id = 1;
+  int64 groupId = 2;
+  string name = 3;
+  string code = 4;
+  string icon = 5;
+  int64 type = 6;
+  string displayPolicyConfig = 7;
+  string routePolicyConfig = 8;
+  int64 sort = 9;
+  Status status = 10;
+  string remark = 11;
+  int64 createTime = 12;
+  int64 updateTime = 13;
+  string version = 14;
+  string otherConfig = 15;
+}
+
+message VpnLocationExVo {
+  VpnLocationVo vo = 1;
+  string productCode = 2;
+}
+
+message VpnLocationGetReq { VpnLocationVo vo = 1; }
+
+message VpnLocationListReq {
+  Page page = 1;
+  VpnLocationExVo vo = 2;
+  repeated int64 groupIds = 3;
+  repeated int64 excludeIds = 4;
+  repeated string productCodes = 5;
+}
+message VpnLocationListResp {
+  int64 total = 1;
+  repeated VpnLocationExVo list = 2;
+}
+
+message VpnLocationBatchAddReq { repeated VpnLocationVo list = 1; }
+message VpnLocationBatchAddResp { repeated VpnLocationExVo list = 1; }
+
+message VpnLocationBatchUpdateReq { repeated VpnLocationVo list = 1; }
+message VpnLocationBatchUpdateResp { repeated VpnLocationExVo list = 1; }
+
+message VpnLocationBatchDelReq { repeated int64 ids = 1; }
+
+// VpnServer
+message VpnServerVo {
+  int64 id = 1;
+  int64 instanceId = 2;
+  string name = 3;
+  string ip = 4;
+  int64 port = 5;
+  int64 pingPort = 6;
+  string netConfig = 7;
+  string routePolicyConfig = 8;
+  string serverInfo = 9;
+  Status status = 10;
+  string remark = 11;
+  int64 createTime = 12;
+  int64 updateTime = 13;
+  string version = 14;
+  string otherInfo = 15;
+  int64 monitorPort = 16;
+}
+
+message VpnServerExVo {
+  VpnServerVo vo = 1;
+  repeated int64 locationIds = 2;
+}
+
+message VpnServerListReq {
+  Page page = 1;
+  VpnServerVo vo = 2;
+  repeated int64 excludeIds = 3; // 排除的ID
+  repeated string productCodes = 4;
+  repeated int64 locationIds = 5;
+  repeated int64 instanceIds = 6;
+}
+
+message VpnServerListResp {
+  int64 total = 1;
+  repeated VpnServerVo list = 2;
+}
+
+message VpnServerExListResp {
+  int64 total = 1;
+  repeated VpnServerExVo list = 2;
+}
+
+message VpnServerAddReq {
+  VpnServerVo vo = 1;
+  repeated int64 locationIds = 2;
+}
+
+message VpnServerBatchAddReq { repeated VpnServerExVo list = 1; }
+message VpnServerBatchAddResp { repeated VpnServerExVo list = 1; }
+
+message VpnServerBatchUpdateReq { repeated VpnServerExVo list = 1; }
+message VpnServerBatchUpdateResp { repeated VpnServerExVo list = 1; }
+
+message VpnServerBatchDelReq { repeated int64 ids = 1; }
+
+message VpnServerLocationVo {
+  int64 id = 1;
+  int64 serverId = 2;
+  int64 locationId = 3;
+  int64 createTime = 4;
+  int64 updateTime = 5;
+  Status status = 6;
+}
+
+message VpnServerLocationListReq {
+  Page page = 1;
+  VpnServerLocationVo vo = 2;
+  repeated int64 serverIds = 3;
+  repeated int64 locationIds = 4;
+}
+
+message VpnServerLocationListResp {
+  int64 total = 1;
+  repeated VpnServerLocationVo list = 2;
+}
+
+message VpnLocationServerCountVo {
+  int64 locationId = 1;
+  int64 serverCount = 2;
+}
+
+message VpnLocationServerCountReq {
+  Page page = 1;
+  Status status = 2;
+  repeated int64 serverIds = 3;
+  repeated int64 locationIds = 4;
+}
+
+message VpnLocationServerCountResp {
+  int64 total = 1;
+  repeated VpnLocationServerCountVo list = 2;
+}
+
+message VpnProbeTaskVo {
+  int64 id = 1;
+  string taskId = 2;
+  string filter = 3;       // 筛选条件
+  string type = 4;         // 类型
+  string uploadDomain = 5; // 配置
+  string params = 6;
+  int64 answer = 7;
+  float percentage = 8; // 进度百分比
+  string result = 9;    // 结果
+  int64 userId = 10;
+  int64 createTime = 11;
+  int64 updateTime = 12;
+}
+
+message VpnProbeTaskListReq {
+  Page page = 1;
+  VpnProbeTaskVo vo = 2;
+}
+
+message VpnProbeTaskListResp {
+  int64 total = 1;
+  repeated VpnProbeTaskVo list = 2;
+}
+
+// govpn 模块,VPN相关服务
+service GoVpnClient {
+  rpc Ping(Request) returns (Response);
+  // 表的事务操作
+  rpc Transaction(TransactionReq) returns (Empty);
+
+  // VpnTag
+  rpc VpnTagAdd(VpnTagVo) returns (VpnTagVo);
+  rpc VpnTagUpdate(VpnTagVo) returns (VpnTagVo);
+  rpc VpnTagDel(Ids) returns (Empty);
+  rpc VpnTagGet(VpnTagGetReq) returns (VpnTagVo);
+  rpc VpnTagList(VpnTagListReq) returns (VpnTagListResp);
+  rpc VpnTagBatchAdd(VpnTagBatchAddReq) returns (VpnTagBatchAddResp);
+  rpc VpnTagBatchUpdate(VpnTagBatchUpdateReq) returns (VpnTagBatchUpdateResp);
+
+  // VpnGroup
+  rpc VpnGroupAdd(VpnGroupAddReq) returns (VpnGroupVo);
+  rpc VpnGroupUpdate(VpnGroupAddReq) returns (Empty);
+  rpc VpnGroupDel(Ids) returns (Empty);
+  rpc VpnGroupGet(VpnGroupGetReq) returns (VpnGroupVo);
+  rpc VpnGroupList(VpnGroupListReq) returns (VpnGroupListResp);
+  rpc VpnGroupBatchAdd(VpnGroupBatchAddReq) returns (VpnGroupBatchAddResp);
+  rpc VpnGroupBatchUpdate(VpnGroupBatchUpdateReq)
+      returns (VpnGroupBatchUpdateResp);
+
+  // VpnGroupTag
+  rpc VpnGroupTagAdd(VpnGroupTagVo) returns (VpnGroupTagVo);
+  rpc VpnGroupTagUpdate(VpnGroupTagVo) returns (VpnGroupTagVo);
+  rpc VpnGroupTagDel(Ids) returns (Empty);
+  rpc VpnGroupTagGet(VpnGroupTagVo) returns (VpnGroupTagVo);
+  rpc VpnGroupTagList(VpnGroupTagListReq) returns (VpnGroupTagListResp);
+
+  // VpnLocation
+  rpc VpnLocationAdd(VpnLocationVo) returns (VpnLocationVo);
+  rpc VpnLocationUpdate(VpnLocationVo) returns (Empty);
+  rpc VpnLocationDel(Ids) returns (Empty);
+  rpc VpnLocationGet(VpnLocationGetReq) returns (VpnLocationVo);
+  rpc VpnLocationList(VpnLocationListReq) returns (VpnLocationListResp);
+  rpc VpnLocationBatchAdd(VpnLocationBatchAddReq)
+      returns (VpnLocationBatchAddResp);
+  rpc VpnLocationBatchUpdate(VpnLocationBatchUpdateReq)
+      returns (VpnLocationBatchUpdateResp);
+
+  // VpnServer
+  rpc VpnServerAdd(VpnServerAddReq) returns (VpnServerAddReq);
+  rpc VpnServerUpdate(VpnServerAddReq) returns (VpnServerAddReq);
+  rpc VpnServerDel(Ids) returns (Empty);
+  rpc VpnServerGet(VpnServerVo) returns (VpnServerVo);
+  rpc VpnServerList(VpnServerListReq) returns (VpnServerListResp);
+  rpc VpnServerExList(VpnServerListReq) returns (VpnServerExListResp);
+  rpc VpnServerBatchAdd(VpnServerBatchAddReq) returns (VpnServerBatchAddResp);
+  rpc VpnServerBatchUpdate(VpnServerBatchUpdateReq)
+      returns (VpnServerBatchUpdateResp);
+
+  // VpnServerLocation
+  rpc VpnServerLocationAdd(VpnServerLocationVo) returns (VpnServerLocationVo);
+  rpc VpnServerLocationUpdate(VpnServerLocationVo) returns (Empty);
+  rpc VpnServerLocationDel(Ids) returns (Empty);
+  rpc VpnServerLocationGet(VpnServerLocationVo) returns (VpnServerLocationVo);
+  rpc VpnServerLocationList(VpnServerLocationListReq)
+      returns (VpnServerLocationListResp);
+
+  // VpnLocationServerCount
+  rpc VpnLocationServerCount(VpnLocationServerCountReq)
+      returns (VpnLocationServerCountResp);
+
+  // VpnProbeTask
+  rpc VpnProbeTaskAdd(VpnProbeTaskVo) returns (VpnProbeTaskVo);
+  rpc VpnProbeTaskUpdate(VpnProbeTaskVo) returns (Empty);
+  rpc VpnProbeTaskList(VpnProbeTaskListReq) returns (VpnProbeTaskListResp);
+}

+ 62 - 0
shell/tag.sh

@@ -0,0 +1,62 @@
+#!/bin/bash
+
+# 脚本描述
+echo "请选择要更新的版本号类型:"
+echo "1. 更新主版本号(如 v1.0.0 -> v2.0.0)"
+echo "2. 更新测试版本号(如 v0.1.0 -> v0.2.0)"
+echo "3. 更新修订版本号(如 v0.0.1 -> v0.0.2)"
+echo "默认使用修订版本号,直接按回车执行。"
+
+# 读取用户输入
+read -p "请输入选项(1/2/3,默认 3):" choice
+
+# 设置默认值为 3(修订版本号)
+choice=${choice:-3}
+
+# 获取当前最新的 Tag
+latest_tag=$(git tag --sort=-version:refname | head -n1 2>/dev/null)
+
+echo "当前仓库最新tag版本号为:" $latest_tag
+
+# 如果没有找到 Tag,默认从 v0.0.0 开始
+if [ -z "$latest_tag" ]; then
+  latest_tag="v0.0.0"
+fi
+
+# 提取版本号(去掉开头的 'v')
+version=${latest_tag#v}
+
+# 将版本号拆分为主版本号、测试版本号和修订版本号
+IFS='.' read -r major minor patch <<< "$version"
+
+# 根据用户选择更新版本号
+case $choice in
+  1)
+    major=$((major + 1))
+    minor=0
+    patch=0
+    ;;
+  2)
+    minor=$((minor + 1))
+    patch=0
+    ;;
+  3)
+    patch=$((patch + 1))
+    ;;
+  *)
+    echo "无效选项,默认使用修订版本号。"
+    patch=$((patch + 1))
+    ;;
+esac
+
+# 拼接新的版本号
+new_tag="v${major}.${minor}.${patch}"
+
+echo "本次即将提交的tag版本号为:" $new_tag
+
+## 打 Tag
+git tag "$new_tag"
+git push origin "$new_tag"
+
+# 输出最新的 Tag
+echo "新的 Tag 已创建:$new_tag"