diff --git a/apis/system/config.go b/apis/system/config.go index c4440c9b..8517bc70 100644 --- a/apis/system/config.go +++ b/apis/system/config.go @@ -145,3 +145,5 @@ func DeleteConfig(c *gin.Context) { tools.HasError(err, "修改失败", 500) app.OK(c, result, msg.DeletedSuccess) } + + diff --git a/apis/system/dict/dictType.go b/apis/system/dict/dictType.go index 4cc87c5d..41a76489 100644 --- a/apis/system/dict/dictType.go +++ b/apis/system/dict/dictType.go @@ -71,7 +71,6 @@ func GetDictType(c *gin.Context) { c.JSON(http.StatusOK, res.ReturnOK()) } - func GetDictTypeOptionSelect(c *gin.Context) { var DictType models.DictType DictType.DictName = c.Request.FormValue("dictName") diff --git a/apis/system/post.go b/apis/system/post.go index 643c41b0..20350f33 100644 --- a/apis/system/post.go +++ b/apis/system/post.go @@ -106,9 +106,9 @@ func UpdatePost(c *gin.Context) { // @Router /api/v1/post/{postId} [delete] func DeletePost(c *gin.Context) { var data models.Post - id, err := tools.StringToInt(c.Param("postId")) data.UpdateBy = tools.GetUserIdStr(c) - _, err = data.Delete(id) + IDS := tools.IdsStrToIdsIntGroup("postId", c) + result, err := data.BatchDelete(IDS) tools.HasError(err, "删除失败", 500) - app.OK(c,"","删除成功") + app.OK(c,result,"删除成功") } diff --git a/apis/tools/systables.go b/apis/tools/systables.go index ef69b9c7..c540d0d1 100644 --- a/apis/tools/systables.go +++ b/apis/tools/systables.go @@ -81,10 +81,26 @@ func GetSysTables(c *gin.Context) { // @Router /api/v1/sys/tables/info [post] // @Security Bearer func InsertSysTable(c *gin.Context) { + + tablesList := strings.Split(c.Request.FormValue("tables"), ",") + for i := 0; i < len(tablesList); i++ { + + data, err := genTableInit(tablesList, i, c) + + _, err = data.Create() + tools2.HasError(err, "", -1) + } + var res app.Response + res.Msg = "添加成功!" + c.JSON(http.StatusOK, res.ReturnOK()) + +} + +func genTableInit(tablesList []string, i int, c *gin.Context) (tools.SysTables, error) { var data tools.SysTables var dbTable tools.DBTables var dbColumn tools.DBColumns - data.TBName = c.Request.FormValue("tables") + data.TBName = tablesList[i] data.CreateBy = tools2.GetUserIdStr(c) dbTable.TableName = data.TBName @@ -161,15 +177,7 @@ func InsertSysTable(c *gin.Context) { data.Columns = append(data.Columns, column) } - - result, err := data.Create() - tools2.HasError(err, "", -1) - - var res app.Response - res.Data = result - res.Msg = "添加成功!" - c.JSON(http.StatusOK, res.ReturnOK()) - + return data, err } // @Summary 修改表结构 diff --git a/config/settings.yml b/config/settings.yml index 90f87ce4..5945e2a9 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -1,7 +1,6 @@ settings: application: mode: dev # dev开发环境 test测试环境 prod线上环境 - demomsg: "谢谢您的参与,但为了大家更好的体验,所以本次提交就算了吧!\U0001F600\U0001F600\U0001F600" host: 0.0.0.0 name: testApp port: 8000 diff --git a/middleware/auth.go b/middleware/auth.go index a7944fc9..ee08620a 100644 --- a/middleware/auth.go +++ b/middleware/auth.go @@ -10,10 +10,9 @@ import ( func AuthInit() (*jwt.GinJWTMiddleware, error) { return jwt.New(&jwt.GinJWTMiddleware{ Realm: "test zone", - Key: []byte("secret key"), + Key: []byte(config.ApplicationConfig.JwtSecret), Timeout: time.Hour, MaxRefresh: time.Hour, - IdentityKey: config.ApplicationConfig.JwtSecret, PayloadFunc: handler.PayloadFunc, IdentityHandler: handler.IdentityHandler, Authenticator: handler.Authenticator, diff --git a/middleware/demo.go b/middleware/demo.go deleted file mode 100644 index 00954dcd..00000000 --- a/middleware/demo.go +++ /dev/null @@ -1,27 +0,0 @@ -package middleware - -import ( - "github.com/gin-gonic/gin" - config2 "go-admin/tools/config" - "net/http" -) - -func DemoEvn() gin.HandlerFunc { - return func(c *gin.Context) { - if config2.ApplicationConfig.Mode == "demo" { - method := c.Request.Method - if method == "GET" || method == "OPTIONS" || c.Request.RequestURI == "/login" || c.Request.RequestURI == "/api/v1/logout" { - c.Next() - } else { - c.JSON(http.StatusOK, gin.H{ - "code": 500, - "msg": config2.ApplicationConfig.DemoMsg, - }) - c.Abort() - return - } - } else { - c.Next() - } - } -} diff --git a/models/config.go b/models/config.go index b0cd54c4..4ae67839 100644 --- a/models/config.go +++ b/models/config.go @@ -113,4 +113,3 @@ func (e *SysConfig) BatchDelete(id []int) (Result bool, err error) { Result = true return } - diff --git a/models/dictType.go b/models/dictType.go index 1586e04e..28c88a50 100644 --- a/models/dictType.go +++ b/models/dictType.go @@ -126,4 +126,4 @@ func (e *DictType) BatchDelete(id []int) (Result bool, err error) { } Result = true return -} \ No newline at end of file +} diff --git a/models/initdb.go b/models/initdb.go index d17f10e6..81123c9e 100644 --- a/models/initdb.go +++ b/models/initdb.go @@ -20,7 +20,7 @@ func InitDb() error { return err } sqlList := strings.Split(sql, ";") - for i := 0; i < len(sqlList); i++ { + for i := 0; i < len(sqlList) - 1; i++ { if strings.Contains(sqlList[i], "--") { fmt.Println(sqlList[i]) continue diff --git a/models/post.go b/models/post.go index 68fa276a..2a85d8b1 100644 --- a/models/post.go +++ b/models/post.go @@ -129,3 +129,11 @@ func (e *Post) Delete(id int) (success bool, err error) { success = true return } + +func (e *Post) BatchDelete(id []int) (Result bool, err error) { + if err = orm.Eloquent.Table(e.TableName()).Where("post_id in (?)", id).Delete(&Post{}).Error; err != nil { + return + } + Result = true + return +} diff --git a/models/role.go b/models/role.go index f520a779..315c0f56 100644 --- a/models/role.go +++ b/models/role.go @@ -6,20 +6,20 @@ 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);"` + 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);"` - Params string `json:"params" gorm:"-"` - MenuIds []int `json:"menuIds" gorm:"-"` - DeptIds []int `json:"deptIds" gorm:"-"` + Params string `json:"params" gorm:"-"` + MenuIds []int `json:"menuIds" gorm:"-"` + DeptIds []int `json:"deptIds" gorm:"-"` BaseModel } @@ -92,6 +92,7 @@ func (role *SysRole) GetList() (SysRole []SysRole, err error) { return } +// 获取角色对应的菜单ids func (role *SysRole) GetRoleMeunId() ([]int, error) { menuIds := make([]int, 0) menuList := make([]MenuIdList, 0) diff --git a/models/tools/dbtables.go b/models/tools/dbtables.go index 08229f32..bd2fea17 100644 --- a/models/tools/dbtables.go +++ b/models/tools/dbtables.go @@ -20,6 +20,7 @@ func (e *DBTables) GetPage(pageSize int, pageIndex int) ([]DBTables, int, error) var doc []DBTables table := orm.Eloquent.Select("*").Table("information_schema.tables") + table = table.Where("TABLE_NAME not in (select table_name from "+config2.DatabaseConfig.Name+".sys_tables) ") table = table.Where("table_schema= ? ", config2.DatabaseConfig.Name) if e.TableName != "" { diff --git a/models/tools/systables.go b/models/tools/systables.go index 78025bce..17f354f3 100644 --- a/models/tools/systables.go +++ b/models/tools/systables.go @@ -144,7 +144,7 @@ func (e *SysTables) Delete() (success bool, err error) { } func (e *SysTables) BatchDelete(id []int) (Result bool, err error) { - if err = orm.Eloquent.Table(e.TableName()).Where(" table_id in (?)", id).Delete(&SysColumns{}).Error; err != nil { + if err = orm.Eloquent.Unscoped().Table(e.TableName()).Where(" table_id in (?)", id).Delete(&SysColumns{}).Error; err != nil { return } Result = true diff --git a/router/router.go b/router/router.go index fcbd4498..6f0ad545 100644 --- a/router/router.go +++ b/router/router.go @@ -25,7 +25,6 @@ func InitRouter() *gin.Engine { r.Use(middleware.Options) r.Use(middleware.Secure) r.Use(middleware.RequestId()) - r.Use(middleware.DemoEvn()) r.GET("/", system.HelloWorld) r.Static("/static", "./static") diff --git a/template/model.go.template b/template/model.go.template index 994885ad..fa0320e4 100644 --- a/template/model.go.template +++ b/template/model.go.template @@ -11,34 +11,33 @@ type {{.ClassName}} struct { {{$x := .Pk}} {{if ($x)}}{{.GoField}} {{.GoType}} `json:"{{.JsonField}}" gorm:"type:{{.ColumnType}};primary_key"`{{else}}{{.GoField}} {{.GoType}} `json:"{{.JsonField}}" gorm:"type:{{.ColumnType}};"`{{end}} // {{.ColumnComment}} {{- end }} -DataScope string `json:"dataScope" gorm:"-"` -Params string `json:"params" gorm:"-"` -BaseModel + DataScope string `json:"dataScope" gorm:"-"` + Params string `json:"params" gorm:"-"` + BaseModel } func ({{.ClassName}}) TableName() string { -return "{{.TBName}}" + return "{{.TBName}}" } // 创建{{.ClassName}} func (e *{{.ClassName}}) Create() ({{.ClassName}}, error) { -var doc {{.ClassName}} -result := orm.Eloquent.Table(e.TableName()).Create(&e) -if result.Error != nil { -err := result.Error -return doc, err -} -doc = *e -return doc, nil + var doc {{.ClassName}} + result := orm.Eloquent.Table(e.TableName()).Create(&e) + if result.Error != nil { + err := result.Error + return doc, err + } + doc = *e + return doc, nil } // 获取{{.ClassName}} func (e *{{.ClassName}}) Get() ({{.ClassName}}, error) { var doc {{.ClassName}} - -table := orm.Eloquent.Table(e.TableName()) -{{ range .Columns -}} + table := orm.Eloquent.Table(e.TableName()) + {{ range .Columns -}} {{$z := .IsQuery}} {{- if ($z) -}} if e.{{.GoField}} != "" { @@ -55,61 +54,61 @@ return doc, nil // 获取{{.ClassName}}带分页 func (e *{{.ClassName}}) GetPage(pageSize int, pageIndex int) ([]{{.ClassName}}, int, error) { -var doc []{{.ClassName}} + var doc []{{.ClassName}} -table := orm.Eloquent.Select("*").Table(e.TableName()) -{{ range .Columns -}} + table := orm.Eloquent.Select("*").Table(e.TableName()) + {{ range .Columns -}} {{$z := .IsQuery}} {{- if ($z) -}} if e.{{.GoField}} != "" { table = table.Where("{{.ColumnName}} = ?", e.{{.GoField}}) } {{ end -}} -{{ end }} + {{ end }} -// 数据权限控制(如果不需要数据权限请将此处去掉) -dataPermission := new(DataPermission) -dataPermission.UserId, _ = tools.StringToInt(e.DataScope) -table = dataPermission.GetDataScope(e.TableName(), table) + // 数据权限控制(如果不需要数据权限请将此处去掉) + dataPermission := new(DataPermission) + dataPermission.UserId, _ = tools.StringToInt(e.DataScope) + table = dataPermission.GetDataScope(e.TableName(), table) -var count int + var count int -if err := table.Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Error; err != nil { -return nil, 0, err -} -table.Count(&count) -return doc, count, nil + if err := table.Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Error; err != nil { + return nil, 0, err + } + table.Count(&count) + return doc, count, nil } // 更新{{.ClassName}} func (e *{{.ClassName}}) Update(id int) (update {{.ClassName}}, err error) { -if err = orm.Eloquent.Table(e.TableName()).Where("{{.PkColumn}} = ?", id).First(&update).Error; err != nil { -return -} + if err = orm.Eloquent.Table(e.TableName()).Where("{{.PkColumn}} = ?", id).First(&update).Error; err != nil { + return + } -//参数1:是要修改的数据 -//参数2:是修改的数据 -if err = orm.Eloquent.Table(e.TableName()).Model(&update).Updates(&e).Error; err != nil { -return -} -return + //参数1:是要修改的数据 + //参数2:是修改的数据 + if err = orm.Eloquent.Table(e.TableName()).Model(&update).Updates(&e).Error; err != nil { + return + } + return } // 删除{{.ClassName}} func (e *{{.ClassName}}) Delete(id int) (success bool, err error) { -if err = orm.Eloquent.Table(e.TableName()).Where("{{.PkColumn}} = ?", id).Delete(&{{.ClassName}}{}).Error; err != nil { -success = false -return -} -success = true -return + if err = orm.Eloquent.Table(e.TableName()).Where("{{.PkColumn}} = ?", id).Delete(&{{.ClassName}}{}).Error; err != nil { + success = false + return + } + success = true + return } //批量删除 func (e *{{.ClassName}}) BatchDelete(id []int) (Result bool, err error) { -if err = orm.Eloquent.Table(e.TableName()).Where("{{.PkColumn}} in (?)", id).Delete(&{{.ClassName}}{}).Error; err != nil { -return -} -Result = true -return + if err = orm.Eloquent.Table(e.TableName()).Where("{{.PkColumn}} in (?)", id).Delete(&{{.ClassName}}{}).Error; err != nil { + return + } + Result = true + return }