From 2d15f91f2ef44b57308ccbb185a1b44c59bab90d Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Sat, 12 Sep 2020 01:07:35 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9Aupdate=20gen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/public/file.go | 53 ++++++- app/admin/apis/student/student.go | 84 ---------- app/admin/models/casbinrule.go | 2 +- app/admin/models/sysfileinfo.go | 13 +- .../version/1599190683660_migrate.go | 100 ++++-------- cmd/migrate/server.go | 8 +- config/db.sql | 146 +++++++++--------- go.mod | 2 + go.sum | 4 + pkg/casbin/mycasbin.go | 2 +- template/api.go.template | 2 +- template/model.go.template | 4 +- template/vue.go.template | 36 ++++- tools/file.go | 10 ++ tools/url.go | 10 ++ 15 files changed, 220 insertions(+), 256 deletions(-) delete mode 100644 app/admin/apis/student/student.go diff --git a/app/admin/apis/public/file.go b/app/admin/apis/public/file.go index 48a71c4e..0068a50e 100644 --- a/app/admin/apis/public/file.go +++ b/app/admin/apis/public/file.go @@ -5,14 +5,25 @@ import ( "errors" "fmt" "io/ioutil" + "strings" "github.com/gin-gonic/gin" "github.com/google/uuid" + imgType "github.com/shamsher31/goimgtype" "go-admin/pkg/utils" + "go-admin/tools" "go-admin/tools/app" ) +type FileResponse struct { + Size int64 `json:"size"` + Path string `json:"path"` + FullPath string `json:"full_path"` + Name string `json:"name"` + Type string `json:"type"` +} + // @Summary 上传图片 // @Description 获取JSON // @Tags 公共接口 @@ -25,6 +36,7 @@ import ( func UploadFile(c *gin.Context) { tag, _ := c.GetPostForm("type") urlPerfix := fmt.Sprintf("http://%s/", c.Request.Host) + var fileResponse FileResponse if tag == "" { app.Error(c, 200, errors.New(""), "缺少标识") return @@ -41,25 +53,52 @@ func UploadFile(c *gin.Context) { singleFile := "static/uploadfile/" + guid + utils.GetExt(files.Filename) _ = c.SaveUploadedFile(files, singleFile) - app.OK(c, urlPerfix+singleFile, "上传成功") + fileType, _ := imgType.Get(singleFile) + fileResponse = FileResponse{ + Size: tools.GetFileSize(singleFile), + Path: singleFile, + FullPath: urlPerfix + singleFile, + Name: files.Filename, + Type: fileType, + } + app.OK(c, fileResponse, "上传成功") return case "2": // 多图 files := c.Request.MultipartForm.File["file"] - multipartFile := make([]string, len(files)) + var multipartFile []FileResponse for _, f := range files { guid := uuid.New().String() multipartFileName := "static/uploadfile/" + guid + utils.GetExt(f.Filename) - _ = c.SaveUploadedFile(f, multipartFileName) - multipartFile = append(multipartFile, urlPerfix+multipartFileName) + e := c.SaveUploadedFile(f, multipartFileName) + fileType, _ := imgType.Get(multipartFileName) + if e == nil { + multipartFile = append(multipartFile, FileResponse{ + Size: tools.GetFileSize(multipartFileName), + Path: multipartFileName, + FullPath: urlPerfix + multipartFileName, + Name: f.Filename, + Type: fileType, + }) + } } app.OK(c, multipartFile, "上传成功") return case "3": // base64 files, _ := c.GetPostForm("file") - ddd, _ := base64.StdEncoding.DecodeString(files) + file2list := strings.Split(files, ",") + ddd, _ := base64.StdEncoding.DecodeString(file2list[1]) guid := uuid.New().String() - _ = ioutil.WriteFile("static/uploadfile/"+guid+".jpg", ddd, 0666) - app.OK(c, urlPerfix+"static/uploadfile/"+guid+".jpg", "上传成功") + base64File := "static/uploadfile/" + guid + ".jpg" + _ = ioutil.WriteFile(base64File, ddd, 0666) + typeStr := strings.Replace(strings.Replace(file2list[0], "data:", "", -1), ";base64", "", -1) + fileResponse = FileResponse{ + Size: tools.GetFileSize(base64File), + Path: base64File, + FullPath: urlPerfix + base64File, + Name: "", + Type: typeStr, + } + app.OK(c, fileResponse, "上传成功") } } } diff --git a/app/admin/apis/student/student.go b/app/admin/apis/student/student.go deleted file mode 100644 index 92482e54..00000000 --- a/app/admin/apis/student/student.go +++ /dev/null @@ -1,84 +0,0 @@ -package student - -import ( - "github.com/gin-gonic/gin" - - "go-admin/app/admin/models" - "go-admin/app/admin/service/dto" - "go-admin/tools" - "go-admin/tools/app" - "go-admin/tools/app/msg" -) - -func GetStudentList(c *gin.Context) { - var data models.Student - var err error - var pageSize = 10 - var pageIndex = 1 - - if size := c.Request.FormValue("pageSize"); size != "" { - pageSize, err = tools.StringToInt(size) - } - if index := c.Request.FormValue("pageIndex"); index != "" { - pageIndex, err = tools.StringToInt(index) - } - - var v dto.StudentSearch - err = c.Bind(&v) - tools.HasError(err, "数据解析失败", 422) - - data.DataScope = tools.GetUserIdStr(c) - result, count, err := data.GetPage(pageSize, pageIndex, v) - tools.HasError(err, "", -1) - - app.PageOK(c, result, count, pageIndex, pageSize, "") -} - -func GetStudent(c *gin.Context) { - var data models.Student - data.Id, _ = tools.StringToInt(c.Param("id")) - result, err := data.Get() - tools.HasError(err, "抱歉未找到相关信息", -1) - - app.OK(c, result, "") -} - -// @Summary 添加Student -// @Description 获取JSON -// @Tags Student -// @Accept application/json -// @Product application/json -// @Param data body models.Student true "data" -// @Success 200 {string} string "{"code": 200, "message": "添加成功"}" -// @Success 200 {string} string "{"code": -1, "message": "添加失败"}" -// @Router /api/v1/student [post] -func InsertStudent(c *gin.Context) { - var data models.Student - err := c.ShouldBindJSON(&data) - data.CreateBy = tools.GetUserIdStr(c) - tools.HasError(err, "", 500) - result, err := data.Create() - tools.HasError(err, "", -1) - app.OK(c, result, "") -} - -func UpdateStudent(c *gin.Context) { - var data models.Student - err := c.ShouldBindJSON(&data) - tools.HasError(err, "数据解析失败", -1) - data.UpdateBy = tools.GetUserIdStr(c) - result, err := data.Update(data.Id) - tools.HasError(err, "", -1) - - app.OK(c, result, "") -} - -func DeleteStudent(c *gin.Context) { - var data models.Student - data.UpdateBy = tools.GetUserIdStr(c) - - IDS := tools.IdsStrToIdsIntGroup("id", c) - _, err := data.BatchDelete(IDS) - tools.HasError(err, msg.DeletedFail, 500) - app.OK(c, nil, msg.DeletedSuccess) -} \ No newline at end of file diff --git a/app/admin/models/casbinrule.go b/app/admin/models/casbinrule.go index b108f689..e239177e 100644 --- a/app/admin/models/casbinrule.go +++ b/app/admin/models/casbinrule.go @@ -12,5 +12,5 @@ type CasbinRule struct { } func (CasbinRule) TableName() string { - return "casbin_rule" + return "sys_casbin_rule" } diff --git a/app/admin/models/sysfileinfo.go b/app/admin/models/sysfileinfo.go index ff0ea576..07d5b591 100644 --- a/app/admin/models/sysfileinfo.go +++ b/app/admin/models/sysfileinfo.go @@ -2,7 +2,6 @@ package models import ( orm "go-admin/common/global" - "go-admin/tools" ) type SysFileInfo struct { @@ -63,12 +62,12 @@ func (e *SysFileInfo) GetPage(pageSize int, pageIndex int) ([]SysFileInfo, int, } // 数据权限控制(如果不需要数据权限请将此处去掉) - dataPermission := new(DataPermission) - dataPermission.UserId, _ = tools.StringToInt(e.DataScope) - table, err := dataPermission.GetDataScope(e.TableName(), table) - if err != nil { - return nil, 0, err - } + //dataPermission := new(DataPermission) + //dataPermission.UserId, _ = tools.StringToInt(e.DataScope) + //table, err := dataPermission.GetDataScope(e.TableName(), table) + //if err != nil { + // return nil, 0, err + //} var count int64 if err := table.Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Offset(-1).Limit(-1).Count(&count).Error; err != nil { diff --git a/cmd/migrate/migration/version/1599190683660_migrate.go b/cmd/migrate/migration/version/1599190683660_migrate.go index 683c0c8a..a360bdf8 100644 --- a/cmd/migrate/migration/version/1599190683660_migrate.go +++ b/cmd/migrate/migration/version/1599190683660_migrate.go @@ -20,80 +20,32 @@ func _1599190683660Test(db *gorm.DB, version string) error { return db.Transaction(func(tx *gorm.DB) error { var err error - list := []models.CasbinRule{ - {"p", "admin", "/api/v1/menulist", "GET", "", "", ""}, - {"p", "admin", "/api/v1/menu", "POST", "", "", ""}, - {"p", "admin", "/api/v1/dict/databytype/", "GET", "", "", ""}, - {"p", "admin", "/api/v1/menu", "PUT", "", "", ""}, - {"p", "admin", "/api/v1/menu/:id", "DELETE", "", "", ""}, - {"p", "admin", "/api/v1/sysUserList", "GET", "", "", ""}, - {"p", "admin", "/api/v1/sysUser/:id", "GET", "", "", ""}, - {"p", "admin", "/api/v1/sysUser/", "GET", "", "", ""}, - {"p", "admin", "/api/v1/sysUser", "POST", "", "", ""}, - {"p", "admin", "/api/v1/sysUser", "PUT", "", "", ""}, - {"p", "admin", "/api/v1/sysUser/:id", "DELETE", "", "", ""}, - {"p", "admin", "/api/v1/user/profile", "GET", "", "", ""}, - {"p", "admin", "/api/v1/rolelist", "GET", "", "", ""}, - {"p", "admin", "/api/v1/role/:id", "GET", "", "", ""}, - {"p", "admin", "/api/v1/role", "POST", "", "", ""}, - {"p", "admin", "/api/v1/role", "PUT", "", "", ""}, - {"p", "admin", "/api/v1/role/:id", "DELETE", "", "", ""}, - {"p", "admin", "/api/v1/configList", "GET", "", "", ""}, - {"p", "admin", "/api/v1/config/:id", "GET", "", "", ""}, - {"p", "admin", "/api/v1/config", "POST", "", "", ""}, - {"p", "admin", "/api/v1/config", "PUT", "", "", ""}, - {"p", "admin", "/api/v1/config/:id", "DELETE", "", "", ""}, - {"p", "admin", "/api/v1/menurole", "GET", "", "", ""}, - {"p", "admin", "/api/v1/roleMenuTreeselect/:id", "GET", "", "", ""}, - {"p", "admin", "/api/v1/menuTreeselect", "GET", "", "", ""}, - {"p", "admin", "/api/v1/rolemenu", "GET", "", "", ""}, - {"p", "admin", "/api/v1/rolemenu", "POST", "", "", ""}, - {"p", "admin", "/api/v1/rolemenu/:id", "DELETE", "", "", ""}, - {"p", "admin", "/api/v1/deptList", "GET", "", "", ""}, - {"p", "admin", "/api/v1/dept/:id", "GET", "", "", ""}, - {"p", "admin", "/api/v1/dept", "POST", "", "", ""}, - {"p", "admin", "/api/v1/dept", "PUT", "", "", ""}, - {"p", "admin", "/api/v1/dept/:id", "DELETE", "", "", ""}, - {"p", "admin", "/api/v1/dict/datalist", "GET", "", "", ""}, - {"p", "admin", "/api/v1/dict/data/:id", "GET", "", "", ""}, - {"p", "admin", "/api/v1/dict/databytype/:id", "GET", "", "", ""}, - {"p", "admin", "/api/v1/dict/data", "POST", "", "", ""}, - {"p", "admin", "/api/v1/dict/data/", "PUT", "", "", ""}, - {"p", "admin", "/api/v1/dict/data/:id", "DELETE", "", "", ""}, - {"p", "admin", "/api/v1/dict/typelist", "GET", "", "", ""}, - {"p", "admin", "/api/v1/dict/type/:id", "GET", "", "", ""}, - {"p", "admin", "/api/v1/dict/type", "POST", "", "", ""}, - {"p", "admin", "/api/v1/dict/type", "PUT", "", "", ""}, - {"p", "admin", "/api/v1/dict/type/:id", "DELETE", "", "", ""}, - {"p", "admin", "/api/v1/postlist", "GET", "", "", ""}, - {"p", "admin", "/api/v1/post/:id", "GET", "", "", ""}, - {"p", "admin", "/api/v1/post", "POST", "", "", ""}, - {"p", "admin", "/api/v1/post", "PUT", "", "", ""}, - {"p", "admin", "/api/v1/post/:id", "DELETE", "", "", ""}, - {"p", "admin", "/api/v1/menu/:id", "GET", "", "", ""}, - {"p", "admin", "/api/v1/menuids", "GET", "", "", ""}, - {"p", "admin", "/api/v1/loginloglist", "GET", "", "", ""}, - {"p", "admin", "/api/v1/loginlog/:id", "DELETE", "", "", ""}, - {"p", "admin", "/api/v1/operloglist", "GET", "", "", ""}, - {"p", "admin", "/api/v1/getinfo", "GET", "", "", ""}, - {"p", "admin", "/api/v1/roledatascope", "PUT", "", "", ""}, - {"p", "admin", "/api/v1/roleDeptTreeselect/:id", "GET", "", "", ""}, - {"p", "admin", "/api/v1/deptTree", "GET", "", "", ""}, - {"p", "admin", "/api/v1/configKey/:id", "GET", "", "", ""}, - {"p", "admin", "/api/v1/logout", "POST", "", "", ""}, - {"p", "admin", "/api/v1/user/avatar", "POST", "", "", ""}, - {"p", "admin", "/api/v1/user/pwd", "PUT", "", "", ""}, - {"p", "admin", "/api/v1/dict/typeoptionselect", "GET", "", "", ""}, - {"p", "admin", "/api/v1/sysjobList", "GET", "", "", ""}, - {"p", "admin", "/api/v1/sysjob/:id", "GET", "", "", ""}, - {"p", "admin", "/api/v1/sysjob", "POST", "", "", ""}, - {"p", "admin", "/api/v1/sysjob", "PUT", "", "", ""}, - {"p", "admin", "/api/v1/sysjob/:id", "DELETE", "", "", ""}, - {"p", "admin", "/api/v1/syssettingList", "GET", "", "", ""}, - {"p", "admin", "/api/v1/syssetting/:id", "GET", "", "", ""}, - {"p", "admin", "/api/v1/syssetting", "POST", "", "", ""}, - {"p", "admin", "/api/v1/syssetting", "PUT", "", "", ""}, - {"p", "admin", "/api/v1/syssetting/:id", "DELETE", "", "", ""}, + list := []models.Menu{ + {MenuId: 496, MenuName: "Sources", Title: "资源管理", Icon: "network", Path: "/sources", Paths: "/0/496", MenuType: "M", Action: "无", Permission: "", ParentId: 0, NoCache: true, Breadcrumb: "", Component: "Layout", Sort: 3, Visible: "0", CreateBy: "1", UpdateBy: "1", IsFrame: "1"}, + {MenuId: 497, MenuName: "File", Title: "文件管理", Icon: "documentation", Path: "filemanage", Paths: "/0/496/497", MenuType: "C", Action: "", Permission: "", ParentId: 496, NoCache: true, Breadcrumb: "", Component: "/filemanage/index", Sort: 0, Visible: "0", CreateBy: "1", UpdateBy: "1", IsFrame: "1"}, + {MenuId: 498, MenuName: "", Title: "内容管理", Icon: "pass", Path: "/content", Paths: "/0/498", MenuType: "M", Action: "无", Permission: "", ParentId: 0, NoCache: true, Breadcrumb: "", Component: "Layout", Sort: 4, Visible: "0", CreateBy: "1", UpdateBy: "1", IsFrame: "1"}, + {MenuId: 499, MenuName: "SysCategory", Title: "分类", Icon: "pass", Path: "syscategory", Paths: "/0/498/499", MenuType: "C", Action: "无", Permission: "syscategory:syscategory:list", ParentId: 498, NoCache: true, Breadcrumb: "", Component: "/syscategory/index", Sort: 0, Visible: "0", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 500, MenuName: "", Title: "分页获取分类", Icon: "pass", Path: "", Paths: "/0/498/499/500", MenuType: "F", Action: "无", Permission: "syscategory:syscategory:query", ParentId: 499, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "0", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 501, MenuName: "", Title: "创建分类", Icon: "pass", Path: "", Paths: "/0/498/499/501", MenuType: "F", Action: "无", Permission: "syscategory:syscategory:add", ParentId: 499, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "0", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 502, MenuName: "", Title: "修改分类", Icon: "pass", Path: "", Paths: "/0/498/499/502", MenuType: "F", Action: "无", Permission: "syscategory:syscategory:edit", ParentId: 499, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "0", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 503, MenuName: "", Title: "删除分类", Icon: "pass", Path: "", Paths: "/0/498/499/503", MenuType: "F", Action: "无", Permission: "syscategory:syscategory:remove", ParentId: 499, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "0", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 504, MenuName: "Category", Title: "分类", Icon: "bug", Path: "category", Paths: "/0/63/504", MenuType: "M", Action: "无", Permission: "", ParentId: 63, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "1", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 505, MenuName: "", Title: "分页获取分类", Icon: "bug", Path: "/api/v1/syscategoryList", Paths: "/0/63/504/505", MenuType: "A", Action: "GET", Permission: "", ParentId: 504, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "1", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 506, MenuName: "", Title: "根据id获取分类", Icon: "bug", Path: "/api/v1/syscategory/:id", Paths: "/0/63/504/506", MenuType: "A", Action: "GET", Permission: "", ParentId: 504, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "1", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 507, MenuName: "", Title: "创建分类", Icon: "bug", Path: "/api/v1/syscategory", Paths: "/0/63/504/507", MenuType: "A", Action: "POST", Permission: "", ParentId: 504, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "1", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 508, MenuName: "", Title: "修改分类", Icon: "bug", Path: "/api/v1/syscategory", Paths: "/0/63/504/508", MenuType: "A", Action: "PUT", Permission: "", ParentId: 504, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "1", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 509, MenuName: "", Title: "删除分类", Icon: "bug", Path: "/api/v1/syscategory/:id", Paths: "/0/63/504/509", MenuType: "A", Action: "DELETE", Permission: "", ParentId: 504, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "1", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 511, MenuName: "SysContent", Title: "内容管理", Icon: "pass", Path: "syscontent", Paths: "/0/498/511", MenuType: "C", Action: "无", Permission: "syscontent:syscontent:list", ParentId: 498, NoCache: true, Breadcrumb: "", Component: "/syscontent/index", Sort: 0, Visible: "0", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 512, MenuName: "", Title: "分页获取内容管理", Icon: "pass", Path: "", Paths: "/0/510/511/512", MenuType: "F", Action: "无", Permission: "syscontent:syscontent:query", ParentId: 511, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "0", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 513, MenuName: "", Title: "创建内容管理", Icon: "pass", Path: "", Paths: "/0/510/511/513", MenuType: "F", Action: "无", Permission: "syscontent:syscontent:add", ParentId: 511, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "0", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 514, MenuName: "", Title: "修改内容管理", Icon: "pass", Path: "", Paths: "/0/510/511/514", MenuType: "F", Action: "无", Permission: "syscontent:syscontent:edit", ParentId: 511, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "0", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 515, MenuName: "", Title: "删除内容管理", Icon: "pass", Path: "", Paths: "/0/510/511/515", MenuType: "F", Action: "无", Permission: "syscontent:syscontent:remove", ParentId: 511, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "0", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 516, MenuName: "Content", Title: "内容管理", Icon: "bug", Path: "content", Paths: "/0/63/516", MenuType: "M", Action: "无", Permission: "", ParentId: 63, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "1", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 517, MenuName: "", Title: "分页获取内容管理", Icon: "bug", Path: "/api/v1/syscontentList", Paths: "/0/63/516/517", MenuType: "A", Action: "GET", Permission: "", ParentId: 516, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "1", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 518, MenuName: "", Title: "根据id获取内容管理", Icon: "bug", Path: "/api/v1/syscontent/:id", Paths: "/0/63/516/518", MenuType: "A", Action: "GET", Permission: "", ParentId: 516, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "1", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 519, MenuName: "", Title: "创建内容管理", Icon: "bug", Path: "/api/v1/syscontent", Paths: "/0/63/516/519", MenuType: "A", Action: "POST", Permission: "", ParentId: 516, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "1", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 520, MenuName: "", Title: "修改内容管理", Icon: "bug", Path: "/api/v1/syscontent", Paths: "/0/63/516/520", MenuType: "A", Action: "PUT", Permission: "", ParentId: 516, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "1", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, + {MenuId: 521, MenuName: "", Title: "删除内容管理", Icon: "bug", Path: "/api/v1/syscontent/:id", Paths: "/0/63/516/521", MenuType: "A", Action: "DELETE", Permission: "", ParentId: 516, NoCache: true, Breadcrumb: "", Component: "", Sort: 0, Visible: "1", CreateBy: "1", UpdateBy: "1", IsFrame: "0"}, } err = db.Create(list).Error diff --git a/cmd/migrate/server.go b/cmd/migrate/server.go index c2135f9d..d40a3901 100644 --- a/cmd/migrate/server.go +++ b/cmd/migrate/server.go @@ -14,11 +14,11 @@ import ( var ( configYml string - mode string + exec bool StartCmd = &cobra.Command{ - Use: "init", + Use: "migrate", Short: "Initialize the database", - Example: "go-admin init -c config/settings.yml", + Example: "go-admin migrate -c config/settings.yml", Run: func(cmd *cobra.Command, args []string) { run() }, @@ -27,7 +27,7 @@ var ( func init() { StartCmd.PersistentFlags().StringVarP(&configYml, "config", "c", "config/settings.yml", "Start server with provided configuration file") - StartCmd.PersistentFlags().StringVarP(&mode, "mode", "m", "dev", "server mode ; eg:dev,test,prod") + //StartCmd.PersistentFlags().BoolVarP(&exec, "exec", "e", false, "exec script") } func run() { diff --git a/config/db.sql b/config/db.sql index 453c6570..38d4c12d 100644 --- a/config/db.sql +++ b/config/db.sql @@ -1,78 +1,78 @@ -- 开始初始化数据 ; BEGIN; -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/menulist', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/menu', 'POST', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dict/databytype/', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/menu', 'PUT', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/menu/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/sysUserList', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/sysUser/:id', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/sysUser/', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/sysUser', 'POST', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/sysUser', 'PUT', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/sysUser/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/user/profile', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/rolelist', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/role/:id', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/role', 'POST', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/role', 'PUT', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/role/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/configList', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/config/:id', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/config', 'POST', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/config', 'PUT', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/config/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/menurole', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/roleMenuTreeselect/:id', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/menuTreeselect', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/rolemenu', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/rolemenu', 'POST', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/rolemenu/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/deptList', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dept/:id', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dept', 'POST', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dept', 'PUT', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dept/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dict/datalist', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dict/data/:id', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dict/databytype/:id', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dict/data', 'POST', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dict/data/', 'PUT', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dict/data/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dict/typelist', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dict/type/:id', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dict/type', 'POST', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dict/type', 'PUT', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dict/type/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/postlist', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/post/:id', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/post', 'POST', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/post', 'PUT', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/post/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/menu/:id', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/menuids', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/loginloglist', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/loginlog/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/operloglist', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/getinfo', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/roledatascope', 'PUT', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/roleDeptTreeselect/:id', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/deptTree', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/configKey/:id', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/logout', 'POST', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/user/avatar', 'POST', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/user/pwd', 'PUT', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/dict/typeoptionselect', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/sysjobList', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/sysjob/:id', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/sysjob', 'POST', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/sysjob', 'PUT', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/sysjob/:id', 'DELETE', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/syssettingList', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/syssetting/:id', 'GET', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/syssetting', 'POST', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/syssetting', 'PUT', NULL, NULL, NULL); -INSERT INTO casbin_rule VALUES ('p', 'admin', '/api/v1/syssetting/:id', 'DELETE', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/menulist', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/menu', 'POST', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dict/databytype/', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/menu', 'PUT', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/menu/:id', 'DELETE', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/sysUserList', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/sysUser/:id', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/sysUser/', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/sysUser', 'POST', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/sysUser', 'PUT', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/sysUser/:id', 'DELETE', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/user/profile', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/rolelist', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/role/:id', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/role', 'POST', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/role', 'PUT', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/role/:id', 'DELETE', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/configList', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/config/:id', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/config', 'POST', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/config', 'PUT', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/config/:id', 'DELETE', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/menurole', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/roleMenuTreeselect/:id', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/menuTreeselect', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/rolemenu', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/rolemenu', 'POST', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/rolemenu/:id', 'DELETE', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/deptList', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dept/:id', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dept', 'POST', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dept', 'PUT', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dept/:id', 'DELETE', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dict/datalist', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dict/data/:id', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dict/databytype/:id', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dict/data', 'POST', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dict/data/', 'PUT', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dict/data/:id', 'DELETE', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dict/typelist', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dict/type/:id', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dict/type', 'POST', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dict/type', 'PUT', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dict/type/:id', 'DELETE', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/postlist', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/post/:id', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/post', 'POST', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/post', 'PUT', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/post/:id', 'DELETE', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/menu/:id', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/menuids', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/loginloglist', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/loginlog/:id', 'DELETE', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/operloglist', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/getinfo', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/roledatascope', 'PUT', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/roleDeptTreeselect/:id', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/deptTree', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/configKey/:id', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/logout', 'POST', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/user/avatar', 'POST', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/user/pwd', 'PUT', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/dict/typeoptionselect', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/sysjobList', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/sysjob/:id', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/sysjob', 'POST', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/sysjob', 'PUT', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/sysjob/:id', 'DELETE', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/syssettingList', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/syssetting/:id', 'GET', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/syssetting', 'POST', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/syssetting', 'PUT', NULL, NULL, NULL); +INSERT INTO sys_casbin_rule VALUES ('p', 'admin', '/api/v1/syssetting/:id', 'DELETE', NULL, NULL, NULL); INSERT INTO sys_config VALUES (1, '主框架页-默认皮肤样式名称', 'sys_index_skinName', 'skin-blue', 'Y', '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow', '1', '1', '2020-02-29 10:37:48', '2020-04-08 13:03:21', NULL); INSERT INTO sys_config VALUES (2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', '初始化密码 123456', '1', '1', '2020-02-29 10:38:23', '2020-03-11 00:35:28', NULL); diff --git a/go.mod b/go.mod index d0f1955c..5fba15f0 100644 --- a/go.mod +++ b/go.mod @@ -22,6 +22,8 @@ require ( github.com/pkg/errors v0.9.1 github.com/robfig/cron/v3 v3.0.1 github.com/satori/go.uuid v1.2.0 + github.com/shamsher31/goimgext v1.0.0 // indirect + github.com/shamsher31/goimgtype v1.0.0 github.com/shirou/gopsutil v2.20.7+incompatible github.com/spf13/cobra v1.0.0 github.com/spf13/viper v1.7.1 diff --git a/go.sum b/go.sum index 29a7cf7d..ae88cfee 100644 --- a/go.sum +++ b/go.sum @@ -398,6 +398,10 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/shamsher31/goimgext v1.0.0 h1:wFKf9GeeE0Xr6UQtliaPgYYgTju2izobM7XpCEgUCC8= +github.com/shamsher31/goimgext v1.0.0/go.mod h1:rYLKgXuTGBIaH49z+jUVSWz7gUWIZmqvYUsdvJbNNOc= +github.com/shamsher31/goimgtype v1.0.0 h1:7nmPz5GEb01sjFUojCbZJcBI68A8tmLXoCFbb5I34u4= +github.com/shamsher31/goimgtype v1.0.0/go.mod h1:OZm3NZQDbK0ezlk9IV5oq3cWQwjF1oVSxKNx19bkf64= github.com/shirou/gopsutil v2.20.7+incompatible h1:Ymv4OD12d6zm+2yONe39VSmp2XooJe8za7ngOLW/o/w= github.com/shirou/gopsutil v2.20.7+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= diff --git a/pkg/casbin/mycasbin.go b/pkg/casbin/mycasbin.go index f93c3895..5414f5a2 100644 --- a/pkg/casbin/mycasbin.go +++ b/pkg/casbin/mycasbin.go @@ -27,7 +27,7 @@ m = r.sub == p.sub && (keyMatch2(r.obj, p.obj) || keyMatch(r.obj, p.obj)) && (r. ` func Setup() { - Apter, err := gormAdapter.NewAdapterByDB(global.Eloquent) + Apter, err := gormAdapter.NewAdapterByDBUsePrefix(global.Eloquent,"sys_") if err != nil { panic(err) } diff --git a/template/api.go.template b/template/api.go.template index b588da11..c2640745 100644 --- a/template/api.go.template +++ b/template/api.go.template @@ -77,7 +77,7 @@ func Delete{{.ClassName}}(c *gin.Context) { var data models.{{.ClassName}} data.UpdateBy = tools.GetUserIdStr(c) - IDS := tools.IdsStrToIdsIntGroup("{{.PkJsonField}}", c) + IDS := tools.GetDeleteIds(c) _, err := data.BatchDelete(IDS) tools.HasError(err, msg.DeletedFail, 500) app.OK(c, nil, msg.DeletedSuccess) diff --git a/template/model.go.template b/template/model.go.template index 90389121..e39ecc40 100644 --- a/template/model.go.template +++ b/template/model.go.template @@ -20,12 +20,12 @@ type {{.ClassName}} struct { {{ range .Columns -}} {{$x := .Pk}} {{- if ($x) }} - {{.GoField}} {{.GoType}} `json:"{{.JsonField}}" gorm:"type:{{.ColumnType}};primary_key"` // {{.ColumnComment}} + {{.GoField}} {{.GoType}} `json:"{{.JsonField}}" gorm:"type:{{.ColumnType}};primary_key;AUTO_INCREMENT;comment:{{.ColumnComment}}"` // {{.ColumnComment}} {{- else if eq .GoField "CreatedAt" -}} {{- else if eq .GoField "UpdatedAt" -}} {{- else if eq .GoField "DeletedAt" -}} {{- else }} - {{.GoField}} {{.GoType}} `json:"{{.JsonField}}" gorm:"type:{{.ColumnType}};"` // {{.ColumnComment}}{{end -}} + {{.GoField}} {{.GoType}} `json:"{{.JsonField}}" gorm:"type:{{.ColumnType}};comment:{{.ColumnComment}}"` // {{.ColumnComment}}{{end -}} {{- end }} DataScope string `json:"dataScope" gorm:"-"` Params string `json:"params" gorm:"-"` diff --git a/template/vue.go.template b/template/vue.go.template index adf05059..e2f1091a 100644 --- a/template/vue.go.template +++ b/template/vue.go.template @@ -185,6 +185,12 @@ :label="dict.dictValue" >{{"{{"}} dict.dictLabel {{"}}"}} + {{- else if eq "file" .HtmlType -}} + + 选择文件 {{- else if eq "datetime" .HtmlType -}} 取 消 + @@ -223,8 +230,13 @@ {{ end -}} {{- end -}} + import FileChoose from '@/components/FileChoose' + export default { - name: 'Config', + name: '{{.ClassName}}', + components: { + FileChoose + }, data() { return { // 遮罩层 @@ -242,6 +254,8 @@ // 是否显示弹出层 open: false, isEdit: false, + fileOpen: false, + fileIndex: undefined, // 类型数据字典 typeOptions: [], {{.ModuleName}}List: [], @@ -334,6 +348,12 @@ } this.resetForm('form') }, + getImgList: function() { + this.form[this.fileIndex] = this.$refs['fileChoose'].resultList[0].fullUrl + }, + fileClose: function() { + this.fileOpen = false + }, {{range .Columns}} {{- if ne .DictType "" -}} {{.JsonField}}Format(row) { @@ -356,6 +376,15 @@ }, {{ end -}} {{- end -}} + // 文件 + {{range .Columns}} + {{- if ne .HtmlType "file" -}} + fileShow{{.GoField}}: function() { + this.fileOpen = true + this.fileIndex = '{{.JsonField}}' + }, + {{ end -}} + {{- end -}} /** 搜索按钮操作 */ handleQuery() { this.queryParams.pageIndex = 1 @@ -422,7 +451,10 @@ }, /** 删除按钮操作 */ handleDelete(row) { - const Ids = row.{{.PkJsonField}} || this.ids + var Ids = row.{{.PkJsonField}} || this.ids + if (this.ids.length === 0) { + Ids = [Ids] + } this.$confirm('是否确认删除编号为"' + Ids + '"的数据项?', '警告', { confirmButtonText: '确定', cancelButtonText: '取消', diff --git a/tools/file.go b/tools/file.go index b173fdd9..d7e73d2b 100644 --- a/tools/file.go +++ b/tools/file.go @@ -211,3 +211,13 @@ func FileMonitoringById(ctx context.Context, filePth string, id string, group st go hookfn(ctx, id, group, line) } } + +// 获取文件大小 +func GetFileSize(filename string) int64 { + var result int64 + filepath.Walk(filename, func(path string, f os.FileInfo, err error) error { + result = f.Size() + return nil + }) + return result +} diff --git a/tools/url.go b/tools/url.go index 1c53933a..65624304 100644 --- a/tools/url.go +++ b/tools/url.go @@ -11,6 +11,16 @@ func IdsStrToIdsIntGroup(key string, c *gin.Context) []int { return IdsStrToIdsIntGroupStr(c.Param(key)) } +type Ids struct { + Ids []int +} + +func GetDeleteIds(c *gin.Context) []int { + var ids = new(Ids) + c.Bind(ids) + return ids.Ids +} + func IdsStrToIdsIntGroupStr(keys string) []int { IDS := make([]int, 0) ids := strings.Split(keys, ",")