From 2a6cd21ec4e5e8acabd02b6352aae5f09d3933f2 Mon Sep 17 00:00:00 2001 From: gjs Date: Fri, 28 Aug 2026 18:10:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E6=A0=B9=E6=8D=AEID=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=AE=A1=E7=90=86=E5=91=98=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rpc/admin/admin.pb | Bin 18437 -> 18679 bytes rpc/admin/admin.proto | 16 + rpc/admin/pb/admin.pb.go | 362 +++++++++++++----- rpc/admin/pb/admin_grpc.pb.go | 40 ++ services/admin/adminClient/admin.go | 57 +-- .../internal/logic/adminNamesByIdsLogic.go | 73 ++++ services/admin/internal/server/adminServer.go | 6 + services/admin/validator/admin.go | 11 + 8 files changed, 438 insertions(+), 127 deletions(-) create mode 100644 services/admin/internal/logic/adminNamesByIdsLogic.go diff --git a/rpc/admin/admin.pb b/rpc/admin/admin.pb index 8f3f07c64f0bbf375652b1d5314b869d2768cc04..64f1cc8fafbfec547a524bde8445e2b0530ba15c 100644 GIT binary patch delta 245 zcmZpj!1#S46ua-lv-GtT3jL|z{Q-I zQY^u!z^uU>1Y#=bb8&)|d6uN+PByeuaaMBV635V8T#%nvoGPTo#hM9J2Qh%#NI)+U zWQ`u&fFOwU=Ec_5jEq+{-?w4r4iXCB;zu)2NEWIQO&sb admin.AdminEditRequest - 1, // 1: admin.Admin.AdminStatus:input_type -> admin.StatusRequest - 3, // 2: admin.Admin.Password:input_type -> admin.PasswordRequest - 4, // 3: admin.Admin.OwnPassword:input_type -> admin.OwnPasswordRequest - 5, // 4: admin.Admin.AdminInfo:input_type -> admin.AdminInfoRequest - 6, // 5: admin.Admin.AdminItems:input_type -> admin.AdminItemsRequest - 8, // 6: admin.Admin.AdminNames:input_type -> admin.AdminEmptyRequest - 8, // 7: admin.Admin.LoginRefresh:input_type -> admin.AdminEmptyRequest - 7, // 8: admin.Admin.Login:input_type -> admin.LoginRequest - 8, // 9: admin.Admin.LoginInfo:input_type -> admin.AdminEmptyRequest - 8, // 10: admin.Admin.LoginItems:input_type -> admin.AdminEmptyRequest - 10, // 11: admin.Admin.LoginKickedOut:input_type -> admin.LoginKickedOutRequest - 8, // 12: admin.Admin.LogOut:input_type -> admin.AdminEmptyRequest - 17, // 13: admin.Admin.LoginRoutes:input_type -> admin.RoutesRequest - 9, // 14: admin.Admin.ServiceInfo:input_type -> admin.InfoRequest - 11, // 15: admin.Admin.ServiceEdit:input_type -> admin.ServiceEditRequest - 12, // 16: admin.Admin.ServiceItems:input_type -> admin.ServiceItemsRequest - 1, // 17: admin.Admin.ServiceStatus:input_type -> admin.StatusRequest - 13, // 18: admin.Admin.ServiceNames:input_type -> admin.ServiceNameRequest - 9, // 19: admin.Admin.AuthorityInfo:input_type -> admin.InfoRequest - 18, // 20: admin.Admin.AuthorityEdit:input_type -> admin.AuthorityEditRequest - 16, // 21: admin.Admin.AuthorityItems:input_type -> admin.AuthorityItemsRequest - 1, // 22: admin.Admin.AuthorityStatus:input_type -> admin.StatusRequest - 15, // 23: admin.Admin.AuthorityNames:input_type -> admin.AuthorityNameRequest - 14, // 24: admin.Admin.AuthoritySort:input_type -> admin.AuthoritySortRequest - 20, // 25: admin.Admin.RoleNames:input_type -> admin.RoleNameRequest - 9, // 26: admin.Admin.RoleInfo:input_type -> admin.InfoRequest - 21, // 27: admin.Admin.RoleEdit:input_type -> admin.RoleEditRequest - 22, // 28: admin.Admin.RoleItems:input_type -> admin.RoleItemsRequest - 1, // 29: admin.Admin.RoleStatus:input_type -> admin.StatusRequest - 19, // 30: admin.Admin.RoleRule:input_type -> admin.RoleRuleRequest - 2, // 31: admin.Admin.AdminEdit:output_type -> admin.Response - 2, // 32: admin.Admin.AdminStatus:output_type -> admin.Response - 2, // 33: admin.Admin.Password:output_type -> admin.Response - 2, // 34: admin.Admin.OwnPassword:output_type -> admin.Response - 2, // 35: admin.Admin.AdminInfo:output_type -> admin.Response - 2, // 36: admin.Admin.AdminItems:output_type -> admin.Response - 2, // 37: admin.Admin.AdminNames:output_type -> admin.Response - 2, // 38: admin.Admin.LoginRefresh:output_type -> admin.Response - 2, // 39: admin.Admin.Login:output_type -> admin.Response - 2, // 40: admin.Admin.LoginInfo:output_type -> admin.Response - 2, // 41: admin.Admin.LoginItems:output_type -> admin.Response - 2, // 42: admin.Admin.LoginKickedOut:output_type -> admin.Response - 2, // 43: admin.Admin.LogOut:output_type -> admin.Response - 2, // 44: admin.Admin.LoginRoutes:output_type -> admin.Response - 2, // 45: admin.Admin.ServiceInfo:output_type -> admin.Response - 2, // 46: admin.Admin.ServiceEdit:output_type -> admin.Response - 2, // 47: admin.Admin.ServiceItems:output_type -> admin.Response - 2, // 48: admin.Admin.ServiceStatus:output_type -> admin.Response - 2, // 49: admin.Admin.ServiceNames:output_type -> admin.Response - 2, // 50: admin.Admin.AuthorityInfo:output_type -> admin.Response - 2, // 51: admin.Admin.AuthorityEdit:output_type -> admin.Response - 2, // 52: admin.Admin.AuthorityItems:output_type -> admin.Response - 2, // 53: admin.Admin.AuthorityStatus:output_type -> admin.Response - 2, // 54: admin.Admin.AuthorityNames:output_type -> admin.Response - 2, // 55: admin.Admin.AuthoritySort:output_type -> admin.Response - 2, // 56: admin.Admin.RoleNames:output_type -> admin.Response - 2, // 57: admin.Admin.RoleInfo:output_type -> admin.Response - 2, // 58: admin.Admin.RoleEdit:output_type -> admin.Response - 2, // 59: admin.Admin.RoleItems:output_type -> admin.Response - 2, // 60: admin.Admin.RoleStatus:output_type -> admin.Response - 2, // 61: admin.Admin.RoleRule:output_type -> admin.Response - 31, // [31:62] is the sub-list for method output_type - 0, // [0:31] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name + 21, // 0: admin.AdminNamesByIdsResponse.items:type_name -> admin.NamesItem + 0, // 1: admin.Admin.AdminEdit:input_type -> admin.AdminEditRequest + 1, // 2: admin.Admin.AdminStatus:input_type -> admin.StatusRequest + 3, // 3: admin.Admin.Password:input_type -> admin.PasswordRequest + 4, // 4: admin.Admin.OwnPassword:input_type -> admin.OwnPasswordRequest + 5, // 5: admin.Admin.AdminInfo:input_type -> admin.AdminInfoRequest + 6, // 6: admin.Admin.AdminItems:input_type -> admin.AdminItemsRequest + 8, // 7: admin.Admin.AdminNames:input_type -> admin.AdminEmptyRequest + 8, // 8: admin.Admin.LoginRefresh:input_type -> admin.AdminEmptyRequest + 7, // 9: admin.Admin.Login:input_type -> admin.LoginRequest + 8, // 10: admin.Admin.LoginInfo:input_type -> admin.AdminEmptyRequest + 8, // 11: admin.Admin.LoginItems:input_type -> admin.AdminEmptyRequest + 10, // 12: admin.Admin.LoginKickedOut:input_type -> admin.LoginKickedOutRequest + 8, // 13: admin.Admin.LogOut:input_type -> admin.AdminEmptyRequest + 17, // 14: admin.Admin.LoginRoutes:input_type -> admin.RoutesRequest + 9, // 15: admin.Admin.ServiceInfo:input_type -> admin.InfoRequest + 11, // 16: admin.Admin.ServiceEdit:input_type -> admin.ServiceEditRequest + 12, // 17: admin.Admin.ServiceItems:input_type -> admin.ServiceItemsRequest + 1, // 18: admin.Admin.ServiceStatus:input_type -> admin.StatusRequest + 13, // 19: admin.Admin.ServiceNames:input_type -> admin.ServiceNameRequest + 9, // 20: admin.Admin.AuthorityInfo:input_type -> admin.InfoRequest + 18, // 21: admin.Admin.AuthorityEdit:input_type -> admin.AuthorityEditRequest + 16, // 22: admin.Admin.AuthorityItems:input_type -> admin.AuthorityItemsRequest + 1, // 23: admin.Admin.AuthorityStatus:input_type -> admin.StatusRequest + 15, // 24: admin.Admin.AuthorityNames:input_type -> admin.AuthorityNameRequest + 14, // 25: admin.Admin.AuthoritySort:input_type -> admin.AuthoritySortRequest + 23, // 26: admin.Admin.RoleNames:input_type -> admin.RoleNameRequest + 9, // 27: admin.Admin.RoleInfo:input_type -> admin.InfoRequest + 24, // 28: admin.Admin.RoleEdit:input_type -> admin.RoleEditRequest + 25, // 29: admin.Admin.RoleItems:input_type -> admin.RoleItemsRequest + 1, // 30: admin.Admin.RoleStatus:input_type -> admin.StatusRequest + 19, // 31: admin.Admin.RoleRule:input_type -> admin.RoleRuleRequest + 20, // 32: admin.Admin.AdminNamesByIds:input_type -> admin.AdminNamesByIdsRequest + 2, // 33: admin.Admin.AdminEdit:output_type -> admin.Response + 2, // 34: admin.Admin.AdminStatus:output_type -> admin.Response + 2, // 35: admin.Admin.Password:output_type -> admin.Response + 2, // 36: admin.Admin.OwnPassword:output_type -> admin.Response + 2, // 37: admin.Admin.AdminInfo:output_type -> admin.Response + 2, // 38: admin.Admin.AdminItems:output_type -> admin.Response + 2, // 39: admin.Admin.AdminNames:output_type -> admin.Response + 2, // 40: admin.Admin.LoginRefresh:output_type -> admin.Response + 2, // 41: admin.Admin.Login:output_type -> admin.Response + 2, // 42: admin.Admin.LoginInfo:output_type -> admin.Response + 2, // 43: admin.Admin.LoginItems:output_type -> admin.Response + 2, // 44: admin.Admin.LoginKickedOut:output_type -> admin.Response + 2, // 45: admin.Admin.LogOut:output_type -> admin.Response + 2, // 46: admin.Admin.LoginRoutes:output_type -> admin.Response + 2, // 47: admin.Admin.ServiceInfo:output_type -> admin.Response + 2, // 48: admin.Admin.ServiceEdit:output_type -> admin.Response + 2, // 49: admin.Admin.ServiceItems:output_type -> admin.Response + 2, // 50: admin.Admin.ServiceStatus:output_type -> admin.Response + 2, // 51: admin.Admin.ServiceNames:output_type -> admin.Response + 2, // 52: admin.Admin.AuthorityInfo:output_type -> admin.Response + 2, // 53: admin.Admin.AuthorityEdit:output_type -> admin.Response + 2, // 54: admin.Admin.AuthorityItems:output_type -> admin.Response + 2, // 55: admin.Admin.AuthorityStatus:output_type -> admin.Response + 2, // 56: admin.Admin.AuthorityNames:output_type -> admin.Response + 2, // 57: admin.Admin.AuthoritySort:output_type -> admin.Response + 2, // 58: admin.Admin.RoleNames:output_type -> admin.Response + 2, // 59: admin.Admin.RoleInfo:output_type -> admin.Response + 2, // 60: admin.Admin.RoleEdit:output_type -> admin.Response + 2, // 61: admin.Admin.RoleItems:output_type -> admin.Response + 2, // 62: admin.Admin.RoleStatus:output_type -> admin.Response + 2, // 63: admin.Admin.RoleRule:output_type -> admin.Response + 22, // 64: admin.Admin.AdminNamesByIds:output_type -> admin.AdminNamesByIdsResponse + 33, // [33:65] is the sub-list for method output_type + 1, // [1:33] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name } func init() { file_admin_admin_proto_init() } @@ -1699,7 +1853,7 @@ func file_admin_admin_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_admin_admin_proto_rawDesc), len(file_admin_admin_proto_rawDesc)), NumEnums: 0, - NumMessages: 23, + NumMessages: 26, NumExtensions: 0, NumServices: 1, }, diff --git a/rpc/admin/pb/admin_grpc.pb.go b/rpc/admin/pb/admin_grpc.pb.go index bdc46b8..4cc6da5 100644 --- a/rpc/admin/pb/admin_grpc.pb.go +++ b/rpc/admin/pb/admin_grpc.pb.go @@ -50,6 +50,7 @@ const ( Admin_RoleItems_FullMethodName = "/admin.Admin/RoleItems" Admin_RoleStatus_FullMethodName = "/admin.Admin/RoleStatus" Admin_RoleRule_FullMethodName = "/admin.Admin/RoleRule" + Admin_AdminNamesByIds_FullMethodName = "/admin.Admin/AdminNamesByIds" ) // AdminClient is the client API for Admin service. @@ -87,6 +88,8 @@ type AdminClient interface { RoleItems(ctx context.Context, in *RoleItemsRequest, opts ...grpc.CallOption) (*Response, error) RoleStatus(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*Response, error) RoleRule(ctx context.Context, in *RoleRuleRequest, opts ...grpc.CallOption) (*Response, error) + // 传入IDS []int64,返回[]NamesItem{id int64,name string} + AdminNamesByIds(ctx context.Context, in *AdminNamesByIdsRequest, opts ...grpc.CallOption) (*AdminNamesByIdsResponse, error) } type adminClient struct { @@ -407,6 +410,16 @@ func (c *adminClient) RoleRule(ctx context.Context, in *RoleRuleRequest, opts .. return out, nil } +func (c *adminClient) AdminNamesByIds(ctx context.Context, in *AdminNamesByIdsRequest, opts ...grpc.CallOption) (*AdminNamesByIdsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(AdminNamesByIdsResponse) + err := c.cc.Invoke(ctx, Admin_AdminNamesByIds_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // AdminServer is the server API for Admin service. // All implementations must embed UnimplementedAdminServer // for forward compatibility. @@ -442,6 +455,8 @@ type AdminServer interface { RoleItems(context.Context, *RoleItemsRequest) (*Response, error) RoleStatus(context.Context, *StatusRequest) (*Response, error) RoleRule(context.Context, *RoleRuleRequest) (*Response, error) + // 传入IDS []int64,返回[]NamesItem{id int64,name string} + AdminNamesByIds(context.Context, *AdminNamesByIdsRequest) (*AdminNamesByIdsResponse, error) mustEmbedUnimplementedAdminServer() } @@ -545,6 +560,9 @@ func (UnimplementedAdminServer) RoleStatus(context.Context, *StatusRequest) (*Re func (UnimplementedAdminServer) RoleRule(context.Context, *RoleRuleRequest) (*Response, error) { return nil, status.Error(codes.Unimplemented, "method RoleRule not implemented") } +func (UnimplementedAdminServer) AdminNamesByIds(context.Context, *AdminNamesByIdsRequest) (*AdminNamesByIdsResponse, error) { + return nil, status.Error(codes.Unimplemented, "method AdminNamesByIds not implemented") +} func (UnimplementedAdminServer) mustEmbedUnimplementedAdminServer() {} func (UnimplementedAdminServer) testEmbeddedByValue() {} @@ -1124,6 +1142,24 @@ func _Admin_RoleRule_Handler(srv interface{}, ctx context.Context, dec func(inte return interceptor(ctx, in, info, handler) } +func _Admin_AdminNamesByIds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminNamesByIdsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServer).AdminNamesByIds(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Admin_AdminNamesByIds_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServer).AdminNamesByIds(ctx, req.(*AdminNamesByIdsRequest)) + } + return interceptor(ctx, in, info, handler) +} + // Admin_ServiceDesc is the grpc.ServiceDesc for Admin service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -1255,6 +1291,10 @@ var Admin_ServiceDesc = grpc.ServiceDesc{ MethodName: "RoleRule", Handler: _Admin_RoleRule_Handler, }, + { + MethodName: "AdminNamesByIds", + Handler: _Admin_AdminNamesByIds_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "admin/admin.proto", diff --git a/services/admin/adminClient/admin.go b/services/admin/adminClient/admin.go index 722d743..1f18494 100644 --- a/services/admin/adminClient/admin.go +++ b/services/admin/adminClient/admin.go @@ -14,29 +14,32 @@ import ( ) type ( - AdminEditRequest = admin.AdminEditRequest - AdminEmptyRequest = admin.AdminEmptyRequest - AdminInfoRequest = admin.AdminInfoRequest - AdminItemsRequest = admin.AdminItemsRequest - AuthorityEditRequest = admin.AuthorityEditRequest - AuthorityItemsRequest = admin.AuthorityItemsRequest - AuthorityNameRequest = admin.AuthorityNameRequest - AuthoritySortRequest = admin.AuthoritySortRequest - InfoRequest = admin.InfoRequest - LoginKickedOutRequest = admin.LoginKickedOutRequest - LoginRequest = admin.LoginRequest - OwnPasswordRequest = admin.OwnPasswordRequest - PasswordRequest = admin.PasswordRequest - Response = admin.Response - RoleEditRequest = admin.RoleEditRequest - RoleItemsRequest = admin.RoleItemsRequest - RoleNameRequest = admin.RoleNameRequest - RoleRuleRequest = admin.RoleRuleRequest - RoutesRequest = admin.RoutesRequest - ServiceEditRequest = admin.ServiceEditRequest - ServiceItemsRequest = admin.ServiceItemsRequest - ServiceNameRequest = admin.ServiceNameRequest - StatusRequest = admin.StatusRequest + AdminEditRequest = admin.AdminEditRequest + AdminEmptyRequest = admin.AdminEmptyRequest + AdminInfoRequest = admin.AdminInfoRequest + AdminItemsRequest = admin.AdminItemsRequest + AdminNamesByIdsRequest = admin.AdminNamesByIdsRequest + AdminNamesByIdsResponse = admin.AdminNamesByIdsResponse + AuthorityEditRequest = admin.AuthorityEditRequest + AuthorityItemsRequest = admin.AuthorityItemsRequest + AuthorityNameRequest = admin.AuthorityNameRequest + AuthoritySortRequest = admin.AuthoritySortRequest + InfoRequest = admin.InfoRequest + LoginKickedOutRequest = admin.LoginKickedOutRequest + LoginRequest = admin.LoginRequest + NamesItem = admin.NamesItem + OwnPasswordRequest = admin.OwnPasswordRequest + PasswordRequest = admin.PasswordRequest + Response = admin.Response + RoleEditRequest = admin.RoleEditRequest + RoleItemsRequest = admin.RoleItemsRequest + RoleNameRequest = admin.RoleNameRequest + RoleRuleRequest = admin.RoleRuleRequest + RoutesRequest = admin.RoutesRequest + ServiceEditRequest = admin.ServiceEditRequest + ServiceItemsRequest = admin.ServiceItemsRequest + ServiceNameRequest = admin.ServiceNameRequest + StatusRequest = admin.StatusRequest Admin interface { AdminEdit(ctx context.Context, in *AdminEditRequest, opts ...grpc.CallOption) (*Response, error) @@ -70,6 +73,8 @@ type ( RoleItems(ctx context.Context, in *RoleItemsRequest, opts ...grpc.CallOption) (*Response, error) RoleStatus(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*Response, error) RoleRule(ctx context.Context, in *RoleRuleRequest, opts ...grpc.CallOption) (*Response, error) + // 传入IDS []int64,返回[]NamesItem{id int64,name string} + AdminNamesByIds(ctx context.Context, in *AdminNamesByIdsRequest, opts ...grpc.CallOption) (*AdminNamesByIdsResponse, error) } defaultAdmin struct { @@ -237,3 +242,9 @@ func (m *defaultAdmin) RoleRule(ctx context.Context, in *RoleRuleRequest, opts . client := admin.NewAdminClient(m.cli.Conn()) return client.RoleRule(ctx, in, opts...) } + +// 传入IDS []int64,返回[]NamesItem{id int64,name string} +func (m *defaultAdmin) AdminNamesByIds(ctx context.Context, in *AdminNamesByIdsRequest, opts ...grpc.CallOption) (*AdminNamesByIdsResponse, error) { + client := admin.NewAdminClient(m.cli.Conn()) + return client.AdminNamesByIds(ctx, in, opts...) +} diff --git a/services/admin/internal/logic/adminNamesByIdsLogic.go b/services/admin/internal/logic/adminNamesByIdsLogic.go new file mode 100644 index 0000000..a773d0e --- /dev/null +++ b/services/admin/internal/logic/adminNamesByIdsLogic.go @@ -0,0 +1,73 @@ +package logic + +import ( + "context" + "lone-services/pkg/modelbase" + "lone-services/pkg/utils" + "lone-services/pkg/validate" + "lone-services/services/admin/internal/dao" + "lone-services/services/admin/internal/model" + "lone-services/services/admin/validator" + "strconv" + + "lone-services/rpc/admin/pb" + "lone-services/services/admin/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +type AdminNamesByIdsLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewAdminNamesByIdsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AdminNamesByIdsLogic { + return &AdminNamesByIdsLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// 传入IDS []int64,返回[]NamesItem{id int64,name string} +func (l *AdminNamesByIdsLogic) AdminNamesByIds(in *admin.AdminNamesByIdsRequest) (*admin.AdminNamesByIdsResponse, error) { + var req validator.AdminNamesByIdsValidator + if msg := validate.ValidateFromProto(in, &req); msg != utils.StringEmpty { + return nil, status.Error(codes.InvalidArgument, msg) + } + + ids := make([]string, utils.NumberZero, len(in.Ids)) + for _, id := range in.Ids { + ids = append(ids, strconv.FormatInt(id, utils.NumberTen)) + } + + w := modelbase.Params{ + In: map[string][]string{"id in ?": ids}, + Eq: map[string]string{"status": utils.StringStatusOk}, + } + var items []dao.AdminNames + err := model.AdminModel{}.Init().Items(w, &items) + if err != nil { + l.Logger.Error(err) + return nil, status.Error(codes.Code(utils.Fail.Code), utils.Fail.Msg) + } + if len(items) < utils.NumberOne { + return nil, status.Error(codes.Code(utils.ErrorNotFund.Code), utils.ErrorNotFund.Msg) + } + + var result []*admin.NamesItem + for item := range items { + mobile, dErr := utils.DecryptPhone(items[item].Phone) + if dErr == nil { + items[item].Phone = mobile + } + result = append(result, &admin.NamesItem{ + Id: int64(items[item].Id), + Name: items[item].Name, + }) + } + return &admin.AdminNamesByIdsResponse{Items: result}, nil +} diff --git a/services/admin/internal/server/adminServer.go b/services/admin/internal/server/adminServer.go index 198cb3e..780be42 100644 --- a/services/admin/internal/server/adminServer.go +++ b/services/admin/internal/server/adminServer.go @@ -177,3 +177,9 @@ func (s *AdminServer) RoleRule(ctx context.Context, in *admin.RoleRuleRequest) ( l := logic.NewRoleRuleLogic(ctx, s.svcCtx) return l.RoleRule(in) } + +// 传入IDS []int64,返回[]NamesItem{id int64,name string} +func (s *AdminServer) AdminNamesByIds(ctx context.Context, in *admin.AdminNamesByIdsRequest) (*admin.AdminNamesByIdsResponse, error) { + l := logic.NewAdminNamesByIdsLogic(ctx, s.svcCtx) + return l.AdminNamesByIds(in) +} diff --git a/services/admin/validator/admin.go b/services/admin/validator/admin.go index 53a81a4..e145a11 100644 --- a/services/admin/validator/admin.go +++ b/services/admin/validator/admin.go @@ -135,3 +135,14 @@ func (p LoginKickedOutValidator) GetMessage() validate.ValidatorMessages { "Id.required": "ID不能为空", } } + +type AdminNamesByIdsValidator struct { + Ids []int64 `validate:"required"` +} + +// GetMessage 提示消息 +func (p AdminNamesByIdsValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "Ids.required": "ID不能为空", + } +}