diff --git a/apps/develop/gen/gen.go b/apps/develop/gen/gen.go index 8125062..bf2548a 100644 --- a/apps/develop/gen/gen.go +++ b/apps/develop/gen/gen.go @@ -11,9 +11,8 @@ import ( sysEntity "pandax/apps/system/entity" sysServices "pandax/apps/system/services" "pandax/base/biz" - "pandax/base/config" - "pandax/base/global" "pandax/base/utils" + "pandax/pkg/global" "strconv" "strings" "sync" @@ -413,9 +412,9 @@ func GenCode(tableId int64) { kgo.KFile.Mkdir("./apps/"+tab.PackageName+"/entity/", os.ModePerm) kgo.KFile.Mkdir("./apps/"+tab.PackageName+"/router/", os.ModePerm) kgo.KFile.Mkdir("./apps/"+tab.PackageName+"/services/", os.ModePerm) - kgo.KFile.Mkdir(config.Conf.Gen.Frontpath+"/api/"+tab.PackageName+"/", os.ModePerm) - kgo.KFile.Mkdir(config.Conf.Gen.Frontpath+"/views/"+tab.PackageName+"/"+tab.BusinessName+"/", os.ModePerm) - kgo.KFile.Mkdir(config.Conf.Gen.Frontpath+"/views/"+tab.PackageName+"/"+tab.BusinessName+"/"+"component"+"/", os.ModePerm) + kgo.KFile.Mkdir(global.Conf.Gen.Frontpath+"/api/"+tab.PackageName+"/", os.ModePerm) + kgo.KFile.Mkdir(global.Conf.Gen.Frontpath+"/views/"+tab.PackageName+"/"+tab.BusinessName+"/", os.ModePerm) + kgo.KFile.Mkdir(global.Conf.Gen.Frontpath+"/views/"+tab.PackageName+"/"+tab.BusinessName+"/"+"component"+"/", os.ModePerm) var b1 bytes.Buffer err = t1.Execute(&b1, tab) @@ -436,9 +435,9 @@ func GenCode(tableId int64) { kgo.KFile.WriteFile("./apps/"+tab.PackageName+"/services/"+tab.TableName+".go", b2.Bytes()) kgo.KFile.WriteFile("./apps/"+tab.PackageName+"/api/"+tab.TableName+".go", b3.Bytes()) kgo.KFile.WriteFile("./apps/"+tab.PackageName+"/router/"+tab.TableName+".go", b4.Bytes()) - kgo.KFile.WriteFile(config.Conf.Gen.Frontpath+"/api/"+tab.PackageName+"/"+tab.BusinessName+".js", b5.Bytes()) - kgo.KFile.WriteFile(config.Conf.Gen.Frontpath+"/views/"+tab.PackageName+"/"+tab.BusinessName+"/index.vue", b6.Bytes()) - kgo.KFile.WriteFile(config.Conf.Gen.Frontpath+"/views/"+tab.PackageName+"/"+tab.BusinessName+"/"+"component"+"/editModule.vue", b7.Bytes()) + kgo.KFile.WriteFile(global.Conf.Gen.Frontpath+"/api/"+tab.PackageName+"/"+tab.BusinessName+".js", b5.Bytes()) + kgo.KFile.WriteFile(global.Conf.Gen.Frontpath+"/views/"+tab.PackageName+"/"+tab.BusinessName+"/index.vue", b6.Bytes()) + kgo.KFile.WriteFile(global.Conf.Gen.Frontpath+"/views/"+tab.PackageName+"/"+tab.BusinessName+"/"+"component"+"/editModule.vue", b7.Bytes()) } // GenConfigure 生成菜单,api diff --git a/apps/develop/services/gen_table.go b/apps/develop/services/gen_table.go index 987a609..e7155e5 100644 --- a/apps/develop/services/gen_table.go +++ b/apps/develop/services/gen_table.go @@ -4,9 +4,8 @@ import ( "errors" "pandax/apps/develop/entity" "pandax/base/biz" - "pandax/base/config" - "pandax/base/global" "pandax/base/utils" + "pandax/pkg/global" ) /** @@ -43,22 +42,22 @@ func (m *devGenTableModelImpl) FindDbTablesListPage(page, pageSize int, data ent pgdata := make([]map[string]any, 0) var total int64 = 0 offset := pageSize * (page - 1) - if config.Conf.Server.DbType != "mysql" && config.Conf.Server.DbType != "postgresql" { + if global.Conf.Server.DbType != "mysql" && global.Conf.Server.DbType != "postgresql" { biz.ErrIsNil(errors.New("只支持mysql和postgresql数据库"), "只支持mysql和postgresql数据库") } db := global.Db.Table("information_schema.tables") - if config.Conf.Server.DbType == "mysql" { - db = db.Where("table_schema= ? ", config.Conf.Gen.Dbname) + if global.Conf.Server.DbType == "mysql" { + db = db.Where("table_schema= ? ", global.Conf.Gen.Dbname) } - if config.Conf.Server.DbType == "postgresql" { + if global.Conf.Server.DbType == "postgresql" { db = db.Where("table_schema = ? ", "public") } db = db.Where("table_name NOT LIKE 'dev_%'") if data.TableName != "" { db = db.Where("table_name like ?", "%"+data.TableName+"%") } - if config.Conf.Server.DbType == "mysql" { + if global.Conf.Server.DbType == "mysql" { err := db.Limit(pageSize).Offset(offset).Find(&list).Offset(-1).Limit(-1).Count(&total).Error biz.ErrIsNil(err, "查询配置分页列表信息失败") return &list, total @@ -74,14 +73,14 @@ func (m *devGenTableModelImpl) FindDbTablesListPage(page, pageSize int, data ent func (m *devGenTableModelImpl) FindDbTableOne(tableName string) *entity.DBTables { resData := new(entity.DBTables) - if config.Conf.Server.DbType != "mysql" && config.Conf.Server.DbType != "postgresql" { + if global.Conf.Server.DbType != "mysql" && global.Conf.Server.DbType != "postgresql" { biz.ErrIsNil(errors.New("只支持mysql和postgresql数据库"), "只支持mysql和postgresql数据库") } db := global.Db.Table("information_schema.tables") - if config.Conf.Server.DbType != "mysql" { - db = db.Where("table_schema= ? ", config.Conf.Gen.Dbname) + if global.Conf.Server.DbType != "mysql" { + db = db.Where("table_schema= ? ", global.Conf.Gen.Dbname) } - if config.Conf.Server.DbType != "postgresql" { + if global.Conf.Server.DbType != "postgresql" { db = db.Where("table_schema= ? ", "public") } db = db.Where("table_name = ?", tableName) diff --git a/apps/develop/services/gen_table_column.go b/apps/develop/services/gen_table_column.go index 2f4cd8f..fef61bf 100644 --- a/apps/develop/services/gen_table_column.go +++ b/apps/develop/services/gen_table_column.go @@ -4,8 +4,7 @@ import ( "errors" "pandax/apps/develop/entity" "pandax/base/biz" - "pandax/base/config" - "pandax/base/global" + "pandax/pkg/global" ) /** @@ -38,14 +37,14 @@ func (m *devTableColumnModelImpl) FindDbTablesColumnListPage(page, pageSize int, list := make([]entity.DBColumns, 0) var total int64 = 0 offset := pageSize * (page - 1) - if config.Conf.Server.DbType != "mysql" && config.Conf.Server.DbType != "postgresql" { + if global.Conf.Server.DbType != "mysql" && global.Conf.Server.DbType != "postgresql" { biz.ErrIsNil(errors.New("只支持mysql和postgresql数据库"), "只支持mysql和postgresql数据库") } db := global.Db.Table("information_schema.COLUMNS") - if config.Conf.Server.DbType == "mysql" { - db = db.Where("table_schema= ? ", config.Conf.Gen.Dbname) + if global.Conf.Server.DbType == "mysql" { + db = db.Where("table_schema= ? ", global.Conf.Gen.Dbname) } - if config.Conf.Server.DbType == "postgresql" { + if global.Conf.Server.DbType == "postgresql" { db = db.Where("table_schema = ? ", "public") } @@ -61,14 +60,14 @@ func (m *devTableColumnModelImpl) FindDbTablesColumnListPage(page, pageSize int, func (m *devTableColumnModelImpl) FindDbTableColumnList(tableName string) *[]entity.DBColumns { resData := make([]entity.DBColumns, 0) - if config.Conf.Server.DbType != "mysql" && config.Conf.Server.DbType != "postgresql" { + if global.Conf.Server.DbType != "mysql" && global.Conf.Server.DbType != "postgresql" { biz.ErrIsNil(errors.New("只支持mysql和postgresql数据库"), "只支持mysql和postgresql数据库") } db := global.Db.Table("information_schema.columns") - if config.Conf.Server.DbType == "mysql" { - db = db.Where("table_schema= ? ", config.Conf.Gen.Dbname) + if global.Conf.Server.DbType == "mysql" { + db = db.Where("table_schema= ? ", global.Conf.Gen.Dbname) } - if config.Conf.Server.DbType == "postgresql" { + if global.Conf.Server.DbType == "postgresql" { db = db.Where("table_schema = ? ", "public") } biz.IsTrue(tableName != "", "table name cannot be empty!") diff --git a/apps/job/jobs/jobbase.go b/apps/job/jobs/jobbase.go index 0e03c4e..43d19e2 100644 --- a/apps/job/jobs/jobbase.go +++ b/apps/job/jobs/jobbase.go @@ -8,8 +8,8 @@ import ( logEntity "pandax/apps/log/entity" logServices "pandax/apps/log/services" - "pandax/base/global" "pandax/base/httpclient" + "pandax/pkg/global" "sync" "time" diff --git a/apps/job/services/job.go b/apps/job/services/job.go index 2c2ed30..d46adcf 100644 --- a/apps/job/services/job.go +++ b/apps/job/services/job.go @@ -3,7 +3,7 @@ package services import ( "pandax/apps/job/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/log/services/log_job.go b/apps/log/services/log_job.go index 1ce00d0..c28ec5c 100644 --- a/apps/log/services/log_job.go +++ b/apps/log/services/log_job.go @@ -3,7 +3,7 @@ package services import ( "pandax/apps/log/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/log/services/log_login.go b/apps/log/services/log_login.go index 25ff1f5..400fb39 100644 --- a/apps/log/services/log_login.go +++ b/apps/log/services/log_login.go @@ -3,7 +3,7 @@ package services import ( "pandax/apps/log/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/log/services/log_oper.go b/apps/log/services/log_oper.go index cc917ff..c0c37c1 100644 --- a/apps/log/services/log_oper.go +++ b/apps/log/services/log_oper.go @@ -3,7 +3,7 @@ package services import ( "pandax/apps/log/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/resource/services/email.go b/apps/resource/services/email.go index 16a2872..260ae15 100644 --- a/apps/resource/services/email.go +++ b/apps/resource/services/email.go @@ -3,7 +3,7 @@ package services import ( "pandax/apps/resource/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) /** diff --git a/apps/resource/services/oss.go b/apps/resource/services/oss.go index d7bc532..3dca64d 100644 --- a/apps/resource/services/oss.go +++ b/apps/resource/services/oss.go @@ -3,7 +3,7 @@ package services import ( "pandax/apps/resource/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) /** diff --git a/apps/system/api/api.go b/apps/system/api/api.go index 451e54f..10244ea 100644 --- a/apps/system/api/api.go +++ b/apps/system/api/api.go @@ -8,6 +8,7 @@ import ( "pandax/base/ctx" "pandax/base/ginx" "pandax/base/utils" + "strconv" ) type SystemApiApi struct { @@ -120,5 +121,6 @@ func (s *SystemApiApi) GetAllApis(rc *ctx.ReqCtx) { // @Router /casbin/getPolicyPathByRoleId [get] func (s *SystemApiApi) GetPolicyPathByRoleId(rc *ctx.ReqCtx) { roleKey := rc.GinCtx.Query("roleKey") - rc.ResData = casbin.GetPolicyPathByRoleId(roleKey) + tenantId := strconv.Itoa(int(rc.LoginAccount.TenantId)) + rc.ResData = casbin.GetPolicyPathByRoleId(tenantId, roleKey) } diff --git a/apps/system/api/dept.go b/apps/system/api/dept.go index d3c2eee..897fc84 100644 --- a/apps/system/api/dept.go +++ b/apps/system/api/dept.go @@ -8,8 +8,8 @@ import ( "pandax/base/biz" "pandax/base/ctx" "pandax/base/ginx" - "pandax/base/global" "pandax/base/utils" + "pandax/pkg/global" ) type DeptApi struct { diff --git a/apps/system/api/dict.go b/apps/system/api/dict.go index 90f965c..1fbc8a1 100644 --- a/apps/system/api/dict.go +++ b/apps/system/api/dict.go @@ -5,11 +5,10 @@ import ( entity "pandax/apps/system/entity" services "pandax/apps/system/services" "pandax/base/biz" - "pandax/base/config" "pandax/base/ctx" "pandax/base/ginx" - "pandax/base/global" "pandax/base/utils" + "pandax/pkg/global" ) type DictApi struct { @@ -132,7 +131,7 @@ func (p *DictApi) ExportDictType(rc *ctx.ReqCtx) { dictType := rc.GinCtx.Query("dictType") list := p.DictType.FindList(entity.SysDictType{Status: status, DictName: dictName, DictType: dictType}) - fileName := utils.GetFileName(config.Conf.Server.ExcelDir, filename) + fileName := utils.GetFileName(global.Conf.Server.ExcelDir, filename) utils.InterfaceToExcel(*list, fileName) rc.Download(fileName) } diff --git a/apps/system/api/post.go b/apps/system/api/post.go index 1450392..b969d5b 100644 --- a/apps/system/api/post.go +++ b/apps/system/api/post.go @@ -8,8 +8,8 @@ import ( "pandax/base/biz" "pandax/base/ctx" "pandax/base/ginx" - "pandax/base/global" "pandax/base/utils" + "pandax/pkg/global" ) type PostApi struct { diff --git a/apps/system/api/role.go b/apps/system/api/role.go index eb35b92..f09d779 100644 --- a/apps/system/api/role.go +++ b/apps/system/api/role.go @@ -7,11 +7,11 @@ import ( services "pandax/apps/system/services" "pandax/base/biz" "pandax/base/casbin" - "pandax/base/config" "pandax/base/ctx" "pandax/base/ginx" - "pandax/base/global" "pandax/base/utils" + "pandax/pkg/global" + "strconv" ) type RoleApi struct { @@ -79,11 +79,13 @@ func (r *RoleApi) InsertRole(rc *ctx.ReqCtx) { var role entity.SysRole ginx.BindJsonAndValid(rc.GinCtx, &role) role.CreateBy = rc.LoginAccount.UserName + role.TenantId = rc.LoginAccount.TenantId insert := r.RoleApp.Insert(role) role.RoleId = insert.RoleId r.RoleMenuApp.Insert(insert.RoleId, role.MenuIds) //添加权限 - casbin.UpdateCasbin(role.RoleKey, role.ApiIds) + tenantId := strconv.Itoa(int(rc.LoginAccount.TenantId)) + casbin.UpdateCasbin(tenantId, role.RoleKey, role.ApiIds) } // @Summary 修改用户角色 @@ -106,7 +108,8 @@ func (r *RoleApi) UpdateRole(rc *ctx.ReqCtx) { // 添加角色菜单绑定 r.RoleMenuApp.Insert(role.RoleId, role.MenuIds) //修改api权限 - casbin.UpdateCasbin(role.RoleKey, role.ApiIds) + tenantId := strconv.Itoa(int(rc.LoginAccount.TenantId)) + casbin.UpdateCasbin(tenantId, role.RoleKey, role.ApiIds) } // @Summary 修改用户角色状态 @@ -198,7 +201,7 @@ func (p *RoleApi) ExportRole(rc *ctx.ReqCtx) { roleKey := rc.GinCtx.Query("roleKey") list := p.RoleApp.FindList(entity.SysRole{Status: status, RoleName: roleName, RoleKey: roleKey}) - fileName := utils.GetFileName(config.Conf.Server.ExcelDir, filename) + fileName := utils.GetFileName(global.Conf.Server.ExcelDir, filename) utils.InterfaceToExcel(*list, fileName) rc.Download(fileName) } diff --git a/apps/system/api/tenant.go b/apps/system/api/tenant.go index bc8fc57..ae9cd77 100644 --- a/apps/system/api/tenant.go +++ b/apps/system/api/tenant.go @@ -22,7 +22,7 @@ type SysTenantsApi struct { // @Param pageSize query int false "页条数" // @Param pageNum query int false "页码" // @Success 200 {string} string "{"code": 200, "data": [...]}" -// @Router /admin/tenant/list [get] +// @Router /system/tenant/list [get] // @Security func (p *SysTenantsApi) GetSysTenantsList(rc *ctx.ReqCtx) { data := entity.SysTenants{} @@ -39,12 +39,28 @@ func (p *SysTenantsApi) GetSysTenantsList(rc *ctx.ReqCtx) { } } +// @Summary SysTenants列表数据 +// @Tags SysTenants +// @Success 200 {string} string "{"code": 200, "data": [...]}" +// @Router /system/tenant/lists [get] +// @Security +func (p *SysTenantsApi) GetSysTenantsAll(rc *ctx.ReqCtx) { + list := make([]entity.SysTenants, 0) + if rc.LoginAccount.RoleKey == "admin" { + data := entity.SysTenants{} + list = *p.SysTenantsApp.FindList(data) + } else { + list = append(list, *p.SysTenantsApp.FindOne(rc.LoginAccount.TenantId)) + } + rc.ResData = list +} + // @Summary 获取SysTenants // @Description 获取JSON // @Tags SysTenants // @Param tenantId path int true "tenantId" // @Success 200 {string} string "{"code": 200, "data": [...]}" -// @Router /admin/tenant/{tenantId} [get] +// @Router /system/tenant/{tenantId} [get] // @Security func (p *SysTenantsApi) GetSysTenants(rc *ctx.ReqCtx) { tenantId := ginx.PathParamInt(rc.GinCtx, "tenantId") @@ -59,7 +75,7 @@ func (p *SysTenantsApi) GetSysTenants(rc *ctx.ReqCtx) { // @Param data body entity.SysTenants true "data" // @Success 200 {string} string "{"code": 200, "message": "添加成功"}" // @Success 200 {string} string "{"code": 400, "message": "添加失败"}" -// @Router /admin/tenant [post] +// @Router /system/tenant [post] // @Security X-TOKEN func (p *SysTenantsApi) InsertSysTenants(rc *ctx.ReqCtx) { var data entity.SysTenants @@ -76,7 +92,7 @@ func (p *SysTenantsApi) InsertSysTenants(rc *ctx.ReqCtx) { // @Param data body entity.SysTenants true "body" // @Success 200 {string} string "{"code": 200, "message": "添加成功"}" // @Success 200 {string} string "{"code": 400, "message": "添加失败"}" -// @Router /admin/tenant [put] +// @Router /system/tenant [put] // @Security X-TOKEN func (p *SysTenantsApi) UpdateSysTenants(rc *ctx.ReqCtx) { var data entity.SysTenants @@ -91,7 +107,7 @@ func (p *SysTenantsApi) UpdateSysTenants(rc *ctx.ReqCtx) { // @Param tenantId path string true "tenantId" // @Success 200 {string} string "{"code": 200, "message": "删除成功"}" // @Success 200 {string} string "{"code": 400, "message": "删除失败"}" -// @Router /admin/tenant/{tenantId} [delete] +// @Router /system/tenant/{tenantId} [delete] func (p *SysTenantsApi) DeleteSysTenants(rc *ctx.ReqCtx) { tenantId := rc.GinCtx.Param("tenantId") tenantIds := utils.IdsStrToIdsIntGroup(tenantId) diff --git a/apps/system/api/user.go b/apps/system/api/user.go index 346542b..e4346d6 100644 --- a/apps/system/api/user.go +++ b/apps/system/api/user.go @@ -16,11 +16,10 @@ import ( "pandax/apps/system/services" "pandax/base/biz" "pandax/base/captcha" - "pandax/base/config" "pandax/base/ctx" "pandax/base/ginx" - "pandax/base/global" "pandax/base/utils" + "pandax/pkg/global" "strings" "time" ) @@ -52,9 +51,10 @@ func (u *UserApi) GenerateCaptcha(c *gin.Context) { // @Router /system/user/refreshToken [get] func (u *UserApi) RefreshToken(rc *ctx.ReqCtx) { tokenStr := rc.GinCtx.Request.Header.Get("X-TOKEN") - token, err := ctx.RefreshToken(tokenStr) + j := ctx.NewJWT("", []byte(global.Conf.Jwt.Key), jwt.SigningMethodHS256) + token, err := j.RefreshToken(tokenStr) biz.ErrIsNil(err, "刷新token失败") - rc.ResData = map[string]any{"token": token, "expire": time.Now().Unix() + config.Conf.Jwt.ExpireTime} + rc.ResData = map[string]any{"token": token, "expire": time.Now().Unix() + global.Conf.Jwt.ExpireTime} } // @Tags Base @@ -70,27 +70,26 @@ func (u *UserApi) Login(rc *ctx.ReqCtx) { login := u.UserApp.Login(entity.Login{Username: l.Username, Password: l.Password}) role := u.RoleApp.FindOne(login.RoleId) - - token, err := ctx.CreateToken( - ctx.Claims{ - UserId: login.UserId, - UserName: login.Username, - RoleId: login.RoleId, - RoleKey: role.RoleKey, - DeptId: login.DeptId, - PostId: login.PostId, - StandardClaims: jwt.StandardClaims{ - NotBefore: time.Now().Unix() - 1000, // 签名生效时间 - ExpiresAt: time.Now().Unix() + config.Conf.Jwt.ExpireTime, // 过期时间 7天 配置文件 - Issuer: "PandaX", // 签名的发行者 - }, - }) - + j := ctx.NewJWT("", []byte(global.Conf.Jwt.Key), jwt.SigningMethodHS256) + token, err := j.CreateToken(ctx.Claims{ + UserId: login.UserId, + TenantId: login.TenantId, + UserName: login.Username, + RoleId: login.RoleId, + RoleKey: role.RoleKey, + DeptId: login.DeptId, + PostId: login.PostId, + StandardClaims: jwt.StandardClaims{ + NotBefore: time.Now().Unix() - 1000, // 签名生效时间 + ExpiresAt: time.Now().Unix() + global.Conf.Jwt.ExpireTime, // 过期时间 7天 配置文件 + Issuer: "PandaX", // 签名的发行者 + }, + }) biz.ErrIsNil(err, "生成Token失败") rc.ResData = map[string]any{ "token": token, - "expire": time.Now().Unix() + config.Conf.Jwt.ExpireTime, + "expire": time.Now().Unix() + global.Conf.Jwt.ExpireTime, } var loginLog logEntity.LogLogin @@ -420,7 +419,7 @@ func (u *UserApi) ExportUser(rc *ctx.ReqCtx) { user.Username = userName user.Phone = phone list := u.UserApp.FindList(user) - fileName := utils.GetFileName(config.Conf.Server.ExcelDir, filename) + fileName := utils.GetFileName(global.Conf.Server.ExcelDir, filename) utils.InterfaceToExcel(*list, fileName) rc.Download(fileName) } diff --git a/apps/system/entity/role.go b/apps/system/entity/role.go index 4d7b309..cf1d933 100644 --- a/apps/system/entity/role.go +++ b/apps/system/entity/role.go @@ -8,6 +8,7 @@ import ( type SysRole struct { model.BaseModel RoleId int64 `json:"roleId" gorm:"primary_key;AUTO_INCREMENT"` + TenantId int64 `json:"tenantId" gorm:"type:int"` RoleName string `json:"roleName" gorm:"type:varchar(128);comment:角色名称"` Status string `json:"status" gorm:"type:varchar(1);comment:状态"` RoleKey string `json:"roleKey" gorm:"type:varchar(128);comment:角色代码"` diff --git a/apps/system/entity/user.go b/apps/system/entity/user.go index c558194..b0da248 100644 --- a/apps/system/entity/user.go +++ b/apps/system/entity/user.go @@ -12,21 +12,23 @@ type SysUserId struct { } type SysUserB struct { - NickName string `gorm:"type:varchar(128)" json:"nickName"` // 昵称 - Phone string `gorm:"type:varchar(11)" json:"phone"` // 手机号 - RoleId int64 `gorm:"type:int" json:"roleId"` // 角色编码 - Salt string `gorm:"type:varchar(255)" json:"salt"` //盐 - Avatar string `gorm:"type:varchar(255)" json:"avatar"` //头像 - Sex string `gorm:"type:varchar(255)" json:"sex"` //性别 - Email string `gorm:"type:varchar(128)" json:"email"` //邮箱 - DeptId int64 `gorm:"type:int" json:"deptId"` //部门编码 - PostId int64 `gorm:"type:int" json:"postId"` //职位编码 - RoleIds string `gorm:"type:varchar(255)" json:"roleIds"` //多角色 - PostIds string `gorm:"type:varchar(255)" json:"postIds"` // 多岗位 - CreateBy string `gorm:"type:varchar(128)" json:"createBy"` // - UpdateBy string `gorm:"type:varchar(128)" json:"updateBy"` // - Remark string `gorm:"type:varchar(255)" json:"remark"` //备注 - Status string `gorm:"type:varchar(1);" json:"status"` + TenantId int64 `gorm:"type:int" json:"tenantId"` //租户id + NickName string `gorm:"type:varchar(128)" json:"nickName"` // 昵称 + Phone string `gorm:"type:varchar(11)" json:"phone"` // 手机号 + RoleId int64 `gorm:"type:int" json:"roleId"` // 角色编码 + Salt string `gorm:"type:varchar(255)" json:"salt"` //盐 + Avatar string `gorm:"type:varchar(255)" json:"avatar"` //头像 + Sex string `gorm:"type:varchar(255)" json:"sex"` //性别 + Email string `gorm:"type:varchar(128)" json:"email"` //邮箱 + DeptId int64 `gorm:"type:int" json:"deptId"` //部门编码 + PostId int64 `gorm:"type:int" json:"postId"` //职位编码 + RoleIds string `gorm:"type:varchar(255)" json:"roleIds"` //多角色 + PostIds string `gorm:"type:varchar(255)" json:"postIds"` // 多岗位 + CreateBy string `gorm:"type:varchar(128)" json:"createBy"` // + UpdateBy string `gorm:"type:varchar(128)" json:"updateBy"` // + Remark string `gorm:"type:varchar(255)" json:"remark"` //备注 + Status string `gorm:"type:varchar(1);" json:"status"` + SysTenants SysTenants `gorm:"foreignKey:TenantId;references:Id" json:"tenants"` model.BaseModel } diff --git a/apps/system/router/tenant.go b/apps/system/router/tenant.go index bdc39e1..dcf572b 100644 --- a/apps/system/router/tenant.go +++ b/apps/system/router/tenant.go @@ -23,7 +23,10 @@ func InitSysTenantRouter(router *gin.RouterGroup) { routerGroup.GET("list", func(c *gin.Context) { ctx.NewReqCtxWithGin(c).WithLog(SysTenantListLog).Handle(s.GetSysTenantsList) }) - + SysTenantAllLog := ctx.NewLogInfo("获取SysTenant列表") + routerGroup.GET("lists", func(c *gin.Context) { + ctx.NewReqCtxWithGin(c).WithLog(SysTenantAllLog).Handle(s.GetSysTenantsAll) + }) SysTenantLog := ctx.NewLogInfo("获取SysTenant信息") routerGroup.GET(":tenantId", func(c *gin.Context) { ctx.NewReqCtxWithGin(c).WithLog(SysTenantLog).Handle(s.GetSysTenants) diff --git a/apps/system/services/api.go b/apps/system/services/api.go index 8db89bd..aeadd44 100644 --- a/apps/system/services/api.go +++ b/apps/system/services/api.go @@ -6,7 +6,7 @@ import ( "pandax/apps/system/entity" "pandax/base/biz" "pandax/base/casbin" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/system/services/config.go b/apps/system/services/config.go index 8ed63ee..7fd81d2 100644 --- a/apps/system/services/config.go +++ b/apps/system/services/config.go @@ -3,7 +3,7 @@ package services import ( "pandax/apps/system/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/system/services/dept.go b/apps/system/services/dept.go index 4513692..cecb753 100644 --- a/apps/system/services/dept.go +++ b/apps/system/services/dept.go @@ -5,7 +5,7 @@ import ( "github.com/kakuilan/kgo" "pandax/apps/system/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/system/services/dict_data.go b/apps/system/services/dict_data.go index 4f10072..5de25ec 100644 --- a/apps/system/services/dict_data.go +++ b/apps/system/services/dict_data.go @@ -3,7 +3,7 @@ package services import ( "pandax/apps/system/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/system/services/dict_type.go b/apps/system/services/dict_type.go index 65f5c05..5cd3c0b 100644 --- a/apps/system/services/dict_type.go +++ b/apps/system/services/dict_type.go @@ -3,7 +3,7 @@ package services import ( "pandax/apps/system/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/system/services/menu.go b/apps/system/services/menu.go index 983227b..51bce20 100644 --- a/apps/system/services/menu.go +++ b/apps/system/services/menu.go @@ -3,7 +3,7 @@ package services import ( "pandax/apps/system/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/system/services/notice.go b/apps/system/services/notice.go index 385c1e0..bc44df0 100644 --- a/apps/system/services/notice.go +++ b/apps/system/services/notice.go @@ -3,7 +3,7 @@ package services import ( "pandax/apps/system/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/system/services/post.go b/apps/system/services/post.go index 5cc9fdd..f1b2707 100644 --- a/apps/system/services/post.go +++ b/apps/system/services/post.go @@ -3,7 +3,7 @@ package services import ( "pandax/apps/system/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/system/services/role.go b/apps/system/services/role.go index ad2f0d7..341defe 100644 --- a/apps/system/services/role.go +++ b/apps/system/services/role.go @@ -4,7 +4,7 @@ import ( "errors" "pandax/apps/system/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/system/services/role_dept.go b/apps/system/services/role_dept.go index 6d77ed3..a00a92a 100644 --- a/apps/system/services/role_dept.go +++ b/apps/system/services/role_dept.go @@ -4,7 +4,7 @@ import ( "fmt" "pandax/apps/system/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/system/services/role_menu.go b/apps/system/services/role_menu.go index 515d54f..b19a9a9 100644 --- a/apps/system/services/role_menu.go +++ b/apps/system/services/role_menu.go @@ -4,7 +4,7 @@ import ( "fmt" "pandax/apps/system/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( diff --git a/apps/system/services/tenant.go b/apps/system/services/tenant.go index 9389603..23c88a1 100644 --- a/apps/system/services/tenant.go +++ b/apps/system/services/tenant.go @@ -8,7 +8,7 @@ package services import ( "pandax/apps/system/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" ) type ( @@ -38,7 +38,7 @@ func (m *SysTenantModelImpl) Insert(data entity.SysTenants) *entity.SysTenants { func (m *SysTenantModelImpl) FindOne(tenantId int64) *entity.SysTenants { resData := new(entity.SysTenants) - err := global.Db.Table(m.table).Where("tenant_id = ?", tenantId).First(resData).Error + err := global.Db.Table(m.table).Where("id = ?", tenantId).First(resData).Error biz.ErrIsNil(err, "查询SysTenant失败") return resData } @@ -81,5 +81,5 @@ func (m *SysTenantModelImpl) Update(data entity.SysTenants) *entity.SysTenants { } func (m *SysTenantModelImpl) Delete(tenantIds []int64) { - biz.ErrIsNil(global.Db.Table(m.table).Delete(&entity.SysTenants{}, "tenant_id in (?)", tenantIds).Error, "删除SysTenant失败") + biz.ErrIsNil(global.Db.Table(m.table).Delete(&entity.SysTenants{}, "id in (?)", tenantIds).Error, "删除SysTenant失败") } diff --git a/apps/system/services/user.go b/apps/system/services/user.go index 3e79990..7d6eb61 100644 --- a/apps/system/services/user.go +++ b/apps/system/services/user.go @@ -5,7 +5,8 @@ import ( "golang.org/x/crypto/bcrypt" "pandax/apps/system/entity" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" + "time" ) type ( @@ -31,12 +32,19 @@ var SysUserModelDao SysUserModel = &sysUserModelImpl{ func (m *sysUserModelImpl) Login(u entity.Login) *entity.SysUser { user := new(entity.SysUser) + err := global.Db.Table(m.table).Where("username = ? ", u.Username).Find(user) biz.ErrIsNil(err.Error, "查询用户信息失败") // 验证密码 b := kgo.KEncr.PasswordVerify([]byte(u.Password), []byte(user.Password)) biz.IsTrue(b, "密码错误") + + //验证租户 + if SysTenantModelDao.FindOne(user.TenantId).ExpireTime.Unix() < time.Now().Unix() { + biz.IsTrue(b, "租户已经过期") + } + return user } @@ -61,27 +69,25 @@ func (m *sysUserModelImpl) FindOne(data entity.SysUser) *entity.SysUserView { if data.UserId != 0 { db = db.Where("user_id = ?", data.UserId) } - + if data.TenantId != 0 { + db = db.Where("tenant_id = ?", data.TenantId) + } if data.Username != "" { db = db.Where("username = ?", data.Username) } - if data.Password != "" { db = db.Where("password = ?", data.Password) } - if data.RoleId != 0 { db = db.Where("role_id = ?", data.RoleId) } - if data.DeptId != 0 { db = db.Where("dept_id = ?", data.DeptId) } - if data.PostId != 0 { db = db.Where("post_id = ?", data.PostId) } - biz.ErrIsNil(db.First(resData).Error, "查询用户失败") + biz.ErrIsNil(db.Preload("SysTenants").First(resData).Error, "查询用户失败") return resData } @@ -96,7 +102,9 @@ func (m *sysUserModelImpl) FindListPage(page, pageSize int, data entity.SysUser) if data.Username != "" { db = db.Where("sys_users.username = ?", data.Username) } - + if data.TenantId != 0 { + db = db.Where("sys_users.tenant_id = ?", data.TenantId) + } if data.NickName != "" { db = db.Where("sys_users.nick_name like ?", "%"+data.NickName+"%") } @@ -113,7 +121,7 @@ func (m *sysUserModelImpl) FindListPage(page, pageSize int, data entity.SysUser) } db.Where("sys_users.delete_time IS NULL") err := db.Count(&total).Error - err = db.Limit(pageSize).Offset(offset).Find(&list).Error + err = db.Limit(pageSize).Offset(offset).Preload("SysTenants").Find(&list).Error biz.ErrIsNil(err, "查询用户分页列表失败") return &list, total } @@ -126,7 +134,9 @@ func (m *sysUserModelImpl) FindList(data entity.SysUser) *[]entity.SysUserView { if data.UserId != 0 { db = db.Where("user_id = ?", data.UserId) } - + if data.TenantId != 0 { + db = db.Where("tenant_id = ?", data.TenantId) + } if data.Username != "" { db = db.Where("username = ?", data.Username) } diff --git a/base/biz/assert.go b/base/biz/assert.go index 9c7375c..044712a 100644 --- a/base/biz/assert.go +++ b/base/biz/assert.go @@ -2,7 +2,6 @@ package biz import ( "fmt" - "pandax/base/global" "pandax/base/utils" "reflect" ) @@ -12,7 +11,6 @@ func ErrIsNil(err error, msg string, params ...any) { if err.Error() == "record not found" { return } - global.Log.Error(msg + ": " + err.Error()) panic(any(NewBizErr(fmt.Sprintf(msg, params...)))) } } @@ -28,7 +26,6 @@ func IsNil(err error) { case *BizError: panic(any(t)) case error: - global.Log.Error("非业务异常: " + err.Error()) panic(any(NewBizErr(fmt.Sprintf("非业务异常: %s", err.Error())))) } } diff --git a/base/casbin/casbin.go b/base/casbin/casbin.go index 48dfe0b..34443e6 100644 --- a/base/casbin/casbin.go +++ b/base/casbin/casbin.go @@ -4,16 +4,15 @@ import ( "github.com/casbin/casbin/v2" gormadapter "github.com/casbin/gorm-adapter/v3" "pandax/base/biz" - "pandax/base/config" - "pandax/base/global" + "pandax/pkg/global" "sync" ) -func UpdateCasbin(roleKey string, casbinInfos []CasbinRule) error { - ClearCasbin(0, roleKey) +func UpdateCasbin(tenantId string, roleKey string, casbinInfos []CasbinRule) error { + ClearCasbin(0, tenantId, roleKey) rules := [][]string{} for _, v := range casbinInfos { - rules = append(rules, []string{roleKey, v.Path, v.Method}) + rules = append(rules, []string{tenantId, roleKey, v.Path, v.Method}) } e := Casbin() success, _ := e.AddPolicies(rules) @@ -22,20 +21,20 @@ func UpdateCasbin(roleKey string, casbinInfos []CasbinRule) error { } func UpdateCasbinApi(oldPath string, newPath string, oldMethod string, newMethod string) { - err := global.Db.Table("casbin_rule").Model(&CasbinRule{}).Where("v1 = ? AND v2 = ?", oldPath, oldMethod).Updates(map[string]any{ - "v1": newPath, - "v2": newMethod, + err := global.Db.Table("casbin_rule").Model(&CasbinRule{}).Where("v2 = ? AND v3 = ?", oldPath, oldMethod).Updates(map[string]any{ + "v2": newPath, + "v3": newMethod, }).Error biz.ErrIsNil(err, "修改api失败") } -func GetPolicyPathByRoleId(roleKey string) (pathMaps []CasbinRule) { +func GetPolicyPathByRoleId(tenantId, roleKey string) (pathMaps []CasbinRule) { e := Casbin() - list := e.GetFilteredPolicy(0, roleKey) + list := e.GetFilteredPolicy(0, tenantId, roleKey) for _, v := range list { pathMaps = append(pathMaps, CasbinRule{ - Path: v[1], - Method: v[2], + Path: v[2], + Method: v[3], }) } return pathMaps @@ -57,7 +56,7 @@ func Casbin() *casbin.SyncedEnforcer { once.Do(func() { a, err := gormadapter.NewAdapterByDB(global.Db) biz.ErrIsNil(err, "新建权限适配器失败") - syncedEnforcer, err = casbin.NewSyncedEnforcer(config.Conf.Casbin.ModelPath, a) + syncedEnforcer, err = casbin.NewSyncedEnforcer(global.Conf.Casbin.ModelPath, a) biz.ErrIsNil(err, "新建权限适配器失败") }) _ = syncedEnforcer.LoadPolicy() diff --git a/base/config/config.go b/base/config/config.go index fb83d93..d95c8bd 100644 --- a/base/config/config.go +++ b/base/config/config.go @@ -8,23 +8,19 @@ import ( "path/filepath" ) -// 配置文件映射对象 -var Conf *Config - -func init() { - configFilePath := flag.String("c", "./config.yml", "配置文件路径,默认为可执行文件目录") - flag.Parse() +func InitConfig(configFilePath string) *Config { // 获取启动参数中,配置文件的绝对路径 - path, _ := filepath.Abs(*configFilePath) + path, _ := filepath.Abs(configFilePath) startConfigParam = &CmdConfigParam{ConfigFilePath: path} // 读取配置文件信息 yc := &Config{} if err := utils.LoadYml(startConfigParam.ConfigFilePath, yc); err != nil { - panic(fmt.Sprintf("读取配置文件[%s]失败: %s", startConfigParam.ConfigFilePath, err.Error())) + panic(any(fmt.Sprintf("读取配置文件[%s]失败: %s", startConfigParam.ConfigFilePath, err.Error()))) } // 校验配置文件内容信息 yc.Valid() - Conf = yc + return yc + } // 启动配置参数 diff --git a/base/ctx/log_handler.go b/base/ctx/log_handler.go index 1b888ab..7bdbbac 100644 --- a/base/ctx/log_handler.go +++ b/base/ctx/log_handler.go @@ -4,8 +4,8 @@ import ( "encoding/json" "fmt" "pandax/base/biz" - "pandax/base/logger" "pandax/base/utils" + "pandax/pkg/global" "reflect" "runtime/debug" @@ -42,10 +42,10 @@ func LogHandler(rc *ReqCtx) error { lfs[req.Method] = req.URL.Path if err := rc.Err; err != nil { - logger.Log.WithFields(lfs).Error(getErrMsg(rc, err)) + global.Log.WithFields(lfs).Error(getErrMsg(rc, err)) return nil } - logger.Log.WithFields(lfs).Info(getLogMsg(rc)) + global.Log.WithFields(lfs).Info(getLogMsg(rc)) return nil } diff --git a/base/ctx/permission_handler.go b/base/ctx/permission_handler.go index b9318cf..40c4ee1 100644 --- a/base/ctx/permission_handler.go +++ b/base/ctx/permission_handler.go @@ -1,8 +1,11 @@ package ctx import ( + "github.com/dgrijalva/jwt-go" "pandax/base/biz" "pandax/base/casbin" + "pandax/pkg/global" + "strconv" ) type Permission struct { @@ -34,7 +37,8 @@ func PermissionHandler(rc *ReqCtx) error { if tokenStr == "" { return biz.PermissionErr } - loginAccount, err := ParseToken(tokenStr) + j := NewJWT("", []byte(global.Conf.Jwt.Key), jwt.SigningMethodHS256) + loginAccount, err := j.ParseToken(tokenStr) if err != nil || loginAccount == nil { return biz.PermissionErr } @@ -45,7 +49,8 @@ func PermissionHandler(rc *ReqCtx) error { } e := casbin.Casbin() // 判断策略中是否存在 - success, _ := e.Enforce(loginAccount.RoleKey, rc.GinCtx.Request.URL.Path, rc.GinCtx.Request.Method) + tenantId := strconv.Itoa(int(rc.LoginAccount.TenantId)) + success, err := e.Enforce(tenantId, loginAccount.RoleKey, rc.GinCtx.Request.URL.Path, rc.GinCtx.Request.Method) if !success { return biz.CasbinErr } diff --git a/base/ctx/token.go b/base/ctx/token.go index a52c780..fdd4991 100644 --- a/base/ctx/token.go +++ b/base/ctx/token.go @@ -2,17 +2,15 @@ package ctx import ( "errors" + "fmt" "github.com/dgrijalva/jwt-go" - "pandax/base/config" + "strings" "time" ) -var ( - jwtSecret = []byte(config.Conf.Jwt.Key) -) - type Claims struct { UserId int64 + TenantId int64 UserName string RoleId int64 RoleKey string @@ -21,43 +19,116 @@ type Claims struct { jwt.StandardClaims } -func CreateToken(claims Claims) (string, error) { - - tokenClaims := jwt.NewWithClaims(jwt.SigningMethodHS256, claims) - token, err := tokenClaims.SignedString(jwtSecret) - - return token, err +type JWT struct { + SignedKeyID string + SignedKey []byte + SignedMethod jwt.SigningMethod } -func ParseToken(token string) (*Claims, error) { - tokenClaims, err := jwt.ParseWithClaims(token, &Claims{}, func(token *jwt.Token) (any, error) { - return jwtSecret, nil - }) +var ( + TokenExpired = errors.New("token is expired") + TokenNotValidYet = errors.New("token not active yet") + TokenMalformed = errors.New("that's not even a token") + TokenInvalid = errors.New("couldn't handle this token") +) - if tokenClaims != nil { - if claims, ok := tokenClaims.Claims.(*Claims); ok && tokenClaims.Valid { - return claims, nil +func NewJWT(kid string, key []byte, method jwt.SigningMethod) *JWT { + return &JWT{ + SignedKeyID: kid, + SignedKey: key, + SignedMethod: method, + } +} + +// CreateToken 创建一个token +func (j *JWT) CreateToken(claims Claims) (string, error) { + token := jwt.NewWithClaims(jwt.SigningMethodHS256, &claims) + var key interface{} + if j.isEs() { + v, err := jwt.ParseECPrivateKeyFromPEM(j.SignedKey) + if err != nil { + return "", err + } + key = v + } else if j.isRsOrPS() { + v, err := jwt.ParseRSAPrivateKeyFromPEM(j.SignedKey) + if err != nil { + return "", err + } + key = v + } else if j.isHs() { + key = j.SignedKey + } else { + return "", errors.New("unsupported sign method") + } + return token.SignedString(key) +} + +// ParseToken 解析 token +func (j *JWT) ParseToken(tokenString string) (*Claims, error) { + token, err := jwt.ParseWithClaims(tokenString, &Claims{}, func(token *jwt.Token) (i interface{}, e error) { + if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok { + return nil, fmt.Errorf("parse error") + } + return j.SignedKey, nil + }) + if err != nil { + if ve, ok := err.(*jwt.ValidationError); ok { + if ve.Errors&jwt.ValidationErrorMalformed != 0 { + return nil, TokenMalformed + } else if ve.Errors&jwt.ValidationErrorExpired != 0 { + // Token is expired + return nil, TokenExpired + } else if ve.Errors&jwt.ValidationErrorNotValidYet != 0 { + return nil, TokenNotValidYet + } else { + return nil, TokenInvalid + } } } + if token != nil { + if claims, ok := token.Claims.(*Claims); ok && token.Valid { + return claims, nil + } + return nil, TokenInvalid + + } else { + return nil, TokenInvalid + + } - return nil, err } // 更新token -func RefreshToken(tokenString string) (string, error) { +func (j *JWT) RefreshToken(tokenString string) (string, error) { jwt.TimeFunc = func() time.Time { return time.Unix(0, 0) } - token, err := jwt.ParseWithClaims(tokenString, &Claims{}, func(token *jwt.Token) (any, error) { - return jwtSecret, nil + token, err := jwt.ParseWithClaims(tokenString, &Claims{}, func(token *jwt.Token) (interface{}, error) { + return j.SignedKey, nil }) if err != nil { return "", err } + if claims, ok := token.Claims.(*Claims); ok && token.Valid { jwt.TimeFunc = time.Now - claims.StandardClaims.ExpiresAt = time.Now().Add(1 * time.Hour).Unix() - return CreateToken(*claims) + claims.StandardClaims.ExpiresAt = time.Now().Unix() + 60*60*24*7 + return j.CreateToken(*claims) } - return "", errors.New("Couldn't handle this token:") + return "", TokenInvalid +} + +func (a *JWT) isEs() bool { + return strings.HasPrefix(a.SignedMethod.Alg(), "ES") +} + +func (a *JWT) isRsOrPS() bool { + isRs := strings.HasPrefix(a.SignedMethod.Alg(), "RS") + isPs := strings.HasPrefix(a.SignedMethod.Alg(), "PS") + return isRs || isPs +} + +func (a *JWT) isHs() bool { + return strings.HasPrefix(a.SignedMethod.Alg(), "HS") } diff --git a/base/ginx/ginx.go b/base/ginx/ginx.go index 546120a..e209938 100644 --- a/base/ginx/ginx.go +++ b/base/ginx/ginx.go @@ -4,8 +4,8 @@ import ( "encoding/json" "net/http" "pandax/base/biz" - "pandax/base/global" "pandax/base/model" + "pandax/pkg/global" "strconv" "github.com/gin-gonic/gin" diff --git a/base/global/global.go b/base/global/global.go deleted file mode 100644 index 3eb6cf3..0000000 --- a/base/global/global.go +++ /dev/null @@ -1,11 +0,0 @@ -package global - -import ( - "github.com/sirupsen/logrus" - "gorm.io/gorm" -) - -var ( - Log *logrus.Logger // 日志 - Db *gorm.DB // gorm -) diff --git a/base/logger/logger.go b/base/logger/logger.go index acf5240..12c9136 100644 --- a/base/logger/logger.go +++ b/base/logger/logger.go @@ -4,24 +4,21 @@ import ( "fmt" "os" "pandax/base/config" - "pandax/base/global" "strings" "time" "github.com/sirupsen/logrus" ) -var Log = logrus.New() - -func init() { +func InitLog(logConf *config.Log) *logrus.Logger { + var Log = logrus.New() Log.SetFormatter(new(LogFormatter)) Log.SetReportCaller(true) - logConf := config.Conf.Log // 如果不存在日志配置信息,则默认debug级别 if logConf == nil { Log.SetLevel(logrus.DebugLevel) - return + return nil } // 根据配置文件设置日志级别 @@ -44,8 +41,7 @@ func init() { Log.Out = file } - - global.Log = Log + return Log } type LogFormatter struct{} diff --git a/base/model/login_account.go b/base/model/login_account.go index e3c0b75..74e70f9 100644 --- a/base/model/login_account.go +++ b/base/model/login_account.go @@ -5,9 +5,10 @@ type AppContext struct { type LoginAccount struct { UserId int64 + TenantId int64 RoleId int64 DeptId int64 PostId int64 Username string - Rolename string + RoleKey string } diff --git a/base/model/model.go b/base/model/model.go index 2d69586..16d183c 100644 --- a/base/model/model.go +++ b/base/model/model.go @@ -3,7 +3,7 @@ package model import ( "fmt" "pandax/base/biz" - "pandax/base/global" + "pandax/pkg/global" "strconv" "strings" @@ -48,7 +48,9 @@ func (m *Model) SetBaseInfo(account *LoginAccount) { func Tx(funcs ...func(db *gorm.DB) error) (err error) { tx := global.Db.Begin() defer func() { - if r := recover(); r != nil { + var err any + err = recover() + if err != nil { tx.Rollback() err = fmt.Errorf("%v", err) } diff --git a/base/starter/gorm.go b/base/starter/gorm.go index 22dd261..da5d5cf 100644 --- a/base/starter/gorm.go +++ b/base/starter/gorm.go @@ -6,8 +6,7 @@ import ( "gorm.io/driver/postgres" "gorm.io/gorm" "gorm.io/gorm/logger" - "pandax/base/config" - "pandax/base/global" + "pandax/pkg/global" "time" _ "github.com/lib/pq" @@ -23,7 +22,7 @@ func GormInit(ty string) *gorm.DB { return nil } func GormMysql() *gorm.DB { - m := config.Conf.Mysql + m := global.Conf.Mysql if m == nil || m.Dbname == "" { global.Log.Panic("未找到数据库配置信息") return nil @@ -50,7 +49,7 @@ func GormMysql() *gorm.DB { } func GormPostgresql() *gorm.DB { - m := config.Conf.Postgresql + m := global.Conf.Postgresql if m == nil || m.Dbname == "" { global.Log.Panic("未找到数据库配置信息") return nil diff --git a/base/starter/redis.go b/base/starter/redis.go index c961f2a..4ed2fb4 100644 --- a/base/starter/redis.go +++ b/base/starter/redis.go @@ -2,15 +2,14 @@ package starter import ( "fmt" - "pandax/base/config" - "pandax/base/global" + "pandax/pkg/global" "github.com/go-redis/redis" ) func ConnRedis() *redis.Client { // 设置redis客户端 - redisConf := config.Conf.Redis + redisConf := global.Conf.Redis if redisConf == nil { global.Log.Panic("未找到redis配置信息") } diff --git a/base/starter/web-server.go b/base/starter/web-server.go index 14e70e1..18b0e12 100644 --- a/base/starter/web-server.go +++ b/base/starter/web-server.go @@ -1,16 +1,15 @@ package starter import ( - "pandax/base/config" - "pandax/base/global" + "pandax/pkg/global" "github.com/gin-gonic/gin" ) func RunWebServer(web *gin.Engine) { - server := config.Conf.Server + server := global.Conf.Server port := server.GetPort() - if app := config.Conf.App; app != nil { + if app := global.Conf.App; app != nil { global.Log.Infof("%s- Listening and serving HTTP on %s", app.GetAppInfo(), port) } else { global.Log.Infof("Listening and serving HTTP on %s", port) diff --git a/base/utils/regexp.go b/base/utils/regexp.go index 9082726..78b0d7b 100644 --- a/base/utils/regexp.go +++ b/base/utils/regexp.go @@ -1,7 +1,6 @@ package utils import ( - "pandax/base/global" "regexp" "sync" ) @@ -33,7 +32,6 @@ func GetRegexp(pattern string) (regex *regexp.Regexp, err error) { // it compiles the pattern and creates one. regex, err = regexp.Compile(pattern) if err != nil { - global.Log.Warnf(`regexp.Compile failed for pattern "%s"`, pattern) return } // Cache the result object using writing lock. diff --git a/base/ws/ws.go b/base/ws/ws.go index 90f3afd..48888e5 100644 --- a/base/ws/ws.go +++ b/base/ws/ws.go @@ -3,7 +3,7 @@ package ws import ( "encoding/json" "net/http" - "pandax/base/global" + "pandax/pkg/global" "time" "github.com/gorilla/websocket" diff --git a/go.mod b/go.mod index 8e55a4d..b137d5a 100644 --- a/go.mod +++ b/go.mod @@ -7,8 +7,8 @@ require ( github.com/go-redis/redis v6.15.9+incompatible github.com/gorilla/websocket v1.4.2 // ssh - golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b + golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 + gopkg.in/yaml.v3 v3.0.0 gorm.io/gorm v1.22.3 ) @@ -20,13 +20,13 @@ require ( github.com/casbin/gorm-adapter/v3 v3.4.6 github.com/dgrijalva/jwt-go v3.2.0+incompatible github.com/didip/tollbooth v4.0.2+incompatible - github.com/golang/protobuf v1.4.3 // indirect + github.com/golang/protobuf v1.5.2 // indirect github.com/google/uuid v1.3.0 github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible - github.com/json-iterator/go v1.1.11 // indirect + github.com/json-iterator/go v1.1.12 // indirect github.com/kakuilan/kgo v0.1.8 github.com/lib/pq v1.10.4 - github.com/mattn/go-isatty v0.0.13 // indirect + github.com/mattn/go-isatty v0.0.14 // indirect github.com/mojocn/base64Captcha v1.3.5 github.com/mssola/user_agent v0.5.3 github.com/onsi/ginkgo v1.16.4 // indirect @@ -39,13 +39,15 @@ require ( github.com/swaggo/swag v1.7.6 github.com/tencentyun/cos-go-sdk-v5 v0.7.33 github.com/xuri/excelize/v2 v2.4.1 - golang.org/x/sys v0.0.0-20211117180635-dee7805ff2e1 // indirect + golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11 // indirect - google.golang.org/protobuf v1.26.0-rc.1 // indirect + google.golang.org/protobuf v1.28.0 // indirect gorm.io/driver/mysql v1.2.0 gorm.io/driver/postgres v1.2.3 ) +require github.com/spf13/cobra v1.5.0 + require ( github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible // indirect github.com/KyleBanks/depth v1.2.1 // indirect @@ -54,6 +56,7 @@ require ( github.com/StackExchange/wmi v0.0.0-20210224194228-fe8f1750fd46 // indirect github.com/brianvoe/gofakeit/v6 v6.0.2 // indirect github.com/denisenkom/go-mssqldb v0.11.0 // indirect + github.com/fsnotify/fsnotify v1.5.4 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-ole/go-ole v1.2.5 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect @@ -66,7 +69,9 @@ require ( github.com/go-sql-driver/mysql v1.6.0 // indirect github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect + github.com/google/go-cmp v0.5.8 // indirect github.com/google/go-querystring v1.0.0 // indirect + github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/jackc/chunkreader/v2 v2.0.1 // indirect github.com/jackc/pgconn v1.10.1 // indirect github.com/jackc/pgio v1.0.0 // indirect @@ -82,20 +87,24 @@ require ( github.com/leodido/go-urn v1.2.1 // indirect github.com/mailru/easyjson v0.7.6 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.1 // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/mozillazg/go-httpheader v0.2.1 // indirect github.com/onsi/gomega v1.10.1 // indirect github.com/richardlehane/mscfb v1.0.3 // indirect github.com/richardlehane/msoleps v1.0.1 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/stretchr/testify v1.7.1 // indirect github.com/ugorji/go/codec v1.1.7 // indirect github.com/xuri/efp v0.0.0-20210322160811-ab561f5b45e3 // indirect golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb // indirect - golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985 // indirect + golang.org/x/mod v0.4.1 // indirect + golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 // indirect golang.org/x/sync v0.0.0-20201207232520-09787c993a3a // indirect golang.org/x/text v0.3.7 // indirect golang.org/x/tools v0.1.0 // indirect - gopkg.in/ini.v1 v1.66.2 // indirect + golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df // indirect + gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gorm.io/driver/sqlserver v1.2.1 // indirect gorm.io/plugin/dbresolver v1.1.0 // indirect diff --git a/go.sum b/go.sum index af6674d..b9795d0 100644 --- a/go.sum +++ b/go.sum @@ -31,6 +31,7 @@ github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMe github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -43,8 +44,9 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/didip/tollbooth v4.0.2+incompatible h1:fVSa33JzSz0hoh2NxpwZtksAzAgd7zjmGO20HCZtF4M= github.com/didip/tollbooth v4.0.2+incompatible/go.mod h1:A9b0665CE6l1KmzpDws2++elm/CsuWBMa5Jv4WY0PEY= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= +github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/gzip v0.0.3 h1:etUaeesHhEORpZMp18zoOhepboiWnFtXrBZxszWUn4k= github.com/gin-contrib/gzip v0.0.3/go.mod h1:YxxswVZIqOvcHEQpsSn+QF5guQtO1dCfy0shBPy4jFc= @@ -103,13 +105,15 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -121,6 +125,8 @@ github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORR github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= @@ -185,8 +191,8 @@ github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFF github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/kakuilan/kgo v0.1.8 h1:b9UfGYNbUpWjPheOEgu/MsWUVDNWbcSit6BbNsBAPl0= github.com/kakuilan/kgo v0.1.8/go.mod h1:S9driqss6OluzqiOfUx7xN8nw0H6bFu5v7c19P09RRc= @@ -220,14 +226,15 @@ github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.13 h1:qdl+GuBjcsKKDco5BsxPJlId98mSWNKqYA+Co0SC1yA= -github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/mojocn/base64Captcha v1.3.5 h1:Qeilr7Ta6eDtG4S+tQuZ5+hO+QHbiGAJdi4PfoagaA0= @@ -279,6 +286,7 @@ github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= @@ -291,6 +299,10 @@ github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU= +github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -299,8 +311,9 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/swaggo/files v0.0.0-20190704085106-630677cd5c14/go.mod h1:gxQT6pBGRuIGunNf/+tSOB5OHvguWi8Tbt82WOkf35E= github.com/swaggo/gin-swagger v1.3.3 h1:XHyYmeNVFG5PbyWHG4jXtxOm2P4kiZapDCWsyDDiQ/I= github.com/swaggo/gin-swagger v1.3.3/go.mod h1:ymsZuGpbbu+S7ZoQ49QPpZoDBj6uqhb8WizgQPVgWl0= @@ -343,16 +356,18 @@ golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWP golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 h1:kUhD7nTDoI3fVd9G4ORWrbV5NY0liEs/Jg2pv5f+bBA= +golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/image v0.0.0-20190501045829-6d32002ffd75/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb h1:fqpd0EBDzlHRCjiphRR5Zo/RSWWQlWv34418dnEixWk= golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1 h1:Kvvh58BN8Y9/lBi7hTekvtMpm07eUZ0ck5pRHpsMWrY= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -363,8 +378,9 @@ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985 h1:4CSI6oo7cOjJKajidEljs9h+uP0rRZBPPPhcCbj5mw8= golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 h1:NWy5+hlRbC7HK+PmcXVUmW1IMyFce7to56IUvhUFm7Y= +golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -395,8 +411,9 @@ golang.org/x/sys v0.0.0-20210525143221-35b2ab0089ea/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211020174200-9d6173849985/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211117180635-dee7805ff2e1 h1:kwrAHlwJ0DUBZwQ238v+Uod/3eZ8B2K5rYsUHBQvzmI= -golang.org/x/sys v0.0.0-20211117180635-dee7805ff2e1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -428,16 +445,19 @@ golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df h1:5Pf6pFKu98ODmgnpvkJ3kFUOQGGLIzLIkbzUHp47618= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.26.0-rc.1 h1:7QnIQpGRHE5RnLKnESfDoxm2dTapTZua5a0kS0A+VXQ= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -446,8 +466,9 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= -gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI= gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.66.4 h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4= +gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -459,8 +480,9 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0 h1:hjy8E9ON/egN1tAYqKb61G10WtihqetD4sz2H+8nIeA= +gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.0.3/go.mod h1:twGxftLBlFgNVNakL7F+P/x9oYqoymG3YYT8cAfI9oI= gorm.io/driver/mysql v1.1.2/go.mod h1:4P/X9vSc3WTrhTLZ259cpFd6xKNYiSSdSZngkSBGIMM= gorm.io/driver/mysql v1.2.0 h1:l8+9VwjjyzEkw0PNPBOr2JHhLOGVk7XEnl5hk42bcvs= diff --git a/main.go b/main.go index 7848713..3522759 100644 --- a/main.go +++ b/main.go @@ -1,28 +1,65 @@ package main import ( + "github.com/spf13/cobra" + "os" "pandax/apps/job/jobs" "pandax/base/config" "pandax/base/ctx" - "pandax/base/global" + "pandax/base/logger" "pandax/base/starter" - "pandax/initialize" - "pandax/middleware" + "pandax/pkg/global" + "pandax/pkg/initialize" + "pandax/pkg/middleware" ) -func main() { - global.Db = starter.GormInit(config.Conf.Server.DbType) - initialize.InitTable() - // gin前置 函数 - ctx.UseAfterHandlerInterceptor(middleware.OperationHandler) - // gin前置 函数 - ctx.UseBeforeHandlerInterceptor(ctx.PermissionHandler) - // gin后置 函数 - ctx.UseAfterHandlerInterceptor(ctx.LogHandler) - go func() { - // 启动系统调度任务 - jobs.InitJob() - jobs.Setup() - }() - starter.RunWebServer(initialize.InitRouter()) +var ( + configFile string +) + +var rootCmd = &cobra.Command{ + Use: "panda is the main component in the panda.", + Short: `panda is go gin frame`, + PreRun: func(cmd *cobra.Command, args []string) { + if configFile != "" { + global.Conf = config.InitConfig(configFile) + global.Log = logger.InitLog(global.Conf.Log) + global.Db = starter.GormInit(global.Conf.Server.DbType) + initialize.InitTable() + } else { + global.Log.Panic("请配置config") + } + }, + Run: func(cmd *cobra.Command, args []string) { + ctx.UseAfterHandlerInterceptor(middleware.OperationHandler) + // gin前置 函数 + ctx.UseBeforeHandlerInterceptor(ctx.PermissionHandler) + // gin后置 函数 + ctx.UseAfterHandlerInterceptor(ctx.LogHandler) + go func() { + // 启动系统调度任务 + jobs.InitJob() + jobs.Setup() + }() + starter.RunWebServer(initialize.InitRouter()) + }, +} + +func init() { + rootCmd.Flags().StringVar(&configFile, "config", getEnvStr("PANDA_CONFIG", "./config.yml"), "panda config file path.") +} + +func getEnvStr(env string, defaultValue string) string { + v := os.Getenv(env) + if v == "" { + return defaultValue + } + return v +} + +func main() { + if err := rootCmd.Execute(); err != nil { + rootCmd.PrintErrf("panda root cmd execute: %s", err) + os.Exit(1) + } } diff --git a/pkg/global/global.go b/pkg/global/global.go new file mode 100644 index 0000000..8fdfaf2 --- /dev/null +++ b/pkg/global/global.go @@ -0,0 +1,13 @@ +package global + +import ( + "github.com/sirupsen/logrus" + "gorm.io/gorm" + "pandax/base/config" +) + +var ( + Log *logrus.Logger // 日志 + Db *gorm.DB // gorm + Conf *config.Config +) diff --git a/initialize/router.go b/pkg/initialize/router.go similarity index 96% rename from initialize/router.go rename to pkg/initialize/router.go index 71f525b..88ca677 100644 --- a/initialize/router.go +++ b/pkg/initialize/router.go @@ -2,6 +2,7 @@ package initialize import ( "fmt" + "pandax/pkg/global" ginSwagger "github.com/swaggo/gin-swagger" @@ -13,8 +14,7 @@ import ( resRouter "pandax/apps/resource/router" sysRouter "pandax/apps/system/router" - "pandax/base/config" - "pandax/middleware" + "pandax/pkg/middleware" _ "pandax/docs" @@ -25,7 +25,7 @@ import ( func InitRouter() *gin.Engine { // server配置 - serverConfig := config.Conf.Server + serverConfig := global.Conf.Server gin.SetMode(serverConfig.Model) var router = gin.New() diff --git a/initialize/table.go b/pkg/initialize/table.go similarity index 90% rename from initialize/table.go rename to pkg/initialize/table.go index 20ef76d..cc58723 100644 --- a/initialize/table.go +++ b/pkg/initialize/table.go @@ -1,22 +1,18 @@ package initialize import ( - "pandax/apps/system/entity" - //"pandax/base/casbin" - devEntity "pandax/apps/develop/entity" jobEntity "pandax/apps/job/entity" logEntity "pandax/apps/log/entity" resSourceEntity "pandax/apps/resource/entity" - + "pandax/apps/system/entity" "pandax/base/biz" - "pandax/base/config" - "pandax/base/global" + "pandax/pkg/global" ) // 初始化时如果没有表创建表 func InitTable() { - m := config.Conf.Server + m := global.Conf.Server if m.IsInitTable { biz.ErrIsNil( global.Db.AutoMigrate( @@ -44,6 +40,5 @@ func InitTable() { resSourceEntity.ResEmail{}, ), "初始化表失败") - } } diff --git a/middleware/cors.go b/pkg/middleware/cors.go similarity index 100% rename from middleware/cors.go rename to pkg/middleware/cors.go diff --git a/middleware/oper.go b/pkg/middleware/oper.go similarity index 100% rename from middleware/oper.go rename to pkg/middleware/oper.go diff --git a/middleware/rate.go b/pkg/middleware/rate.go similarity index 86% rename from middleware/rate.go rename to pkg/middleware/rate.go index 8a2f2ac..a63d505 100644 --- a/middleware/rate.go +++ b/pkg/middleware/rate.go @@ -3,7 +3,7 @@ package middleware import ( "github.com/didip/tollbooth" "github.com/gin-gonic/gin" - "pandax/base/config" + "pandax/pkg/global" ) /** @@ -14,7 +14,7 @@ import ( //限流中间件 func Rate() gin.HandlerFunc { - lmt := tollbooth.NewLimiter(config.Conf.Server.Rate.RateNum, nil) + lmt := tollbooth.NewLimiter(global.Conf.Server.Rate.RateNum, nil) lmt.SetMessage("已经超出接口请求限制,稍后再试.") return func(c *gin.Context) { httpError := tollbooth.LimitByRequest(lmt, c.Writer, c.Request) diff --git a/resource/pandax-mysql.sql b/resource/pandax-mysql.sql index 24bcdee..d951385 100644 --- a/resource/pandax-mysql.sql +++ b/resource/pandax-mysql.sql @@ -1,16 +1,17 @@ /* Navicat Premium Data Transfer - Source Server : 阿里云 + Source Server : 阿里云-pandax Source Server Type : MySQL Source Server Version : 50562 + Source Host : 47.104.252.2:3306 Source Schema : pandax Target Server Type : MySQL Target Server Version : 50562 File Encoding : 65001 - Date: 23/03/2022 21:54:09 + Date: 18/07/2022 11:39:14 */ SET NAMES utf8mb4; @@ -31,169 +32,177 @@ CREATE TABLE `casbin_rule` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `idx_casbin_rule`(`ptype`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1446 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; +) ENGINE = InnoDB AUTO_INCREMENT = 2266 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of casbin_rule -- ---------------------------- -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/develop/code/gen/code/:tableId', 'GET', '', '', '', 1141); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/develop/code/gen/menuAndApi/:tableId', 'GET', '', '', '', 1142); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/develop/code/gen/preview/:tableId', 'GET', '', '', '', 1140); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/develop/code/table', 'POST', '', '', '', 1137); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/develop/code/table', 'PUT', '', '', '', 1138); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/develop/code/table/:tableId', 'DELETE', '', '', '', 1139); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/develop/code/table/db/list', 'GET', '', '', '', 1132); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/develop/code/table/info/:tableId', 'GET', '', '', '', 1134); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/develop/code/table/info/tableName', 'GET', '', '', '', 1135); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/develop/code/table/list', 'GET', '', '', '', 1133); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/develop/code/table/tableTree', 'GET', '', '', '', 1136); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/job', 'POST', '', '', '', 1144); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/job', 'PUT', '', '', '', 1145); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/job/:jobId', 'DELETE', '', '', '', 1147); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/job/:jobId', 'GET', '', '', '', 1146); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/job/changeStatus', 'PUT', '', '', '', 1150); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/job/list', 'GET', '', '', '', 1143); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/job/start/:jobId', 'GET', '', '', '', 1149); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/job/stop/:jobId', 'GET', '', '', '', 1148); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/log/logJob/:logId', 'DELETE', '', '', '', 1159); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/log/logJob/all', 'DELETE', '', '', '', 1158); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/log/logJob/list', 'GET', '', '', '', 1157); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/log/logLogin/:infoId', 'DELETE', '', '', '', 1152); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/log/logLogin/all', 'DELETE', '', '', '', 1153); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/log/logLogin/list', 'GET', '', '', '', 1151); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/log/logOper/:operId', 'DELETE', '', '', '', 1155); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/log/logOper/all', 'DELETE', '', '', '', 1156); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/log/logOper/list', 'GET', '', '', '', 1154); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/resource/email', 'POST', '', '', '', 1162); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/resource/email', 'PUT', '', '', '', 1163); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/resource/email/:mailId', 'DELETE', '', '', '', 1164); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/resource/email/:mailId', 'GET', '', '', '', 1161); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/resource/email/changeStatus', 'PUT', '', '', '', 1165); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/resource/email/debugMail', 'POST', '', '', '', 1166); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/resource/email/list', 'GET', '', '', '', 1160); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/resource/oss', 'POST', '', '', '', 1182); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/resource/oss', 'PUT', '', '', '', 1183); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/resource/oss/:ossId', 'DELETE', '', '', '', 1184); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/resource/oss/:ossId', 'GET', '', '', '', 1181); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/resource/oss/changeStatus', 'PUT', '', '', '', 1185); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/resource/oss/list', 'GET', '', '', '', 1180); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/resource/oss/uploadFile', 'POST', '', '', '', 1186); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/api', 'POST', '', '', '', 1104); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/api', 'PUT', '', '', '', 1105); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/api/:id', 'DELETE', '', '', '', 1106); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/api/:id', 'GET', '', '', '', 1103); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/api/all', 'GET', '', '', '', 1101); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/api/getPolicyPathByRoleId', 'GET', '', '', '', 1102); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/api/list', 'GET', '', '', '', 1100); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/config', 'POST', '', '', '', 1110); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/config', 'PUT', '', '', '', 1111); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/config/:configId', 'DELETE', '', '', '', 1112); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/config/:configId', 'GET', '', '', '', 1109); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/config/configKey', 'GET', '', '', '', 1108); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/config/list', 'GET', '', '', '', 1107); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dept', 'POST', '', '', '', 1117); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dept', 'PUT', '', '', '', 1118); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dept/:deptId', 'DELETE', '', '', '', 1119); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dept/:deptId', 'GET', '', '', '', 1114); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dept/deptTree', 'GET', '', '', '', 1116); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dept/list', 'GET', '', '', '', 1113); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dept/roleDeptTreeSelect/:roleId', 'GET', '', '', '', 1115); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dict/data', 'POST', '', '', '', 1129); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dict/data', 'PUT', '', '', '', 1130); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dict/data/:dictCode', 'DELETE', '', '', '', 1131); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dict/data/:dictCode', 'GET', '', '', '', 1128); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dict/data/list', 'GET', '', '', '', 1126); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dict/data/type', 'GET', '', '', '', 1127); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dict/type', 'POST', '', '', '', 1122); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dict/type', 'PUT', '', '', '', 1123); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dict/type/:dictId', 'DELETE', '', '', '', 1124); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dict/type/:dictId', 'GET', '', '', '', 1121); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dict/type/export', 'GET', '', '', '', 1125); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/dict/type/list', 'GET', '', '', '', 1120); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/menu', 'POST', '', '', '', 1173); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/menu', 'PUT', '', '', '', 1174); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/menu/:menuId', 'DELETE', '', '', '', 1175); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/menu/:menuId', 'GET', '', '', '', 1172); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/menu/list', 'GET', '', '', '', 1171); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/menu/menuPaths', 'GET', '', '', '', 1170); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/menu/menuRole', 'GET', '', '', '', 1168); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/menu/menuTreeSelect', 'GET', '', '', '', 1167); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/menu/roleMenuTreeSelect/:roleId', 'GET', '', '', '', 1169); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/notice', 'POST', '', '', '', 1177); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/notice', 'PUT', '', '', '', 1178); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/notice/:noticeId', 'DELETE', '', '', '', 1179); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/notice/list', 'GET', '', '', '', 1176); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/post', 'POST', '', '', '', 1189); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/post', 'PUT', '', '', '', 1190); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/post/:postId', 'DELETE', '', '', '', 1191); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/post/:postId', 'GET', '', '', '', 1188); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/post/list', 'GET', '', '', '', 1187); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/role', 'POST', '', '', '', 1194); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/role', 'PUT', '', '', '', 1195); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/role/:roleId', 'DELETE', '', '', '', 1196); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/role/:roleId', 'GET', '', '', '', 1193); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/role/changeStatus', 'PUT', '', '', '', 1197); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/role/dataScope', 'PUT', '', '', '', 1198); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/role/export', 'GET', '', '', '', 1199); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/role/list', 'GET', '', '', '', 1192); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/user', 'POST', '', '', '', 1208); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/user', 'PUT', '', '', '', 1209); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/user/:userId', 'DELETE', '', '', '', 1202); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/user/avatar', 'POST', '', '', '', 1203); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/user/changeStatus', 'PUT', '', '', '', 1201); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/user/export', 'GET', '', '', '', 1210); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/user/getById/:userId', 'GET', '', '', '', 1205); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/user/getInit', 'GET', '', '', '', 1206); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/user/getRoPo', 'GET', '', '', '', 1207); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/user/list', 'GET', '', '', '', 1200); -INSERT INTO `casbin_rule` VALUES ('p', 'admin', '/system/user/pwd', 'PUT', '', '', '', 1204); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/develop/code/gen/preview/:tableId', 'GET', '', '', '', 1420); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/develop/code/table/db/list', 'GET', '', '', '', 1415); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/develop/code/table/info/:tableId', 'GET', '', '', '', 1417); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/develop/code/table/info/tableName', 'GET', '', '', '', 1418); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/develop/code/table/list', 'GET', '', '', '', 1416); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/develop/code/table/tableTree', 'GET', '', '', '', 1419); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/job/:jobId', 'GET', '', '', '', 1422); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/job/list', 'GET', '', '', '', 1421); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/log/logJob/list', 'GET', '', '', '', 1425); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/log/logLogin/list', 'GET', '', '', '', 1423); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/log/logOper/list', 'GET', '', '', '', 1424); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/resource/email/:mailId', 'GET', '', '', '', 1427); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/resource/email/list', 'GET', '', '', '', 1426); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/resource/oss/:ossId', 'GET', '', '', '', 1436); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/resource/oss/list', 'GET', '', '', '', 1435); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/api/:id', 'GET', '', '', '', 1402); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/api/all', 'GET', '', '', '', 1400); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/api/getPolicyPathByRoleId', 'GET', '', '', '', 1401); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/api/list', 'GET', '', '', '', 1399); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/config/:configId', 'GET', '', '', '', 1405); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/config/configKey', 'GET', '', '', '', 1404); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/config/list', 'GET', '', '', '', 1403); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/dept/:deptId', 'GET', '', '', '', 1407); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/dept/deptTree', 'GET', '', '', '', 1409); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/dept/list', 'GET', '', '', '', 1406); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/dept/roleDeptTreeSelect/:roleId', 'GET', '', '', '', 1408); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/dict/data/:dictCode', 'GET', '', '', '', 1414); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/dict/data/list', 'GET', '', '', '', 1412); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/dict/data/type', 'GET', '', '', '', 1413); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/dict/type/:dictId', 'GET', '', '', '', 1411); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/dict/type/list', 'GET', '', '', '', 1410); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/menu/:menuId', 'GET', '', '', '', 1433); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/menu/list', 'GET', '', '', '', 1432); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/menu/menuPaths', 'GET', '', '', '', 1431); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/menu/menuRole', 'GET', '', '', '', 1429); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/menu/menuTreeSelect', 'GET', '', '', '', 1428); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/menu/roleMenuTreeSelect/:roleId', 'GET', '', '', '', 1430); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/notice/list', 'GET', '', '', '', 1434); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/post/:postId', 'GET', '', '', '', 1438); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/post/list', 'GET', '', '', '', 1437); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/role/:roleId', 'GET', '', '', '', 1440); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/role/list', 'GET', '', '', '', 1439); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/user/avatar', 'POST', '', '', '', 1442); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/user/getById/:userId', 'GET', '', '', '', 1443); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/user/getInit', 'GET', '', '', '', 1444); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/user/getRoPo', 'GET', '', '', '', 1445); -INSERT INTO `casbin_rule` VALUES ('p', 'manage', '/system/user/list', 'GET', '', '', '', 1441); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/develop/code/gen/code/:tableId', 'GET', '', '', 2190); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/develop/code/gen/configure/:tableId', 'GET', '', '', 2191); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/develop/code/gen/preview/:tableId', 'GET', '', '', 2189); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/develop/code/table', 'POST', '', '', 2186); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/develop/code/table', 'PUT', '', '', 2187); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/develop/code/table/:tableId', 'DELETE', '', '', 2188); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/develop/code/table/db/list', 'GET', '', '', 2181); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/develop/code/table/info/:tableId', 'GET', '', '', 2183); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/develop/code/table/info/tableName', 'GET', '', '', 2184); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/develop/code/table/list', 'GET', '', '', 2182); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/develop/code/table/tableTree', 'GET', '', '', 2185); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/job', 'POST', '', '', 2193); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/job', 'PUT', '', '', 2194); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/job/:jobId', 'DELETE', '', '', 2196); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/job/:jobId', 'GET', '', '', 2195); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/job/changeStatus', 'PUT', '', '', 2199); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/job/list', 'GET', '', '', 2192); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/job/start/:jobId', 'GET', '', '', 2198); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/job/stop/:jobId', 'GET', '', '', 2197); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/log/logJob/:logId', 'DELETE', '', '', 2208); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/log/logJob/all', 'DELETE', '', '', 2207); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/log/logJob/list', 'GET', '', '', 2206); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/log/logLogin/:infoId', 'DELETE', '', '', 2201); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/log/logLogin/all', 'DELETE', '', '', 2202); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/log/logLogin/list', 'GET', '', '', 2200); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/log/logOper/:operId', 'DELETE', '', '', 2204); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/log/logOper/all', 'DELETE', '', '', 2205); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/log/logOper/list', 'GET', '', '', 2203); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/resource/email', 'POST', '', '', 2211); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/resource/email', 'PUT', '', '', 2212); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/resource/email/:mailId', 'DELETE', '', '', 2213); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/resource/email/:mailId', 'GET', '', '', 2210); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/resource/email/changeStatus', 'PUT', '', '', 2214); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/resource/email/debugMail', 'POST', '', '', 2215); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/resource/email/list', 'GET', '', '', 2209); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/resource/oss', 'POST', '', '', 2231); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/resource/oss', 'PUT', '', '', 2232); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/resource/oss/:ossId', 'DELETE', '', '', 2233); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/resource/oss/:ossId', 'GET', '', '', 2230); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/resource/oss/changeStatus', 'PUT', '', '', 2234); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/resource/oss/list', 'GET', '', '', 2229); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/resource/oss/uploadFile', 'POST', '', '', 2235); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/api', 'POST', '', '', 2153); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/api', 'PUT', '', '', 2154); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/api/:id', 'DELETE', '', '', 2155); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/api/:id', 'GET', '', '', 2152); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/api/all', 'GET', '', '', 2150); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/api/getPolicyPathByRoleId', 'GET', '', '', 2151); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/api/list', 'GET', '', '', 2149); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/config', 'POST', '', '', 2159); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/config', 'PUT', '', '', 2160); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/config/:configId', 'DELETE', '', '', 2161); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/config/:configId', 'GET', '', '', 2158); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/config/configKey', 'GET', '', '', 2157); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/config/list', 'GET', '', '', 2156); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dept', 'POST', '', '', 2166); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dept', 'PUT', '', '', 2167); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dept/:deptId', 'DELETE', '', '', 2168); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dept/:deptId', 'GET', '', '', 2163); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dept/deptTree', 'GET', '', '', 2165); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dept/list', 'GET', '', '', 2162); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dept/roleDeptTreeSelect/:roleId', 'GET', '', '', 2164); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dict/data', 'POST', '', '', 2178); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dict/data', 'PUT', '', '', 2179); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dict/data/:dictCode', 'DELETE', '', '', 2180); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dict/data/:dictCode', 'GET', '', '', 2177); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dict/data/list', 'GET', '', '', 2175); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dict/data/type', 'GET', '', '', 2176); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dict/type', 'POST', '', '', 2171); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dict/type', 'PUT', '', '', 2172); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dict/type/:dictId', 'DELETE', '', '', 2173); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dict/type/:dictId', 'GET', '', '', 2170); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dict/type/export', 'GET', '', '', 2174); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/dict/type/list', 'GET', '', '', 2169); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/menu', 'POST', '', '', 2222); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/menu', 'PUT', '', '', 2223); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/menu/:menuId', 'DELETE', '', '', 2224); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/menu/:menuId', 'GET', '', '', 2221); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/menu/list', 'GET', '', '', 2220); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/menu/menuPaths', 'GET', '', '', 2219); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/menu/menuRole', 'GET', '', '', 2217); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/menu/menuTreeSelect', 'GET', '', '', 2216); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/menu/roleMenuTreeSelect/:roleId', 'GET', '', '', 2218); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/notice', 'POST', '', '', 2226); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/notice', 'PUT', '', '', 2227); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/notice/:noticeId', 'DELETE', '', '', 2228); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/notice/list', 'GET', '', '', 2225); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/post', 'POST', '', '', 2238); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/post', 'PUT', '', '', 2239); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/post/:postId', 'DELETE', '', '', 2240); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/post/:postId', 'GET', '', '', 2237); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/post/list', 'GET', '', '', 2236); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/role', 'POST', '', '', 2243); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/role', 'PUT', '', '', 2244); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/role/:roleId', 'DELETE', '', '', 2245); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/role/:roleId', 'GET', '', '', 2242); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/role/changeStatus', 'PUT', '', '', 2246); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/role/dataScope', 'PUT', '', '', 2247); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/role/export', 'GET', '', '', 2248); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/role/list', 'GET', '', '', 2241); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/tenant', 'POST', '', '', 2251); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/tenant', 'PUT', '', '', 2252); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/tenant/:tenantId', 'DELETE', '', '', 2253); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/tenant/:tenantId', 'GET', '', '', 2250); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/tenant/list', 'GET', '', '', 2249); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/tenant/lists', 'GET', '', '', 2254); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/user', 'POST', '', '', 2263); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/user', 'PUT', '', '', 2264); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/user/:userId', 'DELETE', '', '', 2257); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/user/avatar', 'POST', '', '', 2258); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/user/changeStatus', 'PUT', '', '', 2256); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/user/export', 'GET', '', '', 2265); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/user/getById/:userId', 'GET', '', '', 2260); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/user/getInit', 'GET', '', '', 2261); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/user/getRoPo', 'GET', '', '', 2262); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/user/list', 'GET', '', '', 2255); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'admin', '/system/user/pwd', 'PUT', '', '', 2259); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/develop/code/gen/preview/:tableId', 'GET', '', '', 2121); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/develop/code/table/db/list', 'GET', '', '', 2116); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/develop/code/table/info/:tableId', 'GET', '', '', 2118); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/develop/code/table/info/tableName', 'GET', '', '', 2119); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/develop/code/table/list', 'GET', '', '', 2117); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/develop/code/table/tableTree', 'GET', '', '', 2120); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/job/:jobId', 'GET', '', '', 2123); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/job/list', 'GET', '', '', 2122); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/log/logJob/list', 'GET', '', '', 2126); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/log/logLogin/list', 'GET', '', '', 2124); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/log/logOper/list', 'GET', '', '', 2125); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/resource/email/:mailId', 'GET', '', '', 2128); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/resource/email/list', 'GET', '', '', 2127); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/resource/oss/:ossId', 'GET', '', '', 2137); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/resource/oss/list', 'GET', '', '', 2136); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/api/:id', 'GET', '', '', 2103); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/api/all', 'GET', '', '', 2101); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/api/getPolicyPathByRoleId', 'GET', '', '', 2102); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/api/list', 'GET', '', '', 2100); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/config/:configId', 'GET', '', '', 2106); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/config/configKey', 'GET', '', '', 2105); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/config/list', 'GET', '', '', 2104); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/dept/:deptId', 'GET', '', '', 2108); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/dept/deptTree', 'GET', '', '', 2110); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/dept/list', 'GET', '', '', 2107); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/dept/roleDeptTreeSelect/:roleId', 'GET', '', '', 2109); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/dict/data/:dictCode', 'GET', '', '', 2115); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/dict/data/list', 'GET', '', '', 2113); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/dict/data/type', 'GET', '', '', 2114); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/dict/type/:dictId', 'GET', '', '', 2112); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/dict/type/list', 'GET', '', '', 2111); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/menu/:menuId', 'GET', '', '', 2134); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/menu/list', 'GET', '', '', 2133); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/menu/menuPaths', 'GET', '', '', 2132); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/menu/menuRole', 'GET', '', '', 2130); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/menu/menuTreeSelect', 'GET', '', '', 2129); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/menu/roleMenuTreeSelect/:roleId', 'GET', '', '', 2131); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/notice/list', 'GET', '', '', 2135); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/post/:postId', 'GET', '', '', 2139); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/post/list', 'GET', '', '', 2138); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/role/:roleId', 'GET', '', '', 2141); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/role/list', 'GET', '', '', 2140); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/tenant/:tenantId', 'GET', '', '', 2143); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/tenant/list', 'GET', '', '', 2142); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/tenant/lists', 'GET', '', '', 2144); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/user/getById/:userId', 'GET', '', '', 2146); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/user/getInit', 'GET', '', '', 2147); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/user/getRoPo', 'GET', '', '', 2148); +INSERT INTO `casbin_rule` VALUES ('p', '1', 'manage', '/system/user/list', 'GET', '', '', 2145); -- ---------------------------- -- Table structure for dev_gen_table_columns @@ -228,7 +237,7 @@ CREATE TABLE `dev_gen_table_columns` ( `link_label_id` varchar(191) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `link_label_name` varchar(191) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY (`column_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 78 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; +) ENGINE = InnoDB AUTO_INCREMENT = 89 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Records of dev_gen_table_columns @@ -243,22 +252,6 @@ INSERT INTO `dev_gen_table_columns` VALUES (7, 1, '', 'status', '状态', 'varch INSERT INTO `dev_gen_table_columns` VALUES (8, 1, '', 'create_time', '', 'datetime', '', 'Time', 'CreateTime', 'createTime', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'datetime', '', 8, '', '', '', '', ''); INSERT INTO `dev_gen_table_columns` VALUES (9, 1, '', 'update_time', '', 'datetime', '', 'Time', 'UpdateTime', 'updateTime', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'datetime', '', 9, '', '', '', '', ''); INSERT INTO `dev_gen_table_columns` VALUES (10, 1, '', 'delete_time', '', 'datetime', '', 'Time', 'DeleteTime', 'deleteTime', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'datetime', '', 10, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (11, 2, '', 'info_id', '', 'bigint(20)', '', 'int64', 'InfoId', 'infoId', '', '1', '', '0', '1', '0', '1', '1', 'EQ', 'input', '', 1, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (12, 2, '', 'username', '用户名', 'varchar(128)', '', 'string', 'Username', 'username', '', '0', '', '1', '1', '1', '1', '1', 'LIKE', 'input', '', 2, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (13, 2, '', 'status', '状态', 'varchar(1)', '', 'string', 'Status', 'status', '', '0', '', '1', '1', '1', '1', '1', 'EQ', 'radio', 'sys_normal_disable', 3, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (14, 2, '', 'ipaddr', 'ip地址', 'varchar(255)', '', 'string', 'Ipaddr', 'ipaddr', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'input', '', 4, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (15, 2, '', 'login_location', '归属地', 'varchar(255)', '', 'string', 'LoginLocation', 'loginLocation', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'input', '', 5, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (16, 2, '', 'browser', '浏览器', 'varchar(255)', '', 'string', 'Browser', 'browser', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'input', '', 6, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (17, 2, '', 'os', '系统', 'varchar(255)', '', 'string', 'Os', 'os', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'input', '', 7, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (18, 2, '', 'platform', '平台', 'varchar(255)', '', 'string', 'Platform', 'platform', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'input', '', 8, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (19, 2, '', 'login_time', '登录时间', 'timestamp', '', 'Time', 'LoginTime', 'loginTime', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'datetime', '', 9, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (20, 2, '', 'create_by', '创建人', 'varchar(128)', '', 'string', 'CreateBy', 'createBy', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'input', '', 10, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (21, 2, '', 'update_by', '更新者', 'varchar(128)', '', 'string', 'UpdateBy', 'updateBy', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'input', '', 11, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (22, 2, '', 'remark', '', 'varchar(255)', '', 'string', 'Remark', 'remark', '', '0', '', '0', '1', '1', '1', '0', 'EQ', 'input', '', 12, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (23, 2, '', 'msg', '', 'varchar(255)', '', 'string', 'Msg', 'msg', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'input', '', 13, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (24, 2, '', 'create_time', '', 'datetime', '', 'Time', 'CreateTime', 'createTime', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'datetime', '', 14, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (25, 2, '', 'update_time', '', 'datetime', '', 'Time', 'UpdateTime', 'updateTime', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'datetime', '', 15, '', '', '', '', ''); -INSERT INTO `dev_gen_table_columns` VALUES (26, 2, '', 'delete_time', '', 'datetime', '', 'Time', 'DeleteTime', 'deleteTime', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'datetime', '', 16, '', '', '', '', ''); INSERT INTO `dev_gen_table_columns` VALUES (27, 3, '', 'delete_time', '', 'datetime', '', 'Time', 'DeleteTime', 'deleteTime', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'datetime', '', 13, '', '', '', '', ''); INSERT INTO `dev_gen_table_columns` VALUES (28, 4, '', 'config_value', 'ConfigValue', 'varchar(255)', '', 'string', 'ConfigValue', 'configValue', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'input', '', 4, '', '', '', '', ''); INSERT INTO `dev_gen_table_columns` VALUES (29, 3, '', 'business_type', '0其它 1新增 2修改 3删除', 'varchar(1)', '', 'string', 'BusinessType', 'businessType', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'select', '', 3, '', '', '', '', ''); @@ -310,6 +303,13 @@ INSERT INTO `dev_gen_table_columns` VALUES (74, 7, '', 'update_time', '', 'datet INSERT INTO `dev_gen_table_columns` VALUES (75, 7, '', 'from', '发件人', 'varchar(191)', '', 'string', 'From', 'from', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'input', '', 4, '', '', '', '', ''); INSERT INTO `dev_gen_table_columns` VALUES (76, 7, '', 'is_ssl', '开启ssl', 'tinyint(1)', '', 'int', 'IsSsl', 'isSsl', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'input', '', 7, '', '', '', '', ''); INSERT INTO `dev_gen_table_columns` VALUES (77, 7, '', 'mail_id', '主键编码', 'bigint(20)', 'Json', 'int64', 'MailId', 'mailId', '', '1', '1', '0', '1', '0', '1', '1', 'EQ', 'input', '', 1, '', '', '', '', ''); +INSERT INTO `dev_gen_table_columns` VALUES (82, 9, '', 'expire_time', '过期时间', 'datetime', '', 'Time', 'ExpireTime', 'expireTime', '', '0', '', '0', '1', '1', '1', '1', 'EQ', 'datetime', '', 7, '', '', '', '', ''); +INSERT INTO `dev_gen_table_columns` VALUES (83, 9, '', 'delete_time', 'DeleteTime', 'datetime', '', 'Time', 'DeleteTime', 'deleteTime', '', '0', '', '0', '0', '0', '0', '0', 'EQ', 'datetime', '', 3, '', '', '', '', ''); +INSERT INTO `dev_gen_table_columns` VALUES (84, 9, '', 'create_time', 'CreateTime', 'datetime', '', 'Time', 'CreateTime', 'createTime', '', '0', '', '0', '0', '0', '1', '0', 'EQ', 'datetime', '', 1, '', '', '', '', ''); +INSERT INTO `dev_gen_table_columns` VALUES (85, 9, '', 'update_time', 'UpdateTime', 'datetime', '', 'Time', 'UpdateTime', 'updateTime', '', '0', '', '0', '0', '0', '0', '0', 'EQ', 'datetime', '', 2, '', '', '', '', ''); +INSERT INTO `dev_gen_table_columns` VALUES (86, 9, '', 'tenant_name', '租户名', 'varchar(255)', '', 'string', 'TenantName', 'tenantName', '', '0', '', '1', '1', '1', '1', '1', 'LIKE', 'input', '', 5, '', '', '', '', ''); +INSERT INTO `dev_gen_table_columns` VALUES (87, 9, '', 'remark', '备注', 'varchar(255)', '', 'string', 'Remark', 'remark', '', '0', '', '0', '1', '1', '1', '0', 'EQ', 'input', '', 6, '', '', '', '', ''); +INSERT INTO `dev_gen_table_columns` VALUES (88, 9, '', 'id', 'Id', 'bigint(20)', '', 'int64', 'Id', 'id', '', '1', '1', '0', '0', '0', '1', '1', 'EQ', 'input', '', 4, '', '', '', '', ''); -- ---------------------------- -- Table structure for dev_gen_tables @@ -326,9 +326,6 @@ CREATE TABLE `dev_gen_tables` ( `business_name` varchar(191) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `function_name` varchar(191) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `function_author` varchar(191) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `tree_code` varchar(191) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `tree_parent_code` varchar(191) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `tree_name` varchar(191) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `options` varchar(191) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `remark` varchar(191) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `pk_column` varchar(191) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, @@ -338,18 +335,20 @@ CREATE TABLE `dev_gen_tables` ( `update_time` datetime NULL DEFAULT NULL, `delete_time` datetime NULL DEFAULT NULL, PRIMARY KEY (`table_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; +) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Records of dev_gen_tables -- ---------------------------- -INSERT INTO `dev_gen_tables` VALUES (1, 'log_jobs', 'LogJobs', 'LogJobs', 'crud', 'admin', 'log-jobs', 'logJobs', 'LogJobs', 'panda', '', '', '', '', '', 'log_id', 'LogId', 'logId', '2022-01-06 14:44:14', '2022-01-06 14:44:14', '2022-01-10 11:58:43'); -INSERT INTO `dev_gen_tables` VALUES (2, 'log_logins', 'LogLogins', 'LogLogins', 'crud', 'log', 'log-logins', 'logLogins', '登录日志', 'pandax', '', '', '', '', '', 'info_id', 'InfoId', 'infoId', '2022-01-06 14:44:27', '2022-01-26 14:45:46', NULL); -INSERT INTO `dev_gen_tables` VALUES (3, 'log_opers', 'LogOpers', 'LogOpers', 'crud', 'admin', 'log-opers', 'logOpers', 'LogOpers', 'panda', '', '', '', '', '', 'oper_id', 'OperId', 'operId', '2022-01-06 15:02:45', '2022-01-06 15:02:45', NULL); -INSERT INTO `dev_gen_tables` VALUES (4, 'sys_configs', 'SysConfigs', 'SysConfigs', 'crud', 'admin', 'sys-configs', 'sysConfigs', 'SysConfigs', 'panda', '', '', '', '', '', 'config_id', 'ConfigId', 'configId', '2022-01-06 15:02:45', '2022-01-06 15:02:45', '2022-01-12 15:56:49'); -INSERT INTO `dev_gen_tables` VALUES (5, 'res_osses', 'ResOsses', 'ResOsses', 'crud', 'resource', 'res-osses', 'oss', 'ResOsses', 'panda', '', '', '', '', '', 'oss_id', 'OssId', 'ossId', '2022-01-13 15:12:14', '2022-01-13 15:39:11', NULL); -INSERT INTO `dev_gen_tables` VALUES (6, 'res_osses', 'ResOsses', 'ResOsses', 'crud', 'admin', 'res-osses', 'resOsses', 'ResOsses', 'panda', '', '', '', '', '', 'oss_id', 'OssId', 'ossId', '2022-01-13 15:12:27', '2022-01-13 15:12:27', '2022-01-13 15:12:41'); -INSERT INTO `dev_gen_tables` VALUES (7, 'res_emails', 'ResEmails', 'ResEmails', 'crud', 'resource', 'res-emails', 'email', 'ResEmails', 'panda', '', '', '', '', '', 'mail_id', 'MailId', 'mailId', '2022-01-14 15:20:27', '2022-01-26 15:56:37', NULL); +INSERT INTO `dev_gen_tables` VALUES (1, 'log_jobs', 'LogJobs', 'LogJobs', 'crud', 'admin', 'log-jobs', 'logJobs', 'LogJobs', 'panda', '', '', 'log_id', 'LogId', 'logId', '2022-01-06 14:44:14', '2022-01-06 14:44:14', '2022-01-10 11:58:43'); +INSERT INTO `dev_gen_tables` VALUES (2, 'log_logins', 'LogLogins', 'LogLogins', 'crud', 'log', 'log-logins', 'logLogins', 'logLogins', 'pandax', '', '', 'info_id', 'InfoId', 'infoId', '2022-01-06 14:44:27', '2022-01-26 14:45:46', '2022-07-16 18:24:04'); +INSERT INTO `dev_gen_tables` VALUES (3, 'log_opers', 'LogOpers', 'LogOpers', 'crud', 'admin', 'log-opers', 'logOpers', 'LogOpers', 'panda', '', '', 'oper_id', 'OperId', 'operId', '2022-01-06 15:02:45', '2022-01-06 15:02:45', NULL); +INSERT INTO `dev_gen_tables` VALUES (4, 'sys_configs', 'SysConfigs', 'SysConfigs', 'crud', 'admin', 'sys-configs', 'sysConfigs', 'SysConfigs', 'panda', '', '', 'config_id', 'ConfigId', 'configId', '2022-01-06 15:02:45', '2022-01-06 15:02:45', '2022-01-12 15:56:49'); +INSERT INTO `dev_gen_tables` VALUES (5, 'res_osses', 'ResOsses', 'ResOsses', 'crud', 'resource', 'res-osses', 'oss', 'ResOsses', 'panda', '', '', 'oss_id', 'OssId', 'ossId', '2022-01-13 15:12:14', '2022-01-13 15:39:11', NULL); +INSERT INTO `dev_gen_tables` VALUES (6, 'res_osses', 'ResOsses', 'ResOsses', 'crud', 'admin', 'res-osses', 'resOsses', 'ResOsses', 'panda', '', '', 'oss_id', 'OssId', 'ossId', '2022-01-13 15:12:27', '2022-01-13 15:12:27', '2022-01-13 15:12:41'); +INSERT INTO `dev_gen_tables` VALUES (7, 'res_emails', 'ResEmails', 'ResEmails', 'crud', 'resource', 'res-emails', 'email', 'ResEmails', 'panda', '', '', 'mail_id', 'MailId', 'mailId', '2022-01-14 15:20:27', '2022-01-26 15:56:37', NULL); +INSERT INTO `dev_gen_tables` VALUES (8, 'sys_tenants', '租户', 'SysTenants', 'crud', 'system', 'sys-tenants', 'tenant', 'Tenant', 'panda', '', '', 'tenant_id', 'TenantId', 'tenantId', '2022-07-14 16:52:28', '2022-07-16 16:09:50', '2022-07-16 18:09:40'); +INSERT INTO `dev_gen_tables` VALUES (9, 'sys_tenants', '租户', 'SysTenants', 'crud', 'system', 'sys-tenants', 'tenants', 'Tenants', 'panda', '', '', 'id', 'Id', 'id', '2022-07-16 18:14:53', '2022-07-16 22:45:33', NULL); -- ---------------------------- -- Table structure for log_jobs @@ -367,7 +366,7 @@ CREATE TABLE `log_jobs` ( `update_time` datetime NULL DEFAULT NULL, `delete_time` datetime NULL DEFAULT NULL, PRIMARY KEY (`log_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1499 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Records of log_jobs @@ -395,7 +394,11 @@ CREATE TABLE `log_logins` ( `update_time` datetime NULL DEFAULT NULL, `delete_time` datetime NULL DEFAULT NULL, PRIMARY KEY (`info_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1500 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; +) ENGINE = InnoDB AUTO_INCREMENT = 3402 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of log_logins +-- ---------------------------- -- ---------------------------- -- Table structure for log_opers @@ -416,7 +419,13 @@ CREATE TABLE `log_opers` ( `update_time` datetime NULL DEFAULT NULL, `delete_time` datetime NULL DEFAULT NULL, PRIMARY KEY (`oper_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 534 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; +) ENGINE = InnoDB AUTO_INCREMENT = 914 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of log_opers +-- ---------------------------- +INSERT INTO `log_opers` VALUES (912, '清空操作日志信息', '3', 'DELETE', 'panda', '/log/logOper/all', '127.0.0.1', '内部IP', '', '0', '2022-07-18 11:36:32', '2022-07-18 11:36:32', NULL); +INSERT INTO `log_opers` VALUES (913, '清空登录日志信息', '3', 'DELETE', 'panda', '/log/logLogin/all', '127.0.0.1', '内部IP', '', '0', '2022-07-18 11:37:43', '2022-07-18 11:37:43', NULL); -- ---------------------------- -- Table structure for res_emails @@ -438,6 +447,11 @@ CREATE TABLE `res_emails` ( PRIMARY KEY (`mail_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; +-- ---------------------------- +-- Records of res_emails +-- ---------------------------- +INSERT INTO `res_emails` VALUES (1, '0', 'smtp.163.com', 25, '18610165312@163.com', '熊猫', 'DCXZCAGTCMSEGPZL', 0, '0', '2022-01-14 16:14:37', '2022-01-17 10:27:57', NULL); + -- ---------------------------- -- Table structure for res_osses -- ---------------------------- @@ -460,6 +474,11 @@ CREATE TABLE `res_osses` ( PRIMARY KEY (`oss_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; +-- ---------------------------- +-- Records of res_osses +-- ---------------------------- +INSERT INTO `res_osses` VALUES (1, '0', '', 'LTAIdAnE8qDuKnZe', 'F3NYT7IWukPrtF4o4832uQpbfkm6Ye', 'xmzimg', 'oss-cn-qingdao.aliyuncs.com', 'alioss', '', '阿里云对象存储1', '0', '2022-01-13 17:02:14', '2022-01-17 10:12:30', NULL); + -- ---------------------------- -- Table structure for sys_apis -- ---------------------------- @@ -474,7 +493,7 @@ CREATE TABLE `sys_apis` ( `api_group` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'api组', `method` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法', PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 113 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; +) ENGINE = InnoDB AUTO_INCREMENT = 124 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of sys_apis @@ -565,17 +584,17 @@ INSERT INTO `sys_apis` VALUES (83, '2021-12-24 15:45:33', '2021-12-24 15:45:33', INSERT INTO `sys_apis` VALUES (84, '2021-12-24 15:45:33', '2021-12-24 15:45:33', NULL, '/system/notice', '修改通知信息', 'notice', 'PUT'); INSERT INTO `sys_apis` VALUES (85, '2021-12-24 15:45:33', '2021-12-24 16:33:48', NULL, '/system/notice/:noticeId', '删除通知信息', 'notice', 'DELETE'); INSERT INTO `sys_apis` VALUES (86, '2021-12-24 22:40:19', '2021-12-24 22:40:19', NULL, '/job/changeStatus', '修改状态', 'job', 'PUT'); -INSERT INTO `sys_apis` VALUES (88, '2022-01-02 13:53:06', '2022-01-02 13:53:06', NULL, '/develop/code/table/db/list', '表列表', 'gen', 'GET'); +INSERT INTO `sys_apis` VALUES (88, '2022-01-02 13:53:06', '2022-07-18 10:57:58', NULL, '/develop/code/table/db/list', '数据库表列表', 'gen', 'GET'); INSERT INTO `sys_apis` VALUES (89, '2022-01-02 13:53:44', '2022-01-02 13:53:44', NULL, '/develop/code/table/list', '表列表', 'gen', 'GET'); INSERT INTO `sys_apis` VALUES (90, '2022-01-02 13:54:10', '2022-01-02 13:54:10', NULL, '/develop/code/table/info/:tableId', '表信息', 'gen', 'GET'); -INSERT INTO `sys_apis` VALUES (91, '2022-01-02 13:54:42', '2022-01-02 13:54:42', NULL, '/develop/code/table/info/tableName', '表信息', 'gen', 'GET'); +INSERT INTO `sys_apis` VALUES (91, '2022-01-02 13:54:42', '2022-07-18 10:58:35', NULL, '/develop/code/table/info/tableName', '表名获取表信息', 'gen', 'GET'); INSERT INTO `sys_apis` VALUES (92, '2022-01-02 13:55:13', '2022-01-02 13:55:13', NULL, '/develop/code/table/tableTree', '表树', 'gen', 'GET'); INSERT INTO `sys_apis` VALUES (93, '2022-01-02 13:56:37', '2022-01-02 13:56:37', NULL, '/develop/code/table', '导入表', 'gen', 'POST'); INSERT INTO `sys_apis` VALUES (94, '2022-01-02 13:57:36', '2022-01-02 13:57:36', NULL, '/develop/code/table', '修改代码生成信息', 'gen', 'PUT'); INSERT INTO `sys_apis` VALUES (95, '2022-01-02 13:58:25', '2022-01-02 13:58:25', NULL, '/develop/code/table/:tableId', '删除表数据', 'gen', 'DELETE'); INSERT INTO `sys_apis` VALUES (96, '2022-01-02 13:59:07', '2022-01-02 13:59:07', NULL, '/develop/code/gen/preview/:tableId', '预览代码', 'gen', 'GET'); INSERT INTO `sys_apis` VALUES (97, '2022-01-02 13:59:43', '2022-01-02 13:59:43', NULL, '/develop/code/gen/code/:tableId', '生成代码', 'gen', 'GET'); -INSERT INTO `sys_apis` VALUES (98, '2022-01-02 14:00:10', '2022-01-02 14:00:10', NULL, '/develop/code/gen/menuAndApi/:tableId', '生成api菜单', 'gen', 'GET'); +INSERT INTO `sys_apis` VALUES (98, '2022-01-02 14:00:10', '2022-07-17 01:19:42', NULL, '/develop/code/gen/configure/:tableId', '生成api菜单', 'gen', 'GET'); INSERT INTO `sys_apis` VALUES (99, '2022-01-13 16:44:44', '2022-01-13 16:45:27', NULL, '/resource/oss/list', '获取oss列表', 'oss', 'GET'); INSERT INTO `sys_apis` VALUES (100, '2022-01-13 16:44:44', '2022-01-13 16:44:44', NULL, '/resource/oss/:ossId', '获取oss', 'oss', 'GET'); INSERT INTO `sys_apis` VALUES (101, '2022-01-13 16:44:44', '2022-01-13 16:44:44', NULL, '/resource/oss', '添加oss', 'oss', 'POST'); @@ -590,6 +609,12 @@ INSERT INTO `sys_apis` VALUES (109, '2022-01-14 15:32:21', '2022-01-14 15:32:21' INSERT INTO `sys_apis` VALUES (110, '2022-01-14 15:32:53', '2022-01-14 15:32:53', NULL, '/resource/email/:mailId', '删除邮件', 'mail', 'DELETE'); INSERT INTO `sys_apis` VALUES (111, '2022-01-14 17:11:42', '2022-01-14 17:11:42', NULL, '/resource/email/changeStatus', '修改状态', 'mail', 'PUT'); INSERT INTO `sys_apis` VALUES (112, '2022-01-14 17:12:17', '2022-01-14 17:12:17', NULL, '/resource/email/debugMail', '发送邮件调试', 'mail', 'POST'); +INSERT INTO `sys_apis` VALUES (113, '2022-07-15 18:06:27', '2022-07-15 18:06:27', NULL, '/system/tenant/list', '租户列表', 'tenant', 'GET'); +INSERT INTO `sys_apis` VALUES (114, '2022-07-15 18:07:16', '2022-07-15 18:07:16', NULL, '/system/tenant/:tenantId', '获取租户', 'tenant', 'GET'); +INSERT INTO `sys_apis` VALUES (115, '2022-07-15 18:07:43', '2022-07-15 18:07:43', NULL, '/system/tenant', '添加租户', 'tenant', 'POST'); +INSERT INTO `sys_apis` VALUES (116, '2022-07-15 18:08:08', '2022-07-15 18:08:08', NULL, '/system/tenant', '修改租户', 'tenant', 'PUT'); +INSERT INTO `sys_apis` VALUES (117, '2022-07-15 18:08:57', '2022-07-15 18:08:57', NULL, '/system/tenant/:tenantId', '删除租户', 'tenant', 'DELETE'); +INSERT INTO `sys_apis` VALUES (123, '2022-07-18 10:24:03', '2022-07-18 10:24:03', NULL, '/system/tenant/lists', '获取所有租户', 'tenant', 'GET'); -- ---------------------------- -- Table structure for sys_configs @@ -806,7 +831,7 @@ CREATE TABLE `sys_menus` ( `update_time` datetime NULL DEFAULT NULL, `delete_time` datetime NULL DEFAULT NULL, PRIMARY KEY (`menu_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 87 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; +) ENGINE = InnoDB AUTO_INCREMENT = 95 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of sys_menus @@ -815,7 +840,7 @@ INSERT INTO `sys_menus` VALUES (1, '系统设置', '', 0, 0, 'elementSetting', ' INSERT INTO `sys_menus` VALUES (3, '用户管理', '', 1, 1, 'elementUser', '/system/user', '/system/user/index', '1', '', 'C', '0', '1', '1', 'system:user:list', '0', 'admin', 'panda', '', '2021-12-02 14:07:56', '2021-12-28 13:32:44', NULL); INSERT INTO `sys_menus` VALUES (4, '添加用户', '', 3, 1, '', '', '', '', '', 'F', '0', '', '', 'system:user:add', '0', 'admin', '', '', '2021-12-03 13:36:33', '2021-12-03 13:36:33', NULL); INSERT INTO `sys_menus` VALUES (5, '编辑用户', '', 3, 1, '', '', '', '', '', 'F', '0', '', '', 'system:user:edit', '0', 'admin', '', '', '2021-12-03 13:48:13', '2021-12-03 13:48:13', NULL); -INSERT INTO `sys_menus` VALUES (6, '角色管理', '', 1, 1, 'elementUserFilled', '/system/role', '/system/role/index', '1', '', 'C', '0', '1', '1', 'system:role:list', '0', 'admin', 'panda', '', '2021-12-03 13:51:55', '2021-12-28 13:32:55', NULL); +INSERT INTO `sys_menus` VALUES (6, '角色管理', '', 1, 2, 'elementUserFilled', '/system/role', '/system/role/index', '1', '', 'C', '0', '1', '1', 'system:role:list', '0', '', 'panda', '', '2021-12-03 13:51:55', '2022-07-16 10:23:21', NULL); INSERT INTO `sys_menus` VALUES (7, '菜单管理', '', 1, 2, 'iconfont icon-juxingkaobei', '/system/menu', '/system/menu/index', '1', '', 'C', '0', '1', '1', 'system:menu:list', '0', 'admin', 'panda', '', '2021-12-03 13:54:44', '2021-12-28 13:33:19', NULL); INSERT INTO `sys_menus` VALUES (8, '部门管理', '', 1, 3, 'iconfont icon-jiliandongxuanzeqi', '/system/dept', '/system/dept/index', '1', '', 'C', '0', '1', '1', 'system:dept:list', '0', 'admin', 'panda', '', '2021-12-03 13:58:36', '2021-12-28 13:40:20', NULL); INSERT INTO `sys_menus` VALUES (9, '岗位管理', '', 1, 4, 'iconfont icon-neiqianshujuchucun', '/system/post', '/system/post/index', '1', '', 'C', '0', '1', '1', 'system:post:list', '0', 'admin', 'panda', '', '2021-12-03 13:54:44', '2021-12-28 13:40:31', NULL); @@ -848,7 +873,7 @@ INSERT INTO `sys_menus` VALUES (35, '导出字典类型', '', 10, 1, '', '', '', INSERT INTO `sys_menus` VALUES (36, '新增字典数据', '', 10, 1, '', '', '', '', '', 'F', '', '', '', 'system:dictD:add', '0', 'admin', '', '', '2021-12-07 09:35:09', '2021-12-07 09:35:09', NULL); INSERT INTO `sys_menus` VALUES (37, '修改字典数据', '', 10, 1, '', '', '', '', '', 'F', '', '', '', 'system:dictD:edit', '0', 'admin', '', '', '2021-12-07 09:48:04', '2021-12-07 09:48:04', NULL); INSERT INTO `sys_menus` VALUES (38, '删除字典数据', '', 10, 1, '', '', '', '', '', 'F', '', '', '', 'system:dictD:delete', '0', 'admin', '', '', '2021-12-07 09:48:42', '2021-12-07 09:48:42', NULL); -INSERT INTO `sys_menus` VALUES (39, 'API管理', '', 1, 1, 'iconfont icon-siweidaotu', '/system/api', '/system/api/index', '1', '', 'C', '0', '1', '1', 'system:api:list', '0', 'admin', '', '', '2021-12-09 09:09:13', '2021-12-09 09:09:13', NULL); +INSERT INTO `sys_menus` VALUES (39, 'API管理', '', 1, 2, 'iconfont icon-siweidaotu', '/system/api', '/system/api/index', '1', '', 'C', '0', '1', '1', 'system:api:list', '0', '', 'panda', '', '2021-12-09 09:09:13', '2022-07-16 10:23:42', NULL); INSERT INTO `sys_menus` VALUES (40, '添加api', '', 39, 1, '', '/system/api', '', '', '', 'F', '', '', '', 'system:api:add', '0', 'admin', '', '', '2021-12-09 09:09:54', '2021-12-09 09:09:54', NULL); INSERT INTO `sys_menus` VALUES (41, '编辑api', '', 39, 1, '', '/system/api', '', '', '', 'F', '', '', '', 'system:api:edit', '0', 'admin', '', '', '2021-12-09 09:10:38', '2021-12-09 09:10:38', NULL); INSERT INTO `sys_menus` VALUES (42, '删除api', '', 39, 1, '', '/system/api', '', '', '', 'F', '', '', '', 'system:api:delete', '0', 'admin', '', '', '2021-12-09 09:11:11', '2021-12-09 09:11:11', NULL); @@ -859,9 +884,9 @@ INSERT INTO `sys_menus` VALUES (46, '登录日志', '', 43, 2, 'iconfont icon--c INSERT INTO `sys_menus` VALUES (47, '服务监控', '', 44, 1, 'elementCpu', '/tool/monitor/', '/tool/monitor/index', '1', '', 'C', '0', '1', '1', 'tool:monitor:list', '0', 'admin', 'panda', '', '2021-12-03 14:12:43', '2021-12-28 13:41:25', NULL); INSERT INTO `sys_menus` VALUES (48, '定时任务', '', 44, 2, 'elementAlarmClock', '/tool/job', '/tool/job/index', '1', '', 'C', '0', '1', '1', 'tool:job:list', '0', 'admin', 'panda', '', '2021-12-16 16:48:45', '2021-12-28 13:41:59', NULL); INSERT INTO `sys_menus` VALUES (49, '开发工具', '', 0, 3, 'iconfont icon-diannao', '/develop', 'Layout', '1', '', 'M', '0', '1', '1', '', '0', 'admin', '', '', '2021-12-16 16:53:11', '2021-12-16 16:53:11', NULL); -INSERT INTO `sys_menus` VALUES (50, '表单构建', '', 49, 1, 'iconfont icon-zidingyibuju', '/develop/form', '/layout/routerView/iframes', '0', 'http://103.145.39.46:8080/form-generator/', 'C', '0', '1', '1', 'develop:form:list', '0', 'admin', 'panda', '', '2021-12-16 16:55:01', '2022-01-18 09:00:49', NULL); +INSERT INTO `sys_menus` VALUES (50, '表单构建', '', 49, 1, 'iconfont icon-zidingyibuju', '/develop/form', '/develop/form/index', '1', '', 'C', '0', '1', '1', 'develop:form:list', '0', 'admin', 'panda', '', '2021-12-16 16:55:01', '2022-07-12 18:56:18', NULL); INSERT INTO `sys_menus` VALUES (51, '代码生成', '', 49, 2, 'iconfont icon-zhongduancanshu', '/develop/code', '/develop/code/index', '1', '', 'C', '0', '1', '1', 'develop:code:list', '0', 'admin', '', '', '2021-12-16 16:56:48', '2021-12-16 16:56:48', NULL); -INSERT INTO `sys_menus` VALUES (52, '系统接口', '', 49, 3, 'iconfont icon-wenducanshu-05', '/develop/apis', '/layout/routerView/iframes', '0', 'http://103.145.39.46:8080/swagger/index.html', 'C', '0', '1', '1', 'develop:apis:list', '0', 'admin', 'panda', '', '2021-12-16 16:58:07', '2022-01-18 09:01:02', NULL); +INSERT INTO `sys_menus` VALUES (52, '系统接口', '', 49, 3, 'iconfont icon-wenducanshu-05', '/develop/apis', '/layout/routerView/iframes', '0', 'http://47.104.252.2:8080/swagger/index.html', 'C', '0', '1', '1', 'develop:apis:list', '0', '', 'panda', '', '2021-12-16 16:58:07', '2022-07-13 11:50:34', NULL); INSERT INTO `sys_menus` VALUES (53, '资源管理', '', 0, 4, 'iconfont icon-juxingkaobei', '/resource', 'Layout', '1', '', 'M', '0', '1', '1', '', '0', 'admin', '', '', '2021-12-16 17:02:06', '2021-12-16 17:02:06', NULL); INSERT INTO `sys_menus` VALUES (54, '对象存储', '', 53, 1, 'iconfont icon-chazhaobiaodanliebiao', '/resource/file', '/resource/file/index', '1', '', 'C', '0', '1', '1', 'resource:file:list', '0', 'admin', 'panda', '', '2021-12-16 17:06:04', '2022-01-13 17:30:09', NULL); INSERT INTO `sys_menus` VALUES (55, '公告通知', '', 44, 3, 'elementTicket', '/tool/notice', '/tool/notice/index', '1', '', 'C', '0', '1', '1', 'tool:notice:list', '0', 'admin', 'panda', '', '2021-12-16 22:09:11', '2021-12-28 13:42:39', NULL); @@ -896,6 +921,10 @@ INSERT INTO `sys_menus` VALUES (83, '添加', '', 57, 1, '', '', '', '', '', 'F' INSERT INTO `sys_menus` VALUES (84, '编辑', '', 57, 1, '', '', '', '', '', 'F', '', '', '', 'resource:mail:edit', '0', 'panda', '', '', '2022-01-17 11:28:37', '2022-01-17 11:28:37', NULL); INSERT INTO `sys_menus` VALUES (85, '删除', '', 57, 1, '', '', '', '', '', 'F', '', '', '', 'resource:mail:delete', '0', 'panda', '', '', '2022-01-17 11:29:09', '2022-01-17 11:29:09', NULL); INSERT INTO `sys_menus` VALUES (86, '调试', '', 57, 1, '', '', '', '', '', 'F', '', '', '', 'resource:mail:debug', '0', 'panda', '', '', '2022-01-17 11:29:46', '2022-01-17 11:29:46', NULL); +INSERT INTO `sys_menus` VALUES (87, '租户管理', '', 1, 1, 'iconfont icon-quanxian', '/system/tenant', '/system/tenant/index', '1', '', 'C', '0', '1', '1', 'system:tenant:list', '0', 'panda', '', '', '2022-07-15 18:03:35', '2022-07-15 18:03:35', NULL); +INSERT INTO `sys_menus` VALUES (88, '添加', '', 87, 1, '', '', '', '', '', 'F', '', '', '', 'system:tenant:add', '0', 'panda', '', '', '2022-07-15 18:28:58', '2022-07-15 18:28:58', NULL); +INSERT INTO `sys_menus` VALUES (89, '编辑', '', 87, 1, '', '', '', '', '', 'F', '', '', '', 'system:tenant:edit', '0', 'panda', '', '', '2022-07-15 18:29:34', '2022-07-15 18:29:34', NULL); +INSERT INTO `sys_menus` VALUES (90, '删除', '', 87, 1, '', '', '', '', '', 'F', '', '', '', 'system:tenant:delete', '0', 'panda', '', '', '2022-07-15 18:30:00', '2022-07-15 18:30:00', NULL); -- ---------------------------- -- Table structure for sys_notices @@ -938,15 +967,16 @@ CREATE TABLE `sys_posts` ( `update_time` datetime NULL DEFAULT NULL, `delete_time` datetime NULL DEFAULT NULL, PRIMARY KEY (`post_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of sys_posts -- ---------------------------- -INSERT INTO `sys_posts` VALUES (1, '首席执行官', 'CEO', 0, '0', '首席执行官', 'admin', '', '2021-12-02 09:21:44', '2021-12-02 09:24:25', NULL); +INSERT INTO `sys_posts` VALUES (1, '首席执行官', 'CEO', 1, '0', '首席执行官', 'panda', '', '2021-12-02 09:21:44', '2022-07-16 17:36:32', NULL); INSERT INTO `sys_posts` VALUES (3, '首席技术执行官', 'CTO', 1, '0', '', 'admin', '', '2021-12-02 09:21:44', '2021-12-02 09:25:59', '2021-12-02 09:27:41'); -INSERT INTO `sys_posts` VALUES (4, '首席技术执行官', 'CTO', 1, '0', '', 'admin', '', '2021-12-02 09:21:44', '2021-12-02 09:25:59', NULL); +INSERT INTO `sys_posts` VALUES (4, '首席技术执行官', 'CTO', 2, '0', '', 'panda', '', '2021-12-02 09:21:44', '2022-07-16 17:37:42', NULL); INSERT INTO `sys_posts` VALUES (5, '123', '123', 0, '0', '', 'admin', '', '2021-12-18 00:33:28', '2021-12-18 00:33:28', '2021-12-28 14:11:52'); +INSERT INTO `sys_posts` VALUES (6, 'wr', 'rw', 0, '0', '', 'panda', '', '2022-07-16 16:55:57', '2022-07-16 16:55:57', '2022-07-16 16:56:08'); -- ---------------------------- -- Table structure for sys_role_depts @@ -975,177 +1005,180 @@ CREATE TABLE `sys_role_menus` ( `menu_id` int(11) NULL DEFAULT NULL, `role_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 2194 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; +) ENGINE = InnoDB AUTO_INCREMENT = 2957 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of sys_role_menus -- ---------------------------- -INSERT INTO `sys_role_menus` VALUES (1785, 1, 1, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1786, 1, 3, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1787, 1, 4, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1788, 1, 5, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1789, 1, 6, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1790, 1, 7, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1791, 1, 8, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1792, 1, 9, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1793, 1, 10, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1794, 1, 11, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1795, 1, 12, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1796, 1, 13, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1797, 1, 14, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1798, 1, 15, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1799, 1, 16, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1800, 1, 17, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1801, 1, 18, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1802, 1, 19, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1803, 1, 20, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1804, 1, 21, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1805, 1, 22, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1806, 1, 23, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1807, 1, 24, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1808, 1, 25, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1809, 1, 26, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1810, 1, 28, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1811, 1, 29, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1812, 1, 30, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1813, 1, 31, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1814, 1, 32, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1815, 1, 33, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1816, 1, 34, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1817, 1, 35, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1818, 1, 36, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1819, 1, 37, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1820, 1, 38, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1821, 1, 39, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1822, 1, 40, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1823, 1, 41, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1824, 1, 42, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1825, 1, 43, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1826, 1, 44, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1827, 1, 45, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1828, 1, 46, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1829, 1, 47, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1830, 1, 48, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1831, 1, 49, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1832, 1, 50, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1833, 1, 51, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1834, 1, 52, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1835, 1, 53, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1836, 1, 54, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1837, 1, 55, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1838, 1, 56, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1839, 1, 57, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1840, 1, 58, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1841, 1, 59, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1842, 1, 60, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1843, 1, 61, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1844, 1, 62, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1845, 1, 63, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1846, 1, 64, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1847, 1, 65, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1848, 1, 66, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1849, 1, 67, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1850, 1, 68, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1851, 1, 69, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1852, 1, 70, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1853, 1, 71, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1854, 1, 72, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1855, 1, 73, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1856, 1, 74, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1857, 1, 75, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1858, 1, 76, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1859, 1, 77, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1860, 1, 78, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1861, 1, 79, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1862, 1, 80, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1863, 1, 81, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1864, 1, 83, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1865, 1, 84, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1866, 1, 85, 'admin'); -INSERT INTO `sys_role_menus` VALUES (1867, 1, 86, 'admin'); -INSERT INTO `sys_role_menus` VALUES (2111, 2, 1, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2112, 2, 3, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2113, 2, 4, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2114, 2, 5, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2115, 2, 6, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2116, 2, 7, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2117, 2, 8, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2118, 2, 9, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2119, 2, 10, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2120, 2, 11, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2121, 2, 12, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2122, 2, 13, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2123, 2, 14, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2124, 2, 15, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2125, 2, 16, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2126, 2, 17, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2127, 2, 18, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2128, 2, 19, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2129, 2, 20, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2130, 2, 21, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2131, 2, 22, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2132, 2, 23, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2133, 2, 24, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2134, 2, 25, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2135, 2, 26, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2136, 2, 28, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2137, 2, 29, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2138, 2, 30, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2139, 2, 31, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2140, 2, 32, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2141, 2, 33, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2142, 2, 34, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2143, 2, 35, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2144, 2, 36, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2145, 2, 37, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2146, 2, 38, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2147, 2, 39, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2148, 2, 40, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2149, 2, 41, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2150, 2, 42, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2151, 2, 43, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2152, 2, 44, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2153, 2, 45, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2154, 2, 46, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2155, 2, 47, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2156, 2, 48, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2157, 2, 49, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2158, 2, 50, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2159, 2, 51, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2160, 2, 52, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2161, 2, 53, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2162, 2, 54, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2163, 2, 55, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2164, 2, 56, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2165, 2, 57, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2166, 2, 58, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2167, 2, 59, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2168, 2, 60, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2169, 2, 61, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2170, 2, 62, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2171, 2, 63, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2172, 2, 64, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2173, 2, 65, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2174, 2, 66, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2175, 2, 67, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2176, 2, 68, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2177, 2, 69, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2178, 2, 70, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2179, 2, 71, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2180, 2, 72, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2181, 2, 73, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2182, 2, 74, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2183, 2, 75, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2184, 2, 76, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2185, 2, 77, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2186, 2, 78, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2187, 2, 79, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2188, 2, 80, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2189, 2, 81, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2190, 2, 83, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2191, 2, 84, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2192, 2, 85, 'manage'); -INSERT INTO `sys_role_menus` VALUES (2193, 2, 86, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2788, 2, 1, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2789, 2, 3, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2790, 2, 4, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2791, 2, 5, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2792, 2, 6, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2793, 2, 7, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2794, 2, 8, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2795, 2, 9, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2796, 2, 10, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2797, 2, 11, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2798, 2, 12, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2799, 2, 13, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2800, 2, 14, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2801, 2, 15, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2802, 2, 16, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2803, 2, 17, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2804, 2, 18, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2805, 2, 19, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2806, 2, 20, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2807, 2, 21, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2808, 2, 22, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2809, 2, 23, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2810, 2, 25, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2811, 2, 26, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2812, 2, 28, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2813, 2, 29, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2814, 2, 30, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2815, 2, 31, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2816, 2, 32, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2817, 2, 33, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2818, 2, 34, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2819, 2, 35, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2820, 2, 36, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2821, 2, 37, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2822, 2, 38, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2823, 2, 39, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2824, 2, 40, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2825, 2, 41, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2826, 2, 42, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2827, 2, 43, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2828, 2, 44, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2829, 2, 45, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2830, 2, 46, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2831, 2, 47, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2832, 2, 48, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2833, 2, 49, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2834, 2, 50, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2835, 2, 51, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2836, 2, 52, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2837, 2, 53, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2838, 2, 54, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2839, 2, 55, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2840, 2, 56, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2841, 2, 57, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2842, 2, 58, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2843, 2, 59, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2844, 2, 60, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2845, 2, 61, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2846, 2, 62, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2847, 2, 63, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2848, 2, 64, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2849, 2, 65, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2850, 2, 66, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2851, 2, 67, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2852, 2, 68, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2853, 2, 69, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2854, 2, 70, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2855, 2, 71, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2856, 2, 72, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2857, 2, 73, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2858, 2, 74, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2859, 2, 75, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2860, 2, 76, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2861, 2, 77, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2862, 2, 78, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2863, 2, 79, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2864, 2, 80, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2865, 2, 81, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2866, 2, 83, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2867, 2, 84, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2868, 2, 85, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2869, 2, 86, 'manage'); +INSERT INTO `sys_role_menus` VALUES (2870, 1, 1, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2871, 1, 3, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2872, 1, 4, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2873, 1, 5, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2874, 1, 6, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2875, 1, 7, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2876, 1, 8, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2877, 1, 9, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2878, 1, 10, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2879, 1, 11, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2880, 1, 12, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2881, 1, 13, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2882, 1, 14, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2883, 1, 15, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2884, 1, 16, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2885, 1, 17, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2886, 1, 18, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2887, 1, 19, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2888, 1, 20, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2889, 1, 21, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2890, 1, 22, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2891, 1, 23, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2892, 1, 24, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2893, 1, 25, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2894, 1, 26, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2895, 1, 28, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2896, 1, 29, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2897, 1, 30, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2898, 1, 31, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2899, 1, 32, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2900, 1, 33, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2901, 1, 34, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2902, 1, 35, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2903, 1, 36, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2904, 1, 37, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2905, 1, 38, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2906, 1, 39, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2907, 1, 40, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2908, 1, 41, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2909, 1, 42, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2910, 1, 43, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2911, 1, 44, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2912, 1, 45, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2913, 1, 46, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2914, 1, 47, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2915, 1, 48, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2916, 1, 49, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2917, 1, 50, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2918, 1, 51, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2919, 1, 52, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2920, 1, 53, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2921, 1, 54, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2922, 1, 55, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2923, 1, 56, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2924, 1, 57, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2925, 1, 58, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2926, 1, 59, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2927, 1, 60, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2928, 1, 61, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2929, 1, 62, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2930, 1, 63, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2931, 1, 64, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2932, 1, 65, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2933, 1, 66, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2934, 1, 67, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2935, 1, 68, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2936, 1, 69, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2937, 1, 70, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2938, 1, 71, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2939, 1, 72, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2940, 1, 73, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2941, 1, 74, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2942, 1, 75, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2943, 1, 76, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2944, 1, 77, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2945, 1, 78, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2946, 1, 79, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2947, 1, 80, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2948, 1, 81, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2949, 1, 83, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2950, 1, 84, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2951, 1, 85, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2952, 1, 86, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2953, 1, 87, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2954, 1, 88, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2955, 1, 89, 'admin'); +INSERT INTO `sys_role_menus` VALUES (2956, 1, 90, 'admin'); -- ---------------------------- -- Table structure for sys_roles @@ -1154,11 +1187,11 @@ DROP TABLE IF EXISTS `sys_roles`; CREATE TABLE `sys_roles` ( `role_id` bigint(20) NOT NULL AUTO_INCREMENT, `role_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色名称', + `tenant_id` int(11) NULL DEFAULT NULL, `status` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态', `role_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色代码', `data_scope` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)', `role_sort` int(4) NULL DEFAULT NULL COMMENT '角色排序', - `flag` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '删除标识', `create_by` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `update_by` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, @@ -1171,8 +1204,28 @@ CREATE TABLE `sys_roles` ( -- ---------------------------- -- Records of sys_roles -- ---------------------------- -INSERT INTO `sys_roles` VALUES (1, '超管理员', '0', 'admin', '2', 1, '', 'admin', 'panda', '超级管理', '2021-12-02 16:03:26', '2022-01-19 09:08:10', NULL); -INSERT INTO `sys_roles` VALUES (2, '管理员', '0', 'manage', '', 2, '', 'panda', 'panda', '', '2021-12-19 16:06:20', '2022-03-01 07:47:20', NULL); +INSERT INTO `sys_roles` VALUES (1, '超管理员', 1, '0', 'admin', '2', 1, 'admin', 'panda', '超级管理', '2021-12-02 16:03:26', '2022-07-18 10:57:14', NULL); +INSERT INTO `sys_roles` VALUES (2, '管理员', 1, '0', 'manage', '', 2, 'panda', 'panda', '', '2021-12-19 16:06:20', '2022-07-18 10:56:59', NULL); + +-- ---------------------------- +-- Table structure for sys_tenants +-- ---------------------------- +DROP TABLE IF EXISTS `sys_tenants`; +CREATE TABLE `sys_tenants` ( + `create_time` datetime NULL DEFAULT NULL, + `update_time` datetime NULL DEFAULT NULL, + `delete_time` datetime NULL DEFAULT NULL, + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `tenant_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '租户名', + `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', + `expire_time` datetime NULL DEFAULT NULL COMMENT '过期时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; + +-- ---------------------------- +-- Records of sys_tenants +-- ---------------------------- +INSERT INTO `sys_tenants` VALUES ('2022-07-16 18:28:33', '2022-07-16 18:28:33', NULL, 1, '熊猫科技', '鹅鹅鹅', '2099-07-16 00:00:00'); -- ---------------------------- -- Table structure for sys_users @@ -1182,6 +1235,7 @@ CREATE TABLE `sys_users` ( `user_id` bigint(20) NOT NULL AUTO_INCREMENT, `nick_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `tenant_id` int(11) NULL DEFAULT NULL, `role_id` int(11) NULL DEFAULT NULL, `salt` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, @@ -1201,13 +1255,14 @@ CREATE TABLE `sys_users` ( `role_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '多角色', `post_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '多岗位', PRIMARY KEY (`user_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; +) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of sys_users -- ---------------------------- -INSERT INTO `sys_users` VALUES (1, 'pandax', '13818888888', 1, NULL, '', '0', '1@qq.com', 2, 4, 'panda', '1', NULL, '0', '2021-12-03 09:46:55', '2022-02-09 13:28:49', NULL, 'panda', '$2a$10$cKFFTCzGOvaIHHJY2K45Zuwt8TD6oPzYi4s5MzYIBAWCLL6ZhouP2', '1', '1,4'); -INSERT INTO `sys_users` VALUES (3, '测试用户', '18435234356', 1, '', '', '0', '342@163.com', 3, 1, 'admin', '', '', '0', '2021-12-06 15:16:53', '2021-12-06 15:29:28', NULL, 'test', '$2a$10$4cHTracxWJLdhMmazvbm1urKyD3v5N2AYxAFtNYh6juU39kgae73e', '1', '1,4'); -INSERT INTO `sys_users` VALUES (4, 'panda', '18353366912', 2, '', '', '0', '2417920382@qq.com', 2, 4, 'panda', '', '', '0', '2021-12-19 15:58:09', '2021-12-19 16:06:54', NULL, 'admin', '$2a$10$cKFFTCzGOvaIHHJY2K45Zuwt8TD6oPzYi4s5MzYIBAWCLL6ZhouP2', '2', '4,1'); +INSERT INTO `sys_users` VALUES (1, 'pandax', '13818888888', 1, 1, NULL, '', '0', '1@qq.com', 2, 4, 'panda', '1', NULL, '0', '2021-12-03 09:46:55', '2022-02-09 13:28:49', NULL, 'panda', '$2a$10$EXMJ5huCCTlCmP2ITFkAJ.4Mgmq3JcZGUvtE.KLX8j7FmhiiTEEya', '1', '1,4'); +INSERT INTO `sys_users` VALUES (3, '测试用户', '18435234356', 1, 2, '', '', '0', '342@163.com', 3, 1, 'test', '', '', '0', '2021-12-06 15:16:53', '2022-05-10 19:19:25', NULL, 'test', '$2a$10$4cHTracxWJLdhMmazvbm1urKyD3v5N2AYxAFtNYh6juU39kgae73e', '2', '1,4'); +INSERT INTO `sys_users` VALUES (4, 'panda', '18353366912', 1, 2, '', '', '0', '2417920382@qq.com', 2, 4, 'panda', '', '', '0', '2021-12-19 15:58:09', '2021-12-19 16:06:54', NULL, 'admin', '$2a$10$cKFFTCzGOvaIHHJY2K45Zuwt8TD6oPzYi4s5MzYIBAWCLL6ZhouP2', '2', '4,1'); +INSERT INTO `sys_users` VALUES (5, 'tenant', '', 1, 1, '', '', '0', '', 3, 1, 'panda', '1', '', '0', '2021-12-03 09:46:55', '2022-02-09 13:28:49', NULL, 'tenant', '$2a$10$ycRsRdsrNQInLB2Ib0maOetsWZ0kFctmF6ytAErWTjOx5cWdeJMcK', '1', '1,4'); SET FOREIGN_KEY_CHECKS = 1; diff --git a/resource/rbac_model.conf b/resource/rbac_model.conf index 32781ee..0e41f27 100644 --- a/resource/rbac_model.conf +++ b/resource/rbac_model.conf @@ -1,11 +1,11 @@ [request_definition] -r = sub, obj, act +r = dom, sub, obj, act [policy_definition] -p = sub, obj, act +p = dom, sub, obj, act [policy_effect] e = some(where (p.eft == allow)) [matchers] -m = r.sub == p.sub && (keyMatch2(r.obj, p.obj) || keyMatch(r.obj, p.obj)) && (r.act == p.act || p.act == "*") \ No newline at end of file +m = r.dom == p.dom && r.sub == p.sub && (keyMatch2(r.obj, p.obj) || keyMatch(r.obj, p.obj)) && ( r.act == p.act || p.act == '*') \ No newline at end of file