feat: model type change

This commit is contained in:
zhangwenjian
2020-07-10 00:17:01 +08:00
parent 84a78d7b4f
commit 02cc68daea
20 changed files with 286 additions and 257 deletions
+7 -7
View File
@@ -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 {
+10 -11
View File
@@ -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)
//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 {
+10 -10
View File
@@ -9,16 +9,16 @@ 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);"`
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:"-"`
+12 -12
View File
@@ -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
+6 -6
View File
@@ -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
}
+60 -19
View File
@@ -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 {
db.SingularTable(true)
return db.AutoMigrate(&table).Error
}
+5 -6
View File
@@ -2,17 +2,16 @@ 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())
@@ -26,7 +25,7 @@ func InitDb() error {
}
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
}
+11 -11
View File
@@ -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
}
+17 -17
View File
@@ -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:"-"`
+1 -1
View File
@@ -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"`
}
+19 -19
View File
@@ -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
}
+7 -7
View File
@@ -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
+27 -27
View File
@@ -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
+2 -2
View File
@@ -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 {
+5 -5
View File
@@ -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 {
+15 -15
View File
@@ -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"`
+7 -5
View File
@@ -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 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")
}
if config2.DatabaseConfig.Driver == "mysql" {
table = orm.Eloquent.Select("*").Table("information_schema.columns")
table = table.Where("table_schema= ? ", config2.DatabaseConfig.DBName)
table = table.Where("TABLE_NAME = ?", e.TableName)
} else {
tools.Assert(true, "目前只支持mysql数据库", 500)
}
if err := table.Find(&doc).Error; err != nil {
return doc, err
+5 -17
View File
@@ -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
+30 -30
View File
@@ -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
}
+24 -24
View File
@@ -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"`