默认情况下是直接继承platform
, 拥有所有路由以及平台实现的特性
INFO[14/07 11:29:18] GET /static/*filepath
INFO[14/07 11:29:18] HEAD /static/*filepath
INFO[14/07 11:29:18] POST /api/sys/app/fun/add
INFO[14/07 11:29:18] POST /api/sys/app/fun/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/app/fun/del
INFO[14/07 11:29:18] DELETE /api/sys/app/fun/batch_del
INFO[14/07 11:29:18] PUT /api/sys/app/fun/update
INFO[14/07 11:29:18] PUT /api/sys/app/fun/batch_update
INFO[14/07 11:29:18] GET /api/sys/app/fun/page
INFO[14/07 11:29:18] GET /api/sys/app/fun/tree
INFO[14/07 11:29:18] GET /api/sys/app/fun/get
INFO[14/07 11:29:18] POST /api/sys/area/add
INFO[14/07 11:29:18] POST /api/sys/area/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/area/del
INFO[14/07 11:29:18] DELETE /api/sys/area/batch_del
INFO[14/07 11:29:18] PUT /api/sys/area/update
INFO[14/07 11:29:18] PUT /api/sys/area/batch_update
INFO[14/07 11:29:18] GET /api/sys/area/page
INFO[14/07 11:29:18] GET /api/sys/area/get
INFO[14/07 11:29:18] POST /api/sys/attachment/add
INFO[14/07 11:29:18] POST /api/sys/attachment/batch_add
INFO[14/07 11:29:18] POST /api/sys/attachment/upload
INFO[14/07 11:29:18] GET /api/sys/attachment/export
INFO[14/07 11:29:18] DELETE /api/sys/attachment/del
INFO[14/07 11:29:18] POST /api/sys/attachment/batch_del
INFO[14/07 11:29:18] PUT /api/sys/attachment/update
INFO[14/07 11:29:18] POST /api/sys/attachment/batch_update
INFO[14/07 11:29:18] GET /api/sys/attachment/page
INFO[14/07 11:29:18] GET /api/sys/attachment/get
INFO[14/07 11:29:18] POST /api/sys/cas/login
INFO[14/07 11:29:18] GET /api/sys/cas/logout
INFO[14/07 11:29:18] POST /api/sys/cas/affirm
INFO[14/07 11:29:18] GET /api/sys/cas/authorize
INFO[14/07 11:29:18] POST /api/sys/cas/token
INFO[14/07 11:29:18] GET /api/sys/cas/url
INFO[14/07 11:29:18] GET /api/sys/cas/oauth2
INFO[14/07 11:29:18] GET /api/sys/cas/refresh
INFO[14/07 11:29:18] GET /api/sys/cas/check
INFO[14/07 11:29:18] GET /api/sys/cas/profile
INFO[14/07 11:29:18] GET /api/sys/cas/qrcode
INFO[14/07 11:29:18] POST /api/sys/client/add
INFO[14/07 11:29:18] POST /api/sys/client/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/client/del
INFO[14/07 11:29:18] DELETE /api/sys/client/batch_del
INFO[14/07 11:29:18] PUT /api/sys/client/update
INFO[14/07 11:29:18] PUT /api/sys/client/batch_update
INFO[14/07 11:29:18] GET /api/sys/client/page
INFO[14/07 11:29:18] GET /api/sys/client/get
INFO[14/07 11:29:18] POST /api/sys/comment/add
INFO[14/07 11:29:18] POST /api/sys/comment/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/comment/del
INFO[14/07 11:29:18] DELETE /api/sys/comment/batch_del
INFO[14/07 11:29:18] PUT /api/sys/comment/update
INFO[14/07 11:29:18] PUT /api/sys/comment/batch_update
INFO[14/07 11:29:18] GET /api/sys/comment/page
INFO[14/07 11:29:18] GET /api/sys/comment/get
INFO[14/07 11:29:18] POST /api/sys/data/permission/add
INFO[14/07 11:29:18] POST /api/sys/data/permission/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/data/permission/del
INFO[14/07 11:29:18] DELETE /api/sys/data/permission/batch_del
INFO[14/07 11:29:18] PUT /api/sys/data/permission/update
INFO[14/07 11:29:18] PUT /api/sys/data/permission/batch_update
INFO[14/07 11:29:18] GET /api/sys/data/permission/page
INFO[14/07 11:29:18] GET /api/sys/data/permission/get
INFO[14/07 11:29:18] GET /debug/pprof/
INFO[14/07 11:29:18] GET /debug/pprof/heap
INFO[14/07 11:29:18] GET /debug/pprof/goroutine
INFO[14/07 11:29:18] GET /debug/pprof/allocs
INFO[14/07 11:29:18] GET /debug/pprof/block
INFO[14/07 11:29:18] GET /debug/pprof/threadcreate
INFO[14/07 11:29:18] GET /debug/pprof/cmdline
INFO[14/07 11:29:18] GET /debug/pprof/profile
INFO[14/07 11:29:18] GET /debug/pprof/symbol
INFO[14/07 11:29:18] POST /debug/pprof/symbol
INFO[14/07 11:29:18] GET /debug/pprof/trace
INFO[14/07 11:29:18] GET /debug/pprof/mutex
INFO[14/07 11:29:18] GET /api/sys/dingtalk/oauth2
INFO[14/07 11:29:18] POST /api/sys/domain/add
INFO[14/07 11:29:18] POST /api/sys/domain/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/domain/del
INFO[14/07 11:29:18] DELETE /api/sys/domain/batch_del
INFO[14/07 11:29:18] PUT /api/sys/domain/update
INFO[14/07 11:29:18] PUT /api/sys/domain/batch_update
INFO[14/07 11:29:18] GET /api/sys/domain/page
INFO[14/07 11:29:18] GET /api/sys/domain/get
INFO[14/07 11:29:18] POST /api/sys/menu/add
INFO[14/07 11:29:18] POST /api/sys/menu/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/menu/del
INFO[14/07 11:29:18] DELETE /api/sys/menu/batch_del
INFO[14/07 11:29:18] PUT /api/sys/menu/update
INFO[14/07 11:29:18] PUT /api/sys/menu/batch_update
INFO[14/07 11:29:18] GET /api/sys/menu/sidebar
INFO[14/07 11:29:18] GET /api/sys/menu/page
INFO[14/07 11:29:18] GET /api/sys/menu/tree
INFO[14/07 11:29:18] GET /api/sys/menu/get
INFO[14/07 11:29:18] POST /api/sys/notification/add
INFO[14/07 11:29:18] POST /api/sys/notification/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/notification/del
INFO[14/07 11:29:18] DELETE /api/sys/notification/batch_del
INFO[14/07 11:29:18] PUT /api/sys/notification/update
INFO[14/07 11:29:18] PUT /api/sys/notification/batch_update
INFO[14/07 11:29:18] GET /api/sys/notification/page
INFO[14/07 11:29:18] GET /api/sys/notification/get
INFO[14/07 11:29:18] POST /api/sys/optionset/add
INFO[14/07 11:29:18] POST /api/sys/optionset/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/optionset/del
INFO[14/07 11:29:18] DELETE /api/sys/optionset/batch_del
INFO[14/07 11:29:18] PUT /api/sys/optionset/update
INFO[14/07 11:29:18] PUT /api/sys/optionset/batch_update
INFO[14/07 11:29:18] GET /api/sys/optionset/page
INFO[14/07 11:29:18] GET /api/sys/optionset/get
INFO[14/07 11:29:18] POST /api/sys/org/add
INFO[14/07 11:29:18] POST /api/sys/org/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/org/del
INFO[14/07 11:29:18] DELETE /api/sys/org/batch_del
INFO[14/07 11:29:18] PUT /api/sys/org/update
INFO[14/07 11:29:18] PUT /api/sys/org/batch_update
INFO[14/07 11:29:18] GET /api/sys/org/page
INFO[14/07 11:29:18] GET /api/sys/org/tree
INFO[14/07 11:29:18] GET /api/sys/org/get
INFO[14/07 11:29:18] POST /api/sys/permission/add
INFO[14/07 11:29:18] POST /api/sys/permission/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/permission/del
INFO[14/07 11:29:18] DELETE /api/sys/permission/batch_del
INFO[14/07 11:29:18] PUT /api/sys/permission/update
INFO[14/07 11:29:18] PUT /api/sys/permission/batch_update
INFO[14/07 11:29:18] GET /api/sys/permission/page
INFO[14/07 11:29:18] GET /api/sys/permission/get
INFO[14/07 11:29:18] POST /api/sys/role/add
INFO[14/07 11:29:18] POST /api/sys/role/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/role/del
INFO[14/07 11:29:18] DELETE /api/sys/role/batch_del
INFO[14/07 11:29:18] PUT /api/sys/role/update
INFO[14/07 11:29:18] POST /api/sys/role/batch_update
INFO[14/07 11:29:18] GET /api/sys/role/page
INFO[14/07 11:29:18] GET /api/sys/role/role_menu_tree
INFO[14/07 11:29:18] GET /api/sys/role/role_app_fun_tree
INFO[14/07 11:29:18] GET /api/sys/role/get
INFO[14/07 11:29:18] POST /api/sys/role/menu/add
INFO[14/07 11:29:18] POST /api/sys/role/menu/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/role/menu/del
INFO[14/07 11:29:18] DELETE /api/sys/role/menu/batch_del
INFO[14/07 11:29:18] PUT /api/sys/role/menu/update
INFO[14/07 11:29:18] PUT /api/sys/role/menu/batch_update
INFO[14/07 11:29:18] GET /api/sys/role/menu/page
INFO[14/07 11:29:18] GET /api/sys/role/menu/get
INFO[14/07 11:29:18] POST /api/sys/schedule/add
INFO[14/07 11:29:18] POST /api/sys/schedule/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/schedule/del
INFO[14/07 11:29:18] DELETE /api/sys/schedule/batch_del
INFO[14/07 11:29:18] PUT /api/sys/schedule/update
INFO[14/07 11:29:18] POST /api/sys/schedule/batch_update
INFO[14/07 11:29:18] GET /api/sys/schedule/page
INFO[14/07 11:29:18] GET /api/sys/schedule/get
INFO[14/07 11:29:18] GET /api/sys/schedule/history/page
INFO[14/07 11:29:18] POST /api/sys/scheduling/add
INFO[14/07 11:29:18] DELETE /api/sys/scheduling/del
INFO[14/07 11:29:18] PUT /api/sys/scheduling/update
INFO[14/07 11:29:18] GET /api/sys/scheduling/page
INFO[14/07 11:29:18] GET /api/sys/scheduling/get
INFO[14/07 11:29:18] POST /api/sys/setting/add
INFO[14/07 11:29:18] POST /api/sys/setting/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/setting/del
INFO[14/07 11:29:18] DELETE /api/sys/setting/batch_del
INFO[14/07 11:29:18] PUT /api/sys/setting/update
INFO[14/07 11:29:18] PUT /api/sys/setting/batch_update
INFO[14/07 11:29:18] GET /api/sys/setting/page
INFO[14/07 11:29:18] GET /api/sys/setting/get
INFO[14/07 11:29:18] POST /api/sys/table/add
INFO[14/07 11:29:18] POST /api/sys/table/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/table/del
INFO[14/07 11:29:18] DELETE /api/sys/table/batch_del
INFO[14/07 11:29:18] PUT /api/sys/table/update
INFO[14/07 11:29:18] PUT /api/sys/table/batch_update
INFO[14/07 11:29:18] GET /api/sys/table/page
INFO[14/07 11:29:18] GET /api/sys/table/get
INFO[14/07 11:29:18] POST /api/sys/table/column/add
INFO[14/07 11:29:18] POST /api/sys/table/column/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/table/column/del
INFO[14/07 11:29:18] DELETE /api/sys/table/column/batch_del
INFO[14/07 11:29:18] PUT /api/sys/table/column/update
INFO[14/07 11:29:18] PUT /api/sys/table/column/batch_update
INFO[14/07 11:29:18] GET /api/sys/table/column/page
INFO[14/07 11:29:18] GET /api/sys/table/column/get
INFO[14/07 11:29:18] POST /api/sys/tag/add
INFO[14/07 11:29:18] POST /api/sys/tag/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/tag/del
INFO[14/07 11:29:18] DELETE /api/sys/tag/batch_del
INFO[14/07 11:29:18] PUT /api/sys/tag/update
INFO[14/07 11:29:18] PUT /api/sys/tag/batch_update
INFO[14/07 11:29:18] GET /api/sys/tag/page
INFO[14/07 11:29:18] GET /api/sys/tag/get
INFO[14/07 11:29:18] POST /api/sys/tag/group/add
INFO[14/07 11:29:18] POST /api/sys/tag/group/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/tag/group/del
INFO[14/07 11:29:18] DELETE /api/sys/tag/group/batch_del
INFO[14/07 11:29:18] PUT /api/sys/tag/group/update
INFO[14/07 11:29:18] PUT /api/sys/tag/group/batch_update
INFO[14/07 11:29:18] GET /api/sys/tag/group/page
INFO[14/07 11:29:18] GET /api/sys/tag/group/get
INFO[14/07 11:29:18] GET /api/sys/tracker/page
INFO[14/07 11:29:18] GET /api/sys/tracker/get
INFO[14/07 11:29:18] POST /api/sys/user/add
INFO[14/07 11:29:18] POST /api/sys/user/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/user/del
INFO[14/07 11:29:18] DELETE /api/sys/user/batch_del
INFO[14/07 11:29:18] PUT /api/sys/user/update
INFO[14/07 11:29:18] PUT /api/sys/user/batch_update
INFO[14/07 11:29:18] GET /api/sys/user/page
INFO[14/07 11:29:18] GET /api/sys/user/get
INFO[14/07 11:29:18] POST /api/sys/user/login
INFO[14/07 11:29:18] GET /api/sys/user/logout
INFO[14/07 11:29:18] POST /api/sys/user/template/add
INFO[14/07 11:29:18] POST /api/sys/user/template/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/user/template/del
INFO[14/07 11:29:18] DELETE /api/sys/user/template/batch_del
INFO[14/07 11:29:18] PUT /api/sys/user/template/update
INFO[14/07 11:29:18] PUT /api/sys/user/template/batch_update
INFO[14/07 11:29:18] GET /api/sys/user/template/page
INFO[14/07 11:29:18] GET /api/sys/user/template/get
INFO[14/07 11:29:18] POST /api/sys/user/template/detail/add
INFO[14/07 11:29:18] POST /api/sys/user/template/detail/batch_add
INFO[14/07 11:29:18] DELETE /api/sys/user/template/detail/del
INFO[14/07 11:29:18] DELETE /api/sys/user/template/detail/batch_del
INFO[14/07 11:29:18] PUT /api/sys/user/template/detail/update
INFO[14/07 11:29:18] PUT /api/sys/user/template/detail/batch_update
INFO[14/07 11:29:18] GET /api/sys/user/template/detail/page
INFO[14/07 11:29:18] GET /api/sys/user/template/detail/get
INFO[14/07 11:29:18] GET /api/sys/wechat/oauth2
INFO[14/07 11:29:18] POST /api/sys/worker/add
INFO[14/07 11:29:18] GET /api/sys/worker/get
INFO[14/07 11:29:18] GET /domain.js
整个用户模块是直接分库处理的, 通过用户的domain属性使用不同的数据源,这样的优势是: 可以处理多租户,可以处理多应用用户统一管理,可以处理单点登陆。适合ERP内部系统的整合开发。
Domain, a model of multi-tenant support core. Application splitting is also supported.
<table name="sys_domain" packages="xx/null" bind="platform">
<column name="id" type="null.String" xorm="varchar(36) notnull unique pk" />
<column name="name" type="null.String" xorm="varchar(36) notnull" />
<column name="app_name" type="null.String" xorm="varchar(36) notnull" />
<column name="domain" type="null.String" xorm="varchar(36) notnull" />
<column name="full_name" type="null.String" xorm="varchar(36)" />
<column name="contact_name" type="null.String" xorm="varchar(36)" />
<column name="contact_email" type="null.String" xorm="varchar(50) " />
<column name="contact_mobile" type="null.String" xorm="varchar(50) " />
<column name="data_source" type="null.String" xorm="varchar(200) notnull" />
<column name="driver_name" type="null.String" xorm="varchar(50) notnull" />
<column name="login_url" type="null.String" xorm="varchar(200)" />
<column name="api_url" type="null.String" xorm="varchar(200)" />
<column name="static_url" type="null.String" xorm="varchar(200)" />
<column name="theme" type="null.String" xorm="varchar(50) " />
<column name="type" type="null.Int" xorm="notnull" />
<column name="status" type="null.Int" xorm="notnull" />
<column name="auth_mode" type="null.Int" xorm="notnull" />
<column name="is_sync" type="null.Int" xorm="notnull" />
<column name="creater" type="null.String" xorm="varchar(36) notnull" />
<column name="create_time" type="null.Time" xorm="datetime notnull" />
<column name="updater" type="null.String" xorm="varchar(36) notnull" />
<column name="update_time" type="null.Time" xorm="datetime notnull" />
<column name="is_delete" type="null.Int" xorm="notnull" />
<column name="remark" type="null.String" xorm="varchar(200)" />
</table>
app_name, desynchronize the model as a tag. if you connect same datasource url from localhost, and you would find all tables in
data_source
of same app_name datasource would be created
Identify different tenants, the logged in user will use the matching domain to find the DB
As shown in the code below
// Auth middles
func Auth(ctx *Context) {
if !ctx.Auth(ctx.Request) {
ctx.Fail(util.ErrInvalidAccessToken, 401)
ctx.Abort()
return
}
if ctx.DB = App.Manager.GetBusinessDB(ctx.MustToken().GetDomain()); ctx.DB == nil {
ctx.Fail(util.ErrInvalidDomain)
ctx.Abort()
return
}
ctx.Set("DB", ctx.DB)
ctx.Set("AuthProtocol", ctx.AuthProtocol)
ctx.Next()
}
if you want to get datasource of xxx
, you can do the following.
App.Manager.GetBusinessDB("xxx")