Gotools — это инструмент для создания гибких каркасов ролей, разрешений и систем управления пользователями.
Например, структура системы может быть следующей: платформа — банк — сервис-провайдер — продавец. Эти четыре уровня можно назвать типами организаций.
Допустим, в системе есть 10 банков, каждый из которых имеет 20 сервис-провайдеров, а каждый сервис-провайдер имеет 30 продавцов. При этом у каждого банка, сервис-провайдера и продавца должны быть свои роли, разрешения и система управления пользователями.
Использование gotools для управления разрешениями на разных уровнях организации:
[
{ "id":1, "parent_id":0, "name":"Платформа", "code":"platform" },
{ "id":2, "parent_id":1, "name":"Банк", "code":"bank" },
{ "id":3, "parent_id":2, "name":"Сервис-провайдер", "code":"service_provider" },
{ "id":4, "parent_id":3, "name":"Продавец", "code":"shop" }
]
// "code": "string,50,银行编码,1"
// code — название поля в базе данных; string — тип данных в языке программирования Go; 50 — длина поля; «银行编码» — описание поля; 1 — порядок поля.
{
"bank": {
"code": "string,50,银行编码,1",
"name": "string,80,银行名称,2",
"contact_name": "string,40,联系人,3",
"service_phone": "string,20,联系电话,4",
"org_type_id": "int64, 20,所属机构类型ID,5",
"org_type_name": "string,40,所属机构类型名称,6",
"account": "string,40,管理员账号,7"
},
"service_provider": {
"name": "string,80,服务商名称,1",
"contact_name": "string,40,联系人,2",
"service_phone": "string,20,联系电话,3",
"address": "string,80,联系地址,4",
"org_type_id": "int64, 20,所属机构类型ID,5",
"org_type_name": "string,40,所属机构类型名称,6",
"account": "string,40,管理员账号,7"
},
"shop": {
"name": "string,80,商家名称,1",
"contact_name": "string,40,联系人,2",
"service_phone": "string,20,服务电话,3",
"address": "string,80,商家地址,4",
"org_type_id": "int64, 20,所属机构类型ID,5",
"org_type_name": "string,40,所属机构类型名称,6",
"account": "string,40,管理员账号,7"
}
}
cd gotools/cmd
go build gotools.go
// MacOS/Linux
./gotools -newProject hello
// Windows windows系统下建议使用git bash命令行工具,下载地址:https://git-scm.com/download/win
./gotools.exe -newProject hello
// 启动生成的go程序
cd gotools/output
// 进入项目根目录
cd hello-go
// 下载依赖包
go mod tidy
// 运行
cd cmd && go run main.go
// 启动生成的前端Vue程序
cd gotools/output
cd hello-admin
npm install && npm run dev
{
"student": {
"code": "string,50,银行编码,1",
"name": "string,80,银行名称,2",
"contact_name": "string,40,联系人,3",
"service_phone": "string,20,联系电话,4",
"org_type_id": "int64, 20,所属机构类型ID,5",
"org_type_name": "string,40,所属机构类型名称,6",
"account": "string,40,管理员账号,7"
},
"teacher": {
"name": "string,80,服务商名称,1",
"contact_name": "string,40,联系人,2",
"service_phone": "string,20,联系电话,3",
"address": "string,80,联系地址,4",
"org_type_id": "int64, 20,所属机构类型ID,5",
"org_type_name": "string,40,所属机构类型名称,6",
"account": "string,40,管理员账号,7"
},
"class": {
"name": "string,80,商家名称,1",
"contact_name": "string,40,联系人,2",
"service_phone": "string,20,服务电话,3",
"address": "string,80,商家地址,4",
"org_type_id": "int64, 20,所属机构类型ID,5",
"org_type_name": "string,40,所属机构类型名称,6",
"account": "string,40,管理员账号,7"
},
"desc": {
"student": "学生",
"teacher": "老师",
"class": "班级"
}
}
// MacOS
./gotools -newModule -projectName hello
// Windows
./gotools.exe -newModule -projectName hello
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )