1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wangwei123-gotools

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 6.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 08:48 cdcf543

Gotools

Gotools — это инструмент для создания гибких каркасов ролей, разрешений и систем управления пользователями.

Возможности gotools:

  • Gotools позволяет создавать готовые к использованию исходные коды программ одним нажатием кнопки.
  • Инструмент генерирует базовый код для операций добавления, изменения, удаления и поиска данных как на клиентской части (Vue, ElementUI, vue-element-admin), так и на серверной (gin, xormplus, casbin, gf, jwt).

Многоуровневая архитектура разрешений

Например, структура системы может быть следующей: платформа — банк — сервис-провайдер — продавец. Эти четыре уровня можно назвать типами организаций.

Допустим, в системе есть 10 банков, каждый из которых имеет 20 сервис-провайдеров, а каждый сервис-провайдер имеет 30 продавцов. При этом у каждого банка, сервис-провайдера и продавца должны быть свои роли, разрешения и система управления пользователями.

Использование gotools для управления разрешениями на разных уровнях организации:

  1. Клонируйте репозиторий gotools с GitHub: git clone https://github.com/gopark001/gotools.
  2. Перейдите в папку configs.
  3. Измените файл mysql.toml, указав информацию о вашей базе данных. Имя базы данных можно выбрать произвольно.
  4. Измените файл casbin.toml, также указав информацию о базе данных, но имя базы должно быть casbin.
  5. Измените содержимое файла org_type.json. В этом файле хранится информация об организациях и их иерархических связях. Пример содержимого файла:
[
  { "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" }
]
  1. Измените файл org.json, где хранится информация о полях базы данных для каждой организации. Пример содержимого файла:
// "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"
  }
}
  1. Создайте новый проект с помощью команды:
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
  1. Просмотрите и запустите сгенерированный код:
// 启动生成的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
  1. Инициализируйте суперпользователя с паролем «super_admin/111111».

Как автоматически создать базовый код для добавления, изменения и удаления данных:

  1. Сначала настройте структуру базы данных в файле configs/new_gen_module.json. Например:
{
  "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": "班级"
  }
}
  1. Затем выполните команду:
// MacOS
./gotools -newModule -projectName hello

// Windows
./gotools.exe -newModule -projectName hello
  1. В папке output будет создана папка gencodes с подпапками gocode и vuecode.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wangwei123-gotools.git
git@api.gitlife.ru:oschina-mirror/wangwei123-gotools.git
oschina-mirror
wangwei123-gotools
wangwei123-gotools
master