diff --git a/admin/admin.go b/admin/admin.go index 37a4cb9..551fe78 100644 --- a/admin/admin.go +++ b/admin/admin.go @@ -23,6 +23,7 @@ import ( "pkg.local/modelbase" "pkg.local/mysql" "pkg.local/redis" + "pkg.local/utils" "pkg.local/validate" ) @@ -104,7 +105,8 @@ func main() { logx.Errorf("redis init: %v", err) } - modelbase.Init(db, modelbase.Config{Prefix: c.Mysql.Prefix}) + debug := utils.GetConfigBool("mysql.debug") + modelbase.Init(db, modelbase.Config{Prefix: c.Mysql.Prefix, Debug: debug}) ctx := svc.NewServiceContext(c, db) diff --git a/admin/admin/admin.pb.go b/admin/admin/admin.pb.go index 2586f49..eb55eaa 100644 --- a/admin/admin/admin.pb.go +++ b/admin/admin/admin.pb.go @@ -746,6 +746,342 @@ func (x *ServiceNameRequest) GetName() string { return "" } +type AuthoritySortRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Type int32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AuthoritySortRequest) Reset() { + *x = AuthoritySortRequest{} + mi := &file_proto_admin_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AuthoritySortRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthoritySortRequest) ProtoMessage() {} + +func (x *AuthoritySortRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_admin_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 AuthoritySortRequest.ProtoReflect.Descriptor instead. +func (*AuthoritySortRequest) Descriptor() ([]byte, []int) { + return file_proto_admin_proto_rawDescGZIP(), []int{13} +} + +func (x *AuthoritySortRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AuthoritySortRequest) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +type AuthorityNameRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ServiceId int64 `protobuf:"varint,1,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"` + Type int32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AuthorityNameRequest) Reset() { + *x = AuthorityNameRequest{} + mi := &file_proto_admin_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AuthorityNameRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthorityNameRequest) ProtoMessage() {} + +func (x *AuthorityNameRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_admin_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 AuthorityNameRequest.ProtoReflect.Descriptor instead. +func (*AuthorityNameRequest) Descriptor() ([]byte, []int) { + return file_proto_admin_proto_rawDescGZIP(), []int{14} +} + +func (x *AuthorityNameRequest) GetServiceId() int64 { + if x != nil { + return x.ServiceId + } + return 0 +} + +func (x *AuthorityNameRequest) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +type AuthorityItemsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ServiceId int64 `protobuf:"varint,1,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AuthorityItemsRequest) Reset() { + *x = AuthorityItemsRequest{} + mi := &file_proto_admin_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AuthorityItemsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthorityItemsRequest) ProtoMessage() {} + +func (x *AuthorityItemsRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_admin_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 AuthorityItemsRequest.ProtoReflect.Descriptor instead. +func (*AuthorityItemsRequest) Descriptor() ([]byte, []int) { + return file_proto_admin_proto_rawDescGZIP(), []int{15} +} + +func (x *AuthorityItemsRequest) GetServiceId() int64 { + if x != nil { + return x.ServiceId + } + return 0 +} + +type AuthorityEditRequest 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"` + ParentId int64 `protobuf:"varint,3,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"` + Type int32 `protobuf:"varint,4,opt,name=type,proto3" json:"type,omitempty"` + ServiceId int64 `protobuf:"varint,5,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"` + Path string `protobuf:"bytes,6,opt,name=path,proto3" json:"path,omitempty"` + Api string `protobuf:"bytes,7,opt,name=api,proto3" json:"api,omitempty"` + ViewPath string `protobuf:"bytes,8,opt,name=view_path,json=viewPath,proto3" json:"view_path,omitempty"` + Identification string `protobuf:"bytes,9,opt,name=identification,proto3" json:"identification,omitempty"` + Icon string `protobuf:"bytes,10,opt,name=icon,proto3" json:"icon,omitempty"` + IsShow int32 `protobuf:"varint,11,opt,name=is_show,json=isShow,proto3" json:"is_show,omitempty"` + Description string `protobuf:"bytes,12,opt,name=description,proto3" json:"description,omitempty"` + DataBaseStr string `protobuf:"bytes,13,opt,name=data_base_str,json=dataBaseStr,proto3" json:"data_base_str,omitempty"` + DataAll string `protobuf:"bytes,14,opt,name=data_all,json=dataAll,proto3" json:"data_all,omitempty"` + DataDepartment string `protobuf:"bytes,15,opt,name=data_department,json=dataDepartment,proto3" json:"data_department,omitempty"` + DataOneself string `protobuf:"bytes,16,opt,name=data_oneself,json=dataOneself,proto3" json:"data_oneself,omitempty"` + DataTreeAll string `protobuf:"bytes,17,opt,name=data_tree_all,json=dataTreeAll,proto3" json:"data_tree_all,omitempty"` + DataTreeDepartment string `protobuf:"bytes,18,opt,name=data_tree_department,json=dataTreeDepartment,proto3" json:"data_tree_department,omitempty"` + DataTreeOneself string `protobuf:"bytes,19,opt,name=data_tree_oneself,json=dataTreeOneself,proto3" json:"data_tree_oneself,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AuthorityEditRequest) Reset() { + *x = AuthorityEditRequest{} + mi := &file_proto_admin_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AuthorityEditRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthorityEditRequest) ProtoMessage() {} + +func (x *AuthorityEditRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_admin_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 AuthorityEditRequest.ProtoReflect.Descriptor instead. +func (*AuthorityEditRequest) Descriptor() ([]byte, []int) { + return file_proto_admin_proto_rawDescGZIP(), []int{16} +} + +func (x *AuthorityEditRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AuthorityEditRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AuthorityEditRequest) GetParentId() int64 { + if x != nil { + return x.ParentId + } + return 0 +} + +func (x *AuthorityEditRequest) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *AuthorityEditRequest) GetServiceId() int64 { + if x != nil { + return x.ServiceId + } + return 0 +} + +func (x *AuthorityEditRequest) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *AuthorityEditRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AuthorityEditRequest) GetViewPath() string { + if x != nil { + return x.ViewPath + } + return "" +} + +func (x *AuthorityEditRequest) GetIdentification() string { + if x != nil { + return x.Identification + } + return "" +} + +func (x *AuthorityEditRequest) GetIcon() string { + if x != nil { + return x.Icon + } + return "" +} + +func (x *AuthorityEditRequest) GetIsShow() int32 { + if x != nil { + return x.IsShow + } + return 0 +} + +func (x *AuthorityEditRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *AuthorityEditRequest) GetDataBaseStr() string { + if x != nil { + return x.DataBaseStr + } + return "" +} + +func (x *AuthorityEditRequest) GetDataAll() string { + if x != nil { + return x.DataAll + } + return "" +} + +func (x *AuthorityEditRequest) GetDataDepartment() string { + if x != nil { + return x.DataDepartment + } + return "" +} + +func (x *AuthorityEditRequest) GetDataOneself() string { + if x != nil { + return x.DataOneself + } + return "" +} + +func (x *AuthorityEditRequest) GetDataTreeAll() string { + if x != nil { + return x.DataTreeAll + } + return "" +} + +func (x *AuthorityEditRequest) GetDataTreeDepartment() string { + if x != nil { + return x.DataTreeDepartment + } + return "" +} + +func (x *AuthorityEditRequest) GetDataTreeOneself() string { + if x != nil { + return x.DataTreeOneself + } + return "" +} + var File_proto_admin_proto protoreflect.FileDescriptor const file_proto_admin_proto_rawDesc = "" + @@ -795,7 +1131,39 @@ const file_proto_admin_proto_rawDesc = "" + "\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n" + "\x06status\x18\x02 \x01(\x05R\x06status\"(\n" + "\x12ServiceNameRequest\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name2\xfd\t\n" + + "\x04name\x18\x01 \x01(\tR\x04name\":\n" + + "\x14AuthoritySortRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" + + "\x04type\x18\x02 \x01(\x05R\x04type\"I\n" + + "\x14AuthorityNameRequest\x12\x1d\n" + + "\n" + + "service_id\x18\x01 \x01(\x03R\tserviceId\x12\x12\n" + + "\x04type\x18\x02 \x01(\x05R\x04type\"6\n" + + "\x15AuthorityItemsRequest\x12\x1d\n" + + "\n" + + "service_id\x18\x01 \x01(\x03R\tserviceId\"\xd1\x04\n" + + "\x14AuthorityEditRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x1b\n" + + "\tparent_id\x18\x03 \x01(\x03R\bparentId\x12\x12\n" + + "\x04type\x18\x04 \x01(\x05R\x04type\x12\x1d\n" + + "\n" + + "service_id\x18\x05 \x01(\x03R\tserviceId\x12\x12\n" + + "\x04path\x18\x06 \x01(\tR\x04path\x12\x10\n" + + "\x03api\x18\a \x01(\tR\x03api\x12\x1b\n" + + "\tview_path\x18\b \x01(\tR\bviewPath\x12&\n" + + "\x0eidentification\x18\t \x01(\tR\x0eidentification\x12\x12\n" + + "\x04icon\x18\n" + + " \x01(\tR\x04icon\x12\x17\n" + + "\ais_show\x18\v \x01(\x05R\x06isShow\x12 \n" + + "\vdescription\x18\f \x01(\tR\vdescription\x12\"\n" + + "\rdata_base_str\x18\r \x01(\tR\vdataBaseStr\x12\x19\n" + + "\bdata_all\x18\x0e \x01(\tR\adataAll\x12'\n" + + "\x0fdata_department\x18\x0f \x01(\tR\x0edataDepartment\x12!\n" + + "\fdata_oneself\x18\x10 \x01(\tR\vdataOneself\x12\"\n" + + "\rdata_tree_all\x18\x11 \x01(\tR\vdataTreeAll\x120\n" + + "\x14data_tree_department\x18\x12 \x01(\tR\x12dataTreeDepartment\x12*\n" + + "\x11data_tree_oneself\x18\x13 \x01(\tR\x0fdataTreeOneself2\xce\x0e\n" + "\x05Admin\x12V\n" + "\tAdminEdit\x12\x17.admin.AdminEditRequest\x1a\x0f.admin.Response\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/admin/v3/admin/edit\x12W\n" + "\vAdminStatus\x12\x14.admin.StatusRequest\x1a\x0f.admin.Response\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\"\x16/admin/v3/admin/status\x12X\n" + @@ -808,11 +1176,17 @@ const file_proto_admin_proto_rawDesc = "" + "AdminLogin\x12\x18.admin.AdminLoginRequest\x1a\x0f.admin.Response\"\x1a\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/admin/v3/login\x12W\n" + "\fAdminRefresh\x12\x18.admin.AdminEmptyRequest\x1a\x0f.admin.Response\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/admin/v3/refresh\x12Q\n" + "\tLoginInfo\x12\x18.admin.AdminEmptyRequest\x1a\x0f.admin.Response\"\x19\x82\xd3\xe4\x93\x02\x13:\x01*\"\x0e/admin/v3/info\x12U\n" + - "\vServiceInfo\x12\x12.admin.InfoRequest\x1a\x0f.admin.Response\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\"\x16/admin/v3/service/info\x12\\\n" + + "\vServiceInfo\x12\x12.admin.InfoRequest\x1a\x0f.admin.Response\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\x12\x16/admin/v3/service/info\x12\\\n" + "\vServiceEdit\x12\x19.admin.ServiceEditRequest\x1a\x0f.admin.Response\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\"\x16/admin/v3/service/edit\x12_\n" + - "\fServiceItems\x12\x1a.admin.ServiceItemsRequest\x1a\x0f.admin.Response\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\"\x17/admin/v3/service/items\x12[\n" + + "\fServiceItems\x12\x1a.admin.ServiceItemsRequest\x1a\x0f.admin.Response\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\x12\x17/admin/v3/service/items\x12[\n" + "\rServiceStatus\x12\x14.admin.StatusRequest\x1a\x0f.admin.Response\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/admin/v3/service/status\x12^\n" + - "\fServiceNames\x12\x19.admin.ServiceNameRequest\x1a\x0f.admin.Response\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\"\x17/admin/v3/service/namesB\tZ\a./adminb\x06proto3" + "\fServiceNames\x12\x19.admin.ServiceNameRequest\x1a\x0f.admin.Response\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\x12\x17/admin/v3/service/names\x12Y\n" + + "\rAuthorityInfo\x12\x12.admin.InfoRequest\x1a\x0f.admin.Response\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\x12\x18/admin/v3/authority/info\x12b\n" + + "\rAuthorityEdit\x12\x1b.admin.AuthorityEditRequest\x1a\x0f.admin.Response\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/admin/v3/authority/edit\x12e\n" + + "\x0eAuthorityItems\x12\x1c.admin.AuthorityItemsRequest\x1a\x0f.admin.Response\"$\x82\xd3\xe4\x93\x02\x1e:\x01*\x12\x19/admin/v3/authority/items\x12_\n" + + "\x0fauthorityStatus\x12\x14.admin.StatusRequest\x1a\x0f.admin.Response\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/admin/v3/authority/status\x12d\n" + + "\x0eAuthorityNames\x12\x1b.admin.AuthorityNameRequest\x1a\x0f.admin.Response\"$\x82\xd3\xe4\x93\x02\x1e:\x01*\x12\x19/admin/v3/authority/names\x12b\n" + + "\rAuthoritySort\x12\x1b.admin.AuthoritySortRequest\x1a\x0f.admin.Response\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/admin/v3/authority/sortB\tZ\a./adminb\x06proto3" var ( file_proto_admin_proto_rawDescOnce sync.Once @@ -826,21 +1200,25 @@ func file_proto_admin_proto_rawDescGZIP() []byte { return file_proto_admin_proto_rawDescData } -var file_proto_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_proto_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_proto_admin_proto_goTypes = []any{ - (*AdminEditRequest)(nil), // 0: admin.AdminEditRequest - (*StatusRequest)(nil), // 1: admin.StatusRequest - (*Response)(nil), // 2: admin.Response - (*PasswordRequest)(nil), // 3: admin.PasswordRequest - (*OwnPasswordRequest)(nil), // 4: admin.OwnPasswordRequest - (*AdminInfoRequest)(nil), // 5: admin.AdminInfoRequest - (*AdminItemsRequest)(nil), // 6: admin.AdminItemsRequest - (*AdminLoginRequest)(nil), // 7: admin.AdminLoginRequest - (*AdminEmptyRequest)(nil), // 8: admin.AdminEmptyRequest - (*InfoRequest)(nil), // 9: admin.InfoRequest - (*ServiceEditRequest)(nil), // 10: admin.ServiceEditRequest - (*ServiceItemsRequest)(nil), // 11: admin.ServiceItemsRequest - (*ServiceNameRequest)(nil), // 12: admin.ServiceNameRequest + (*AdminEditRequest)(nil), // 0: admin.AdminEditRequest + (*StatusRequest)(nil), // 1: admin.StatusRequest + (*Response)(nil), // 2: admin.Response + (*PasswordRequest)(nil), // 3: admin.PasswordRequest + (*OwnPasswordRequest)(nil), // 4: admin.OwnPasswordRequest + (*AdminInfoRequest)(nil), // 5: admin.AdminInfoRequest + (*AdminItemsRequest)(nil), // 6: admin.AdminItemsRequest + (*AdminLoginRequest)(nil), // 7: admin.AdminLoginRequest + (*AdminEmptyRequest)(nil), // 8: admin.AdminEmptyRequest + (*InfoRequest)(nil), // 9: admin.InfoRequest + (*ServiceEditRequest)(nil), // 10: admin.ServiceEditRequest + (*ServiceItemsRequest)(nil), // 11: admin.ServiceItemsRequest + (*ServiceNameRequest)(nil), // 12: admin.ServiceNameRequest + (*AuthoritySortRequest)(nil), // 13: admin.AuthoritySortRequest + (*AuthorityNameRequest)(nil), // 14: admin.AuthorityNameRequest + (*AuthorityItemsRequest)(nil), // 15: admin.AuthorityItemsRequest + (*AuthorityEditRequest)(nil), // 16: admin.AuthorityEditRequest } var file_proto_admin_proto_depIdxs = []int32{ 0, // 0: admin.Admin.AdminEdit:input_type -> admin.AdminEditRequest @@ -857,22 +1235,34 @@ var file_proto_admin_proto_depIdxs = []int32{ 11, // 11: admin.Admin.ServiceItems:input_type -> admin.ServiceItemsRequest 1, // 12: admin.Admin.ServiceStatus:input_type -> admin.StatusRequest 12, // 13: admin.Admin.ServiceNames:input_type -> admin.ServiceNameRequest - 2, // 14: admin.Admin.AdminEdit:output_type -> admin.Response - 2, // 15: admin.Admin.AdminStatus:output_type -> admin.Response - 2, // 16: admin.Admin.Password:output_type -> admin.Response - 2, // 17: admin.Admin.OwnPassword:output_type -> admin.Response - 2, // 18: admin.Admin.AdminInfo:output_type -> admin.Response - 2, // 19: admin.Admin.AdminItems:output_type -> admin.Response - 2, // 20: admin.Admin.AdminLogin:output_type -> admin.Response - 2, // 21: admin.Admin.AdminRefresh:output_type -> admin.Response - 2, // 22: admin.Admin.LoginInfo:output_type -> admin.Response - 2, // 23: admin.Admin.ServiceInfo:output_type -> admin.Response - 2, // 24: admin.Admin.ServiceEdit:output_type -> admin.Response - 2, // 25: admin.Admin.ServiceItems:output_type -> admin.Response - 2, // 26: admin.Admin.ServiceStatus:output_type -> admin.Response - 2, // 27: admin.Admin.ServiceNames:output_type -> admin.Response - 14, // [14:28] is the sub-list for method output_type - 0, // [0:14] is the sub-list for method input_type + 9, // 14: admin.Admin.AuthorityInfo:input_type -> admin.InfoRequest + 16, // 15: admin.Admin.AuthorityEdit:input_type -> admin.AuthorityEditRequest + 15, // 16: admin.Admin.AuthorityItems:input_type -> admin.AuthorityItemsRequest + 1, // 17: admin.Admin.authorityStatus:input_type -> admin.StatusRequest + 14, // 18: admin.Admin.AuthorityNames:input_type -> admin.AuthorityNameRequest + 13, // 19: admin.Admin.AuthoritySort:input_type -> admin.AuthoritySortRequest + 2, // 20: admin.Admin.AdminEdit:output_type -> admin.Response + 2, // 21: admin.Admin.AdminStatus:output_type -> admin.Response + 2, // 22: admin.Admin.Password:output_type -> admin.Response + 2, // 23: admin.Admin.OwnPassword:output_type -> admin.Response + 2, // 24: admin.Admin.AdminInfo:output_type -> admin.Response + 2, // 25: admin.Admin.AdminItems:output_type -> admin.Response + 2, // 26: admin.Admin.AdminLogin:output_type -> admin.Response + 2, // 27: admin.Admin.AdminRefresh:output_type -> admin.Response + 2, // 28: admin.Admin.LoginInfo:output_type -> admin.Response + 2, // 29: admin.Admin.ServiceInfo:output_type -> admin.Response + 2, // 30: admin.Admin.ServiceEdit:output_type -> admin.Response + 2, // 31: admin.Admin.ServiceItems:output_type -> admin.Response + 2, // 32: admin.Admin.ServiceStatus:output_type -> admin.Response + 2, // 33: admin.Admin.ServiceNames:output_type -> admin.Response + 2, // 34: admin.Admin.AuthorityInfo:output_type -> admin.Response + 2, // 35: admin.Admin.AuthorityEdit:output_type -> admin.Response + 2, // 36: admin.Admin.AuthorityItems:output_type -> admin.Response + 2, // 37: admin.Admin.authorityStatus:output_type -> admin.Response + 2, // 38: admin.Admin.AuthorityNames:output_type -> admin.Response + 2, // 39: admin.Admin.AuthoritySort:output_type -> admin.Response + 20, // [20:40] is the sub-list for method output_type + 0, // [0:20] 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 @@ -889,7 +1279,7 @@ func file_proto_admin_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_admin_proto_rawDesc), len(file_proto_admin_proto_rawDesc)), NumEnums: 0, - NumMessages: 13, + NumMessages: 17, NumExtensions: 0, NumServices: 1, }, diff --git a/admin/admin/admin_grpc.pb.go b/admin/admin/admin_grpc.pb.go index 0225ed9..25b2027 100644 --- a/admin/admin/admin_grpc.pb.go +++ b/admin/admin/admin_grpc.pb.go @@ -19,20 +19,26 @@ import ( const _ = grpc.SupportPackageIsVersion9 const ( - Admin_AdminEdit_FullMethodName = "/admin.Admin/AdminEdit" - Admin_AdminStatus_FullMethodName = "/admin.Admin/AdminStatus" - Admin_Password_FullMethodName = "/admin.Admin/Password" - Admin_OwnPassword_FullMethodName = "/admin.Admin/OwnPassword" - Admin_AdminInfo_FullMethodName = "/admin.Admin/AdminInfo" - Admin_AdminItems_FullMethodName = "/admin.Admin/AdminItems" - Admin_AdminLogin_FullMethodName = "/admin.Admin/AdminLogin" - Admin_AdminRefresh_FullMethodName = "/admin.Admin/AdminRefresh" - Admin_LoginInfo_FullMethodName = "/admin.Admin/LoginInfo" - Admin_ServiceInfo_FullMethodName = "/admin.Admin/ServiceInfo" - Admin_ServiceEdit_FullMethodName = "/admin.Admin/ServiceEdit" - Admin_ServiceItems_FullMethodName = "/admin.Admin/ServiceItems" - Admin_ServiceStatus_FullMethodName = "/admin.Admin/ServiceStatus" - Admin_ServiceNames_FullMethodName = "/admin.Admin/ServiceNames" + Admin_AdminEdit_FullMethodName = "/admin.Admin/AdminEdit" + Admin_AdminStatus_FullMethodName = "/admin.Admin/AdminStatus" + Admin_Password_FullMethodName = "/admin.Admin/Password" + Admin_OwnPassword_FullMethodName = "/admin.Admin/OwnPassword" + Admin_AdminInfo_FullMethodName = "/admin.Admin/AdminInfo" + Admin_AdminItems_FullMethodName = "/admin.Admin/AdminItems" + Admin_AdminLogin_FullMethodName = "/admin.Admin/AdminLogin" + Admin_AdminRefresh_FullMethodName = "/admin.Admin/AdminRefresh" + Admin_LoginInfo_FullMethodName = "/admin.Admin/LoginInfo" + Admin_ServiceInfo_FullMethodName = "/admin.Admin/ServiceInfo" + Admin_ServiceEdit_FullMethodName = "/admin.Admin/ServiceEdit" + Admin_ServiceItems_FullMethodName = "/admin.Admin/ServiceItems" + Admin_ServiceStatus_FullMethodName = "/admin.Admin/ServiceStatus" + Admin_ServiceNames_FullMethodName = "/admin.Admin/ServiceNames" + Admin_AuthorityInfo_FullMethodName = "/admin.Admin/AuthorityInfo" + Admin_AuthorityEdit_FullMethodName = "/admin.Admin/AuthorityEdit" + Admin_AuthorityItems_FullMethodName = "/admin.Admin/AuthorityItems" + Admin_AuthorityStatus_FullMethodName = "/admin.Admin/authorityStatus" + Admin_AuthorityNames_FullMethodName = "/admin.Admin/AuthorityNames" + Admin_AuthoritySort_FullMethodName = "/admin.Admin/AuthoritySort" ) // AdminClient is the client API for Admin service. @@ -53,6 +59,12 @@ type AdminClient interface { ServiceItems(ctx context.Context, in *ServiceItemsRequest, opts ...grpc.CallOption) (*Response, error) ServiceStatus(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*Response, error) ServiceNames(ctx context.Context, in *ServiceNameRequest, opts ...grpc.CallOption) (*Response, error) + AuthorityInfo(ctx context.Context, in *InfoRequest, opts ...grpc.CallOption) (*Response, error) + AuthorityEdit(ctx context.Context, in *AuthorityEditRequest, opts ...grpc.CallOption) (*Response, error) + AuthorityItems(ctx context.Context, in *AuthorityItemsRequest, opts ...grpc.CallOption) (*Response, error) + AuthorityStatus(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*Response, error) + AuthorityNames(ctx context.Context, in *AuthorityNameRequest, opts ...grpc.CallOption) (*Response, error) + AuthoritySort(ctx context.Context, in *AuthoritySortRequest, opts ...grpc.CallOption) (*Response, error) } type adminClient struct { @@ -203,6 +215,66 @@ func (c *adminClient) ServiceNames(ctx context.Context, in *ServiceNameRequest, return out, nil } +func (c *adminClient) AuthorityInfo(ctx context.Context, in *InfoRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Admin_AuthorityInfo_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminClient) AuthorityEdit(ctx context.Context, in *AuthorityEditRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Admin_AuthorityEdit_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminClient) AuthorityItems(ctx context.Context, in *AuthorityItemsRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Admin_AuthorityItems_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminClient) AuthorityStatus(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Admin_AuthorityStatus_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminClient) AuthorityNames(ctx context.Context, in *AuthorityNameRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Admin_AuthorityNames_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminClient) AuthoritySort(ctx context.Context, in *AuthoritySortRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Admin_AuthoritySort_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. @@ -221,6 +293,12 @@ type AdminServer interface { ServiceItems(context.Context, *ServiceItemsRequest) (*Response, error) ServiceStatus(context.Context, *StatusRequest) (*Response, error) ServiceNames(context.Context, *ServiceNameRequest) (*Response, error) + AuthorityInfo(context.Context, *InfoRequest) (*Response, error) + AuthorityEdit(context.Context, *AuthorityEditRequest) (*Response, error) + AuthorityItems(context.Context, *AuthorityItemsRequest) (*Response, error) + AuthorityStatus(context.Context, *StatusRequest) (*Response, error) + AuthorityNames(context.Context, *AuthorityNameRequest) (*Response, error) + AuthoritySort(context.Context, *AuthoritySortRequest) (*Response, error) mustEmbedUnimplementedAdminServer() } @@ -273,6 +351,24 @@ func (UnimplementedAdminServer) ServiceStatus(context.Context, *StatusRequest) ( func (UnimplementedAdminServer) ServiceNames(context.Context, *ServiceNameRequest) (*Response, error) { return nil, status.Error(codes.Unimplemented, "method ServiceNames not implemented") } +func (UnimplementedAdminServer) AuthorityInfo(context.Context, *InfoRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method AuthorityInfo not implemented") +} +func (UnimplementedAdminServer) AuthorityEdit(context.Context, *AuthorityEditRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method AuthorityEdit not implemented") +} +func (UnimplementedAdminServer) AuthorityItems(context.Context, *AuthorityItemsRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method AuthorityItems not implemented") +} +func (UnimplementedAdminServer) AuthorityStatus(context.Context, *StatusRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method AuthorityStatus not implemented") +} +func (UnimplementedAdminServer) AuthorityNames(context.Context, *AuthorityNameRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method AuthorityNames not implemented") +} +func (UnimplementedAdminServer) AuthoritySort(context.Context, *AuthoritySortRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method AuthoritySort not implemented") +} func (UnimplementedAdminServer) mustEmbedUnimplementedAdminServer() {} func (UnimplementedAdminServer) testEmbeddedByValue() {} @@ -546,6 +642,114 @@ func _Admin_ServiceNames_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } +func _Admin_AuthorityInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServer).AuthorityInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Admin_AuthorityInfo_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServer).AuthorityInfo(ctx, req.(*InfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Admin_AuthorityEdit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AuthorityEditRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServer).AuthorityEdit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Admin_AuthorityEdit_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServer).AuthorityEdit(ctx, req.(*AuthorityEditRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Admin_AuthorityItems_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AuthorityItemsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServer).AuthorityItems(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Admin_AuthorityItems_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServer).AuthorityItems(ctx, req.(*AuthorityItemsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Admin_AuthorityStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServer).AuthorityStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Admin_AuthorityStatus_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServer).AuthorityStatus(ctx, req.(*StatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Admin_AuthorityNames_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AuthorityNameRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServer).AuthorityNames(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Admin_AuthorityNames_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServer).AuthorityNames(ctx, req.(*AuthorityNameRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Admin_AuthoritySort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AuthoritySortRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServer).AuthoritySort(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Admin_AuthoritySort_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServer).AuthoritySort(ctx, req.(*AuthoritySortRequest)) + } + 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) @@ -609,6 +813,30 @@ var Admin_ServiceDesc = grpc.ServiceDesc{ MethodName: "ServiceNames", Handler: _Admin_ServiceNames_Handler, }, + { + MethodName: "AuthorityInfo", + Handler: _Admin_AuthorityInfo_Handler, + }, + { + MethodName: "AuthorityEdit", + Handler: _Admin_AuthorityEdit_Handler, + }, + { + MethodName: "AuthorityItems", + Handler: _Admin_AuthorityItems_Handler, + }, + { + MethodName: "authorityStatus", + Handler: _Admin_AuthorityStatus_Handler, + }, + { + MethodName: "AuthorityNames", + Handler: _Admin_AuthorityNames_Handler, + }, + { + MethodName: "AuthoritySort", + Handler: _Admin_AuthoritySort_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "proto/admin.proto", diff --git a/admin/adminclient/admin.go b/admin/adminclient/admin.go index 9091046..e004040 100644 --- a/admin/adminclient/admin.go +++ b/admin/adminclient/admin.go @@ -14,19 +14,23 @@ import ( ) type ( - AdminEditRequest = admin.AdminEditRequest - AdminEmptyRequest = admin.AdminEmptyRequest - AdminInfoRequest = admin.AdminInfoRequest - AdminItemsRequest = admin.AdminItemsRequest - AdminLoginRequest = admin.AdminLoginRequest - InfoRequest = admin.InfoRequest - OwnPasswordRequest = admin.OwnPasswordRequest - PasswordRequest = admin.PasswordRequest - Response = admin.Response - ServiceEditRequest = admin.ServiceEditRequest - ServiceItemsRequest = admin.ServiceItemsRequest - ServiceNameRequest = admin.ServiceNameRequest - StatusRequest = admin.StatusRequest + AdminEditRequest = admin.AdminEditRequest + AdminEmptyRequest = admin.AdminEmptyRequest + AdminInfoRequest = admin.AdminInfoRequest + AdminItemsRequest = admin.AdminItemsRequest + AdminLoginRequest = admin.AdminLoginRequest + AuthorityEditRequest = admin.AuthorityEditRequest + AuthorityItemsRequest = admin.AuthorityItemsRequest + AuthorityNameRequest = admin.AuthorityNameRequest + AuthoritySortRequest = admin.AuthoritySortRequest + InfoRequest = admin.InfoRequest + OwnPasswordRequest = admin.OwnPasswordRequest + PasswordRequest = admin.PasswordRequest + Response = admin.Response + 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) @@ -43,6 +47,12 @@ type ( ServiceItems(ctx context.Context, in *ServiceItemsRequest, opts ...grpc.CallOption) (*Response, error) ServiceStatus(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*Response, error) ServiceNames(ctx context.Context, in *ServiceNameRequest, opts ...grpc.CallOption) (*Response, error) + AuthorityInfo(ctx context.Context, in *InfoRequest, opts ...grpc.CallOption) (*Response, error) + AuthorityEdit(ctx context.Context, in *AuthorityEditRequest, opts ...grpc.CallOption) (*Response, error) + AuthorityItems(ctx context.Context, in *AuthorityItemsRequest, opts ...grpc.CallOption) (*Response, error) + AuthorityStatus(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*Response, error) + AuthorityNames(ctx context.Context, in *AuthorityNameRequest, opts ...grpc.CallOption) (*Response, error) + AuthoritySort(ctx context.Context, in *AuthoritySortRequest, opts ...grpc.CallOption) (*Response, error) } defaultAdmin struct { @@ -125,3 +135,33 @@ func (m *defaultAdmin) ServiceNames(ctx context.Context, in *ServiceNameRequest, client := admin.NewAdminClient(m.cli.Conn()) return client.ServiceNames(ctx, in, opts...) } + +func (m *defaultAdmin) AuthorityInfo(ctx context.Context, in *InfoRequest, opts ...grpc.CallOption) (*Response, error) { + client := admin.NewAdminClient(m.cli.Conn()) + return client.AuthorityInfo(ctx, in, opts...) +} + +func (m *defaultAdmin) AuthorityEdit(ctx context.Context, in *AuthorityEditRequest, opts ...grpc.CallOption) (*Response, error) { + client := admin.NewAdminClient(m.cli.Conn()) + return client.AuthorityEdit(ctx, in, opts...) +} + +func (m *defaultAdmin) AuthorityItems(ctx context.Context, in *AuthorityItemsRequest, opts ...grpc.CallOption) (*Response, error) { + client := admin.NewAdminClient(m.cli.Conn()) + return client.AuthorityItems(ctx, in, opts...) +} + +func (m *defaultAdmin) AuthorityStatus(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*Response, error) { + client := admin.NewAdminClient(m.cli.Conn()) + return client.AuthorityStatus(ctx, in, opts...) +} + +func (m *defaultAdmin) AuthorityNames(ctx context.Context, in *AuthorityNameRequest, opts ...grpc.CallOption) (*Response, error) { + client := admin.NewAdminClient(m.cli.Conn()) + return client.AuthorityNames(ctx, in, opts...) +} + +func (m *defaultAdmin) AuthoritySort(ctx context.Context, in *AuthoritySortRequest, opts ...grpc.CallOption) (*Response, error) { + client := admin.NewAdminClient(m.cli.Conn()) + return client.AuthoritySort(ctx, in, opts...) +} diff --git a/admin/internal/dao/authority.go b/admin/internal/dao/authority.go index c260e97..67a0cf7 100644 --- a/admin/internal/dao/authority.go +++ b/admin/internal/dao/authority.go @@ -1,7 +1,5 @@ package dao -import "pkg.local/utils" - const ( TypeDir = 1 TypeWeb = 2 @@ -19,58 +17,55 @@ const ( // Authority 权限表 type Authority struct { - Id int `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT;comment:ID" json:"id"` - Name string `gorm:"column:name;type:varchar(255);comment:菜单;NOT NULL" json:"name"` - ParentId int `gorm:"column:parent_id;type:int(11);default:0;comment:父级菜单;NOT NULL" json:"parent_id"` - ParentIds string `gorm:"column:parent_ids;type:varchar(255);comment:多级父级菜单;NOT NULL" json:"parent_ids"` - Level uint8 `gorm:"column:level;type:tinyint(2);default:0;comment:级别;NOT NULL" json:"level"` - Type uint8 `gorm:"column:type;type:tinyint(2);comment:类型,1目录,2页面,3按钮;NOT NULL" json:"type"` - ServiceId int `gorm:"column:service_id;type:int(11);comment:项目ID;NOT NULL" json:"service_id"` - Path string `gorm:"column:path;type:varchar(255);comment:页面请求地址;NOT NULL" json:"path"` - Api string `gorm:"column:api;type:varchar(255);comment:接口地址" json:"api"` - ViewPath string `gorm:"column:view_path;type:varchar(255);comment:页面文件路径" json:"view_path"` - Identification string `gorm:"column:identification;type:varchar(255);comment:权限标识" json:"identification"` - Icon string `gorm:"column:icon;type:varchar(255);comment:图标" json:"icon"` - Status uint8 `gorm:"column:status;type:tinyint(1);default:1;comment:状态,1为正常,2为禁用;NOT NULL" json:"status"` - Sort uint8 `gorm:"column:sort;type:smallint(3);default:1;comment:排序" json:"sort"` - JsonDataBase string `gorm:"column:json_data_base;type:text;comment:原始数据" json:"json_data_base"` - JsonTreeData string `gorm:"column:json_tree_data;type:text;comment:数据的树型结构" json:"json_tree_data"` - JsonData string `gorm:"column:json_data;type:text;comment:所有的数据" json:"json_data"` - DataIds string `gorm:"column:data_ids;type:varchar(32);comment:三个数据的IDs" json:"data_ids"` - IsShow uint8 `gorm:"column:is_show;type:tinyint(1);default:1;comment:菜单中是否显示,1为显示,2为不显示;NOT NULL" json:"is_show"` - Remarks string `gorm:"column:remarks;type:varchar(255);comment:备注;NOT NULL" json:"remarks"` - Reason string `gorm:"column:reason;type:varchar(255);comment:原因" json:"reason"` - AdminId int `gorm:"column:admin_id;type:int(11);comment:操作人ID" json:"admin_id"` - AdminName string `gorm:"column:admin_name;type:varchar(255);comment:操作人员姓名" json:"admin_name"` - CreateTime utils.CustomTime `gorm:"column:create_time;default:NULL;type:datetime" json:"create_time"` - UpdateTime utils.CustomTime `gorm:"column:update_time;default:NULL;type:datetime" json:"update_time"` + Id int64 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT;comment:ID" json:"id"` + Name string `gorm:"column:name;type:varchar(255);comment:菜单;NOT NULL" json:"name"` + ParentId int64 `gorm:"column:parent_id;type:int(11);default:0;comment:父级菜单;NOT NULL" json:"parent_id"` + ParentIds string `gorm:"column:parent_ids;type:varchar(255);comment:多级父级菜单;NOT NULL" json:"parent_ids"` + Level uint8 `gorm:"column:level;type:tinyint(2);default:0;comment:级别;NOT NULL" json:"level"` + Type uint8 `gorm:"column:type;type:tinyint(2);comment:类型,1目录,2页面,3按钮;NOT NULL" json:"type"` + ServiceId int64 `gorm:"column:service_id;type:int(11);comment:项目ID;NOT NULL" json:"service_id"` + Path string `gorm:"column:path;type:varchar(255);comment:页面请求地址;NOT NULL" json:"path"` + Api string `gorm:"column:api;type:varchar(255);comment:接口地址" json:"api"` + ViewPath string `gorm:"column:view_path;type:varchar(255);comment:页面文件路径" json:"view_path"` + Identification string `gorm:"column:identification;type:varchar(255);comment:权限标识" json:"identification"` + Icon string `gorm:"column:icon;type:varchar(255);comment:图标" json:"icon"` + Status uint8 `gorm:"column:status;type:tinyint(1);default:1;comment:状态,1为正常,2为禁用;NOT NULL" json:"status"` + Sort uint8 `gorm:"column:sort;type:smallint(3);default:1;comment:排序" json:"sort"` + JsonDataBase string `gorm:"column:json_data_base;type:text;comment:原始数据" json:"json_data_base"` + JsonTreeData string `gorm:"column:json_tree_data;type:text;comment:数据的树型结构" json:"json_tree_data"` + JsonData string `gorm:"column:json_data;type:text;comment:所有的数据" json:"json_data"` + DataIds string `gorm:"column:data_ids;type:varchar(32);comment:三个数据的IDs" json:"data_ids"` + IsShow uint8 `gorm:"column:is_show;type:tinyint(1);default:1;comment:菜单中是否显示,1为显示,2为不显示;NOT NULL" json:"is_show"` + Description string `json:"description" gorm:"description"` // 备注 + Reason string `gorm:"column:reason;type:varchar(255);comment:原因" json:"reason"` + AdminId int64 `gorm:"column:admin_id;type:int(11);comment:操作人ID" json:"admin_id"` + AdminName string `gorm:"column:admin_name;type:varchar(255);comment:操作人员姓名" json:"admin_name"` } // AuthorityStatus 修改状态 type AuthorityStatus struct { - Id int `json:"id"` - Status uint8 `json:"status"` - Reason string `gorm:"column:reason;type:varchar(255);comment:原因" json:"reason"` - ServiceId int `gorm:"column:service_id;type:int(11);comment:项目ID;NOT NULL" json:"service_id"` - AdminId int `json:"admin_id"` - AdminName string `gorm:"column:admin_name;type:varchar(100);comment:操作人姓名" json:"admin_name"` - UpdateTime utils.CustomTime `gorm:"column:update_time;type:datetime;default:NULL;comment:更新时间" json:"update_time"` + Id int64 `json:"id"` + Status uint8 `json:"status"` + Reason string `gorm:"column:reason;type:varchar(255);comment:原因" json:"reason"` + ServiceId int64 `gorm:"column:service_id;type:int(11);comment:项目ID;NOT NULL" json:"service_id"` + AdminId int64 `json:"admin_id"` + AdminName string `gorm:"column:admin_name;type:varchar(100);comment:操作人姓名" json:"admin_name"` } type AuthorityCheck struct { - Id int `json:"id"` + Id int64 `json:"id"` Api string `json:"api"` Type uint8 `json:"type"` } type AuthorityItems struct { - Id int `json:"id"` + Id int64 `json:"id"` Name string `json:"name"` - ParentId int `json:"parent_id"` + ParentId int64 `json:"parent_id"` ParentIds string `json:"parent_ids"` Level uint8 `json:"level"` Type uint8 `json:"type"` - ServiceId int `json:"service_id"` + ServiceId int64 `json:"service_id"` Path string `json:"path"` Api string `json:"api"` ViewPath string `json:"view_path"` @@ -83,38 +78,37 @@ type AuthorityItems struct { JsonTreeData string `gorm:"column:json_tree_data;type:text;comment:数据的树型结构" json:"json_tree_data"` DataIds string `json:"data_ids"` IsShow uint8 `json:"is_show"` - Remarks string `json:"remarks"` + Description string `json:"description"` // 备注 Reason string `json:"reason"` - AdminId int `json:"admin_id"` + AdminId int64 `json:"admin_id"` AdminName string `json:"admin_name"` - CreateTime utils.CustomTime `json:"create_time"` - UpdateTime utils.CustomTime `json:"update_time"` IsFirst bool `json:"is_first"` // 是否是同级第一个节点 IsLast bool `json:"is_last"` // 是否是同级最后一个节点 Children []*AuthorityItems `json:"children"` } type AuthorityNames struct { - Id int `json:"id"` + Id int64 `json:"id"` Name string `json:"name"` Level uint8 `json:"level"` Type uint8 `json:"type"` - ParentId int `json:"parent_id"db:"parent_id"` + ParentId int64 `json:"parent_id"db:"parent_id"` } type AuthorityNamesItems struct { - Id int `json:"value"` + Id int64 `json:"value"` Name string `json:"label"` Level uint8 `json:"level"` Type uint8 `json:"type"` - ParentId int `json:"pid"` + ParentId int64 `json:"pid"` Children []AuthorityNamesItems `json:"children"` } type AuthorityInfo struct { - Id int `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT;comment:ID" json:"id"` + Id int64 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT;comment:ID" json:"id"` Name string `gorm:"column:name;type:varchar(255);comment:菜单;NOT NULL" json:"name"` - ParentId int `gorm:"column:parent_id;type:int(11);default:0;comment:父级菜单;NOT NULL" json:"parent_id"` + ParentId int64 `gorm:"column:parent_id;type:int(11);default:0;comment:父级菜单;NOT NULL" json:"parent_id"` + ServiceId int64 `gorm:"column:service_id;type:int(11);comment:项目ID;NOT NULL" json:"service_id"` Type uint8 `gorm:"column:type;type:tinyint(2);comment:类型,1目录,2页面,3按钮;NOT NULL" json:"type"` Path string `gorm:"column:path;type:varchar(100);comment:页面请求地址;NOT NULL" json:"path"` Api string `gorm:"column:api;type:varchar(100);comment:接口地址" json:"api"` @@ -126,7 +120,7 @@ type AuthorityInfo struct { JsonTreeData string `gorm:"column:json_tree_data;type:text;comment:数据的树型结构" json:"json_tree_data"` JsonData string `gorm:"column:json_data;type:text;comment:所有的数据" json:"json_data"` DataIds string `gorm:"column:data_ids;type:varchar(32);comment:三个数据的IDs" json:"data_ids"` - Remarks string `gorm:"column:remarks;type:varchar(255);comment:备注;NOT NULL" json:"remarks"` + Description string `json:"description" gorm:"description"` // 备注 Reason string `gorm:"column:reason;type:varchar(255);comment:原因" json:"reason"` } @@ -138,13 +132,12 @@ type AuthorityInfoNew struct { } type AuthoritySort struct { - Id int `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT;comment:ID" json:"id"` - ParentId int `gorm:"column:parent_id;type:int(11);default:0;comment:父级菜单;NOT NULL" json:"parent_id"` - ServiceId int `gorm:"column:service_id;type:int(11);comment:项目ID;NOT NULL" json:"service_id"` - Sort uint8 `gorm:"column:sort;type:smallint(3);default:1;comment:排序" json:"sort"` - AdminId int `gorm:"column:admin_id;type:int(11);comment:操作人ID" json:"admin_id"` - AdminName string `gorm:"column:admin_name;type:varchar(255);comment:操作人员姓名" json:"admin_name"` - UpdateTime utils.CustomTime `gorm:"column:update_time;default:NULL;type:datetime" json:"update_time"` + Id int64 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT;comment:ID" json:"id"` + ParentId int64 `gorm:"column:parent_id;type:int(11);default:0;comment:父级菜单;NOT NULL" json:"parent_id"` + ServiceId int64 `gorm:"column:service_id;type:int(11);comment:项目ID;NOT NULL" json:"service_id"` + Sort uint8 `gorm:"column:sort;type:smallint(3);default:1;comment:排序" json:"sort"` + AdminId int64 `gorm:"column:admin_id;type:int(11);comment:操作人ID" json:"admin_id"` + AdminName string `gorm:"column:admin_name;type:varchar(255);comment:操作人员姓名" json:"admin_name"` } type AuthorityUpJsonIds struct { @@ -152,7 +145,7 @@ type AuthorityUpJsonIds struct { } type AuthorityGetJsonIds struct { - Id int `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT;comment:ID" json:"id"` + Id int64 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT;comment:ID" json:"id"` JsonDataBase string `gorm:"column:json_data_base;type:text;comment:原始数据" json:"json_data_base"` JsonData string `gorm:"column:json_data;type:text;comment:所有的数据" json:"json_data"` JsonTreeData string `gorm:"column:json_tree_data;type:text;comment:数据的树型结构" json:"json_tree_data"` diff --git a/admin/internal/logic/admininfologic.go b/admin/internal/logic/admininfologic.go index a61925d..2335617 100644 --- a/admin/internal/logic/admininfologic.go +++ b/admin/internal/logic/admininfologic.go @@ -42,7 +42,7 @@ func (l *AdminInfoLogic) AdminInfo(in *admin.AdminInfoRequest) (*admin.Response, w := modelbase.Params{Eq: map[string]string{"id": strconv.Itoa(int(in.Id))}} err := modelObj.GetOne(w, &info) if err != nil { - + return l.fail(utils.ErrorNotFund), nil } if info.Id > utils.NumberZero { mobile, dErr := utils.DecryptPhone(info.Phone) diff --git a/admin/internal/logic/adminloginlogic.go b/admin/internal/logic/adminloginlogic.go index f3262ab..687e24e 100644 --- a/admin/internal/logic/adminloginlogic.go +++ b/admin/internal/logic/adminloginlogic.go @@ -96,7 +96,7 @@ func (l *AdminLoginLogic) setLogin(token, refresh string, data dao.JwtInfo) { redis.Client.Set(ctx, redisKey, userStr, expire).Result() //获取原来的token与refresh - redisKeysKey := utils.GetLoginKeysKey(utils.LoginTypeAdmin, strconv.FormatInt(data.Id, 10)) + redisKeysKey := utils.GetLoginKeysKey(utils.LoginTypeAdmin, strconv.FormatInt(data.Id, utils.NumberTen)) var LoginInfo utils.LoginRedis oldAuth, oldErr := redis.Client.Get(ctx, redisKeysKey).Result() //如果获取到了数据情况之前的 @@ -117,6 +117,6 @@ func (l *AdminLoginLogic) setLogin(token, refresh string, data dao.JwtInfo) { redis.Client.Set(ctx, redisKeysKey, newStr, refreshExpire).Result() //登录刷新信息写入redis refreshKey := utils.GetLoginRefreshKey(utils.LoginTypeAdmin, refresh) - redis.Client.Set(ctx, refreshKey, strconv.FormatInt(data.Id, 10), refreshExpire).Result() + redis.Client.Set(ctx, refreshKey, strconv.FormatInt(data.Id, utils.NumberTen), refreshExpire).Result() } diff --git a/admin/internal/logic/authorityinfologic.go b/admin/internal/logic/authorityinfologic.go new file mode 100644 index 0000000..0d4aef7 --- /dev/null +++ b/admin/internal/logic/authorityinfologic.go @@ -0,0 +1,66 @@ +package logic + +import ( + "admin/internal/dao" + "admin/internal/model" + "admin/validator" + "context" + "strconv" + + "admin/admin" + "admin/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" + "pkg.local/modelbase" + "pkg.local/utils" +) + +type AuthorityInfoLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewAuthorityInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AuthorityInfoLogic { + return &AuthorityInfoLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *AuthorityInfoLogic) AuthorityInfo(in *admin.InfoRequest) (*admin.Response, error) { + var v validator.AuthorityInfoValidator + if fail := l.checkParams(in, &v); fail != nil { + return fail, nil + } + info := dao.AuthorityInfo{} + modelObj := model.AuthorityModel{}.Init() + w := modelbase.Params{Eq: map[string]string{"id": strconv.FormatInt(in.Id, utils.NumberTen)}} + err := modelObj.GetOne(w, &info) + if err != nil { + return l.fail(utils.ErrorNotFund), nil + } + new := dao.AuthorityInfoNew{ + AuthorityInfo: info, + } + if info.Type == dao.TypeData { + var items []dao.AuthorityGetJsonIds + w = modelbase.Params{Other: map[string]string{"FIND_IN_SET(?, data_ids)": strconv.FormatInt(info.Id, utils.NumberTen)}} + err = modelObj.Items(w, &items) + + if len(items) == utils.NumberThree { + w = modelbase.Params{Eq: map[string]string{"id": strconv.FormatInt(items[utils.NumberZero].Id, utils.NumberTen)}} + err = modelObj.GetOne(w, &info) + new = dao.AuthorityInfoNew{ + AuthorityInfo: info, + } + new.JsonDataAll = items[utils.NumberZero].JsonTreeData + new.JsonDataDepartment = items[utils.NumberOne].JsonTreeData + new.JsonDataOneself = items[utils.NumberTwo].JsonTreeData + } + } + + return l.ok(new), nil +} diff --git a/admin/internal/logic/authorityitemslogic.go b/admin/internal/logic/authorityitemslogic.go new file mode 100644 index 0000000..56d2eca --- /dev/null +++ b/admin/internal/logic/authorityitemslogic.go @@ -0,0 +1,108 @@ +package logic + +import ( + "admin/internal/dao" + "admin/internal/model" + "admin/validator" + "context" + "strconv" + + "admin/admin" + "admin/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" + "pkg.local/modelbase" + "pkg.local/utils" +) + +type AuthorityItemsLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewAuthorityItemsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AuthorityItemsLogic { + return &AuthorityItemsLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *AuthorityItemsLogic) AuthorityItems(in *admin.AuthorityItemsRequest) (*admin.Response, error) { + var v validator.AuthorityItemsValidator + if fail := l.checkParams(in, &v); fail != nil { + return fail, nil + } + modelObj := model.AuthorityModel{}.Init() + w := modelbase.Params{ + Order: "level ASC, parent_id ASC, sort ASC", + Eq: map[string]string{"service_id": strconv.FormatInt(in.ServiceId, utils.NumberTen)}, + } + + var data []dao.Authority + err := modelObj.Items(w, &data) + if err != nil { + l.Logger.Error(err) + return l.fail(utils.ErrorNoLoginInfo), nil + } + + items := l.getList(data, utils.NumberZero) + l.processTreeNodes(items, utils.NumberOne) + + return l.ok(items), nil +} + +func (l *AuthorityItemsLogic) processTreeNodes(nodes []*dao.AuthorityItems, level int) { + // processTreeNodes 递归处理节点,添加IsFirst、IsLast和Level标识 + if len(nodes) == utils.NumberZero { + return + } + + // 遍历当前层级的所有节点 + for i, node := range nodes { + // 设置是否为第一个和最后一个节点 + node.IsFirst = i == utils.NumberZero + node.IsLast = i == len(nodes)-utils.NumberOne + + // 递归处理子节点,层级+1 + if len(node.Children) > utils.NumberZero { + l.processTreeNodes(node.Children, level+utils.NumberOne) + } + } +} + +// 获取层级的下接数据 列表使用 +func (l *AuthorityItemsLogic) getList(data []dao.Authority, pid int64) []*dao.AuthorityItems { + var dataArr []*dao.AuthorityItems + for _, v := range data { + if v.ParentId == pid { + // 这里可以理解为每次都从最原始的数据里面找出相对就的ID进行匹配,直到找不到就返回 + children := l.getList(data, v.Id) + node := dao.AuthorityItems{ + Id: v.Id, + Name: v.Name, + Sort: v.Sort, + ParentId: v.ParentId, + ParentIds: v.ParentIds, + Description: v.Description, + Status: v.Status, + Level: v.Level, + Children: children, + Api: v.Api, + Path: v.Path, + ViewPath: v.ViewPath, + Identification: v.Identification, + Type: v.Type, + IsShow: v.IsShow, + Icon: v.Icon, + Reason: v.Reason, + AdminName: v.AdminName, + AdminId: v.AdminId, + } + dataArr = append(dataArr, &node) + } + } + return dataArr +} diff --git a/admin/internal/server/adminserver.go b/admin/internal/server/adminserver.go index 9d5837e..112c231 100644 --- a/admin/internal/server/adminserver.go +++ b/admin/internal/server/adminserver.go @@ -92,3 +92,33 @@ func (s *AdminServer) ServiceNames(ctx context.Context, in *admin.ServiceNameReq l := logic.NewServiceNamesLogic(ctx, s.svcCtx) return l.ServiceNames(in) } + +func (s *AdminServer) AuthorityInfo(ctx context.Context, in *admin.InfoRequest) (*admin.Response, error) { + l := logic.NewAuthorityInfoLogic(ctx, s.svcCtx) + return l.AuthorityInfo(in) +} + +func (s *AdminServer) AuthorityEdit(ctx context.Context, in *admin.AuthorityEditRequest) (*admin.Response, error) { + l := logic.NewAuthorityEditLogic(ctx, s.svcCtx) + return l.AuthorityEdit(in) +} + +func (s *AdminServer) AuthorityItems(ctx context.Context, in *admin.AuthorityItemsRequest) (*admin.Response, error) { + l := logic.NewAuthorityItemsLogic(ctx, s.svcCtx) + return l.AuthorityItems(in) +} + +func (s *AdminServer) AuthorityStatus(ctx context.Context, in *admin.StatusRequest) (*admin.Response, error) { + l := logic.NewAuthorityStatusLogic(ctx, s.svcCtx) + return l.AuthorityStatus(in) +} + +func (s *AdminServer) AuthorityNames(ctx context.Context, in *admin.AuthorityNameRequest) (*admin.Response, error) { + l := logic.NewAuthorityNamesLogic(ctx, s.svcCtx) + return l.AuthorityNames(in) +} + +func (s *AdminServer) AuthoritySort(ctx context.Context, in *admin.AuthoritySortRequest) (*admin.Response, error) { + l := logic.NewAuthoritySortLogic(ctx, s.svcCtx) + return l.AuthoritySort(in) +} diff --git a/admin/proto/admin.proto b/admin/proto/admin.proto index 297620f..b118ff6 100644 --- a/admin/proto/admin.proto +++ b/admin/proto/admin.proto @@ -77,6 +77,43 @@ message ServiceNameRequest { string name = 1; } +message AuthoritySortRequest { + int64 id = 1; + int32 type = 2; +} + +message AuthorityNameRequest { + int64 service_id = 1; + int32 type = 2; +} + +message AuthorityItemsRequest { + int64 service_id = 1; +} + +message AuthorityEditRequest { + int64 id = 1; + string name = 2; + int64 parent_id = 3; + int32 type = 4; + int64 service_id = 5; + string path = 6; + string api = 7; + string view_path = 8; + string identification = 9; + string icon = 10; + int32 is_show = 11; + string description = 12; + string data_base_str = 13; + string data_all = 14; + string data_department = 15; + string data_oneself = 16; + string data_tree_all = 17; + string data_tree_department = 18; + string data_tree_oneself = 19; +} + + service Admin { rpc AdminEdit(AdminEditRequest) returns(Response){ option (google.api.http) = { @@ -134,7 +171,7 @@ service Admin { }; rpc ServiceInfo(InfoRequest) returns(Response){ option (google.api.http) = { - post: "/admin/v3/service/info" + get: "/admin/v3/service/info" body: "*" }; }; @@ -146,7 +183,7 @@ service Admin { }; rpc ServiceItems(ServiceItemsRequest) returns(Response){ option (google.api.http) = { - post: "/admin/v3/service/items" + get: "/admin/v3/service/items" body: "*" }; }; @@ -158,7 +195,43 @@ service Admin { }; rpc ServiceNames(ServiceNameRequest) returns(Response){ option (google.api.http) = { - post: "/admin/v3/service/names" + get: "/admin/v3/service/names" + body: "*" + }; + }; + rpc AuthorityInfo(InfoRequest) returns(Response){ + option (google.api.http) = { + get: "/admin/v3/authority/info" + body: "*" + }; + }; + rpc AuthorityEdit(AuthorityEditRequest) returns(Response){ + option (google.api.http) = { + post: "/admin/v3/authority/edit" + body: "*" + }; + }; + rpc AuthorityItems(AuthorityItemsRequest) returns(Response){ + option (google.api.http) = { + get: "/admin/v3/authority/items" + body: "*" + }; + }; + rpc authorityStatus(StatusRequest) returns(Response){ + option (google.api.http) = { + post: "/admin/v3/authority/status" + body: "*" + }; + }; + rpc AuthorityNames(AuthorityNameRequest) returns(Response){ + option (google.api.http) = { + get: "/admin/v3/authority/names" + body: "*" + }; + }; + rpc AuthoritySort(AuthoritySortRequest) returns(Response){ + option (google.api.http) = { + post: "/admin/v3/authority/sort" body: "*" }; }; diff --git a/admin/validator/authority.go b/admin/validator/authority.go new file mode 100644 index 0000000..494f617 --- /dev/null +++ b/admin/validator/authority.go @@ -0,0 +1,109 @@ +package validator + +import ( + "pkg.local/validate" +) + +// AuthorityEditValidator 创建/编辑 +type AuthorityEditValidator struct { + Name string `validate:"required"` + Type int32 `validate:"required,oneof=1 2 3 4 5"` + ServiceId int64 `validate:"required"` + Identification string `validate:"required"` + IsShow int32 `validate:"required,oneof=1 2"` + Id int64 + ParentId int64 + Path string + Api string + ViewPath string + Icon string + Description string + DataBaseStr string + DataAll string + DataDepartment string + DataOneself string + DataTreeAll string + DataTreeDepartment string + DataTreeOneself string +} + +// GetMessage 创建/编辑 - 提示消息 +func (p AuthorityEditValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "Name.required": "名称不能为空", + "Type.required": "类型不能为空", + "ServiceId.required": "服务Id不能为空", + "Identification.required": "权限标识不能为空", + "IsShow.required": "是否显示不能为空", + "Type.oneof": "类型传值不对", + "IsShow.oneof": "显示传值不对", + } +} + +// AuthorityInfoValidator 查看信息 +type AuthorityInfoValidator struct { + Id int64 `validate:"required"` +} + +// GetMessage 查看信息 - 提示消息 +func (p AuthorityInfoValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "Id.required": "ID不能为空", + } +} + +// AuthorityItemsValidator 查看列表 +type AuthorityItemsValidator struct { + ServiceId int64 `validate:"required"` +} + +// GetMessage 查看列表 - 提示消息 +func (p AuthorityItemsValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "ServiceId.required": "服务ID不能为空", + } +} + +// AuthorityStatusValidator 修改状态 +type AuthorityStatusValidator struct { + Id int64 `validate:"required"` + Status int32 `validate:"required,oneof=1 2"` + Reason string `validate:"required_if=Status 2"` +} + +// GetMessage 修改状态 - 提示消息 +func (p AuthorityStatusValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "Id.required": "ID不能为空", + "Status.required": "状态不能为空", + "Status.oneof": "状态传值不对", + "Reason.required_if": "理由不能为空", + } +} + +// AuthorityNameItemsValidator 名称列表 +type AuthorityNameItemsValidator struct { + ServiceId int64 `validate:"required"` + Type int32 +} + +// GetMessage 修改状态 - 提示消息 +func (p AuthorityNameItemsValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "ServiceId.required": "服务ID不能为空", + } +} + +type AuthoritySortValidator struct { + Id int64 `validate:"required"` + Type int32 `validate:"required,oneof=1 2"` +} + +// GetMessage 修改排序 - 提示消息 +func (p AuthoritySortValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "Id.required": "ID不能为空", + "Type.required": "类型不能为空", + "Type.oneof": "类型传值错误", + } +} diff --git a/bff/etc/admin.pb b/bff/etc/admin.pb index 72cfdd1..1998b33 100644 Binary files a/bff/etc/admin.pb and b/bff/etc/admin.pb differ diff --git a/pkg/utils/config.go b/pkg/utils/config.go index 4787273..6a67df0 100644 --- a/pkg/utils/config.go +++ b/pkg/utils/config.go @@ -39,7 +39,11 @@ func GetConfigInt(key string) int { return data[key] } func GetConfigInt64(key string) int64 { return runViper.GetInt64(key) } -func GetConfigBool(key string) bool { return runViper.GetBool(key) } +func GetConfigBool(key string) bool { + data := make(map[string]bool) + data["mysql.debug"] = true + return runViper.GetBool(key) +} func InitConfig() { loadOnce.Do(func() { diff --git a/pkg/utils/status.go b/pkg/utils/status.go index 82e8fa9..9404682 100644 --- a/pkg/utils/status.go +++ b/pkg/utils/status.go @@ -44,6 +44,7 @@ const ( DecollatorEqual = "=" StringEmpty = "" StringDot = "." + StringZero = "0" StringStatusOk = "1" StringStatusNo = "2" ) @@ -65,6 +66,7 @@ var ( Ok = Status{Code: 10000, Msg: "OK"} Fail = Status{Code: 999, Msg: "fail"} ErrorParams = Status{Code: 10001, Msg: "缺少参数或传值不对"} + ErrorMissingParams = Status{Code: 10001, Msg: "缺少参数"} ErrorEncryptAesError = Status{Code: 10001, Msg: "加密失败"} ErrorNotFund = Status{Code: 11001, Msg: "not fund"} ErrorExistUser = Status{Code: 10009, Msg: "账号或手机号已存在"} @@ -72,6 +74,8 @@ var ( ErrorNoLogin = Status{Code: 10003, Msg: "没有登录"} ErrorAuthority = Status{Code: 10008, Msg: "没有权限"} ErrorNoLoginInfo = Status{Code: 10003, Msg: "没有获取到登录信息"} + ErrorAuthorityChange = Status{Code: 10003, Msg: "该权限下有其它权限"} + ErrorJsonDataError = Status{Code: 11008, Msg: "json数据错误"} // 基础类 ErrorExist = NewError(998, "已存在") @@ -107,8 +111,9 @@ var ( ErrorBindOtherError = NewError(11013, "该设备已绑定其它用户,请不要重复绑定") ) -func SetError(error Error, msg string) Error { - return NewError(error.GetCode(), msg) +func SetError(error Status, msg string) Status { + error.Msg = msg + return error } func GetLoginKey(Type, key string) string { return fmt.Sprintf(Login, Type) + key