- 基于
iris-go
框架开发,gorm
数据库模块 ,jwt
的单点登陆认证方式,cors
跨域认证 - 数据支持
mysql
,sqlite3
配置;sqlite3
需要下载gcc
gcc 下载地址 - 使用了 https://github.com/snowlyg/gotransformer 转换数据,返回数据格式化,excel 导入数据转换,xml 文件生产数据转换等
- 租户端前端采用了
element-ui
框架,代码集成到front
目录 - 使用
casbin
做权限控制,./backendconfig/rbac_model.conf
为相关配置。系统会根据路由名称生成对应路由权限,并配置到管理员角色。 - 增加系统日志记录
./backend/logs
文件夹下,自定义记录,控制器内ctx.Application().Logger().Infof("%s 登录系统",aul.Username)
- 默认数据库设置为
DriverType = "Sqlite"
,使用 mysql 需要修改为DriverType = "Mysql"
,在./backendconfig/conf.tml
文件中 permissions.xlsx
权限导入测试模板文件,仅供测试使用; 权限会自动生成,无需另外导入。- 增加 SaaS 多商户模块支持(功能开发中)
- 定时任务功能增加,目录位于 /tasks ,直接使用的 beego 的 toolbox 功能。
注意:
- 更新代码后,如果启动报错,请尝试手动删所有数据表后重启。
- backend 后台项目目录,项目启动目录
- config 项目配置目录
- controllers 控制器目录
- database 数据处理相关目录
- models 数据模型目录
- repositories
- services
- files 文件处理目录
- libs 公用函数目录
- logs 日志记录目录
- middleware 中间件目录
- redis redis目录(用于session)
- resources 前端文件目录
- admin 管理端前端代码目录
- apiDoc 租户端接口文档目录
- app 租户端前端代码目录(front 目录打包生成)
- doc 管理端前端源代码文档目录
- shared 管理端前端模板文件目录
- routepath api路径获取目录
- routes 路由相关目录
- session session相关目录
- tasks 定时任务目录
- tmp sqlite文件目录
- transformer 数据格式化目录
- validates 表单数据验证目录
- front 租户端前端代码目录,采用了
element-ui
框架
拉取项目
git clone https://github.com/snowlyg/GoTenancy.git
// github 克隆太慢可以用 gitee 地址:
git clone https://gitee.com/dtouyu/GoTenancy.git
加载依赖管理包 (解决国内下载依赖太慢问题) golang 1.13 可以直接执行:
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
项目配置文件 /backend/config/conf.tml
cp backend/conf.tml.example backend/conf.tml
打包租户端前端代码
cd front // 进入前端代码目录
npm install //加载依赖
npm run-script build //打包前端代码
// 如果是开发前端代码,使用热加载
npm run dev
增加 hosts
127.0.0.1 admin.irisadminapi.com # 管理端
127.0.0.1 app.irisadminapi.com # 商户端
127.0.0.1 irisadminapi.com #公共域名
运行项目
go get github.com/silenceper/gowatch
cd backend // 后端代码目录
gowatch //安装 gowatch 后才可以使用
go run main.go // go 命令
http test
go test -v //所有测试
go test -run TestUserCreate -v //单个方法
// go get github.com/rakyll/gotest@latest 增加测试输出数据颜色
gotest
自动生成文档 (访问过接口就会自动成功) 因为原生的 jquery.min.js 里面的 cdn 是使用国外的,访问很慢。 有条件的可以开个 vpn ,如果没有可以根据下面的方法修改一下,访问就很快了
打开 /resource/apiDoc/index.html 修改里面的
https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js
国内的 cdn
https://cdn.bootcss.com/jquery/2.1.3/jquery.min.js
访问文档,从浏览器直接打开 http://admin.irisadminapi.com/apiDoc
管理端: http://admin.irisadminapi.com 商户端: http://app.irisadminapi.com
//在 config/conf.tml
内配置
项目管理员账号 : username 项目管理员密码 : password