Forráskód Böngészése

增加身份信息接口

wangchuanjin 2 éve
szülő
commit
fc06219763

+ 27 - 25
go.mod

@@ -4,11 +4,10 @@ go 1.18
 
 require (
 	app.yhyue.com/moapp/jyInfo v1.0.0
-	app.yhyue.com/moapp/jybase v0.0.0-20221010080805-39dc6a853eff
+	app.yhyue.com/moapp/jybase v0.0.0-20221230025810-b88f2a62c467
 	bp.jydev.jianyu360.cn/BaseService/gateway v1.3.4
-	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.3
-	bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20221119031405-9326c8ab4cfe
-	github.com/zeromicro/go-zero v1.4.2
+	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.4
+	github.com/zeromicro/go-zero v1.4.3
 	google.golang.org/grpc v1.51.0
 	google.golang.org/protobuf v1.28.1
 )
@@ -23,18 +22,21 @@ require (
 	github.com/dchest/captcha v0.0.0-20200903113550-03f5f0333e1f // indirect
 	github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
 	github.com/fatih/color v1.13.0 // indirect
+	github.com/felixge/fgprof v0.9.3 // indirect
 	github.com/garyburd/redigo v1.6.2 // indirect
 	github.com/go-logr/logr v1.2.3 // indirect
 	github.com/go-logr/stdr v1.2.2 // indirect
 	github.com/go-redis/redis/v8 v8.11.5 // indirect
-	github.com/go-sql-driver/mysql v1.6.0 // indirect
+	github.com/go-sql-driver/mysql v1.7.0 // indirect
 	github.com/gogo/protobuf v1.3.2 // indirect
-	github.com/golang-jwt/jwt/v4 v4.4.2 // indirect
+	github.com/golang-jwt/jwt/v4 v4.4.3 // indirect
 	github.com/golang/mock v1.6.0 // indirect
 	github.com/golang/protobuf v1.5.2 // indirect
 	github.com/golang/snappy v0.0.4 // indirect
-	github.com/google/go-cmp v0.5.8 // indirect
+	github.com/gomodule/redigo v1.8.9 // indirect
+	github.com/google/go-cmp v0.5.9 // indirect
 	github.com/google/gofuzz v1.2.0 // indirect
+	github.com/google/pprof v0.0.0-20211214055906-6f57359322fd // indirect
 	github.com/google/uuid v1.3.0 // indirect
 	github.com/googleapis/gnostic v0.5.5 // indirect
 	github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
@@ -49,7 +51,7 @@ require (
 	github.com/modern-go/reflect2 v1.0.2 // indirect
 	github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect
 	github.com/openzipkin/zipkin-go v0.4.0 // indirect
-	github.com/pelletier/go-toml/v2 v2.0.5 // indirect
+	github.com/pelletier/go-toml/v2 v2.0.6 // indirect
 	github.com/pkg/errors v0.9.1 // indirect
 	github.com/prometheus/client_golang v1.13.0 // indirect
 	github.com/prometheus/client_model v0.2.0 // indirect
@@ -63,30 +65,30 @@ require (
 	go.etcd.io/etcd/api/v3 v3.5.5 // indirect
 	go.etcd.io/etcd/client/pkg/v3 v3.5.5 // indirect
 	go.etcd.io/etcd/client/v3 v3.5.5 // indirect
-	go.mongodb.org/mongo-driver v1.10.3 // indirect
-	go.opentelemetry.io/otel v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/jaeger v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/zipkin v1.11.0 // indirect
-	go.opentelemetry.io/otel/sdk v1.11.0 // indirect
-	go.opentelemetry.io/otel/trace v1.11.0 // indirect
+	go.mongodb.org/mongo-driver v1.11.1 // indirect
+	go.opentelemetry.io/otel v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/jaeger v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/zipkin v1.10.0 // indirect
+	go.opentelemetry.io/otel/sdk v1.10.0 // indirect
+	go.opentelemetry.io/otel/trace v1.10.0 // indirect
 	go.opentelemetry.io/proto/otlp v0.19.0 // indirect
 	go.uber.org/atomic v1.9.0 // indirect
 	go.uber.org/automaxprocs v1.5.1 // indirect
 	go.uber.org/multierr v1.8.0 // indirect
 	go.uber.org/zap v1.21.0 // indirect
 	golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect
-	golang.org/x/net v0.0.0-20220722155237-a158d28d115b // indirect
-	golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect
-	golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f // indirect
-	golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 // indirect
+	golang.org/x/net v0.0.0-20221014081412-f15817d10f9b // indirect
+	golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 // indirect
+	golang.org/x/sync v0.1.0 // indirect
+	golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect
 	golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
 	golang.org/x/text v0.4.0 // indirect
-	golang.org/x/time v0.0.0-20220411224347-583f2d630306 // indirect
+	golang.org/x/time v0.3.0 // indirect
 	google.golang.org/appengine v1.6.7 // indirect
-	google.golang.org/genproto v0.0.0-20220602131408-e326c6e8e9c8 // indirect
+	google.golang.org/genproto v0.0.0-20221111202108-142d8a6fa32e // 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
@@ -95,8 +97,8 @@ require (
 	k8s.io/api v0.22.9 // indirect
 	k8s.io/apimachinery v0.22.9 // indirect
 	k8s.io/client-go v0.22.9 // indirect
-	k8s.io/klog/v2 v2.40.1 // indirect
-	k8s.io/utils v0.0.0-20220706174534-f6158b442e7c // indirect
+	k8s.io/klog/v2 v2.80.1 // indirect
+	k8s.io/utils v0.0.0-20221108210102-8e77b1f39fe2 // indirect
 	sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect
 	sigs.k8s.io/yaml v1.2.0 // indirect
 )

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 596 - 59
go.sum


+ 31 - 0
rpc/internal/logic/identitylistlogic.go

@@ -0,0 +1,31 @@
+package logic
+
+import (
+	"context"
+
+	"bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/internal/svc"
+	"bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/pb"
+	"bp.jydev.jianyu360.cn/BaseService/userCenter/service"
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type IdentityListLogic struct {
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	logx.Logger
+}
+
+func NewIdentityListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *IdentityListLogic {
+	return &IdentityListLogic{
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		Logger: logx.WithContext(ctx),
+	}
+}
+
+// 获取用户可切换的身份列表
+func (l *IdentityListLogic) IdentityList(in *pb.IdentityReq) (*pb.IdentityResp, error) {
+	resp := &pb.IdentityResp{}
+	resp.Identitys = service.IdentityList(in.UserId)
+	return resp, nil
+}

+ 6 - 0
rpc/internal/server/usercenterserver.go

@@ -135,3 +135,9 @@ func (s *UserCenterServer) CheckIsEntAdmin(ctx context.Context, in *pb.EntUserRe
 	l := logic.NewCheckIsEntAdminLogic(ctx, s.svcCtx)
 	return l.CheckIsEntAdmin(in)
 }
+
+// 获取用户可切换的身份列表
+func (s *UserCenterServer) IdentityList(ctx context.Context, in *pb.IdentityReq) (*pb.IdentityResp, error) {
+	l := logic.NewIdentityListLogic(ctx, s.svcCtx)
+	return l.IdentityList(in)
+}

+ 385 - 111
rpc/pb/userCenter.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.28.0
-// 	protoc        v3.15.5
+// 	protoc-gen-go v1.27.1
+// 	protoc        v3.20.0--rc2
 // source: userCenter.proto
 
 package pb
@@ -4135,6 +4135,212 @@ func (x *WorkDesktopClearUserInfoReq) GetNewUserId() string {
 	return ""
 }
 
+//
+type IdentityReq struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"`
+}
+
+func (x *IdentityReq) Reset() {
+	*x = IdentityReq{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_userCenter_proto_msgTypes[51]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *IdentityReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*IdentityReq) ProtoMessage() {}
+
+func (x *IdentityReq) ProtoReflect() protoreflect.Message {
+	mi := &file_userCenter_proto_msgTypes[51]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use IdentityReq.ProtoReflect.Descriptor instead.
+func (*IdentityReq) Descriptor() ([]byte, []int) {
+	return file_userCenter_proto_rawDescGZIP(), []int{51}
+}
+
+func (x *IdentityReq) GetUserId() int64 {
+	if x != nil {
+		return x.UserId
+	}
+	return 0
+}
+
+type Identity struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Name         string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	PersonId     int64  `protobuf:"varint,2,opt,name=personId,proto3" json:"personId,omitempty"`
+	UserName     string `protobuf:"bytes,3,opt,name=userName,proto3" json:"userName,omitempty"`
+	AccountId    int64  `protobuf:"varint,4,opt,name=accountId,proto3" json:"accountId,omitempty"`
+	EntAccountId int64  `protobuf:"varint,5,opt,name=entAccountId,proto3" json:"entAccountId,omitempty"`
+	PositionId   int64  `protobuf:"varint,6,opt,name=positionId,proto3" json:"positionId,omitempty"`
+	PositionType int64  `protobuf:"varint,7,opt,name=positionType,proto3" json:"positionType,omitempty"`
+	EntId        int64  `protobuf:"varint,8,opt,name=entId,proto3" json:"entId,omitempty"`
+	EntUserId    int64  `protobuf:"varint,9,opt,name=entUserId,proto3" json:"entUserId,omitempty"`
+}
+
+func (x *Identity) Reset() {
+	*x = Identity{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_userCenter_proto_msgTypes[52]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *Identity) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Identity) ProtoMessage() {}
+
+func (x *Identity) ProtoReflect() protoreflect.Message {
+	mi := &file_userCenter_proto_msgTypes[52]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Identity.ProtoReflect.Descriptor instead.
+func (*Identity) Descriptor() ([]byte, []int) {
+	return file_userCenter_proto_rawDescGZIP(), []int{52}
+}
+
+func (x *Identity) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *Identity) GetPersonId() int64 {
+	if x != nil {
+		return x.PersonId
+	}
+	return 0
+}
+
+func (x *Identity) GetUserName() string {
+	if x != nil {
+		return x.UserName
+	}
+	return ""
+}
+
+func (x *Identity) GetAccountId() int64 {
+	if x != nil {
+		return x.AccountId
+	}
+	return 0
+}
+
+func (x *Identity) GetEntAccountId() int64 {
+	if x != nil {
+		return x.EntAccountId
+	}
+	return 0
+}
+
+func (x *Identity) GetPositionId() int64 {
+	if x != nil {
+		return x.PositionId
+	}
+	return 0
+}
+
+func (x *Identity) GetPositionType() int64 {
+	if x != nil {
+		return x.PositionType
+	}
+	return 0
+}
+
+func (x *Identity) GetEntId() int64 {
+	if x != nil {
+		return x.EntId
+	}
+	return 0
+}
+
+func (x *Identity) GetEntUserId() int64 {
+	if x != nil {
+		return x.EntUserId
+	}
+	return 0
+}
+
+type IdentityResp struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Identitys []*Identity `protobuf:"bytes,1,rep,name=identitys,proto3" json:"identitys,omitempty"`
+}
+
+func (x *IdentityResp) Reset() {
+	*x = IdentityResp{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_userCenter_proto_msgTypes[53]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *IdentityResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*IdentityResp) ProtoMessage() {}
+
+func (x *IdentityResp) ProtoReflect() protoreflect.Message {
+	mi := &file_userCenter_proto_msgTypes[53]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use IdentityResp.ProtoReflect.Descriptor instead.
+func (*IdentityResp) Descriptor() ([]byte, []int) {
+	return file_userCenter_proto_rawDescGZIP(), []int{53}
+}
+
+func (x *IdentityResp) GetIdentitys() []*Identity {
+	if x != nil {
+		return x.Identitys
+	}
+	return nil
+}
+
 var File_userCenter_proto protoreflect.FileDescriptor
 
 var file_userCenter_proto_rawDesc = []byte{
@@ -4661,67 +4867,93 @@ var file_userCenter_proto_rawDesc = []byte{
 	0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
 	0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65,
 	0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e,
-	0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x32, 0xc5, 0x07, 0x0a, 0x0a, 0x55, 0x73, 0x65,
-	0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x07, 0x45, 0x6e, 0x74, 0x41, 0x75,
-	0x74, 0x68, 0x12, 0x0b, 0x2e, 0x45, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x1a,
-	0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a,
-	0x0a, 0x45, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x12, 0x0b, 0x2e, 0x45, 0x78,
-	0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x69,
-	0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x07, 0x45, 0x6e, 0x74, 0x4c, 0x69, 0x73,
-	0x74, 0x12, 0x0b, 0x2e, 0x45, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x0c,
-	0x2e, 0x45, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b,
-	0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0f, 0x2e, 0x45, 0x78,
-	0x61, 0x6d, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x45,
-	0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27,
-	0x0a, 0x08, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x12, 0x0c, 0x2e, 0x43, 0x68, 0x65,
-	0x63, 0x6b, 0x45, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b,
-	0x45, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x07, 0x45, 0x6e, 0x74, 0x49, 0x6e,
-	0x66, 0x6f, 0x12, 0x0c, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x52, 0x65, 0x71,
-	0x1a, 0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28,
-	0x0a, 0x09, 0x45, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0d, 0x2e, 0x45, 0x6e,
-	0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x78, 0x61,
-	0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x0b, 0x45, 0x78, 0x61, 0x6d,
-	0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45,
-	0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x49,
-	0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74,
-	0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x13, 0x2e, 0x47, 0x65, 0x74,
-	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a,
-	0x14, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x43, 0x6f, 0x64,
-	0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64,
-	0x12, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e,
-	0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x0a, 0x55,
-	0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0a, 0x2e, 0x55, 0x73, 0x65, 0x72,
-	0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52,
-	0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x12, 0x0a,
-	0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x78, 0x61,
-	0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b,
-	0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66, 0x6f, 0x12,
-	0x17, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x4d, 0x65, 0x6e,
-	0x75, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44,
-	0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
-	0x73, 0x70, 0x12, 0x57, 0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f,
-	0x70, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x12, 0x1c,
-	0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x70,
-	0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x57,
-	0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65,
-	0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x57, 0x0a, 0x18, 0x57,
-	0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55,
-	0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65,
-	0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e,
-	0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b,
-	0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65,
-	0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49,
-	0x6e, 0x66, 0x6f, 0x12, 0x08, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e,
-	0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45,
-	0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0b, 0x2e, 0x45, 0x6e, 0x74,
-	0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x55, 0x73, 0x65,
-	0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x55,
-	0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0f, 0x2e, 0x45, 0x6e, 0x74, 0x55, 0x73, 0x65,
-	0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x45, 0x6e, 0x74, 0x55, 0x73,
-	0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0f, 0x43, 0x68,
-	0x65, 0x63, 0x6b, 0x49, 0x73, 0x45, 0x6e, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x0b, 0x2e,
-	0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x43, 0x68, 0x65,
-	0x63, 0x6b, 0x49, 0x73, 0x45, 0x6e, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70,
+	0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x25, 0x0a, 0x0b, 0x49, 0x64, 0x65, 0x6e,
+	0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49,
+	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22,
+	0x90, 0x02, 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04,
+	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+	0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08,
+	0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+	0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f,
+	0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x63,
+	0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63,
+	0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x65, 0x6e,
+	0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6f,
+	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a,
+	0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6f,
+	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03,
+	0x52, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14,
+	0x0a, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65,
+	0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49,
+	0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
+	0x49, 0x64, 0x22, 0x37, 0x0a, 0x0c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65,
+	0x73, 0x70, 0x12, 0x27, 0x0a, 0x09, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x73, 0x18,
+	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
+	0x52, 0x09, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x73, 0x32, 0xf2, 0x07, 0x0a, 0x0a,
+	0x55, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x07, 0x45, 0x6e,
+	0x74, 0x41, 0x75, 0x74, 0x68, 0x12, 0x0b, 0x2e, 0x45, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x52,
+	0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70,
+	0x12, 0x27, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x12, 0x0b,
+	0x2e, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x78,
+	0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x07, 0x45, 0x6e, 0x74,
+	0x4c, 0x69, 0x73, 0x74, 0x12, 0x0b, 0x2e, 0x45, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
+	0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12,
+	0x30, 0x0a, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0f,
+	0x2e, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a,
+	0x10, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,
+	0x70, 0x12, 0x27, 0x0a, 0x08, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x12, 0x0c, 0x2e,
+	0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x43, 0x68,
+	0x65, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x07, 0x45, 0x6e,
+	0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0c, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x74,
+	0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73,
+	0x70, 0x12, 0x28, 0x0a, 0x09, 0x45, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0d,
+	0x2e, 0x45, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e,
+	0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x0b, 0x45,
+	0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x2e, 0x43, 0x68, 0x65,
+	0x63, 0x6b, 0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45,
+	0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0f, 0x47, 0x65,
+	0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x13, 0x2e,
+	0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52,
+	0x65, 0x71, 0x1a, 0x14, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79,
+	0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72,
+	0x41, 0x64, 0x64, 0x12, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71,
+	0x1a, 0x0c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x26,
+	0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0a, 0x2e, 0x55,
+	0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x69,
+	0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65,
+	0x6c, 0x12, 0x0a, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e,
+	0x45, 0x78, 0x61, 0x6d, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x13, 0x57,
+	0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e,
+	0x66, 0x6f, 0x12, 0x17, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70,
+	0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x57, 0x6f,
+	0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66,
+	0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x57, 0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73,
+	0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76,
+	0x65, 0x12, 0x1c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43,
+	0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a,
+	0x1d, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6d,
+	0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x57,
+	0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6c, 0x65,
+	0x61, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x2e, 0x57, 0x6f, 0x72,
+	0x6b, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x73, 0x65,
+	0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44,
+	0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73,
+	0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73,
+	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x08, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71,
+	0x1a, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x0e, 0x47,
+	0x65, 0x74, 0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0b, 0x2e,
+	0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x45, 0x6e, 0x74,
+	0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45,
+	0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0f, 0x2e, 0x45, 0x6e, 0x74,
+	0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x45, 0x6e,
+	0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a,
+	0x0f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x73, 0x45, 0x6e, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e,
+	0x12, 0x0b, 0x2e, 0x45, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e,
+	0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x73, 0x45, 0x6e, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52,
+	0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x0c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c,
+	0x69, 0x73, 0x74, 0x12, 0x0c, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65,
+	0x71, 0x1a, 0x0d, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70,
 	0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
@@ -4737,7 +4969,7 @@ func file_userCenter_proto_rawDescGZIP() []byte {
 	return file_userCenter_proto_rawDescData
 }
 
-var file_userCenter_proto_msgTypes = make([]protoimpl.MessageInfo, 52)
+var file_userCenter_proto_msgTypes = make([]protoimpl.MessageInfo, 55)
 var file_userCenter_proto_goTypes = []interface{}{
 	(*EntAuthReq)(nil),                   // 0: EntAuthReq
 	(*EntAuthResp)(nil),                  // 1: EntAuthResp
@@ -4790,7 +5022,10 @@ var file_userCenter_proto_goTypes = []interface{}{
 	(*WorkDesktopComprehensiveReq)(nil),  // 48: WorkDesktopComprehensiveReq
 	(*WorkDesktopComprehensiveResp)(nil), // 49: WorkDesktopComprehensiveResp
 	(*WorkDesktopClearUserInfoReq)(nil),  // 50: WorkDesktopClearUserInfoReq
-	nil,                                  // 51: Subscribe.AreaEntry
+	(*IdentityReq)(nil),                  // 51: IdentityReq
+	(*Identity)(nil),                     // 52: Identity
+	(*IdentityResp)(nil),                 // 53: IdentityResp
+	nil,                                  // 54: Subscribe.AreaEntry
 }
 var file_userCenter_proto_depIdxs = []int32{
 	2,  // 0: EntAuthResp.data:type_name -> EntAuthData
@@ -4803,7 +5038,7 @@ var file_userCenter_proto_depIdxs = []int32{
 	18, // 7: EntInfoResp.data:type_name -> EntInfoData
 	36, // 8: GetStatusByCodeResp.data:type_name -> GetStatusByCode
 	24, // 9: UserInfo.data:type_name -> Subscribe
-	51, // 10: Subscribe.area:type_name -> Subscribe.AreaEntry
+	54, // 10: Subscribe.area:type_name -> Subscribe.AreaEntry
 	26, // 11: Subscribe.items:type_name -> Items
 	27, // 12: Items.a_key:type_name -> Keys
 	31, // 13: EntUserResp.data:type_name -> EntUser
@@ -4819,50 +5054,53 @@ var file_userCenter_proto_depIdxs = []int32{
 	46, // 23: SecondLevelMenu.child:type_name -> ThreeLevelMenu
 	47, // 24: ThreeLevelMenu.tipInfo:type_name -> TipInfo
 	46, // 25: WorkDesktopComprehensiveResp.data:type_name -> ThreeLevelMenu
-	25, // 26: Subscribe.AreaEntry.value:type_name -> List
-	0,  // 27: UserCenter.EntAuth:input_type -> EntAuthReq
-	3,  // 28: UserCenter.EntExamine:input_type -> ExamineReq
-	6,  // 29: UserCenter.EntList:input_type -> EntListReq
-	10, // 30: UserCenter.ExamineList:input_type -> ExamineListReq
-	14, // 31: UserCenter.CheckEnt:input_type -> CheckEntReq
-	14, // 32: UserCenter.EntInfo:input_type -> CheckEntReq
-	19, // 33: UserCenter.EntUpdate:input_type -> EntUpdateReq
-	20, // 34: UserCenter.ExamineInfo:input_type -> CheckExamineReq
-	21, // 35: UserCenter.GetStatusByCode:input_type -> GetStatusByCodeReq
-	37, // 36: UserCenter.UserAdd:input_type -> UserAddReq
-	40, // 37: UserCenter.UserUpdate:input_type -> UserIdReq
-	40, // 38: UserCenter.UserDel:input_type -> UserIdReq
-	41, // 39: UserCenter.WorkDesktopMenuInfo:input_type -> WorkDesktopMenuInfoReq
-	48, // 40: UserCenter.WorkDesktopComprehensive:input_type -> WorkDesktopComprehensiveReq
-	50, // 41: UserCenter.WorkDesktopClearUserInfo:input_type -> WorkDesktopClearUserInfoReq
-	28, // 42: UserCenter.GetUserInfo:input_type -> UserReq
-	29, // 43: UserCenter.GetEntUserInfo:input_type -> EntUserReq
-	32, // 44: UserCenter.GetEntUserList:input_type -> EntUserListReq
-	29, // 45: UserCenter.CheckIsEntAdmin:input_type -> EntUserReq
-	1,  // 46: UserCenter.EntAuth:output_type -> EntAuthResp
-	4,  // 47: UserCenter.EntExamine:output_type -> ExamineResp
-	7,  // 48: UserCenter.EntList:output_type -> EntListResp
-	11, // 49: UserCenter.ExamineList:output_type -> ExamineListResp
-	15, // 50: UserCenter.CheckEnt:output_type -> CheckEntResp
-	17, // 51: UserCenter.EntInfo:output_type -> EntInfoResp
-	4,  // 52: UserCenter.EntUpdate:output_type -> ExamineResp
-	17, // 53: UserCenter.ExamineInfo:output_type -> EntInfoResp
-	22, // 54: UserCenter.GetStatusByCode:output_type -> GetStatusByCodeResp
-	38, // 55: UserCenter.UserAdd:output_type -> UserAddResp
-	4,  // 56: UserCenter.UserUpdate:output_type -> ExamineResp
-	4,  // 57: UserCenter.UserDel:output_type -> ExamineResp
-	42, // 58: UserCenter.WorkDesktopMenuInfo:output_type -> WorkDesktopMenuInfoResp
-	49, // 59: UserCenter.WorkDesktopComprehensive:output_type -> WorkDesktopComprehensiveResp
-	49, // 60: UserCenter.WorkDesktopClearUserInfo:output_type -> WorkDesktopComprehensiveResp
-	23, // 61: UserCenter.GetUserInfo:output_type -> UserInfo
-	30, // 62: UserCenter.GetEntUserInfo:output_type -> EntUserResp
-	33, // 63: UserCenter.GetEntUserList:output_type -> EntUserListResp
-	35, // 64: UserCenter.CheckIsEntAdmin:output_type -> CheckIsEntAdminResp
-	46, // [46:65] is the sub-list for method output_type
-	27, // [27:46] is the sub-list for method input_type
-	27, // [27:27] is the sub-list for extension type_name
-	27, // [27:27] is the sub-list for extension extendee
-	0,  // [0:27] is the sub-list for field type_name
+	52, // 26: IdentityResp.identitys:type_name -> Identity
+	25, // 27: Subscribe.AreaEntry.value:type_name -> List
+	0,  // 28: UserCenter.EntAuth:input_type -> EntAuthReq
+	3,  // 29: UserCenter.EntExamine:input_type -> ExamineReq
+	6,  // 30: UserCenter.EntList:input_type -> EntListReq
+	10, // 31: UserCenter.ExamineList:input_type -> ExamineListReq
+	14, // 32: UserCenter.CheckEnt:input_type -> CheckEntReq
+	14, // 33: UserCenter.EntInfo:input_type -> CheckEntReq
+	19, // 34: UserCenter.EntUpdate:input_type -> EntUpdateReq
+	20, // 35: UserCenter.ExamineInfo:input_type -> CheckExamineReq
+	21, // 36: UserCenter.GetStatusByCode:input_type -> GetStatusByCodeReq
+	37, // 37: UserCenter.UserAdd:input_type -> UserAddReq
+	40, // 38: UserCenter.UserUpdate:input_type -> UserIdReq
+	40, // 39: UserCenter.UserDel:input_type -> UserIdReq
+	41, // 40: UserCenter.WorkDesktopMenuInfo:input_type -> WorkDesktopMenuInfoReq
+	48, // 41: UserCenter.WorkDesktopComprehensive:input_type -> WorkDesktopComprehensiveReq
+	50, // 42: UserCenter.WorkDesktopClearUserInfo:input_type -> WorkDesktopClearUserInfoReq
+	28, // 43: UserCenter.GetUserInfo:input_type -> UserReq
+	29, // 44: UserCenter.GetEntUserInfo:input_type -> EntUserReq
+	32, // 45: UserCenter.GetEntUserList:input_type -> EntUserListReq
+	29, // 46: UserCenter.CheckIsEntAdmin:input_type -> EntUserReq
+	51, // 47: UserCenter.IdentityList:input_type -> IdentityReq
+	1,  // 48: UserCenter.EntAuth:output_type -> EntAuthResp
+	4,  // 49: UserCenter.EntExamine:output_type -> ExamineResp
+	7,  // 50: UserCenter.EntList:output_type -> EntListResp
+	11, // 51: UserCenter.ExamineList:output_type -> ExamineListResp
+	15, // 52: UserCenter.CheckEnt:output_type -> CheckEntResp
+	17, // 53: UserCenter.EntInfo:output_type -> EntInfoResp
+	4,  // 54: UserCenter.EntUpdate:output_type -> ExamineResp
+	17, // 55: UserCenter.ExamineInfo:output_type -> EntInfoResp
+	22, // 56: UserCenter.GetStatusByCode:output_type -> GetStatusByCodeResp
+	38, // 57: UserCenter.UserAdd:output_type -> UserAddResp
+	4,  // 58: UserCenter.UserUpdate:output_type -> ExamineResp
+	4,  // 59: UserCenter.UserDel:output_type -> ExamineResp
+	42, // 60: UserCenter.WorkDesktopMenuInfo:output_type -> WorkDesktopMenuInfoResp
+	49, // 61: UserCenter.WorkDesktopComprehensive:output_type -> WorkDesktopComprehensiveResp
+	49, // 62: UserCenter.WorkDesktopClearUserInfo:output_type -> WorkDesktopComprehensiveResp
+	23, // 63: UserCenter.GetUserInfo:output_type -> UserInfo
+	30, // 64: UserCenter.GetEntUserInfo:output_type -> EntUserResp
+	33, // 65: UserCenter.GetEntUserList:output_type -> EntUserListResp
+	35, // 66: UserCenter.CheckIsEntAdmin:output_type -> CheckIsEntAdminResp
+	53, // 67: UserCenter.IdentityList:output_type -> IdentityResp
+	48, // [48:68] is the sub-list for method output_type
+	28, // [28:48] is the sub-list for method input_type
+	28, // [28:28] is the sub-list for extension type_name
+	28, // [28:28] is the sub-list for extension extendee
+	0,  // [0:28] is the sub-list for field type_name
 }
 
 func init() { file_userCenter_proto_init() }
@@ -5483,6 +5721,42 @@ func file_userCenter_proto_init() {
 				return nil
 			}
 		}
+		file_userCenter_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*IdentityReq); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_userCenter_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*Identity); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_userCenter_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*IdentityResp); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
 	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
@@ -5490,7 +5764,7 @@ func file_userCenter_proto_init() {
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_userCenter_proto_rawDesc,
 			NumEnums:      0,
-			NumMessages:   52,
+			NumMessages:   55,
 			NumExtensions: 0,
 			NumServices:   1,
 		},

+ 39 - 1
rpc/pb/userCenter_grpc.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.15.5
+// - protoc             v3.20.0--rc2
 // source: userCenter.proto
 
 package pb
@@ -60,6 +60,8 @@ type UserCenterClient interface {
 	GetEntUserList(ctx context.Context, in *EntUserListReq, opts ...grpc.CallOption) (*EntUserListResp, error)
 	//查看员工是否是企业管理员
 	CheckIsEntAdmin(ctx context.Context, in *EntUserReq, opts ...grpc.CallOption) (*CheckIsEntAdminResp, error)
+	//获取用户可切换的身份列表
+	IdentityList(ctx context.Context, in *IdentityReq, opts ...grpc.CallOption) (*IdentityResp, error)
 }
 
 type userCenterClient struct {
@@ -241,6 +243,15 @@ func (c *userCenterClient) CheckIsEntAdmin(ctx context.Context, in *EntUserReq,
 	return out, nil
 }
 
+func (c *userCenterClient) IdentityList(ctx context.Context, in *IdentityReq, opts ...grpc.CallOption) (*IdentityResp, error) {
+	out := new(IdentityResp)
+	err := c.cc.Invoke(ctx, "/UserCenter/IdentityList", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // UserCenterServer is the server API for UserCenter service.
 // All implementations must embed UnimplementedUserCenterServer
 // for forward compatibility
@@ -283,6 +294,8 @@ type UserCenterServer interface {
 	GetEntUserList(context.Context, *EntUserListReq) (*EntUserListResp, error)
 	//查看员工是否是企业管理员
 	CheckIsEntAdmin(context.Context, *EntUserReq) (*CheckIsEntAdminResp, error)
+	//获取用户可切换的身份列表
+	IdentityList(context.Context, *IdentityReq) (*IdentityResp, error)
 	mustEmbedUnimplementedUserCenterServer()
 }
 
@@ -347,6 +360,9 @@ func (UnimplementedUserCenterServer) GetEntUserList(context.Context, *EntUserLis
 func (UnimplementedUserCenterServer) CheckIsEntAdmin(context.Context, *EntUserReq) (*CheckIsEntAdminResp, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method CheckIsEntAdmin not implemented")
 }
+func (UnimplementedUserCenterServer) IdentityList(context.Context, *IdentityReq) (*IdentityResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method IdentityList not implemented")
+}
 func (UnimplementedUserCenterServer) mustEmbedUnimplementedUserCenterServer() {}
 
 // UnsafeUserCenterServer may be embedded to opt out of forward compatibility for this service.
@@ -702,6 +718,24 @@ func _UserCenter_CheckIsEntAdmin_Handler(srv interface{}, ctx context.Context, d
 	return interceptor(ctx, in, info, handler)
 }
 
+func _UserCenter_IdentityList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(IdentityReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(UserCenterServer).IdentityList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/UserCenter/IdentityList",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(UserCenterServer).IdentityList(ctx, req.(*IdentityReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 // UserCenter_ServiceDesc is the grpc.ServiceDesc for UserCenter service.
 // It's only intended for direct use with grpc.RegisterService,
 // and not to be introspected or modified (even as a copy)
@@ -785,6 +819,10 @@ var UserCenter_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "CheckIsEntAdmin",
 			Handler:    _UserCenter_CheckIsEntAdmin_Handler,
 		},
+		{
+			MethodName: "IdentityList",
+			Handler:    _UserCenter_IdentityList_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "userCenter.proto",

+ 22 - 0
rpc/userCenter.proto

@@ -438,6 +438,26 @@ message  WorkDesktopClearUserInfoReq{
   string userIds = 4;
   string newUserId = 5;
 }
+//
+message IdentityReq{
+  int64 userId = 1;
+}
+
+message Identity{
+  string name = 1;
+  int64 personId = 2;
+  string userName = 3;
+  int64 accountId = 4;
+  int64 entAccountId = 5;
+  int64 positionId = 6;
+  int64 positionType = 7;
+  int64 entId = 8;
+  int64 entUserId = 9;
+}
+
+message IdentityResp{
+  repeated Identity identitys = 1;
+}
 
 service UserCenter {
   //企业认证
@@ -480,4 +500,6 @@ service UserCenter {
   rpc GetEntUserList (EntUserListReq) returns(EntUserListResp);
   //查看员工是否是企业管理员
   rpc CheckIsEntAdmin(EntUserReq)returns(CheckIsEntAdminResp);
+  //获取用户可切换的身份列表
+  rpc IdentityList(IdentityReq)returns(IdentityResp);
 }

+ 11 - 0
rpc/usercenter/usercenter.go

@@ -44,6 +44,9 @@ type (
 	GetStatusByCode              = pb.GetStatusByCode
 	GetStatusByCodeReq           = pb.GetStatusByCodeReq
 	GetStatusByCodeResp          = pb.GetStatusByCodeResp
+	Identity                     = pb.Identity
+	IdentityReq                  = pb.IdentityReq
+	IdentityResp                 = pb.IdentityResp
 	Items                        = pb.Items
 	Keys                         = pb.Keys
 	List                         = pb.List
@@ -104,6 +107,8 @@ type (
 		GetEntUserList(ctx context.Context, in *EntUserListReq, opts ...grpc.CallOption) (*EntUserListResp, error)
 		// 查看员工是否是企业管理员
 		CheckIsEntAdmin(ctx context.Context, in *EntUserReq, opts ...grpc.CallOption) (*CheckIsEntAdminResp, error)
+		// 获取用户可切换的身份列表
+		IdentityList(ctx context.Context, in *IdentityReq, opts ...grpc.CallOption) (*IdentityResp, error)
 	}
 
 	defaultUserCenter struct {
@@ -230,3 +235,9 @@ func (m *defaultUserCenter) CheckIsEntAdmin(ctx context.Context, in *EntUserReq,
 	client := pb.NewUserCenterClient(m.cli.Conn())
 	return client.CheckIsEntAdmin(ctx, in, opts...)
 }
+
+// 获取用户可切换的身份列表
+func (m *defaultUserCenter) IdentityList(ctx context.Context, in *IdentityReq, opts ...grpc.CallOption) (*IdentityResp, error) {
+	client := pb.NewUserCenterClient(m.cli.Conn())
+	return client.IdentityList(ctx, in, opts...)
+}

+ 69 - 0
service/identity.go

@@ -0,0 +1,69 @@
+package service
+
+import (
+	"fmt"
+	"strings"
+
+	. "app.yhyue.com/moapp/jybase/common"
+	"bp.jydev.jianyu360.cn/BaseService/userCenter/entity"
+	. "bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/usercenter"
+)
+
+func IdentityList(userId int64) []*Identity {
+	result := []*Identity{}
+	list := entity.BaseMysql.SelectBySql(`SELECT DISTINCT a.id as position_id,c.person_id,a.person_name,a.account_id,a.type as position_type,a.ent_id,b.id as ent_account_id,d.phone from base_user d
+		inner join base_position a on (d.id=? and d.id=a.user_id)
+		left JOIN base_account b on (b.type=1 and b.person_id=0 and a.ent_id=b.ent_id)
+		left JOIN base_account c on (a.account_id=c.id)`, userId)
+	if list != nil {
+		identitys := []*Identity{}
+		entIds := []string{}
+		phone := ""
+		for _, v := range *list {
+			entId := Int64All(v["ent_id"])
+			if entId > 0 {
+				entIds = append(entIds, fmt.Sprint(entId))
+			}
+			if phone == "" {
+				phone = ObjToString(v["phone"])
+			}
+			identitys = append(identitys, &Identity{
+				EntId:        entId,
+				PersonId:     Int64All(v["person_id"]),
+				UserName:     ObjToString(v["person_name"]),
+				AccountId:    Int64All(v["account_id"]),
+				EntAccountId: Int64All(v["ent_account_id"]),
+				PositionId:   Int64All(v["position_id"]),
+				PositionType: Int64All(v["position_type"]),
+			})
+		}
+		entMap := map[int64]*Identity{}
+		if len(entIds) > 0 {
+			ents := entity.Mysql.SelectBySql(`SELECT a.id,a.ent_id,b.name from entniche_user a inner join entniche_info b on (a.phone=? and b.id in (`+strings.Join(entIds, ",")+`) and a.ent_id=b.id)`, phone)
+			if ents != nil {
+				for _, v := range *ents {
+					entMap[Int64All(v["ent_id"])] = &Identity{
+						EntId:     Int64All(v["ent_id"]),
+						EntUserId: Int64All(v["id"]),
+						Name:      ObjToString(v["name"]),
+					}
+				}
+			}
+		}
+		personalFlag := false
+		for _, v := range identitys {
+			if v.PositionType == 0 {
+				if !personalFlag {
+					v.Name = "个人版"
+					result = append(result, v)
+					personalFlag = true
+				}
+			} else if v.PositionType == 1 && v.EntId > 0 && entMap[v.EntId] != nil {
+				v.Name = entMap[v.EntId].Name
+				v.EntUserId = entMap[v.EntId].EntUserId
+				result = append(result, v)
+			}
+		}
+	}
+	return result
+}

+ 13 - 0
service/identity_test.go

@@ -0,0 +1,13 @@
+package service
+
+import (
+	"log"
+	"testing"
+)
+
+// go test -v -run Test_IdentityList
+func Test_IdentityList(t *testing.T) {
+	for _, v := range IdentityList(68773) {
+		log.Println(v)
+	}
+}

+ 40 - 66
service/workDesktop_test.go

@@ -1,12 +1,13 @@
 package service
 
 import (
-	"app.yhyue.com/moapp/jybase/redis"
 	"context"
 	"fmt"
 	"log"
 	"testing"
 	"time"
+
+	"app.yhyue.com/moapp/jybase/redis"
 	"bp.jydev.jianyu360.cn/BaseService/userCenter/entity"
 	"bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/pb"
 )
@@ -27,48 +28,36 @@ func Test_WorkDesktopMenuTree(t *testing.T) {
 		{
 			name: "PC端无缓存菜单树接口",
 			args: &pb.WorkDesktopMenuInfoReq{
-				UserId:       "61e7820581197c2e50af18df",
-				AppId:        "10000",
-				Platform:     "PC",
-				BigMemberOff: true,
-				InternalTime: 1200,
-				RedisOutTime: 1200,
+				UserId:   "61e7820581197c2e50af18df",
+				AppId:    "10000",
+				Platform: "PC",
 			},
 			want: "",
 		},
 		{
 			name: "PC端有缓存菜单树接口",
 			args: &pb.WorkDesktopMenuInfoReq{
-				UserId:       "61e7820581197c2e50af18df",
-				AppId:        "10000",
-				Platform:     "PC",
-				BigMemberOff: true,
-				InternalTime: 1200,
-				RedisOutTime: 1200,
+				UserId:   "61e7820581197c2e50af18df",
+				AppId:    "10000",
+				Platform: "PC",
 			},
 			want: "",
 		},
 		{
 			name: "WX端无缓存菜单树接口",
 			args: &pb.WorkDesktopMenuInfoReq{
-				UserId:       "61e7820581197c2e50af18df",
-				AppId:        "10000",
-				Platform:     "WX",
-				BigMemberOff: true,
-				InternalTime: 1200,
-				RedisOutTime: 1200,
+				UserId:   "61e7820581197c2e50af18df",
+				AppId:    "10000",
+				Platform: "WX",
 			},
 			want: "",
 		},
 		{
 			name: "APP端无缓存菜单树接口",
 			args: &pb.WorkDesktopMenuInfoReq{
-				UserId:       "61e7820581197c2e50af18df",
-				AppId:        "10000",
-				Platform:     "APP",
-				BigMemberOff: true,
-				InternalTime: 1200,
-				RedisOutTime: 1200,
+				UserId:   "61e7820581197c2e50af18df",
+				AppId:    "10000",
+				Platform: "APP",
 			},
 			want: "",
 		},
@@ -100,45 +89,36 @@ func Test_MenuMode(t *testing.T) {
 		{
 			name: "工作桌面菜单模式插入",
 			args: &pb.WorkDesktopComprehensiveReq{
-				UserId:       "61e7820581197c2e50af18df",
-				NewUserId:    "61e7820581197c2e50af18df",
-				AppId:        "10000",
-				Platform:     "PC",
-				ActionMode:   "menuMode",
-				MenuMode:     "usable",
-				BigMemberOff: true,
-				CommonlySize: 10,
-				RedisOutTime: 1200,
+				UserId:     "61e7820581197c2e50af18df",
+				NewUserId:  "61e7820581197c2e50af18df",
+				AppId:      "10000",
+				Platform:   "PC",
+				ActionMode: "menuMode",
+				MenuMode:   "usable",
 			},
 			want: "",
 		},
 		{
 			name: "工作桌面菜单模式异常",
 			args: &pb.WorkDesktopComprehensiveReq{
-				UserId:       "61e7820581197c2e50af18df",
-				NewUserId:    "61e7820581197c2e50af18df",
-				AppId:        "10000",
-				Platform:     "PC",
-				ActionMode:   "menuMode",
-				MenuMode:     "allll",
-				BigMemberOff: true,
-				CommonlySize: 10,
-				RedisOutTime: 1200,
+				UserId:     "61e7820581197c2e50af18df",
+				NewUserId:  "61e7820581197c2e50af18df",
+				AppId:      "10000",
+				Platform:   "PC",
+				ActionMode: "menuMode",
+				MenuMode:   "allll",
 			},
 			want: "",
 		},
 		{
 			name: "工作桌面菜单模式更新",
 			args: &pb.WorkDesktopComprehensiveReq{
-				UserId:       "61e7820581197c2e50af18df",
-				NewUserId:    "61e7820581197c2e50af18df",
-				AppId:        "10000",
-				Platform:     "PC",
-				ActionMode:   "menuMode",
-				MenuMode:     "all",
-				BigMemberOff: true,
-				CommonlySize: 10,
-				RedisOutTime: 1200,
+				UserId:     "61e7820581197c2e50af18df",
+				NewUserId:  "61e7820581197c2e50af18df",
+				AppId:      "10000",
+				Platform:   "PC",
+				ActionMode: "menuMode",
+				MenuMode:   "all",
 			},
 			want: "",
 		},
@@ -162,26 +142,20 @@ func Test_WorkMenuMode(t *testing.T) {
 		{
 			name: "获取当前工作桌面菜单模式",
 			args: &pb.WorkDesktopMenuInfoReq{
-				UserId:       "61e7820581197c2e50af18df",
-				NewUserId:    "61e7820581197c2e50af18df",
-				AppId:        "10000",
-				Platform:     "PC",
-				BigMemberOff: true,
-				InternalTime: 1200,
-				RedisOutTime: 1200,
+				UserId:    "61e7820581197c2e50af18df",
+				NewUserId: "61e7820581197c2e50af18df",
+				AppId:     "10000",
+				Platform:  "PC",
 			},
 			want: "",
 		},
 		{
 			name: "异常获取当前工作桌面菜单模式",
 			args: &pb.WorkDesktopMenuInfoReq{
-				UserId:       "",
-				NewUserId:    "",
-				AppId:        "10000",
-				Platform:     "PC",
-				BigMemberOff: true,
-				InternalTime: 1200,
-				RedisOutTime: 1200,
+				UserId:    "",
+				NewUserId: "",
+				AppId:     "10000",
+				Platform:  "PC",
 			},
 			want: "",
 		},

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott