diff --git a/models/casbinrule.go b/models/casbinrule.go index 1ed1e302..b108f689 100644 --- a/models/casbinrule.go +++ b/models/casbinrule.go @@ -2,13 +2,13 @@ package models //casbin_rule type CasbinRule struct { - PType string `json:"p_type" gorm:"type:varchar(100);"` - V0 string `json:"v0" gorm:"type:varchar(100);"` - V1 string `json:"v1" gorm:"type:varchar(100);"` - V2 string `json:"v2" gorm:"type:varchar(100);"` - V3 string `json:"v3" gorm:"type:varchar(100);"` - V4 string `json:"v4" gorm:"type:varchar(100);"` - V5 string `json:"v5" gorm:"type:varchar(100);"` + PType string `json:"p_type" gorm:"size:100;"` + V0 string `json:"v0" gorm:"size:100;"` + V1 string `json:"v1" gorm:"size:100;"` + V2 string `json:"v2" gorm:"size:100;"` + V3 string `json:"v3" gorm:"size:100;"` + V4 string `json:"v4" gorm:"size:100;"` + V5 string `json:"v5" gorm:"size:100;"` } func (CasbinRule) TableName() string { diff --git a/models/config.go b/models/config.go index e271af42..07c005c8 100644 --- a/models/config.go +++ b/models/config.go @@ -4,28 +4,27 @@ import ( "errors" orm "go-admin/global" "go-admin/tools" - "time" _ "time" ) type SysConfig struct { ConfigId int `json:"configId" gorm:"primary_key;auto_increment;"` //编码 - ConfigName string `json:"configName" gorm:"type:varchar(128);"` //参数名称 - ConfigKey string `json:"configKey" gorm:"type:varchar(128);"` //参数键名 - ConfigValue string `json:"configValue" gorm:"type:varchar(255);"` //参数键值 - ConfigType string `json:"configType" gorm:"type:varchar(64);"` //是否系统内置 - Remark string `json:"remark" gorm:"type:varchar(128);"` //备注 - CreateBy string `json:"createBy" gorm:"type:varchar(128);"` - UpdateBy string `json:"updateBy" gorm:"type:varchar(128);"` + ConfigName string `json:"configName" gorm:"size:128;"` //参数名称 + ConfigKey string `json:"configKey" gorm:"size:128;"` //参数键名 + ConfigValue string `json:"configValue" gorm:"size:255;"` //参数键值 + ConfigType string `json:"configType" gorm:"size:64;"` //是否系统内置 + Remark string `json:"remark" gorm:"size:128;"` //备注 + CreateBy string `json:"createBy" gorm:"size:128;"` + UpdateBy string `json:"updateBy" gorm:"size:128;"` DataScope string `json:"dataScope" gorm:"-"` Params string `json:"params" gorm:"-"` BaseModel } -func DataInit() { - config1:=SysConfig{1, "主框架页-默认皮肤样式名称", "sys_index_skinName", "skin-blue", "Y", "蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow", "1", "1", "","",BaseModel{time.Now(), time.Now(), nil}} - - orm.Eloquent.Create(&config1) +func DataInit() { + //config1:=SysConfig{1, "主框架页-默认皮肤样式名称", "sys_index_skinName", "skin-blue", "Y", "蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow", "1", "1", "","",BaseModel{time.Now(), time.Now(), nil}} + // + //orm.Eloquent.Create(&config1) } func (SysConfig) TableName() string { diff --git a/models/dept.go b/models/dept.go index 55fb80e7..82e47af9 100644 --- a/models/dept.go +++ b/models/dept.go @@ -8,19 +8,19 @@ import ( ) type SysDept struct { - DeptId int `json:"deptId" gorm:"primary_key;AUTO_INCREMENT"` //部门编码 - ParentId int `json:"parentId" gorm:"type:int(11);"` //上级部门 - DeptPath string `json:"deptPath" gorm:"type:varchar(255);"` // - DeptName string `json:"deptName" gorm:"type:varchar(128);"` //部门名称 - Sort int `json:"sort" gorm:"type:int(4);"` //排序 - Leader string `json:"leader" gorm:"type:varchar(128);"` //负责人 - Phone string `json:"phone" gorm:"type:varchar(11);"` //手机 - Email string `json:"email" gorm:"type:varchar(64);"` //邮箱 - Status string `json:"status" gorm:"type:int(1);"` //状态 - CreateBy string `json:"createBy" gorm:"type:varchar(64);"` - UpdateBy string `json:"updateBy" gorm:"type:varchar(64);"` - DataScope string `json:"dataScope" gorm:"-"` - Params string `json:"params" gorm:"-"` + DeptId int `json:"deptId" gorm:"primary_key;AUTO_INCREMENT"` //部门编码 + ParentId int `json:"parentId" gorm:""` //上级部门 + DeptPath string `json:"deptPath" gorm:"size:255;"` // + DeptName string `json:"deptName" gorm:"size:128;"` //部门名称 + Sort int `json:"sort" gorm:""` //排序 + Leader string `json:"leader" gorm:"size:128;"` //负责人 + Phone string `json:"phone" gorm:"size:11;"` //手机 + Email string `json:"email" gorm:"size:64;"` //邮箱 + Status string `json:"status" gorm:"size:4;"` //状态 + CreateBy string `json:"createBy" gorm:"size:64;"` + UpdateBy string `json:"updateBy" gorm:"size:64;"` + DataScope string `json:"dataScope" gorm:"-"` + Params string `json:"params" gorm:"-"` Children []SysDept `json:"children" gorm:"-"` BaseModel } diff --git a/models/dictData.go b/models/dictData.go index 8aec2d99..456126f0 100644 --- a/models/dictData.go +++ b/models/dictData.go @@ -8,18 +8,18 @@ import ( type DictData struct { DictCode int `gorm:"primary_key;AUTO_INCREMENT" json:"dictCode" example:"1"` //字典编码 - DictSort int `gorm:"type:int(4);" json:"dictSort"` //显示顺序 - DictLabel string `gorm:"type:varchar(128);" json:"dictLabel"` //数据标签 - DictValue string `gorm:"type:varchar(255);" json:"dictValue"` //数据键值 - DictType string `gorm:"type:varchar(64);" json:"dictType"` //字典类型 - CssClass string `gorm:"type:varchar(128);" json:"cssClass"` // - ListClass string `gorm:"type:varchar(128);" json:"listClass"` // - IsDefault string `gorm:"type:varchar(8);" json:"isDefault"` // - Status string `gorm:"type:int(1);" json:"status"` //状态 - Default string `gorm:"type:varchar(8);" json:"default"` // - CreateBy string `gorm:"type:varchar(64);" json:"createBy"` // - UpdateBy string `gorm:"type:varchar(64);" json:"updateBy"` // - Remark string `gorm:"type:varchar(255);" json:"remark"` //备注 + DictSort int `gorm:"" json:"dictSort"` //显示顺序 + DictLabel string `gorm:"size:128;" json:"dictLabel"` //数据标签 + DictValue string `gorm:"size:255;" json:"dictValue"` //数据键值 + DictType string `gorm:"size:64;" json:"dictType"` //字典类型 + CssClass string `gorm:"size:128;" json:"cssClass"` // + ListClass string `gorm:"size:128;" json:"listClass"` // + IsDefault string `gorm:"size:8;" json:"isDefault"` // + Status string `gorm:"size:4;" json:"status"` //状态 + Default string `gorm:"size:8;" json:"default"` // + CreateBy string `gorm:"size:64;" json:"createBy"` // + UpdateBy string `gorm:"size:64;" json:"updateBy"` // + Remark string `gorm:"size:255;" json:"remark"` //备注 Params string `gorm:"-" json:"params"` DataScope string `gorm:"-" json:"dataScope"` BaseModel diff --git a/models/dictType.go b/models/dictType.go index 380c4e3c..991d7c13 100644 --- a/models/dictType.go +++ b/models/dictType.go @@ -8,14 +8,14 @@ import ( type DictType struct { DictId int `gorm:"primary_key;AUTO_INCREMENT" json:"dictId"` - DictName string `gorm:"type:varchar(128);" json:"dictName"` //字典名称 - DictType string `gorm:"type:varchar(128);" json:"dictType"` //字典类型 - Status string `gorm:"type:int(1);" json:"status"` //状态 + DictName string `gorm:"size:128;" json:"dictName"` //字典名称 + DictType string `gorm:"size:128;" json:"dictType"` //字典类型 + Status string `gorm:"size:4;" json:"status"` //状态 DataScope string `gorm:"-" json:"dataScope"` // Params string `gorm:"-" json:"params"` // - CreateBy string `gorm:"type:varchar(11);" json:"createBy"` //创建者 - UpdateBy string `gorm:"type:varchar(11);" json:"updateBy"` //更新者 - Remark string `gorm:"type:varchar(255);" json:"remark"` //备注 + CreateBy string `gorm:"size:11;" json:"createBy"` //创建者 + UpdateBy string `gorm:"size:11;" json:"updateBy"` //更新者 + Remark string `gorm:"size:255;" json:"remark"` //备注 BaseModel } diff --git a/models/gorm/gorm.go b/models/gorm/gorm.go index 7b9258ae..146fc50f 100644 --- a/models/gorm/gorm.go +++ b/models/gorm/gorm.go @@ -8,31 +8,72 @@ import ( func AutoMigrate(db *gorm.DB) error { db.SingularTable(true) - err:=db.AutoMigrate( - new(models.CasbinRule), - new(models.SysDept), - new(models.SysConfig), - new(tools.SysTables), - new(tools.SysColumns), - new(models.Menu), - new(models.LoginLog), - new(models.SysOperLog), - new(models.RoleMenu), - new(models.SysRoleDept), - new(models.SysUser), - new(models.SysRole), - new(models.Post), - new(models.DictData), - new(models.DictType), - ).Error + err := db.AutoMigrate(new(models.CasbinRule)).Error + if err != nil { + return err + } + err = db.AutoMigrate(new(models.SysDept)).Error + if err != nil { + return err + } + err = db.AutoMigrate(new(models.SysConfig)).Error + if err != nil { + return err + } + err = db.AutoMigrate(new(tools.SysTables)).Error + if err != nil { + return err + } + err = db.AutoMigrate(new(tools.SysColumns)).Error + if err != nil { + return err + } + err = db.AutoMigrate(new(models.Menu)).Error + if err != nil { + return err + } + err = db.AutoMigrate(new(models.LoginLog)).Error + if err != nil { + return err + } + err = db.AutoMigrate(new(models.SysOperLog)).Error + if err != nil { + return err + } + err = db.AutoMigrate(new(models.RoleMenu)).Error + if err != nil { + return err + } + err = db.AutoMigrate(new(models.SysRoleDept)).Error + if err != nil { + return err + } + err = db.AutoMigrate(new(models.SysUser)).Error + if err != nil { + return err + } + err = db.AutoMigrate(new(models.SysRole)).Error + if err != nil { + return err + } + err = db.AutoMigrate(new(models.Post)).Error + if err != nil { + return err + } + err = db.AutoMigrate(new(models.DictData)).Error + if err != nil { + return err + } + err = db.AutoMigrate(new(models.DictType)).Error + if err != nil { + return err + } models.DataInit() return err } - -func CustomMigrate(db *gorm.DB,table interface{}) error { +func CustomMigrate(db *gorm.DB, table interface{}) error { db.SingularTable(true) return db.AutoMigrate(&table).Error } - diff --git a/models/initdb.go b/models/initdb.go index 581c3c17..07fbf124 100644 --- a/models/initdb.go +++ b/models/initdb.go @@ -2,31 +2,30 @@ package models import ( "fmt" - orm "go-admin/global" + "go-admin/global" "io/ioutil" "strings" ) func InitDb() error { filePath := "config/db.sql" - //if config2.DatabaseConfig.DbType == "sqlite" { - // fmt.Println("sqlite3数据库无需初始化!") - // return nil - //} + if global.Driver == "postgres" { + filePath = "config/pg.sql" + } sql, err := Ioutil(filePath) if err != nil { fmt.Println("数据库基础数据初始化脚本读取失败!原因:", err.Error()) return err } sqlList := strings.Split(sql, ";") - for i := 0; i < len(sqlList) - 1; i++ { + for i := 0; i < len(sqlList)-1; i++ { if strings.Contains(sqlList[i], "--") { fmt.Println(sqlList[i]) continue } sql := strings.Replace(sqlList[i]+";", "\n", "", 0) sql = strings.TrimSpace(sql) - if err = orm.Eloquent.Exec(sql).Error; err != nil { + if err = global.Eloquent.Exec(sql).Error; err != nil { if !strings.Contains(err.Error(), "Query was empty") { return err } diff --git a/models/loginlog.go b/models/loginlog.go index 33f75126..e614bd03 100644 --- a/models/loginlog.go +++ b/models/loginlog.go @@ -7,20 +7,20 @@ import ( type LoginLog struct { InfoId int `json:"infoId" gorm:"primary_key;AUTO_INCREMENT"` //主键 - Username string `json:"username" gorm:"type:varchar(128);"` //用户名 - Status string `json:"status" gorm:"type:int(1);"` //状态 - Ipaddr string `json:"ipaddr" gorm:"type:varchar(255);"` //ip地址 - LoginLocation string `json:"loginLocation" gorm:"type:varchar(255);"` //归属地 - Browser string `json:"browser" gorm:"type:varchar(255);"` //浏览器 - Os string `json:"os" gorm:"type:varchar(255);"` //系统 - Platform string `json:"platform" gorm:"type:varchar(255);"` // 固件 + Username string `json:"username" gorm:"size:128;"` //用户名 + Status string `json:"status" gorm:"size:4;"` //状态 + Ipaddr string `json:"ipaddr" gorm:"size:255;"` //ip地址 + LoginLocation string `json:"loginLocation" gorm:"size:255;"` //归属地 + Browser string `json:"browser" gorm:"size:255;"` //浏览器 + Os string `json:"os" gorm:"size:255;"` //系统 + Platform string `json:"platform" gorm:"size:255;"` // 固件 LoginTime time.Time `json:"loginTime" gorm:"type:timestamp;"` //登录时间 - CreateBy string `json:"createBy" gorm:"type:varchar(128);"` //创建人 - UpdateBy string `json:"updateBy" gorm:"type:varchar(128);"` //更新者 + CreateBy string `json:"createBy" gorm:"size:128;"` //创建人 + UpdateBy string `json:"updateBy" gorm:"size:128;"` //更新者 DataScope string `json:"dataScope" gorm:"-"` //数据 Params string `json:"params" gorm:"-"` // - Remark string `json:"remark" gorm:"type:varchar(255);"` //备注 - Msg string `json:"msg" gorm:"type:varchar(255);"` + Remark string `json:"remark" gorm:"size:255;"` //备注 + Msg string `json:"msg" gorm:"size:255;"` BaseModel } diff --git a/models/menu.go b/models/menu.go index 458e3359..16a18760 100644 --- a/models/menu.go +++ b/models/menu.go @@ -8,23 +8,23 @@ import ( type Menu struct { MenuId int `json:"menuId" gorm:"primary_key;AUTO_INCREMENT"` - MenuName string `json:"menuName" gorm:"type:varchar(128);"` - Title string `json:"title" gorm:"type:varchar(64);"` - Icon string `json:"icon" gorm:"type:varchar(128);"` - Path string `json:"path" gorm:"type:varchar(128);"` - Paths string `json:"paths" gorm:"type:varchar(128);"` - MenuType string `json:"menuType" gorm:"type:varchar(1);"` - Action string `json:"action" gorm:"type:varchar(16);"` - Permission string `json:"permission" gorm:"type:varchar(32);"` - ParentId int `json:"parentId" gorm:"type:int(11);"` - NoCache bool `json:"noCache" gorm:"type:char(1);"` - Breadcrumb string `json:"breadcrumb" gorm:"type:varchar(255);"` - Component string `json:"component" gorm:"type:varchar(255);"` - Sort int `json:"sort" gorm:"type:int(4);"` - Visible string `json:"visible" gorm:"type:char(1);"` - CreateBy string `json:"createBy" gorm:"type:varchar(128);"` - UpdateBy string `json:"updateBy" gorm:"type:varchar(128);"` - IsFrame string `json:"isFrame" gorm:"type:int(1);DEFAULT:0;"` + MenuName string `json:"menuName" gorm:"size:128;"` + Title string `json:"title" gorm:"size:64;"` + Icon string `json:"icon" gorm:"size:128;"` + Path string `json:"path" gorm:"size:128;"` + Paths string `json:"paths" gorm:"size:128;"` + MenuType string `json:"menuType" gorm:"size:1;"` + Action string `json:"action" gorm:"size:16;"` + Permission string `json:"permission" gorm:"size:32;"` + ParentId int `json:"parentId" gorm:"size:11;"` + NoCache bool `json:"noCache" gorm:"size:8;"` + Breadcrumb string `json:"breadcrumb" gorm:"size:255;"` + Component string `json:"component" gorm:"size:255;"` + Sort int `json:"sort" gorm:"size:4;"` + Visible string `json:"visible" gorm:"size:1;"` + CreateBy string `json:"createBy" gorm:"size:128;"` + UpdateBy string `json:"updateBy" gorm:"size:128;"` + IsFrame string `json:"isFrame" gorm:"size:1;DEFAULT:0;"` DataScope string `json:"dataScope" gorm:"-"` Params string `json:"params" gorm:"-"` RoleId int `gorm:"-"` diff --git a/models/model.go b/models/model.go index 1293241f..39749291 100644 --- a/models/model.go +++ b/models/model.go @@ -7,5 +7,5 @@ import ( type BaseModel struct { CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` - DeletedAt *time.Time `sql:"index" json:"deletedAt"` + DeletedAt *time.Time `json:"deletedAt"` } diff --git a/models/operlog.go b/models/operlog.go index 89cf44c4..93d50c9e 100644 --- a/models/operlog.go +++ b/models/operlog.go @@ -8,28 +8,28 @@ import ( //sys_operlog type SysOperLog struct { OperId int `json:"operId" gorm:"primary_key;AUTO_INCREMENT"` //日志编码 - Title string `json:"title" gorm:"size(255);"` //操作模块 - BusinessType string `json:"businessType" gorm:"type:varchar(128);"` //操作类型 - BusinessTypes string `json:"businessTypes" gorm:"type:varchar(128);"` - Method string `json:"method" gorm:"type:varchar(128);"` //函数 - RequestMethod string `json:"requestMethod" gorm:"type:varchar(128);"` //请求方式 - OperatorType string `json:"operatorType" gorm:"type:varchar(128);"` //操作类型 - OperName string `json:"operName" gorm:"type:varchar(128);"` //操作者 - DeptName string `json:"deptName" gorm:"type:varchar(128);"` //部门名称 - OperUrl string `json:"operUrl" gorm:"type:varchar(255);"` //访问地址 - OperIp string `json:"operIp" gorm:"type:varchar(128);"` //客户端ip - OperLocation string `json:"operLocation" gorm:"type:varchar(128);"` //访问位置 - OperParam string `json:"operParam" gorm:"type:varchar(255);"` //请求参数 - Status string `json:"status" gorm:"type:int(1);"` //操作状态 + Title string `json:"title" gorm:"size:255;"` //操作模块 + BusinessType string `json:"businessType" gorm:"size:128;"` //操作类型 + BusinessTypes string `json:"businessTypes" gorm:"size:128;"` + Method string `json:"method" gorm:"size:128;"` //函数 + RequestMethod string `json:"requestMethod" gorm:"size:128;"` //请求方式 + OperatorType string `json:"operatorType" gorm:"size:128;"` //操作类型 + OperName string `json:"operName" gorm:"size:128;"` //操作者 + DeptName string `json:"deptName" gorm:"size:128;"` //部门名称 + OperUrl string `json:"operUrl" gorm:"size:255;"` //访问地址 + OperIp string `json:"operIp" gorm:"size:128;"` //客户端ip + OperLocation string `json:"operLocation" gorm:"size:128;"` //访问位置 + OperParam string `json:"operParam" gorm:"size:255;"` //请求参数 + Status string `json:"status" gorm:"size:4;"` //操作状态 OperTime time.Time `json:"operTime" gorm:"type:timestamp;"` //操作时间 - JsonResult string `json:"jsonResult" gorm:"type:varchar(255);"` //返回数据 - CreateBy string `json:"createBy" gorm:"type:varchar(128);"` //创建人 - UpdateBy string `json:"updateBy" gorm:"type:varchar(128);"` //更新者 + JsonResult string `json:"jsonResult" gorm:"size:255;"` //返回数据 + CreateBy string `json:"createBy" gorm:"size:128;"` //创建人 + UpdateBy string `json:"updateBy" gorm:"size:128;"` //更新者 DataScope string `json:"dataScope" gorm:"-"` //数据 Params string `json:"params" gorm:"-"` //参数 - Remark string `json:"remark" gorm:"type:varchar(255);"` //备注 - LatencyTime string `json:"latencyime" gorm:"type:varchar(128);"` //耗时 - UserAgent string `json:"userAgent" gorm:"type:varchar(255);"` //ua + Remark string `json:"remark" gorm:"size:255;"` //备注 + LatencyTime string `json:"latencyime" gorm:"size:128;"` //耗时 + UserAgent string `json:"userAgent" gorm:"size:255;"` //ua BaseModel } diff --git a/models/post.go b/models/post.go index 0532da90..c59ad376 100644 --- a/models/post.go +++ b/models/post.go @@ -7,13 +7,13 @@ import ( type Post struct { PostId int `gorm:"primary_key;AUTO_INCREMENT" json:"postId"` //岗位编号 - PostName string `gorm:"type:varchar(128);" json:"postName"` //岗位名称 - PostCode string `gorm:"type:varchar(128);" json:"postCode"` //岗位代码 - Sort int `gorm:"type:int(4);" json:"sort"` //岗位排序 - Status string `gorm:"type:int(1);" json:"status"` //状态 - Remark string `gorm:"type:varchar(255);" json:"remark"` //描述 - CreateBy string `gorm:"type:varchar(128);" json:"createBy"` - UpdateBy string `gorm:"type:varchar(128);" json:"updateBy"` + PostName string `gorm:"size:128;" json:"postName"` //岗位名称 + PostCode string `gorm:"size:128;" json:"postCode"` //岗位代码 + Sort int `gorm:"" json:"sort"` //岗位排序 + Status string `gorm:"size:4;" json:"status"` //状态 + Remark string `gorm:"size:255;" json:"remark"` //描述 + CreateBy string `gorm:"size:128;" json:"createBy"` + UpdateBy string `gorm:"size:128;" json:"updateBy"` DataScope string `gorm:"-" json:"dataScope"` Params string `gorm:"-" json:"params"` BaseModel diff --git a/models/role.go b/models/role.go index ccd19ae9..baa277b3 100644 --- a/models/role.go +++ b/models/role.go @@ -8,16 +8,16 @@ import ( type SysRole struct { RoleId int `json:"roleId" gorm:"primary_key;AUTO_INCREMENT"` // 角色编码 - RoleName string `json:"roleName" gorm:"type:varchar(128);"` // 角色名称 - Status string `json:"status" gorm:"type:int(1);"` // - RoleKey string `json:"roleKey" gorm:"type:varchar(128);"` //角色代码 - RoleSort int `json:"roleSort" gorm:"type:int(4);"` //角色排序 - Flag string `json:"flag" gorm:"type:varchar(128);"` // - CreateBy string `json:"createBy" gorm:"type:varchar(128);"` // - UpdateBy string `json:"updateBy" gorm:"type:varchar(128);"` // - Remark string `json:"remark" gorm:"type:varchar(255);"` //备注 - Admin bool `json:"admin" gorm:"type:char(1);"` - DataScope string `json:"dataScope" gorm:"type:varchar(128);"` + RoleName string `json:"roleName" gorm:"size:128;"` // 角色名称 + Status string `json:"status" gorm:"size:4;"` // + RoleKey string `json:"roleKey" gorm:"size:128;"` //角色代码 + RoleSort int `json:"roleSort" gorm:""` //角色排序 + Flag string `json:"flag" gorm:"size:128;"` // + CreateBy string `json:"createBy" gorm:"size:128;"` // + UpdateBy string `json:"updateBy" gorm:"size:128;"` // + Remark string `json:"remark" gorm:"size:255;"` //备注 + Admin bool `json:"admin" gorm:"size:4;"` + DataScope string `json:"dataScope" gorm:"size:128;"` Params string `json:"params" gorm:"-"` MenuIds []int `json:"menuIds" gorm:"-"` DeptIds []int `json:"deptIds" gorm:"-"` @@ -32,26 +32,26 @@ type MenuIdList struct { MenuId int `json:"menuId"` } -func (e *SysRole) GetPage(pageSize int, pageIndex int) ([]SysRole, int, error) { +func (role *SysRole) GetPage(pageSize int, pageIndex int) ([]SysRole, int, error) { var doc []SysRole table := orm.Eloquent.Select("*").Table("sys_role") - if e.RoleId != 0 { - table = table.Where("role_id = ?", e.RoleId) + if role.RoleId != 0 { + table = table.Where("role_id = ?", role.RoleId) } - if e.RoleName != "" { - table = table.Where("role_name = ?", e.RoleName) + if role.RoleName != "" { + table = table.Where("role_name = ?", role.RoleName) } - if e.Status != "" { - table = table.Where("status = ?", e.Status) + if role.Status != "" { + table = table.Where("status = ?", role.Status) } - if e.RoleKey != "" { - table = table.Where("role_key = ?", e.RoleKey) + if role.RoleKey != "" { + table = table.Where("role_key = ?", role.RoleKey) } // 数据权限控制 dataPermission := new(DataPermission) - dataPermission.UserId, _ = tools.StringToInt(e.DataScope) + dataPermission.UserId, _ = tools.StringToInt(role.DataScope) table,err := dataPermission.GetDataScope("sys_role", table) if err != nil { return nil, 0, err @@ -99,7 +99,7 @@ func (role *SysRole) GetList() (SysRole []SysRole, err error) { func (role *SysRole) GetRoleMeunId() ([]int, error) { menuIds := make([]int, 0) menuList := make([]MenuIdList, 0) - if err := orm.Eloquent.Table("sys_role_menu").Select("sys_role_menu.menu_id").Joins("LEFT JOIN sys_menu on sys_menu.menu_id=sys_role_menu.menu_id").Where("role_id = ? ", role.RoleId).Where(" sys_role_menu.menu_id not in(select sys_menu.parent_id from sys_role_menu LEFT JOIN sys_menu on sys_menu.menu_id=sys_role_menu.menu_id where role_id =? )", role.RoleId).Find(&menuList).Error; err != nil { + if err := orm.Eloquent.Table(role.TableName()).Select("sys_role_menu.menu_id").Joins("LEFT JOIN sys_menu on sys_menu.menu_id=sys_role_menu.menu_id").Where("role_id = ? ", role.RoleId).Where(" sys_role_menu.menu_id not in(select sys_menu.parent_id from sys_role_menu LEFT JOIN sys_menu on sys_menu.menu_id=sys_role_menu.menu_id where role_id =? )", role.RoleId).Find(&menuList).Error; err != nil { return nil, err } @@ -111,12 +111,12 @@ func (role *SysRole) GetRoleMeunId() ([]int, error) { func (role *SysRole) Insert() (id int, err error) { i := 0 - orm.Eloquent.Table("sys_role").Where("role_name=? or role_key = ?", role.RoleName, role.RoleKey).Count(&i) + orm.Eloquent.Table(role.TableName()).Where("role_name=? or role_key = ?", role.RoleName, role.RoleKey).Count(&i) if i > 0 { return 0, errors.New("角色名称或者角色标识已经存在!") } role.UpdateBy = "" - result := orm.Eloquent.Table("sys_role").Create(&role) + result := orm.Eloquent.Table(role.TableName()).Create(&role) if result.Error != nil { err = result.Error return @@ -145,7 +145,7 @@ func (role *SysRole) GetRoleDeptId() ([]int, error) { //修改 func (role *SysRole) Update(id int) (update SysRole, err error) { - if err = orm.Eloquent.Table("sys_role").First(&update, id).Error; err != nil { + if err = orm.Eloquent.Table(role.TableName()).First(&update, id).Error; err != nil { return } @@ -159,15 +159,15 @@ func (role *SysRole) Update(id int) (update SysRole, err error) { //参数1:是要修改的数据 //参数2:是修改的数据 - if err = orm.Eloquent.Table("sys_role").Model(&update).Updates(&role).Error; err != nil { + if err = orm.Eloquent.Table(role.TableName()).Model(&update).Updates(&role).Error; err != nil { return } return } //批量删除 -func (e *SysRole) BatchDelete(id []int) (Result bool, err error) { - if err = orm.Eloquent.Table("sys_role").Where("role_id in (?)", id).Delete(&SysRole{}).Error; err != nil { +func (role *SysRole) BatchDelete(id []int) (Result bool, err error) { + if err = orm.Eloquent.Table(role.TableName()).Where("role_id in (?)", id).Delete(SysRole{}).Error; err != nil { return } Result = true diff --git a/models/roledept.go b/models/roledept.go index 780a5e94..6150c2be 100644 --- a/models/roledept.go +++ b/models/roledept.go @@ -7,8 +7,8 @@ import ( //sys_role_dept type SysRoleDept struct { - RoleId int `gorm:"type:int(11)"` - DeptId int `gorm:"type:int(11)"` + RoleId int `gorm:""` + DeptId int `gorm:""` } func (SysRoleDept) TableName() string { diff --git a/models/rolemenu.go b/models/rolemenu.go index 1263a9a6..883deaa1 100644 --- a/models/rolemenu.go +++ b/models/rolemenu.go @@ -7,11 +7,11 @@ import ( ) type RoleMenu struct { - RoleId int `gorm:"type:int(11)"` - MenuId int `gorm:"type:int(11)"` - RoleName string `gorm:"type:varchar(128)"` - CreateBy string `gorm:"type:varchar(128)"` - UpdateBy string `gorm:"type:varchar(128)"` + RoleId int `gorm:""` + MenuId int `gorm:""` + RoleName string `gorm:"size:128)"` + CreateBy string `gorm:"size:128)"` + UpdateBy string `gorm:"size:128)"` } func (RoleMenu) TableName() string { diff --git a/models/sysuser.go b/models/sysuser.go index 986c05c6..137b2eb8 100644 --- a/models/sysuser.go +++ b/models/sysuser.go @@ -22,12 +22,12 @@ type User struct { } type UserName struct { - Username string `gorm:"type:varchar(64)" json:"username"` + Username string `gorm:"size:64" json:"username"` } type PassWord struct { // 密码 - Password string `gorm:"type:varchar(128)" json:"password"` + Password string `gorm:"size:128" json:"password"` } type LoginM struct { @@ -40,19 +40,19 @@ type SysUserId struct { } type SysUserB struct { - NickName string `gorm:"type:varchar(128)" json:"nickName"` // 昵称 - Phone string `gorm:"type:varchar(11)" json:"phone"` // 手机号 - RoleId int `gorm:"type:int(11)" 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 int `gorm:"type:int(11)" json:"deptId"` //部门编码 - PostId int `gorm:"type:int(11)" json:"postId"` //职位编码 - 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:int(1);" json:"status"` + NickName string `gorm:"size:128" json:"nickName"` // 昵称 + Phone string `gorm:"size:11" json:"phone"` // 手机号 + RoleId int `gorm:"" json:"roleId"` // 角色编码 + Salt string `gorm:"size:255" json:"salt"` //盐 + Avatar string `gorm:"size:255" json:"avatar"` //头像 + Sex string `gorm:"size:255" json:"sex"` //性别 + Email string `gorm:"size:128" json:"email"` //邮箱 + DeptId int `gorm:"" json:"deptId"` //部门编码 + PostId int `gorm:"" json:"postId"` //职位编码 + CreateBy string `gorm:"size:128" json:"createBy"` // + UpdateBy string `gorm:"size:128" json:"updateBy"` // + Remark string `gorm:"size:255" json:"remark"` //备注 + Status string `gorm:"size:4;" json:"status"` DataScope string `gorm:"-" json:"dataScope"` Params string `gorm:"-" json:"params"` diff --git a/models/tools/dbcolumns.go b/models/tools/dbcolumns.go index 5bc3b4e1..d5b29243 100644 --- a/models/tools/dbcolumns.go +++ b/models/tools/dbcolumns.go @@ -4,6 +4,7 @@ import ( "errors" "github.com/jinzhu/gorm" orm "go-admin/global" + "go-admin/tools" config2 "go-admin/tools/config" ) @@ -38,7 +39,6 @@ func (e *DBColumns) GetPage(pageSize int, pageIndex int) ([]DBColumns, int, erro table = table.Where("TABLE_NAME = ?", e.TableName) } - if err := table.Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Error; err != nil { return nil, 0, err } @@ -51,15 +51,17 @@ func (e *DBColumns) GetList() ([]DBColumns, error) { var doc []DBColumns table := new(gorm.DB) + if e.TableName == "" { + return nil, errors.New("table name cannot be empty!") + } + if config2.DatabaseConfig.Driver == "mysql" { table = orm.Eloquent.Select("*").Table("information_schema.columns") table = table.Where("table_schema= ? ", config2.DatabaseConfig.DBName) - if e.TableName == "" { - return nil, errors.New("table name cannot be empty!") - } - table = table.Where("TABLE_NAME = ?", e.TableName) + } else { + tools.Assert(true, "目前只支持mysql数据库", 500) } if err := table.Find(&doc).Error; err != nil { return doc, err diff --git a/models/tools/dbtables.go b/models/tools/dbtables.go index 4fc6a843..fa7d6a3f 100644 --- a/models/tools/dbtables.go +++ b/models/tools/dbtables.go @@ -4,6 +4,7 @@ import ( "errors" "github.com/jinzhu/gorm" orm "go-admin/global" + "go-admin/tools" config2 "go-admin/tools/config" ) @@ -33,16 +34,8 @@ func (e *DBTables) GetPage(pageSize int, pageIndex int) ([]DBTables, int, error) if err := table.Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Error; err != nil { return nil, 0, err } - } else if config2.DatabaseConfig.Driver == "sqlite3" { - table = orm.Eloquent.Select("name as TABLE_NAME,name as ENGINE,name as TABLE_ROWS,name as TABLE_COLLATION,name as CREATE_TIME,name as UPDATE_TIME,name as TABLE_COMMENT ").Table("sqlite_master") - table = table.Where("type = 'table' ") - - if e.TableName != "" { - table = table.Where("name = ?", e.TableName) - } - if err := table.Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Error; err != nil { - return nil, 0, err - } + } else { + tools.Assert(true, "目前只支持mysql数据库", 500) } table.Count(&count) @@ -59,13 +52,8 @@ func (e *DBTables) Get() (DBTables, error) { return doc, errors.New("table name cannot be empty!") } table = table.Where("TABLE_NAME = ?", e.TableName) - } else if config2.DatabaseConfig.Driver == "sqlite3" { - table = orm.Eloquent.Select("name as TABLE_NAME,name as ENGINE,name as TABLE_ROWS,name as TABLE_COLLATION,name as CREATE_TIME,name as UPDATE_TIME,name as TABLE_COMMENT ").Table("sqlite_master") - table = table.Where("type = 'table' ") - - if e.TableName != "" { - table = table.Where("name = ?", e.TableName) - } + } else { + tools.Assert(true, "目前只支持mysql数据库", 500) } if err := table.First(&doc).Error; err != nil { return doc, err diff --git a/models/tools/syscolumns.go b/models/tools/syscolumns.go index 3a8040ec..914936eb 100644 --- a/models/tools/syscolumns.go +++ b/models/tools/syscolumns.go @@ -7,36 +7,36 @@ import ( type SysColumns struct { ColumnId int `gorm:"primary_key;auto_increment" json:"columnId"` - TableId int `gorm:"type:int(11);" json:"tableId"` - ColumnName string `gorm:"type:varchar(128);" json:"columnName"` - ColumnComment string `gorm:"column:column_comment;type:varchar(128);" json:"columnComment"` - ColumnType string `gorm:"column:column_type;type:varchar(128);" json:"columnType"` - GoType string `gorm:"column:go_type;type:varchar(128);" json:"goType"` - GoField string `gorm:"column:go_field;type:varchar(128);" json:"goField"` - JsonField string `gorm:"column:json_field;type:varchar(128);" json:"jsonField"` - IsPk string `gorm:"column:is_pk;type:char(4);" json:"isPk"` - IsIncrement string `gorm:"column:is_increment;type:char(4);" json:"isIncrement"` - IsRequired string `gorm:"column:is_required;type:char(4);" json:"isRequired"` - IsInsert string `gorm:"column:is_insert;type:char(4);" json:"isInsert"` - IsEdit string `gorm:"column:is_edit;type:char(4);" json:"isEdit"` - IsList string `gorm:"column:is_list;type:char(4);" json:"isList"` - IsQuery string `gorm:"column:is_query;type:char(4);" json:"isQuery"` - QueryType string `gorm:"column:query_type;type:varchar(128);" json:"queryType"` - HtmlType string `gorm:"column:html_type;type:varchar(128);" json:"htmlType"` - DictType string `gorm:"column:dict_type;type:varchar(128);" json:"dictType"` - Sort int `gorm:"column:sort;type:int(4);" json:"sort"` - List string `gorm:"column:list;type:char(1);" json:"list"` - Pk bool `gorm:"column:pk;type:char(1);" json:"pk"` - Required bool `gorm:"column:required;type:char(1);" json:"required"` - SuperColumn bool `gorm:"column:super_column;type:char(1);" json:"superColumn"` - UsableColumn bool `gorm:"column:usable_column;type:char(1);" json:"usableColumn"` - Increment bool `gorm:"column:increment;type:char(1);" json:"increment"` - Insert bool `gorm:"column:insert;type:char(1);" json:"insert"` - Edit bool `gorm:"column:edit;type:char(1);" json:"edit"` - Query bool `gorm:"column:query;type:char(1);" json:"query"` - Remark string `gorm:"column:remark;type:varchar(255);" json:"remark"` - CreateBy string `gorm:"column:create_by;type:varchar(128);" json:"createBy"` - UpdateBy string `gorm:"column:update_By;type:varchar(128);" json:"updateBy"` + TableId int `gorm:"" json:"tableId"` + ColumnName string `gorm:"size:128;" json:"columnName"` + ColumnComment string `gorm:"column:column_comment;size:128;" json:"columnComment"` + ColumnType string `gorm:"column:column_type;size:128;" json:"columnType"` + GoType string `gorm:"column:go_type;size:128;" json:"goType"` + GoField string `gorm:"column:go_field;size:128;" json:"goField"` + JsonField string `gorm:"column:json_field;size:128;" json:"jsonField"` + IsPk string `gorm:"column:is_pk;size:4;" json:"isPk"` + IsIncrement string `gorm:"column:is_increment;size:4;" json:"isIncrement"` + IsRequired string `gorm:"column:is_required;size:4;" json:"isRequired"` + IsInsert string `gorm:"column:is_insert;size:4;" json:"isInsert"` + IsEdit string `gorm:"column:is_edit;size:4;" json:"isEdit"` + IsList string `gorm:"column:is_list;size:4;" json:"isList"` + IsQuery string `gorm:"column:is_query;size:4;" json:"isQuery"` + QueryType string `gorm:"column:query_type;size:128;" json:"queryType"` + HtmlType string `gorm:"column:html_type;size:128;" json:"htmlType"` + DictType string `gorm:"column:dict_type;size:128;" json:"dictType"` + Sort int `gorm:"column:sort;" json:"sort"` + List string `gorm:"column:list;size:1;" json:"list"` + Pk bool `gorm:"column:pk;size:1;" json:"pk"` + Required bool `gorm:"column:required;size:1;" json:"required"` + SuperColumn bool `gorm:"column:super_column;size:1;" json:"superColumn"` + UsableColumn bool `gorm:"column:usable_column;size:1;" json:"usableColumn"` + Increment bool `gorm:"column:increment;size:1;" json:"increment"` + Insert bool `gorm:"column:insert;size:1;" json:"insert"` + Edit bool `gorm:"column:edit;size:1;" json:"edit"` + Query bool `gorm:"column:query;size:1;" json:"query"` + Remark string `gorm:"column:remark;size:255;" json:"remark"` + CreateBy string `gorm:"column:create_by;size:128;" json:"createBy"` + UpdateBy string `gorm:"column:update_By;size:128;" json:"updateBy"` models.BaseModel } diff --git a/models/tools/systables.go b/models/tools/systables.go index 86c271f1..b7011376 100644 --- a/models/tools/systables.go +++ b/models/tools/systables.go @@ -7,30 +7,30 @@ import ( type SysTables struct { TableId int `gorm:"primary_key;auto_increment" json:"tableId"` //表编码 - TBName string `gorm:"column:table_name;type:varchar(255);" json:"tableName"` //表名称 - TableComment string `gorm:"type:varchar(255);" json:"tableComment"` //表备注 - ClassName string `gorm:"type:varchar(255);" json:"className"` //类名 - TplCategory string `gorm:"type:varchar(255);" json:"tplCategory"` - PackageName string `gorm:"type:varchar(255);" json:"packageName"` //包名 - ModuleName string `gorm:"type:varchar(255);" json:"moduleName"` //模块名 - BusinessName string `gorm:"type:varchar(255);" json:"businessName"` - FunctionName string `gorm:"type:varchar(255);" json:"functionName"` //功能名称 - FunctionAuthor string `gorm:"type:varchar(255);" json:"functionAuthor"` //功能作者 - PkColumn string `gorm:"type:varchar(255);" json:"pkColumn"` - PkGoField string `gorm:"type:varchar(255);" json:"pkGoField"` - PkJsonField string `gorm:"type:varchar(255);" json:"pkJsonField"` - Options string `gorm:"type:varchar(255);" json:"options"` - TreeCode string `gorm:"type:varchar(255);" json:"treeCode"` - TreeParentCode string `gorm:"type:varchar(255);" json:"treeParentCode"` - TreeName string `gorm:"type:varchar(255);" json:"treeName"` - Tree bool `gorm:"type:char(1);" json:"tree"` - Crud bool `gorm:"type:char(1);" json:"crud"` - Remark string `gorm:"type:varchar(255);" json:"remark"` - IsLogicalDelete string `gorm:"type:char(1);" json:"isLogicalDelete"` - LogicalDelete bool `gorm:"type:char(1);" json:"logicalDelete"` - LogicalDeleteColumn string `gorm:"type:varchar(128);" json:"logicalDeleteColumn"` - CreateBy string `gorm:"type:varchar(128);" json:"createBy"` - UpdateBy string `gorm:"type:varchar(128);" json:"updateBy"` + TBName string `gorm:"column:table_name;size:255;" json:"tableName"` //表名称 + TableComment string `gorm:"size:255;" json:"tableComment"` //表备注 + ClassName string `gorm:"size:255;" json:"className"` //类名 + TplCategory string `gorm:"size:255;" json:"tplCategory"` + PackageName string `gorm:"size:255;" json:"packageName"` //包名 + ModuleName string `gorm:"size:255;" json:"moduleName"` //模块名 + BusinessName string `gorm:"size:255;" json:"businessName"` + FunctionName string `gorm:"size:255;" json:"functionName"` //功能名称 + FunctionAuthor string `gorm:"size:255;" json:"functionAuthor"` //功能作者 + PkColumn string `gorm:"size:255;" json:"pkColumn"` + PkGoField string `gorm:"size:255;" json:"pkGoField"` + PkJsonField string `gorm:"size:255;" json:"pkJsonField"` + Options string `gorm:"size:255;" json:"options"` + TreeCode string `gorm:"size:255;" json:"treeCode"` + TreeParentCode string `gorm:"size:255;" json:"treeParentCode"` + TreeName string `gorm:"size:255;" json:"treeName"` + Tree bool `gorm:"size:1;" json:"tree"` + Crud bool `gorm:"size:1;" json:"crud"` + Remark string `gorm:"size:255;" json:"remark"` + IsLogicalDelete string `gorm:"size:1;" json:"isLogicalDelete"` + LogicalDelete bool `gorm:"size:1;" json:"logicalDelete"` + LogicalDeleteColumn string `gorm:"size:128;" json:"logicalDeleteColumn"` + CreateBy string `gorm:"size:128;" json:"createBy"` + UpdateBy string `gorm:"size:128;" json:"updateBy"` DataScope string `gorm:"-" json:"dataScope"` Params Params `gorm:"-" json:"params"` Columns []SysColumns `gorm:"-" json:"columns"`