From 009866ee31e5256e9d315deb932c3958944bb284 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Fri, 7 May 2021 17:56:15 +0800 Subject: [PATCH 01/15] =?UTF-8?q?feat=E2=9C=A8=20=EF=BC=9A=E6=9B=B4?= =?UTF-8?q?=E6=96=B0api=E5=86=99=E6=B3=95=EF=BC=8C=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A8=A1=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys_china_area_data.go | 12 ++++---- app/admin/apis/sys_file/sys_file_dir.go | 8 ++--- common/apis/api.go | 27 +++++++++++++++-- common/apis/request_logger.go | 22 +++++--------- go.mod | 2 +- template/v4/dto.go.template | 17 ++--------- template/v4/no_actions/apis.go.template | 29 +++++++++++-------- 7 files changed, 62 insertions(+), 55 deletions(-) diff --git a/app/admin/apis/sys_china_area_data/sys_china_area_data.go b/app/admin/apis/sys_china_area_data/sys_china_area_data.go index 80599aa4..bdf82982 100644 --- a/app/admin/apis/sys_china_area_data/sys_china_area_data.go +++ b/app/admin/apis/sys_china_area_data/sys_china_area_data.go @@ -18,7 +18,7 @@ type SysChinaAreaData struct { } func (e SysChinaAreaData) GetSysChinaAreaDataList(c *gin.Context) { - e.Context = c + e.SetContext(c) log := e.GetLogger() d := new(dto.SysChinaAreaDataSearch) db, err := e.GetOrm() @@ -52,7 +52,7 @@ func (e SysChinaAreaData) GetSysChinaAreaDataList(c *gin.Context) { } func (e SysChinaAreaData) GetSysChinaAreaData(c *gin.Context) { - e.Context = c + e.SetContext(c) log := e.GetLogger() control := new(dto.SysChinaAreaDataById) db, err := e.GetOrm() @@ -85,7 +85,7 @@ func (e SysChinaAreaData) GetSysChinaAreaData(c *gin.Context) { } func (e SysChinaAreaData) InsertSysChinaAreaData(c *gin.Context) { - e.Context = c + e.SetContext(c) log := e.GetLogger() control := new(dto.SysChinaAreaDataControl) db, err := e.GetOrm() @@ -122,7 +122,7 @@ func (e SysChinaAreaData) InsertSysChinaAreaData(c *gin.Context) { } func (e SysChinaAreaData) UpdateSysChinaAreaData(c *gin.Context) { - e.Context = c + e.SetContext(c) log := e.GetLogger() control := new(dto.SysChinaAreaDataControl) db, err := e.GetOrm() @@ -159,7 +159,7 @@ func (e SysChinaAreaData) UpdateSysChinaAreaData(c *gin.Context) { } func (e SysChinaAreaData) DeleteSysChinaAreaData(c *gin.Context) { - e.Context = c + e.SetContext(c) log := e.GetLogger() control := new(dto.SysChinaAreaDataById) db, err := e.GetOrm() @@ -192,4 +192,4 @@ func (e SysChinaAreaData) DeleteSysChinaAreaData(c *gin.Context) { return } e.OK(control.GetId(), "删除成功") -} +} \ No newline at end of file diff --git a/app/admin/apis/sys_file/sys_file_dir.go b/app/admin/apis/sys_file/sys_file_dir.go index d275638c..8d8f349a 100644 --- a/app/admin/apis/sys_file/sys_file_dir.go +++ b/app/admin/apis/sys_file/sys_file_dir.go @@ -19,7 +19,7 @@ type SysFileDir struct { } func (e SysFileDir) GetSysFileDirList(c *gin.Context) { - e.Context = c + e.SetContext(c) log := e.GetLogger() search := new(dto.SysFileDirSearch) db, err := e.GetOrm() @@ -49,7 +49,7 @@ func (e SysFileDir) GetSysFileDirList(c *gin.Context) { func (e SysFileDir) GetSysFileDir(c *gin.Context) { control := new(dto.SysFileDirById) - e.Context = c + e.SetContext(c) log := e.GetLogger() db, err := e.GetOrm() if err != nil { @@ -81,7 +81,7 @@ func (e SysFileDir) GetSysFileDir(c *gin.Context) { func (e SysFileDir) InsertSysFileDir(c *gin.Context) { control := new(dto.SysFileDirControl) - e.Context = c + e.SetContext(c) log := e.GetLogger() db, err := e.GetOrm() if err != nil { @@ -195,4 +195,4 @@ func (e SysFileDir) DeleteSysFileDir(c *gin.Context) { return } e.OK(control.Id, "删除成功") -} +} \ No newline at end of file diff --git a/common/apis/api.go b/common/apis/api.go index 3c14fb73..c85ef686 100644 --- a/common/apis/api.go +++ b/common/apis/api.go @@ -1,6 +1,7 @@ package apis import ( + "github.com/gin-gonic/gin/binding" "net/http" "github.com/gin-gonic/gin" @@ -13,11 +14,33 @@ import ( type Api struct { Context *gin.Context + Logger *logger.Logger +} + +func (e Api) SetContext(c *gin.Context) { + e.Context = c + e.Logger = api.GetRequestLogger(c) } // GetLogger 获取上下文提供的日志 func (e Api) GetLogger() *logger.Logger { - return api.GetRequestLogger(e.Context) + return e.Logger +} + +func (e Api) Bind(d interface{}, bindings ...binding.Binding) error { + var err error + for i := range bindings { + switch bindings[i] { + case binding.JSON: + err = e.Context.ShouldBindWith(d, binding.JSON) + default: + err = e.Context.ShouldBindUri(d) + } + if err != nil { + return err + } + } + return nil } // GetOrm 获取Orm DB @@ -48,4 +71,4 @@ func (e Api) PageOK(result interface{}, count int, pageIndex int, pageSize int, // Custom 兼容函数 func (e Api) Custom(data gin.H) { response.Custum(e.Context, data) -} +} \ No newline at end of file diff --git a/common/apis/request_logger.go b/common/apis/request_logger.go index 71f7a7ef..d3df51c4 100644 --- a/common/apis/request_logger.go +++ b/common/apis/request_logger.go @@ -1,18 +1,10 @@ package apis -import ( - "github.com/gin-gonic/gin" - "github.com/go-admin-team/go-admin-core/sdk" - "github.com/go-admin-team/go-admin-core/sdk/pkg" - "github.com/go-admin-team/go-admin-core/sdk/pkg/logger" - "strings" -) - // GetRequestLogger 获取上下文提供的日志 -func GetRequestLogger(c *gin.Context) *logger.Logger { - requestId := pkg.GenerateMsgIDFromContext(c) - log := sdk.Runtime.GetLogger().Fields(map[string]interface{}{ - strings.ToLower(pkg.TrafficKey): requestId, - }) - return &logger.Logger{Logger: log} -} +//func GetRequestLogger(c *gin.Context) *logger.Logger { +// requestId := pkg.GenerateMsgIDFromContext(c) +// log := sdk.Runtime.GetLogger().Fields(map[string]interface{}{ +// strings.ToLower(pkg.TrafficKey): requestId, +// }) +// return &logger.Logger{Logger: log} +//} \ No newline at end of file diff --git a/go.mod b/go.mod index 2adfaa40..d1c744e1 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/bytedance/go-tagexpr/v2 v2.7.10 github.com/casbin/casbin/v2 v2.25.1 github.com/gin-gonic/gin v1.6.3 - github.com/go-admin-team/go-admin-core v1.3.5-rc.0 + github.com/go-admin-team/go-admin-core v1.3.5-rc.0.0.20210423072631-e3580b68ee26 github.com/go-admin-team/go-admin-core/sdk v1.3.0-rc.3.0.20210427015751-b42693c49c6c github.com/google/uuid v1.2.0 github.com/mssola/user_agent v0.5.2 diff --git a/template/v4/dto.go.template b/template/v4/dto.go.template index 5b9ce208..d53c432a 100644 --- a/template/v4/dto.go.template +++ b/template/v4/dto.go.template @@ -2,7 +2,6 @@ package dto import ( "errors" - vd "github.com/bytedance/go-tagexpr/v2/validator" "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/api" @@ -12,12 +11,12 @@ import ( ) type {{.ClassName}}Search struct { - dto.Pagination `search:"-" vd:"-"` + dto.Pagination `search:"-"` {{ $tablename := .TBName -}} {{ range .Columns -}} {{$z := .IsQuery}} {{- if ($z) -}} - {{.GoField}} {{.GoType}} `form:"{{.JsonField}}" vd:"?" search:"type:{{if eq .QueryType "EQ"}}exact{{ else if eq .QueryType "NE"}}iexact{{ else if eq .QueryType "LIKE"}}contains{{ else if eq .QueryType "GT"}}gt{{ else if eq .QueryType "GTE"}}gte{{ else if eq .QueryType "LT"}}lt{{ else if eq .QueryType "LTE"}}lte{{- end }};column:{{.ColumnName}};table:{{$tablename}}" comment:"{{.ColumnComment}}"` + {{.GoField}} {{.GoType}} `form:"{{.JsonField}}" search:"type:{{if eq .QueryType "EQ"}}exact{{ else if eq .QueryType "NE"}}iexact{{ else if eq .QueryType "LIKE"}}contains{{ else if eq .QueryType "GT"}}gt{{ else if eq .QueryType "GTE"}}gte{{ else if eq .QueryType "LT"}}lt{{ else if eq .QueryType "LTE"}}lte{{- end }};column:{{.ColumnName}};table:{{$tablename}}" comment:"{{.ColumnComment}}"` {{ end -}} {{- end }} } @@ -37,10 +36,6 @@ func (m *{{.ClassName}}Search) Bind(ctx *gin.Context) error { if err != nil { log.Errorf("ShouldBind error: %s", err.Error()) } - if err1 := vd.Validate(s); err != nil { - log.Errorf("Validate error: %s", err1.Error()) - return err1 - } return err } @@ -77,10 +72,6 @@ func (s *{{.ClassName}}Control) Bind(ctx *gin.Context) error { log.Errorf("ShouldBind error: %s", err.Error()) err = errors.New("数据绑定出错") } - if err1 := vd.Validate(s); err != nil { - log.Errorf("Validate error: %s", err1.Error()) - return err1 - } return err } @@ -130,10 +121,6 @@ func (s *{{.ClassName}}ById) Bind(ctx *gin.Context) error { log.Errorf("ShouldBind error: %s", err.Error()) err = errors.New("数据绑定出错") } - if err1 := vd.Validate(s); err != nil { - log.Errorf("Validate error: %s", err1.Error()) - return err1 - } return err } diff --git a/template/v4/no_actions/apis.go.template b/template/v4/no_actions/apis.go.template index 4af74e22..7c025523 100644 --- a/template/v4/no_actions/apis.go.template +++ b/template/v4/no_actions/apis.go.template @@ -31,8 +31,9 @@ type {{.ClassName}} struct { // @Router /api/v1/{{.ModuleName}} [get] // @Security Bearer // Get{{.ClassName}}List 获取{{.TableComment}}列表 -func (e *{{.ClassName}}) Get{{.ClassName}}List(c *gin.Context) { - log := e.GetLogger(c) +func (e {{.ClassName}}) Get{{.ClassName}}List(c *gin.Context) { + e.SetContext(c) + log := e.GetLogger() db, err := e.GetOrm(c) if err != nil { log.Error(err) @@ -74,8 +75,9 @@ func (e *{{.ClassName}}) Get{{.ClassName}}List(c *gin.Context) { // @Router /api/v1/{{.ModuleName}}/{id} [get] // @Security Bearer // Get{{.ClassName}} 获取{{.TableComment}} -func (e *{{.ClassName}}) Get{{.ClassName}}(c *gin.Context) { - log := e.GetLogger(c) +func (e {{.ClassName}}) Get{{.ClassName}}(c *gin.Context) { + e.SetContext(c) + log := e.GetLogger() db, err := e.GetOrm(c) if err != nil { log.Error(err) @@ -118,8 +120,9 @@ func (e *{{.ClassName}}) Get{{.ClassName}}(c *gin.Context) { // @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}" // @Router /api/v1/{{.ModuleName}} [post] // Insert{{.ClassName}} 创建{{.TableComment}} -func (e *{{.ClassName}}) Insert{{.ClassName}}(c *gin.Context) { - log := e.GetLogger(c) +func (e {{.ClassName}}) Insert{{.ClassName}}(c *gin.Context) { + e.SetContext(c) + log := e.GetLogger() db, err := e.GetOrm(c) if err != nil { log.Error(err) @@ -164,10 +167,11 @@ func (e *{{.ClassName}}) Insert{{.ClassName}}(c *gin.Context) { // @Product application/json // @Param data body dto.{{.ClassName}}Control true "body" // @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}" -// @Router /api/v1/{{.ModuleName}} [put] +// @Router /api/v1/{{.ModuleName}}/{id} [put] // Update{{.ClassName}} 修改{{.TableComment}} -func (e *{{.ClassName}}) Update{{.ClassName}}(c *gin.Context) { - log := e.GetLogger(c) +func (e {{.ClassName}}) Update{{.ClassName}}(c *gin.Context) { + e.SetContext(c) + log := e.GetLogger() db, err := e.GetOrm(c) if err != nil { log.Error(err) @@ -213,8 +217,9 @@ func (e *{{.ClassName}}) Update{{.ClassName}}(c *gin.Context) { // @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}" // @Router /api/v1/{{.ModuleName}} [delete] // Delete{{.ClassName}} 删除{{.TableComment}} -func (e *{{.ClassName}}) Delete{{.ClassName}}(c *gin.Context) { - log := e.GetLogger(c) +func (e {{.ClassName}}) Delete{{.ClassName}}(c *gin.Context) { + e.SetContext(c) + log := e.GetLogger() db, err := e.GetOrm(c) if err != nil { log.Error(err) @@ -247,4 +252,4 @@ func (e *{{.ClassName}}) Delete{{.ClassName}}(c *gin.Context) { return } e.OK(c, control.GetId(), "删除成功") -} +} \ No newline at end of file From e219463505ef82d41f8b6a2bb8ec2666ab1e87ad Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Fri, 7 May 2021 18:46:12 +0800 Subject: [PATCH 02/15] =?UTF-8?q?feat=E2=9C=A8=20=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E6=A8=A1=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- template/v4/no_actions/apis.go.template | 66 ++++++++++++++----------- 1 file changed, 36 insertions(+), 30 deletions(-) diff --git a/template/v4/no_actions/apis.go.template b/template/v4/no_actions/apis.go.template index 7c025523..a7963060 100644 --- a/template/v4/no_actions/apis.go.template +++ b/template/v4/no_actions/apis.go.template @@ -18,23 +18,26 @@ type {{.ClassName}} struct { apis.Api } +// Get{{.ClassName}}List 获取{{.TableComment}}列表 // @Summary 获取{{.TableComment}}列表 // @Description 获取{{.TableComment}}列表 // @Tags {{.TableComment}} -{{ $tablename := .TBName -}} -{{ range .Columns -}} +{{- $tablename := .TBName -}} +{{- range .Columns -}} {{$z := .IsQuery}} -{{- if ($z) -}}// @Param {{.JsonField}} query {{.GoType}} false "{{.ColumnComment}}"{{ end -}}{{- end }} +{{- if ($z) }} +// @Param {{.JsonField}} query {{.GoType}} false "{{.ColumnComment}}" +{{- end -}} +{{- end }} // @Param pageSize query int false "页条数" // @Param pageIndex query int false "页码" // @Success 200 {object} response.Response{data=response.Page{list=[]models.{{.ClassName}}}} "{"code": 200, "data": [...]}" // @Router /api/v1/{{.ModuleName}} [get] // @Security Bearer -// Get{{.ClassName}}List 获取{{.TableComment}}列表 func (e {{.ClassName}}) Get{{.ClassName}}List(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - db, err := e.GetOrm(c) + db, err := e.GetOrm() if err != nil { log.Error(err) return @@ -45,7 +48,7 @@ func (e {{.ClassName}}) Get{{.ClassName}}List(c *gin.Context) { err = d.Bind(c) if err != nil { log.Warnf("request body bind error, %s", err.Error()) - e.Error(c, http.StatusUnprocessableEntity, err, "参数验证失败") + e.Error( http.StatusUnprocessableEntity, err, "参数验证失败") return } @@ -60,13 +63,14 @@ func (e {{.ClassName}}) Get{{.ClassName}}List(c *gin.Context) { err = service{{.ClassName}}.Get{{.ClassName}}Page(d, p, &list, &count) if err != nil { log.Errorf("Get {{.ClassName}} Page error, %s", err.Error()) - e.Error(c, http.StatusInternalServerError, err, "查询失败") + e.Error( http.StatusInternalServerError, err, "查询失败") return } - e.PageOK(c, list, int(count), d.GetPageIndex(), d.GetPageSize(), "查询成功") + e.PageOK( list, int(count), d.GetPageIndex(), d.GetPageSize(), "查询成功") } +// Get{{.ClassName}} 获取{{.TableComment}} // @Summary 获取{{.TableComment}} // @Description 获取{{.TableComment}} // @Tags {{.TableComment}} @@ -74,11 +78,10 @@ func (e {{.ClassName}}) Get{{.ClassName}}List(c *gin.Context) { // @Success 200 {object} response.Response{data=models.{{.ClassName}}} "{"code": 200, "data": [...]}" // @Router /api/v1/{{.ModuleName}}/{id} [get] // @Security Bearer -// Get{{.ClassName}} 获取{{.TableComment}} func (e {{.ClassName}}) Get{{.ClassName}}(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - db, err := e.GetOrm(c) + db, err := e.GetOrm() if err != nil { log.Error(err) return @@ -90,7 +93,7 @@ func (e {{.ClassName}}) Get{{.ClassName}}(c *gin.Context) { err = control.Bind(c) if err != nil { log.Warnf("request body bind error, %s", err.Error()) - e.Error(c, http.StatusUnprocessableEntity, err, "参数验证失败") + e.Error( http.StatusUnprocessableEntity, err, "参数验证失败") return } var object models.{{.ClassName}} @@ -104,13 +107,14 @@ func (e {{.ClassName}}) Get{{.ClassName}}(c *gin.Context) { err = service{{.ClassName}}.Get{{.ClassName}}(control, p, &object) if err != nil { log.Errorf("Get {{.ClassName}} error, %s", err.Error()) - e.Error(c, http.StatusInternalServerError, err, "查询失败") + e.Error( http.StatusInternalServerError, err, "查询失败") return } - e.OK(c, object, "查看成功") + e.OK( object, "查看成功") } +// Insert{{.ClassName}} 创建{{.TableComment}} // @Summary 创建{{.TableComment}} // @Description 创建{{.TableComment}} // @Tags {{.TableComment}} @@ -119,11 +123,11 @@ func (e {{.ClassName}}) Get{{.ClassName}}(c *gin.Context) { // @Param data body dto.{{.ClassName}}Control true "data" // @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}" // @Router /api/v1/{{.ModuleName}} [post] -// Insert{{.ClassName}} 创建{{.TableComment}} +// @Security Bearer func (e {{.ClassName}}) Insert{{.ClassName}}(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - db, err := e.GetOrm(c) + db, err := e.GetOrm() if err != nil { log.Error(err) return @@ -135,13 +139,13 @@ func (e {{.ClassName}}) Insert{{.ClassName}}(c *gin.Context) { err = control.Bind(c) if err != nil { log.Warnf("request body bind error, %s", err.Error()) - e.Error(c, http.StatusUnprocessableEntity, err, "参数验证失败") + e.Error( http.StatusUnprocessableEntity, err, "参数验证失败") return } object, err := control.GenerateM() if err != nil { log.Errorf("generate {{.ClassName}} model error, %s", err.Error()) - e.Error(c, http.StatusInternalServerError, err, "模型生成失败") + e.Error( http.StatusInternalServerError, err, "模型生成失败") return } // 设置创建人 @@ -153,13 +157,14 @@ func (e {{.ClassName}}) Insert{{.ClassName}}(c *gin.Context) { err = service{{.ClassName}}.Insert{{.ClassName}}(object.(*models.{{.ClassName}})) if err != nil { log.Errorf("Insert {{.ClassName}} error, %s", err.Error()) - e.Error(c, http.StatusInternalServerError, err, "创建失败") + e.Error( http.StatusInternalServerError, err, "创建失败") return } - e.OK(c, object.GetId(), "创建成功") + e.OK( object.GetId(), "创建成功") } +// Update{{.ClassName}} 修改{{.TableComment}} // @Summary 修改{{.TableComment}} // @Description 修改{{.TableComment}} // @Tags {{.TableComment}} @@ -168,11 +173,11 @@ func (e {{.ClassName}}) Insert{{.ClassName}}(c *gin.Context) { // @Param data body dto.{{.ClassName}}Control true "body" // @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}" // @Router /api/v1/{{.ModuleName}}/{id} [put] -// Update{{.ClassName}} 修改{{.TableComment}} +// @Security Bearer func (e {{.ClassName}}) Update{{.ClassName}}(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - db, err := e.GetOrm(c) + db, err := e.GetOrm() if err != nil { log.Error(err) return @@ -184,13 +189,13 @@ func (e {{.ClassName}}) Update{{.ClassName}}(c *gin.Context) { err = control.Bind(c) if err != nil { log.Warnf("request body bind error, %s", err.Error()) - e.Error(c, http.StatusUnprocessableEntity, err, "参数验证失败") + e.Error( http.StatusUnprocessableEntity, err, "参数验证失败") return } object, err := control.GenerateM() if err != nil { log.Errorf("generate {{.ClassName}} model error, %s", err.Error()) - e.Error(c, http.StatusInternalServerError, err, "模型生成失败") + e.Error( http.StatusInternalServerError, err, "模型生成失败") return } object.SetUpdateBy(user.GetUserId(c)) @@ -204,23 +209,24 @@ func (e {{.ClassName}}) Update{{.ClassName}}(c *gin.Context) { err = service{{.ClassName}}.Update{{.ClassName}}(object.(*models.{{.ClassName}}), p) if err != nil { log.Errorf("Update {{.ClassName}} error, %s", err.Error()) - e.Error(c, http.StatusInternalServerError, err, "更新失败") + e.Error( http.StatusInternalServerError, err, "更新失败") return } - e.OK(c, object.GetId(), "更新成功") + e.OK( object.GetId(), "更新成功") } +// Delete{{.ClassName}} 删除{{.TableComment}} // @Summary 删除{{.TableComment}} // @Description 删除{{.TableComment}} // @Tags {{.TableComment}} // @Param ids body []int false "ids" // @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}" // @Router /api/v1/{{.ModuleName}} [delete] -// Delete{{.ClassName}} 删除{{.TableComment}} +// @Security Bearer func (e {{.ClassName}}) Delete{{.ClassName}}(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - db, err := e.GetOrm(c) + db, err := e.GetOrm() if err != nil { log.Error(err) return @@ -232,7 +238,7 @@ func (e {{.ClassName}}) Delete{{.ClassName}}(c *gin.Context) { err = control.Bind(c) if err != nil { log.Warnf("request body bind error, %s", err.Error()) - e.Error(c, http.StatusUnprocessableEntity, err, "参数验证失败") + e.Error( http.StatusUnprocessableEntity, err, "参数验证失败") return } @@ -248,8 +254,8 @@ func (e {{.ClassName}}) Delete{{.ClassName}}(c *gin.Context) { err = service{{.ClassName}}.Remove{{.ClassName}}(control, p) if err != nil { log.Errorf("Remove {{.ClassName}} error, %s", err.Error()) - e.Error(c, http.StatusInternalServerError, err, "删除失败") + e.Error( http.StatusInternalServerError, err, "删除失败") return } - e.OK(c, control.GetId(), "删除成功") + e.OK( control.GetId(), "删除成功") } \ No newline at end of file From debe808f830c51d2879bde44aee8e7e5400ab39d Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Fri, 7 May 2021 18:52:42 +0800 Subject: [PATCH 03/15] =?UTF-8?q?feat=E2=9C=A8=20=E4=BC=98=E5=8C=96dto?= =?UTF-8?q?=E6=A8=A1=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- template/v4/dto.go.template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/template/v4/dto.go.template b/template/v4/dto.go.template index d53c432a..dc594e3d 100644 --- a/template/v4/dto.go.template +++ b/template/v4/dto.go.template @@ -12,12 +12,12 @@ import ( type {{.ClassName}}Search struct { dto.Pagination `search:"-"` - {{ $tablename := .TBName -}} - {{ range .Columns -}} + {{- $tablename := .TBName -}} + {{- range .Columns -}} {{$z := .IsQuery}} - {{- if ($z) -}} + {{- if ($z) }} {{.GoField}} {{.GoType}} `form:"{{.JsonField}}" search:"type:{{if eq .QueryType "EQ"}}exact{{ else if eq .QueryType "NE"}}iexact{{ else if eq .QueryType "LIKE"}}contains{{ else if eq .QueryType "GT"}}gt{{ else if eq .QueryType "GTE"}}gte{{ else if eq .QueryType "LT"}}lt{{ else if eq .QueryType "LTE"}}lte{{- end }};column:{{.ColumnName}};table:{{$tablename}}" comment:"{{.ColumnComment}}"` - {{ end -}} + {{- end }} {{- end }} } @@ -40,18 +40,18 @@ func (m *{{.ClassName}}Search) Bind(ctx *gin.Context) error { } type {{.ClassName}}Control struct { - {{ range .Columns -}} + {{- range .Columns -}} {{$x := .Pk}} {{- if ($x) }} - {{.GoField}} {{.GoType}} `uri:"{{.JsonField}}" comment:"{{.ColumnComment}}" vd:"?"` // {{.ColumnComment}} + {{.GoField}} {{.GoType}} `uri:"{{.JsonField}}" comment:"{{.ColumnComment}}"` // {{.ColumnComment}} {{- else if eq .GoField "CreatedAt" -}} {{- else if eq .GoField "UpdatedAt" -}} {{- else if eq .GoField "DeletedAt" -}} {{- else if eq .GoField "CreateBy" -}} {{- else if eq .GoField "UpdateBy" -}} {{- else }} - {{.GoField}} {{.GoType}} `json:"{{.JsonField}}" comment:"{{.ColumnComment}}" vd:"?"` - {{end -}} + {{.GoField}} {{.GoType}} `json:"{{.JsonField}}" comment:"{{.ColumnComment}}"` + {{- end -}} {{- end }} } @@ -77,7 +77,7 @@ func (s *{{.ClassName}}Control) Bind(ctx *gin.Context) error { func (s *{{.ClassName}}Control) GenerateM() (common.ActiveRecord, error) { return &models.{{.ClassName}}{ - {{ range .Columns -}} + {{- range .Columns -}} {{$x := .Pk}} {{- if ($x) }} Model: common.Model{ {{.GoField}}: s.{{.GoField}} }, @@ -88,7 +88,7 @@ func (s *{{.ClassName}}Control) GenerateM() (common.ActiveRecord, error) { {{- else if eq .GoField "UpdateBy" -}} {{- else }} {{.GoField}}: s.{{.GoField}}, - {{- end }} + {{- end -}} {{- end }} }, nil } From c6ccd844f52835bfae81b9679c47ebaa6ca81b25 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Fri, 7 May 2021 18:54:11 +0800 Subject: [PATCH 04/15] =?UTF-8?q?feat=E2=9C=A8=20=E5=8E=BB=E9=99=A4?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=96=B9=E6=B3=95=E7=89=88=E6=9C=AC=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/tools/gen.go | 10 +++++----- app/admin/router/sys_router.go | 7 +++++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/app/admin/apis/tools/gen.go b/app/admin/apis/tools/gen.go index 44c58bc6..de448333 100644 --- a/app/admin/apis/tools/gen.go +++ b/app/admin/apis/tools/gen.go @@ -109,7 +109,7 @@ func (e *Gen) Preview(c *gin.Context) { e.OK(mp, "") } -func (e *Gen) GenCodeV3(c *gin.Context) { +func (e *Gen) GenCode(c *gin.Context) { e.Context = c log := e.GetLogger() table := tools.SysTables{} @@ -131,9 +131,9 @@ func (e *Gen) GenCodeV3(c *gin.Context) { tab, _ := table.Get(db) if tab.IsActions == 1 { - e.ActionsGenV3(c, tab) + e.ActionsGen(c, tab) } else { - e.NOActionsGenV3(c, tab) + e.NOActionsGen(c, tab) } e.OK("", "Code generated successfully!") @@ -164,7 +164,7 @@ func (e *Gen) GenApiToFile(c *gin.Context) { e.OK("", "Code generated successfully!") } -func (e *Gen) NOActionsGenV3(c *gin.Context, tab tools.SysTables) { +func (e *Gen) NOActionsGen(c *gin.Context, tab tools.SysTables) { e.Context = c log := e.GetLogger() @@ -272,7 +272,7 @@ func (e *Gen) genApiToFile(c *gin.Context, tab tools.SysTables) { } -func (e *Gen) ActionsGenV3(c *gin.Context, tab tools.SysTables) { +func (e *Gen) ActionsGen(c *gin.Context, tab tools.SysTables) { log := api.GetRequestLogger(c) basePath := "template/v4/" routerFile := basePath + "actions/router_check_role.go.template" diff --git a/app/admin/router/sys_router.go b/app/admin/router/sys_router.go index b059f7f0..ee4addff 100644 --- a/app/admin/router/sys_router.go +++ b/app/admin/router/sys_router.go @@ -46,7 +46,10 @@ func sysBaseRouter(r *gin.RouterGroup) { } func sysStaticFileRouter(r *gin.RouterGroup) { - mime.AddExtensionType(".js", "application/javascript") + err := mime.AddExtensionType(".js", "application/javascript") + if err != nil { + return + } r.Static("/static", "./static") r.Static("/form-generator", "./static/form-generator") } @@ -64,7 +67,7 @@ func sysNoCheckRoleRouter(r *gin.RouterGroup) { v1.GET("/getCaptcha", sys.GenerateCaptchaHandler) gen := tools.Gen{} v1.GET("/gen/preview/:tableId", gen.Preview) - v1.GET("/gen/toproject/:tableId", gen.GenCodeV3) + v1.GET("/gen/toproject/:tableId", gen.GenCode) v1.GET("/gen/apitofile/:tableId", gen.GenApiToFile) v1.GET("/gen/todb/:tableId", gen.GenMenuAndApi) From 946a53cb2b29167fe3e3577325798db809d589cd Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Fri, 7 May 2021 19:02:06 +0800 Subject: [PATCH 05/15] =?UTF-8?q?feat=E2=9C=A8=20=E6=A8=A1=E7=89=88?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- template/v4/no_actions/apis.go.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/template/v4/no_actions/apis.go.template b/template/v4/no_actions/apis.go.template index a7963060..47b69f4c 100644 --- a/template/v4/no_actions/apis.go.template +++ b/template/v4/no_actions/apis.go.template @@ -118,7 +118,7 @@ func (e {{.ClassName}}) Get{{.ClassName}}(c *gin.Context) { // @Summary 创建{{.TableComment}} // @Description 创建{{.TableComment}} // @Tags {{.TableComment}} -// @Accept application/json +// @Accept application/json // @Product application/json // @Param data body dto.{{.ClassName}}Control true "data" // @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}" @@ -168,7 +168,7 @@ func (e {{.ClassName}}) Insert{{.ClassName}}(c *gin.Context) { // @Summary 修改{{.TableComment}} // @Description 修改{{.TableComment}} // @Tags {{.TableComment}} -// @Accept application/json +// @Accept application/json // @Product application/json // @Param data body dto.{{.ClassName}}Control true "body" // @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}" From 508a18a809f942e3c0f28f904d2e7df4d1776fd5 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Fri, 7 May 2021 19:11:39 +0800 Subject: [PATCH 06/15] =?UTF-8?q?feat=E2=9C=A8=20=E6=9B=B4=E6=96=B0readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d6ef44d8..7d0626e6 100644 --- a/README.md +++ b/README.md @@ -157,14 +157,22 @@ vi ./config/setting.yml ``` #### 初始化数据库,以及服务启动 -``` +``` bash # 首次配置需要初始化数据库资源信息 -./go-admin migrate -c config/settings.yml +# macOS or linux 下使用 +$ ./go-admin migrate -c=config/settings.dev.yml + +# ⚠️注意:windows 下使用 +$ ./go-admin.exe migrate -c=config/settings.dev.yml # 启动项目,也可以用IDE进行调试 -./go-admin server -c config/settings.yml +# macOS or linux 下使用 +$ ./go-admin server -c config/settings.yml + +# ⚠️注意:windows 下使用 +$ ./go-admin.exe server -c config/settings.yml ``` #### 使用docker 编译启动 @@ -188,10 +196,11 @@ go generate #### 交叉编译 ```bash +# windows env GOOS=windows GOARCH=amd64 go build main.go # or - +# linux env GOOS=linux GOARCH=amd64 go build main.go ``` From 50a5d6f48d3748a32b733a1ace6d9889d46b4d6a Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Fri, 7 May 2021 19:57:09 +0800 Subject: [PATCH 07/15] =?UTF-8?q?feat=E2=9C=A8=20=E6=9B=B4=E6=96=B0service?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- template/v4/no_actions/service.go.template | 48 +++++++++------------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/template/v4/no_actions/service.go.template b/template/v4/no_actions/service.go.template index 943a3ea7..aaa60a80 100644 --- a/template/v4/no_actions/service.go.template +++ b/template/v4/no_actions/service.go.template @@ -30,7 +30,7 @@ func (e *{{.ClassName}}) Get{{.ClassName}}Page(c *dto.{{.ClassName}}Search, p *a Find(list).Limit(-1).Offset(-1). Count(count).Error if err != nil { - e.Log.Errorf("db error: %s", err) + e.Log.Errorf("Service Get{{.ClassName}}Page error:%s", err) return err } return nil @@ -38,21 +38,19 @@ func (e *{{.ClassName}}) Get{{.ClassName}}Page(c *dto.{{.ClassName}}Search, p *a // Get{{.ClassName}} 获取{{.ClassName}}对象 func (e *{{.ClassName}}) Get{{.ClassName}}(d *dto.{{.ClassName}}ById, p *actions.DataPermission, model *models.{{.ClassName}}) error { - var err error var data models.{{.ClassName}} - db := e.Orm.Model(&data). + err := e.Orm.Model(&data). Scopes( actions.Permission(data.TableName(), p), ). - First(model, d.GetId()) - err = db.Error + First(model, d.GetId()).Error if err != nil && errors.Is(err, gorm.ErrRecordNotFound) { err = errors.New("查看对象不存在或无权查看") - e.Log.Errorf("db error: %s", err) + e.Log.Errorf("Service Get{{.ClassName}} error:%s", err) return err } - if db.Error != nil { + if err != nil { e.Log.Errorf("db error:%s", err) return err } @@ -61,11 +59,9 @@ func (e *{{.ClassName}}) Get{{.ClassName}}(d *dto.{{.ClassName}}ById, p *actions // Insert{{.ClassName}} 创建{{.ClassName}}对象 func (e *{{.ClassName}}) Insert{{.ClassName}}(c *models.{{.ClassName}}) error { - var err error - - err = e.Orm.Create(c).Error + err := e.Orm.Create(c).Error if err != nil { - e.Log.Errorf("db error: %s", err) + e.Log.Errorf("Service Insert{{.ClassName}} error:%s", err) return err } return nil @@ -73,40 +69,34 @@ func (e *{{.ClassName}}) Insert{{.ClassName}}(c *models.{{.ClassName}}) error { // Update{{.ClassName}} 修改{{.ClassName}}对象 func (e *{{.ClassName}}) Update{{.ClassName}}(c *models.{{.ClassName}}, p *actions.DataPermission) error { - var err error - db := e.Orm.Model(c). Scopes( actions.Permission(c.TableName(), p), ).Where(c.GetId()).Updates(c) - if db.Error != nil { - e.Log.Errorf("db error: %s", err) - return err - } + if err := db.Error; err != nil { + e.Log.Errorf("Service Update{{.ClassName}} error:%s", err) + return err + } if db.RowsAffected == 0 { return errors.New("无权更新该数据") - } return nil } // Remove{{.ClassName}} 删除{{.ClassName}} func (e *{{.ClassName}}) Remove{{.ClassName}}(d *dto.{{.ClassName}}ById, p *actions.DataPermission) error { - var err error var data models.{{.ClassName}} db := e.Orm.Model(&data). Scopes( actions.Permission(data.TableName(), p), ).Delete(&data, d.GetId()) - if db.Error != nil { - err = db.Error - e.Log.Errorf("Delete error: %s", err) - return err - } - if db.RowsAffected == 0 { - err = errors.New("无权删除该数据") - return err - } + if err := db.Error; err != nil { + e.Log.Errorf("Service Remove{{.ClassName}} error:%s", err) + return err + } + if db.RowsAffected == 0 { + return errors.New("无权删除该数据") + } return nil -} +} \ No newline at end of file From c6d94c03fbd91989ff1ac387d3647cc078e7fb54 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Fri, 7 May 2021 19:57:45 +0800 Subject: [PATCH 08/15] =?UTF-8?q?feat=E2=9C=A8=20=E6=9B=B4=E6=96=B0service?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/tools/gen.go | 16 ++-- app/admin/models/gorm/data.go | 87 ------------------- .../{syscategory.go => sys_category.go} | 0 ...hinaareadata.go => sys_china_area_data.go} | 0 .../models/{syscontent.go => sys_content.go} | 0 app/admin/models/{sysjob.go => sys_job.go} | 0 .../system/{casbinrule.go => casbin_rule.go} | 0 ...hinaareadata.go => sys_china_area_data.go} | 0 ...hinaareadata.go => sys_china_area_data.go} | 45 ++++------ app/admin/service/sys_config.go | 32 ++++--- app/admin/service/sys_opera_log.go | 33 +++---- 11 files changed, 55 insertions(+), 158 deletions(-) delete mode 100644 app/admin/models/gorm/data.go rename app/admin/models/{syscategory.go => sys_category.go} (100%) rename app/admin/models/{syschinaareadata.go => sys_china_area_data.go} (100%) rename app/admin/models/{syscontent.go => sys_content.go} (100%) rename app/admin/models/{sysjob.go => sys_job.go} (100%) rename app/admin/models/system/{casbinrule.go => casbin_rule.go} (100%) rename app/admin/router/{syschinaareadata.go => sys_china_area_data.go} (100%) rename app/admin/service/{syschinaareadata.go => sys_china_area_data.go} (77%) diff --git a/app/admin/apis/tools/gen.go b/app/admin/apis/tools/gen.go index de448333..06063438 100644 --- a/app/admin/apis/tools/gen.go +++ b/app/admin/apis/tools/gen.go @@ -21,7 +21,7 @@ type Gen struct { apis.Api } -func (e *Gen) Preview(c *gin.Context) { +func (e Gen) Preview(c *gin.Context) { e.Context = c log := e.GetLogger() table := tools.SysTables{} @@ -109,7 +109,7 @@ func (e *Gen) Preview(c *gin.Context) { e.OK(mp, "") } -func (e *Gen) GenCode(c *gin.Context) { +func (e Gen) GenCode(c *gin.Context) { e.Context = c log := e.GetLogger() table := tools.SysTables{} @@ -139,7 +139,7 @@ func (e *Gen) GenCode(c *gin.Context) { e.OK("", "Code generated successfully!") } -func (e *Gen) GenApiToFile(c *gin.Context) { +func (e Gen) GenApiToFile(c *gin.Context) { e.Context = c log := e.GetLogger() table := tools.SysTables{} @@ -164,7 +164,7 @@ func (e *Gen) GenApiToFile(c *gin.Context) { e.OK("", "Code generated successfully!") } -func (e *Gen) NOActionsGen(c *gin.Context, tab tools.SysTables) { +func (e Gen) NOActionsGen(c *gin.Context, tab tools.SysTables) { e.Context = c log := e.GetLogger() @@ -249,7 +249,7 @@ func (e *Gen) NOActionsGen(c *gin.Context, tab tools.SysTables) { } -func (e *Gen) genApiToFile(c *gin.Context, tab tools.SysTables) { +func (e Gen) genApiToFile(c *gin.Context, tab tools.SysTables) { e.Context = c log := e.GetLogger() @@ -272,7 +272,7 @@ func (e *Gen) genApiToFile(c *gin.Context, tab tools.SysTables) { } -func (e *Gen) ActionsGen(c *gin.Context, tab tools.SysTables) { +func (e Gen) ActionsGen(c *gin.Context, tab tools.SysTables) { log := api.GetRequestLogger(c) basePath := "template/v4/" routerFile := basePath + "actions/router_check_role.go.template" @@ -336,7 +336,7 @@ func (e *Gen) ActionsGen(c *gin.Context, tab tools.SysTables) { pkg.FileCreate(b6, "./app/"+tab.PackageName+"/service/dto/"+tab.BusinessName+".go") } -func (e *Gen) GenMenuAndApi(c *gin.Context) { +func (e Gen) GenMenuAndApi(c *gin.Context) { log := api.GetRequestLogger(c) table := tools.SysTables{} @@ -578,4 +578,4 @@ func (e *Gen) GenMenuAndApi(c *gin.Context) { ADelete.MenuId, err = ADelete.Create(db) e.OK("", "数据生成成功!") -} +} \ No newline at end of file diff --git a/app/admin/models/gorm/data.go b/app/admin/models/gorm/data.go deleted file mode 100644 index 5f60479a..00000000 --- a/app/admin/models/gorm/data.go +++ /dev/null @@ -1,87 +0,0 @@ -package gorm - -import ( - "go-admin/app/admin/models/system" - "gorm.io/gorm" -) - -func InitData(db *gorm.DB) { - - list := []system.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", "", "", ""}, - } - - db.Table("sys_casbin_rule").Create(list) -} diff --git a/app/admin/models/syscategory.go b/app/admin/models/sys_category.go similarity index 100% rename from app/admin/models/syscategory.go rename to app/admin/models/sys_category.go diff --git a/app/admin/models/syschinaareadata.go b/app/admin/models/sys_china_area_data.go similarity index 100% rename from app/admin/models/syschinaareadata.go rename to app/admin/models/sys_china_area_data.go diff --git a/app/admin/models/syscontent.go b/app/admin/models/sys_content.go similarity index 100% rename from app/admin/models/syscontent.go rename to app/admin/models/sys_content.go diff --git a/app/admin/models/sysjob.go b/app/admin/models/sys_job.go similarity index 100% rename from app/admin/models/sysjob.go rename to app/admin/models/sys_job.go diff --git a/app/admin/models/system/casbinrule.go b/app/admin/models/system/casbin_rule.go similarity index 100% rename from app/admin/models/system/casbinrule.go rename to app/admin/models/system/casbin_rule.go diff --git a/app/admin/router/syschinaareadata.go b/app/admin/router/sys_china_area_data.go similarity index 100% rename from app/admin/router/syschinaareadata.go rename to app/admin/router/sys_china_area_data.go diff --git a/app/admin/service/syschinaareadata.go b/app/admin/service/sys_china_area_data.go similarity index 77% rename from app/admin/service/syschinaareadata.go rename to app/admin/service/sys_china_area_data.go index 5c7fa68c..2ff6aa6d 100644 --- a/app/admin/service/syschinaareadata.go +++ b/app/admin/service/sys_china_area_data.go @@ -18,10 +18,9 @@ type SysChinaAreaData struct { // GetSysChinaAreaDataPage 获取SysChinaAreaData列表 func (e *SysChinaAreaData) GetSysChinaAreaDataPage(c *dto.SysChinaAreaDataSearch, p *actions.DataPermission, list *[]models.SysChinaAreaData, count *int64) error { - var err error var data models.SysChinaAreaData - err = e.Orm.Model(&data). + err := e.Orm.Model(&data). Scopes( cDto.MakeCondition(c.GetNeedSearch()), cDto.Paginate(c.GetPageSize(), c.GetPageIndex()), @@ -30,7 +29,7 @@ func (e *SysChinaAreaData) GetSysChinaAreaDataPage(c *dto.SysChinaAreaDataSearch Find(list).Limit(-1).Offset(-1). Count(count).Error if err != nil { - e.Log.Errorf("db error:%s", err) + e.Log.Errorf("Service GetSysChinaAreaDataPage error:%s", err) return err } return nil @@ -38,22 +37,20 @@ func (e *SysChinaAreaData) GetSysChinaAreaDataPage(c *dto.SysChinaAreaDataSearch // GetSysChinaAreaData 获取SysChinaAreaData对象 func (e *SysChinaAreaData) GetSysChinaAreaData(d *dto.SysChinaAreaDataById, p *actions.DataPermission, model *models.SysChinaAreaData) error { - var err error var data models.SysChinaAreaData - db := e.Orm.Model(&data). + err := e.Orm.Model(&data). Scopes( actions.Permission(data.TableName(), p), ). - First(model, d.GetId()) - err = db.Error + First(model, d.GetId()).Error if err != nil && errors.Is(err, gorm.ErrRecordNotFound) { err = errors.New("查看对象不存在或无权查看") e.Log.Errorf("db error:%s", err) return err } - if db.Error != nil { - e.Log.Errorf("db error:%s", err) + if err != nil { + e.Log.Errorf("Service GetSysChinaAreaData error:%s", err) return err } return nil @@ -61,13 +58,12 @@ func (e *SysChinaAreaData) GetSysChinaAreaData(d *dto.SysChinaAreaDataById, p *a // InsertSysChinaAreaData 创建SysChinaAreaData对象 func (e *SysChinaAreaData) InsertSysChinaAreaData(model *models.SysChinaAreaData) error { - var err error var data models.SysChinaAreaData - err = e.Orm.Model(&data). + err := e.Orm.Model(&data). Create(model).Error if err != nil { - e.Log.Errorf("db error:%s", err) + e.Log.Errorf("Service InsertSysChinaAreaData error:%s", err) return err } return nil @@ -75,41 +71,36 @@ func (e *SysChinaAreaData) InsertSysChinaAreaData(model *models.SysChinaAreaData // UpdateSysChinaAreaData 修改SysChinaAreaData对象 func (e *SysChinaAreaData) UpdateSysChinaAreaData(c *models.SysChinaAreaData, p *actions.DataPermission) error { - var err error - var data models.SysChinaAreaData - - db := e.Orm.Model(&data). + db := e.Orm.Model(c). Scopes( - actions.Permission(data.TableName(), p), + actions.Permission(c.TableName(), p), ).Where(c.GetId()).Updates(c) - if db.Error != nil { - e.Log.Errorf("db error:%s", err) + if err := db.Error; err != nil { + e.Log.Errorf("Service UpdateSysChinaAreaData error: %s", err) return err } if db.RowsAffected == 0 { return errors.New("无权更新该数据") - } return nil } // RemoveSysChinaAreaData 删除SysChinaAreaData func (e *SysChinaAreaData) RemoveSysChinaAreaData(d *dto.SysChinaAreaDataById, p *actions.DataPermission) error { - var err error + var data models.SysChinaAreaData db := e.Orm.Model(&data). Scopes( actions.Permission(data.TableName(), p), ).Delete(&data, d.GetId()) - if db.Error != nil { - err = db.Error - e.Log.Errorf("Delete error: %s", err) + + if err := db.Error; err != nil { + e.Log.Errorf("Service RemoveSysChinaAreaData error: %s", err) return err } if db.RowsAffected == 0 { - err = errors.New("无权删除该数据") - return err + return errors.New("无权删除该数据") } return nil -} +} \ No newline at end of file diff --git a/app/admin/service/sys_config.go b/app/admin/service/sys_config.go index c4d1756c..2cf60a17 100644 --- a/app/admin/service/sys_config.go +++ b/app/admin/service/sys_config.go @@ -26,7 +26,7 @@ func (e *SysConfig) GetSysConfigPage(c *dto.SysConfigSearch, list *[]system.SysC Find(list).Limit(-1).Offset(-1). Count(count).Error if err != nil { - e.Log.Errorf("db error:%s", err) + e.Log.Errorf("Service GetSysConfigPage error:%s", err) return err } return nil @@ -42,7 +42,7 @@ func (e *SysConfig) GetSysConfigByKey(c *dto.SysConfigSearch, list *[]system.Sys ). Find(list).Error if err != nil { - e.Log.Errorf("db error:%s", err) + e.Log.Errorf("Service GetSysConfigByKey error:%s", err) return err } return nil @@ -50,19 +50,17 @@ func (e *SysConfig) GetSysConfigByKey(c *dto.SysConfigSearch, list *[]system.Sys // GetSysConfig 获取SysConfig对象 func (e *SysConfig) GetSysConfig(d *dto.SysConfigById, model *system.SysConfig) error { - var err error var data system.SysConfig - db := e.Orm.Model(&data). - First(model, d.GetId()) - err = db.Error + err := e.Orm.Model(&data). + First(model, d.GetId()).Error if err != nil && errors.Is(err, gorm.ErrRecordNotFound) { err = errors.New("查看对象不存在或无权查看") - e.Log.Errorf("db error:%s", err) + e.Log.Errorf("Service GetSysConfigPage error:%s", err) return err } - if db.Error != nil { - e.Log.Errorf("db error:%s", err) + if err != nil { + e.Log.Errorf("Service GetSysConfig error:%s", err) return err } return nil @@ -76,7 +74,7 @@ func (e *SysConfig) InsertSysConfig(model *system.SysConfig) error { err = e.Orm.Model(&data). Create(model).Error if err != nil { - e.Log.Errorf("db error:%s", err) + e.Log.Errorf("Service InsertSysConfig error:%s", err) return err } return nil @@ -85,12 +83,12 @@ func (e *SysConfig) InsertSysConfig(model *system.SysConfig) error { // UpdateSysConfig 修改SysConfig对象 func (e *SysConfig) UpdateSysConfig(c *system.SysConfig) error { var err error - var data system.SysConfig - db := e.Orm.Model(&data). + db := e.Orm.Model(c). Where(c.GetId()).Updates(c) - if db.Error != nil { - e.Log.Errorf("db error:%s", err) + err = db.Error + if err != nil { + e.Log.Errorf("Service UpdateSysConfig error:%s", err) return err } if db.RowsAffected == 0 { @@ -109,7 +107,7 @@ func (e *SysConfig) RemoveSysConfig(d *dto.SysConfigById, c *system.SysConfig) e Where(d.GetId()).Delete(c) if db.Error != nil { err = db.Error - e.Log.Errorf("Delete error: %s", err) + e.Log.Errorf("Service RemoveSysConfig error:%s", err) return err } if db.RowsAffected == 0 { @@ -126,9 +124,9 @@ func (e *SysConfig) GetSysConfigByKEY(c *dto.SysConfigControl) error { data.ConfigKey = c.ConfigKey err = e.Orm.Table(data.TableName()).Where("config_key = ?", data.ConfigKey).First(c).Error if err != nil { - e.Log.Errorf("db error:%s", err) + e.Log.Errorf("Service GetSysConfigByKEY error:%s", err) return err } return nil -} +} \ No newline at end of file diff --git a/app/admin/service/sys_opera_log.go b/app/admin/service/sys_opera_log.go index 5dccf3ca..cb81586b 100644 --- a/app/admin/service/sys_opera_log.go +++ b/app/admin/service/sys_opera_log.go @@ -26,7 +26,7 @@ func (e *SysOperaLog) GetSysOperaLogPage(c *dto.SysOperaLogSearch, list *[]syste Find(list).Limit(-1).Offset(-1). Count(count).Error if err != nil { - e.Log.Errorf(" db error:%s", err) + e.Log.Errorf("Service GetSysOperaLogPage error:%s", err.Error()) return err } return nil @@ -34,19 +34,17 @@ func (e *SysOperaLog) GetSysOperaLogPage(c *dto.SysOperaLogSearch, list *[]syste // GetSysOperaLog 获取SysOperaLog对象 func (e *SysOperaLog) GetSysOperaLog(d *dto.SysOperaLogById, model *system.SysOperaLog) error { - var err error var data system.SysOperaLog - db := e.Orm.Model(&data). - First(model, d.GetId()) - err = db.Error + err := e.Orm.Model(&data). + First(model, d.GetId()).Error if err != nil && errors.Is(err, gorm.ErrRecordNotFound) { err = errors.New("查看对象不存在或无权查看") - e.Log.Errorf(" db error:%s", err) + e.Log.Errorf("Service GetSysOperaLog error:%s", err.Error()) return err } - if db.Error != nil { - e.Log.Errorf(" db error:%s", err) + if err != nil { + e.Log.Errorf("Service GetSysOperaLog error:%s", err.Error()) return err } return nil @@ -60,7 +58,7 @@ func (e *SysOperaLog) InsertSysOperaLog(model *system.SysOperaLog) error { err = e.Orm.Model(&data). Create(model).Error if err != nil { - e.Log.Errorf(" db error:%s", err) + e.Log.Errorf("Service InsertSysOperaLog error:%s", err.Error()) return err } return nil @@ -69,12 +67,11 @@ func (e *SysOperaLog) InsertSysOperaLog(model *system.SysOperaLog) error { // UpdateSysOperaLog 修改SysOperaLog对象 func (e *SysOperaLog) UpdateSysOperaLog(c *system.SysOperaLog) error { var err error - var data system.SysOperaLog - db := e.Orm.Model(&data). + db := e.Orm.Model(c). Where(c.GetId()).Updates(c) - if db.Error != nil { - e.Log.Errorf(" db error:%s", err) + if err = db.Error; err != nil { + e.Log.Errorf("Service UpdateSysOperaLog error:%s", err.Error()) return err } if db.RowsAffected == 0 { @@ -90,14 +87,12 @@ func (e *SysOperaLog) RemoveSysOperaLog(d *dto.SysOperaLogById) error { var data system.SysOperaLog db := e.Orm.Model(&data).Where(d.Ids).Delete(&data) - if db.Error != nil { - err = db.Error - e.Log.Errorf(" Delete error: %s", err) + if err = db.Error; err != nil { + e.Log.Errorf("Service RemoveSysOperaLog error:%s", err.Error()) return err } if db.RowsAffected == 0 { - err = errors.New("无权删除该数据") - return err + return errors.New("无权删除该数据") } return nil -} +} \ No newline at end of file From 7fffcffcdd5fc06ddc9df737ab0143998f4ce21a Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Sat, 8 May 2021 09:35:49 +0800 Subject: [PATCH 09/15] =?UTF-8?q?feat=E2=9C=A8=20=E5=88=86=E7=A6=BBapp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/{system => }/captcha.go | 2 +- app/admin/apis/{system => }/index.go | 2 +- .../{system/sys_config => }/sys_config.go | 2 +- .../apis/{system/sys_dept => }/sys_dept.go | 2 +- .../apis/{system/dict => }/sys_dict_data.go | 2 +- .../apis/{system/dict => }/sys_dict_type.go | 2 +- .../sys_login_log => }/sys_login_log.go | 2 +- .../apis/{system/sys_menu => }/sys_menu.go | 2 +- .../sys_opera_log => }/sys_opera_log.go | 2 +- .../apis/{system/sys_post => }/sys_post.go | 2 +- .../apis/{system/sys_role => }/sys_role.go | 2 +- app/admin/apis/{sys_user => }/sys_user.go | 2 +- app/admin/apis/system/settings.go | 98 ------------------- app/admin/models/sys_category.go | 29 ------ app/admin/models/sys_file_info.go | 31 ------ app/admin/router/sys_config.go | 4 +- app/admin/router/sys_dept.go | 4 +- app/admin/router/sys_login_log.go | 4 +- app/admin/router/sys_menu.go | 4 +- app/admin/router/sys_opera_log.go | 4 +- app/admin/router/sys_post.go | 4 +- app/admin/router/sys_role.go | 4 +- app/admin/router/sys_router.go | 58 +++++------ app/admin/router/sys_user.go | 4 +- app/admin/service/sys_user.go | 18 ++-- app/cms/models/sys_category.go | 29 ++++++ app/{admin => cms}/models/sys_content.go | 0 app/cms/router/init_router.go | 42 ++++++++ app/cms/router/router.go | 43 ++++++++ app/{admin => cms}/router/sys_category.go | 8 +- app/{admin => cms}/router/sys_content.go | 14 +-- .../service/dto/sys_category.go | 38 +++---- app/{admin => cms}/service/dto/sys_content.go | 8 +- .../apis/sys_job => jobs/apis}/sys_job.go | 7 +- app/jobs/jobbase.go | 6 +- app/{admin => jobs}/models/sys_job.go | 48 --------- app/jobs/router/int_router.go | 42 ++++++++ app/jobs/router/router.go | 43 ++++++++ app/{admin => jobs}/router/sys_job.go | 24 ++--- app/{admin => jobs}/service/dto/sys_job.go | 2 +- app/{admin => jobs}/service/sys_job.go | 2 +- app/{admin/apis/public => other/apis}/file.go | 2 +- .../apis/monitor => other/apis}/server.go | 3 +- .../apis}/sys_china_area_data.go | 32 +++--- .../sys_file => other/apis}/sys_file_dir.go | 14 +-- .../sys_file => other/apis}/sys_file_info.go | 36 +++---- .../models/sys_china_area_data.go | 5 +- app/{admin => other}/models/sys_file_dir.go | 22 ++--- app/other/models/sys_file_info.go | 31 ++++++ app/other/router/init_router.go | 42 ++++++++ app/{admin => other}/router/monitor.go | 6 +- app/other/router/router.go | 43 ++++++++ .../router/sys_china_area_data.go | 8 +- app/{admin => other}/router/sys_file_dir.go | 8 +- app/{admin => other}/router/sys_file_info.go | 8 +- .../service/dto/sys_china_area_data.go} | 7 +- .../service/dto/sys_file_dir.go | 8 +- .../service/dto/sys_file_info.go | 6 +- .../service/sys_china_area_data.go | 22 ++--- app/{admin => other}/service/sys_file_dir.go | 26 ++--- app/{admin => other}/service/sys_file_info.go | 26 ++--- cmd/api/cms.go | 8 ++ cmd/api/jobs.go | 8 ++ cmd/api/other.go | 8 ++ cmd/api/server.go | 3 +- common/global/adm.go | 4 +- common/middleware/handler/user.go | 30 +++--- config/extend.go | 6 +- 68 files changed, 590 insertions(+), 478 deletions(-) rename app/admin/apis/{system => }/captcha.go (97%) rename app/admin/apis/{system => }/index.go (97%) rename app/admin/apis/{system/sys_config => }/sys_config.go (99%) rename app/admin/apis/{system/sys_dept => }/sys_dept.go (99%) rename app/admin/apis/{system/dict => }/sys_dict_data.go (99%) rename app/admin/apis/{system/dict => }/sys_dict_type.go (99%) rename app/admin/apis/{system/sys_login_log => }/sys_login_log.go (99%) rename app/admin/apis/{system/sys_menu => }/sys_menu.go (99%) rename app/admin/apis/{system/sys_opera_log => }/sys_opera_log.go (99%) rename app/admin/apis/{system/sys_post => }/sys_post.go (99%) rename app/admin/apis/{system/sys_role => }/sys_role.go (99%) rename app/admin/apis/{sys_user => }/sys_user.go (99%) delete mode 100644 app/admin/apis/system/settings.go delete mode 100644 app/admin/models/sys_category.go delete mode 100644 app/admin/models/sys_file_info.go create mode 100644 app/cms/models/sys_category.go rename app/{admin => cms}/models/sys_content.go (100%) create mode 100644 app/cms/router/init_router.go create mode 100644 app/cms/router/router.go rename app/{admin => cms}/router/sys_category.go (87%) rename app/{admin => cms}/router/sys_content.go (72%) rename app/{admin => cms}/service/dto/sys_category.go (65%) rename app/{admin => cms}/service/dto/sys_content.go (94%) rename app/{admin/apis/sys_job => jobs/apis}/sys_job.go (95%) rename app/{admin => jobs}/models/sys_job.go (56%) create mode 100644 app/jobs/router/int_router.go create mode 100644 app/jobs/router/router.go rename app/{admin => jobs}/router/sys_job.go (67%) rename app/{admin => jobs}/service/dto/sys_job.go (99%) rename app/{admin => jobs}/service/sys_job.go (98%) rename app/{admin/apis/public => other/apis}/file.go (99%) rename app/{admin/apis/monitor => other/apis}/server.go (97%) rename app/{admin/apis/sys_china_area_data => other/apis}/sys_china_area_data.go (84%) rename app/{admin/apis/sys_file => other/apis}/sys_file_dir.go (95%) rename app/{admin/apis/sys_file => other/apis}/sys_file_info.go (86%) rename app/{admin => other}/models/sys_china_area_data.go (70%) rename app/{admin => other}/models/sys_file_dir.go (53%) create mode 100644 app/other/models/sys_file_info.go create mode 100644 app/other/router/init_router.go rename app/{admin => other}/router/monitor.go (88%) create mode 100644 app/other/router/router.go rename app/{admin => other}/router/sys_china_area_data.go (77%) rename app/{admin => other}/router/sys_file_dir.go (71%) rename app/{admin => other}/router/sys_file_info.go (71%) rename app/{admin/service/dto/syschinaareadata.go => other/service/dto/sys_china_area_data.go} (93%) rename app/{admin => other}/service/dto/sys_file_dir.go (94%) rename app/{admin => other}/service/dto/sys_file_info.go (92%) rename app/{admin => other}/service/sys_china_area_data.go (70%) rename app/{admin => other}/service/sys_file_dir.go (86%) rename app/{admin => other}/service/sys_file_info.go (71%) create mode 100644 cmd/api/cms.go create mode 100644 cmd/api/jobs.go create mode 100644 cmd/api/other.go diff --git a/app/admin/apis/system/captcha.go b/app/admin/apis/captcha.go similarity index 97% rename from app/admin/apis/system/captcha.go rename to app/admin/apis/captcha.go index 511fb784..0b99d965 100644 --- a/app/admin/apis/system/captcha.go +++ b/app/admin/apis/captcha.go @@ -1,4 +1,4 @@ -package system +package apis import ( "github.com/gin-gonic/gin" diff --git a/app/admin/apis/system/index.go b/app/admin/apis/index.go similarity index 97% rename from app/admin/apis/system/index.go rename to app/admin/apis/index.go index 59997496..19d691d0 100644 --- a/app/admin/apis/system/index.go +++ b/app/admin/apis/index.go @@ -1,4 +1,4 @@ -package system +package apis import ( "github.com/gin-gonic/gin" diff --git a/app/admin/apis/system/sys_config/sys_config.go b/app/admin/apis/sys_config.go similarity index 99% rename from app/admin/apis/system/sys_config/sys_config.go rename to app/admin/apis/sys_config.go index 977de4f8..f16310dd 100644 --- a/app/admin/apis/system/sys_config/sys_config.go +++ b/app/admin/apis/sys_config.go @@ -1,4 +1,4 @@ -package sys_config +package apis import ( "net/http" diff --git a/app/admin/apis/system/sys_dept/sys_dept.go b/app/admin/apis/sys_dept.go similarity index 99% rename from app/admin/apis/system/sys_dept/sys_dept.go rename to app/admin/apis/sys_dept.go index 71cfa021..e7189563 100644 --- a/app/admin/apis/system/sys_dept/sys_dept.go +++ b/app/admin/apis/sys_dept.go @@ -1,4 +1,4 @@ -package sys_dept +package apis import ( "github.com/go-admin-team/go-admin-core/sdk/pkg" diff --git a/app/admin/apis/system/dict/sys_dict_data.go b/app/admin/apis/sys_dict_data.go similarity index 99% rename from app/admin/apis/system/dict/sys_dict_data.go rename to app/admin/apis/sys_dict_data.go index 94d16df7..d708bf72 100644 --- a/app/admin/apis/system/dict/sys_dict_data.go +++ b/app/admin/apis/sys_dict_data.go @@ -1,4 +1,4 @@ -package dict +package apis import ( "net/http" diff --git a/app/admin/apis/system/dict/sys_dict_type.go b/app/admin/apis/sys_dict_type.go similarity index 99% rename from app/admin/apis/system/dict/sys_dict_type.go rename to app/admin/apis/sys_dict_type.go index c2a05296..bc8fda22 100644 --- a/app/admin/apis/system/dict/sys_dict_type.go +++ b/app/admin/apis/sys_dict_type.go @@ -1,4 +1,4 @@ -package dict +package apis import ( "net/http" diff --git a/app/admin/apis/system/sys_login_log/sys_login_log.go b/app/admin/apis/sys_login_log.go similarity index 99% rename from app/admin/apis/system/sys_login_log/sys_login_log.go rename to app/admin/apis/sys_login_log.go index 2c3cbe3c..f604c585 100644 --- a/app/admin/apis/system/sys_login_log/sys_login_log.go +++ b/app/admin/apis/sys_login_log.go @@ -1,4 +1,4 @@ -package sys_login_log +package apis import ( "net/http" diff --git a/app/admin/apis/system/sys_menu/sys_menu.go b/app/admin/apis/sys_menu.go similarity index 99% rename from app/admin/apis/system/sys_menu/sys_menu.go rename to app/admin/apis/sys_menu.go index 7654b786..ca3ec62b 100644 --- a/app/admin/apis/system/sys_menu/sys_menu.go +++ b/app/admin/apis/sys_menu.go @@ -1,4 +1,4 @@ -package sys_menu +package apis import ( "net/http" diff --git a/app/admin/apis/system/sys_opera_log/sys_opera_log.go b/app/admin/apis/sys_opera_log.go similarity index 99% rename from app/admin/apis/system/sys_opera_log/sys_opera_log.go rename to app/admin/apis/sys_opera_log.go index 8a150276..2dbc31e5 100644 --- a/app/admin/apis/system/sys_opera_log/sys_opera_log.go +++ b/app/admin/apis/sys_opera_log.go @@ -1,4 +1,4 @@ -package sys_opera_log +package apis import ( "net/http" diff --git a/app/admin/apis/system/sys_post/sys_post.go b/app/admin/apis/sys_post.go similarity index 99% rename from app/admin/apis/system/sys_post/sys_post.go rename to app/admin/apis/sys_post.go index a4789bb4..6ec209f3 100644 --- a/app/admin/apis/system/sys_post/sys_post.go +++ b/app/admin/apis/sys_post.go @@ -1,4 +1,4 @@ -package sys_post +package apis import ( "net/http" diff --git a/app/admin/apis/system/sys_role/sys_role.go b/app/admin/apis/sys_role.go similarity index 99% rename from app/admin/apis/system/sys_role/sys_role.go rename to app/admin/apis/sys_role.go index 20544c10..a4f31f18 100644 --- a/app/admin/apis/system/sys_role/sys_role.go +++ b/app/admin/apis/sys_role.go @@ -1,4 +1,4 @@ -package sys_role +package apis import ( "net/http" diff --git a/app/admin/apis/sys_user/sys_user.go b/app/admin/apis/sys_user.go similarity index 99% rename from app/admin/apis/sys_user/sys_user.go rename to app/admin/apis/sys_user.go index 3a04a1a7..a8d2c196 100644 --- a/app/admin/apis/sys_user/sys_user.go +++ b/app/admin/apis/sys_user.go @@ -1,4 +1,4 @@ -package sys_user +package apis import ( "net/http" diff --git a/app/admin/apis/system/settings.go b/app/admin/apis/system/settings.go deleted file mode 100644 index af53e0eb..00000000 --- a/app/admin/apis/system/settings.go +++ /dev/null @@ -1,98 +0,0 @@ -package system - -import ( - "fmt" - "net/http" - "strings" - - "github.com/gin-gonic/gin" - - "go-admin/app/admin/models" - "go-admin/app/admin/service" - "go-admin/app/admin/service/dto" - "go-admin/common/apis" -) - -type SysSetting struct { - apis.Api -} - -// @Summary 查询系统信息 -// @Description 获取JSON -// @Tags 系统信息 -// @Success 200 {string} string "{"code": 200, "message": "添加成功"}" -// @Success 200 {string} string "{"code": -1, "message": "添加失败"}" -// @Router /api/v1/setting [get] -func (e SysSetting) GetSetting(c *gin.Context) { - e.Context = c - log := e.GetLogger() - db, err := e.GetOrm() - if err != nil { - log.Error(err) - return - } - - sysSettingService := service.SysSetting{} - sysSettingService.Log = log - sysSettingService.Orm = db - var model = models.SysSetting{} - err = sysSettingService.GetSysSetting(&model) - if err != nil { - e.Error(http.StatusInternalServerError, err, "查询失败") - return - } - - if model.Logo != "" { - if !strings.HasPrefix(model.Logo, "http") { - model.Logo = fmt.Sprintf("http://%s/%s", c.Request.Host, model.Logo) - } - } - - e.OK(model, "查询成功") -} - -// @Summary 更新或提交系统信息 -// @Description 获取JSON -// @Tags 系统信息 -// @Param data body dto.SysSettingControl true "body" -// @Success 200 {string} string "{"code": 200, "message": "添加成功"}" -// @Success 200 {string} string "{"code": -1, "message": "添加失败"}" -// @Router /api/v1/system/setting [post] -func (e SysSetting) CreateOrUpdateSetting(c *gin.Context) { - control := new(dto.SysSettingControl) - e.Context = c - log := e.GetLogger() - db, err := e.GetOrm() - if err != nil { - log.Error(err) - return - } - - //更新操作 - err = control.Bind(c) - if err != nil { - e.Error(http.StatusUnprocessableEntity, err, "参数验证失败") - return - } - object, err := control.Generate() - if err != nil { - e.Error(http.StatusInternalServerError, err, "模型生成失败") - return - } - - sysSettingService := service.SysSetting{} - sysSettingService.Log = log - sysSettingService.Orm = db - err = sysSettingService.UpdateSysSetting(object) - if err != nil { - e.Error(http.StatusInternalServerError, err, "更新失败") - return - } - - if object.Logo != "" { - if !strings.HasPrefix(object.Logo, "http") { - object.Logo = fmt.Sprintf("http://%s/%s", c.Request.Host, object.Logo) - } - } - e.OK(object, "提交成功") -} diff --git a/app/admin/models/sys_category.go b/app/admin/models/sys_category.go deleted file mode 100644 index 219394ca..00000000 --- a/app/admin/models/sys_category.go +++ /dev/null @@ -1,29 +0,0 @@ -package models - -import ( - "go-admin/common/models" -) - -type SysCategory struct { - models.Model - Name string `json:"name" gorm:"type:varchar(255);comment:名称"` // - Img string `json:"img" gorm:"type:varchar(255);comment:图标"` // - Sort int `json:"sort" gorm:"type:int(4);comment:排序"` // - Status int `json:"status" gorm:"type:int(1);comment:状态"` // - Remark string `json:"remark" gorm:"type:varchar(255);comment:备注"` // - models.ControlBy - models.ModelTime -} - -func (SysCategory) TableName() string { - return "sys_category" -} - -func (e *SysCategory) Generate() models.ActiveRecord { - o := *e - return &o -} - -func (e *SysCategory) GetId() interface{} { - return e.Id -} \ No newline at end of file diff --git a/app/admin/models/sys_file_info.go b/app/admin/models/sys_file_info.go deleted file mode 100644 index 598969e0..00000000 --- a/app/admin/models/sys_file_info.go +++ /dev/null @@ -1,31 +0,0 @@ -package models - -import ( - "go-admin/common/models" -) - -type SysFileInfo struct { - models.Model - Type string `json:"type" gorm:"type:varchar(255);comment:类型"` // - Name string `json:"name" gorm:"type:varchar(255);comment:名称"` // - Size string `json:"size" gorm:"type:int(11);comment:大小"` // - PId int `json:"pId" gorm:"type:int(11);comment:目录"` // - Source string `json:"source" gorm:"type:varchar(255);comment:来源"` // - Url string `json:"url" gorm:"type:varchar(255);comment:地址"` // - FullUrl string `json:"fullUrl" gorm:"type:varchar(255);comment:全地址"` // - models.ControlBy - models.ModelTime -} - -func (SysFileInfo) TableName() string { - return "sys_file_info" -} - -func (e *SysFileInfo) Generate() models.ActiveRecord { - o := *e - return &o -} - -func (e *SysFileInfo) GetId() interface{} { - return e.Id -} diff --git a/app/admin/router/sys_config.go b/app/admin/router/sys_config.go index 9b90da77..9825c8b4 100644 --- a/app/admin/router/sys_config.go +++ b/app/admin/router/sys_config.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/system/sys_config" + "go-admin/app/admin/apis" middleware2 "go-admin/common/middleware" ) @@ -13,7 +13,7 @@ func init() { // 需认证的路由代码 func registerSysConfigRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_config.SysConfig{} + api := apis.SysConfig{} r := v1.Group("/config").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) { diff --git a/app/admin/router/sys_dept.go b/app/admin/router/sys_dept.go index 7ce7eddb..6dbe23ac 100644 --- a/app/admin/router/sys_dept.go +++ b/app/admin/router/sys_dept.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/system/sys_dept" + "go-admin/app/admin/apis" middleware2 "go-admin/common/middleware" ) @@ -13,7 +13,7 @@ func init() { // 需认证的路由代码 func registerSysDeptRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_dept.SysDept{} + api := apis.SysDept{} r := v1.Group("/dept").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) { r.GET("", api.GetSysDeptList) diff --git a/app/admin/router/sys_login_log.go b/app/admin/router/sys_login_log.go index b813357a..b73d7b5a 100644 --- a/app/admin/router/sys_login_log.go +++ b/app/admin/router/sys_login_log.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/system/sys_login_log" + "go-admin/app/admin/apis" middleware2 "go-admin/common/middleware" ) @@ -13,7 +13,7 @@ func init() { // 需认证的路由代码 func registerSysLoginLogRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_login_log.SysLoginLog{} + api := apis.SysLoginLog{} r := v1.Group("/sys-login-log").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) { r.GET("", api.GetSysLoginLogList) diff --git a/app/admin/router/sys_menu.go b/app/admin/router/sys_menu.go index 8d7b300a..19f57f13 100644 --- a/app/admin/router/sys_menu.go +++ b/app/admin/router/sys_menu.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/system/sys_menu" + "go-admin/app/admin/apis" middleware2 "go-admin/common/middleware" ) @@ -13,7 +13,7 @@ func init() { // 需认证的路由代码 func registerSysMenuRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_menu.SysMenu{} + api := apis.SysMenu{} //menu := v1.Group("/menu").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) //{ // menu.GET("/:id", system.GetMenu) diff --git a/app/admin/router/sys_opera_log.go b/app/admin/router/sys_opera_log.go index 37e0db53..998d2c93 100644 --- a/app/admin/router/sys_opera_log.go +++ b/app/admin/router/sys_opera_log.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/system/sys_opera_log" + "go-admin/app/admin/apis" middleware2 "go-admin/common/middleware" ) @@ -13,7 +13,7 @@ func init() { // 需认证的路由代码 func registerSysOperaLogRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_opera_log.SysOperaLog{} + api := apis.SysOperaLog{} r := v1.Group("/sys-opera-log").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) { r.GET("", api.GetSysOperaLogList) diff --git a/app/admin/router/sys_post.go b/app/admin/router/sys_post.go index a77f8616..eeed976d 100644 --- a/app/admin/router/sys_post.go +++ b/app/admin/router/sys_post.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/system/sys_post" + "go-admin/app/admin/apis" middleware2 "go-admin/common/middleware" ) @@ -13,7 +13,7 @@ func init() { // 需认证的路由代码 func registerSyPostRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_post.SysPost{} + api := apis.SysPost{} r := v1.Group("/post").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) { r.GET("", api.GetSysPostList) diff --git a/app/admin/router/sys_role.go b/app/admin/router/sys_role.go index 9ad9efa1..5ba9ec5f 100644 --- a/app/admin/router/sys_role.go +++ b/app/admin/router/sys_role.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/system/sys_role" + "go-admin/app/admin/apis" middleware2 "go-admin/common/middleware" ) @@ -13,7 +13,7 @@ func init() { // 需认证的路由代码 func registerSysRoleRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_role.SysRole{} + api := apis.SysRole{} r := v1.Group("/role").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) { r.GET("", api.GetSysRoleList) diff --git a/app/admin/router/sys_router.go b/app/admin/router/sys_router.go index ee4addff..ab6793c0 100644 --- a/app/admin/router/sys_router.go +++ b/app/admin/router/sys_router.go @@ -1,6 +1,7 @@ package router import ( + "go-admin/app/admin/apis" "mime" "github.com/gin-gonic/gin" @@ -9,12 +10,6 @@ import ( ginSwagger "github.com/swaggo/gin-swagger" "github.com/swaggo/gin-swagger/swaggerFiles" - "go-admin/app/admin/apis/monitor" - "go-admin/app/admin/apis/public" - "go-admin/app/admin/apis/system" - "go-admin/app/admin/apis/system/dict" - "go-admin/app/admin/apis/system/sys_dept" - "go-admin/app/admin/apis/system/sys_menu" "go-admin/app/admin/apis/tools" "go-admin/common/middleware" "go-admin/common/middleware/handler" @@ -41,7 +36,7 @@ func sysBaseRouter(r *gin.RouterGroup) { go ws.WebsocketManager.SendService() go ws.WebsocketManager.SendAllService() - r.GET("/", system.HelloWorld) + r.GET("/", apis.HelloWorld) r.GET("/info", handler.Ping) } @@ -61,9 +56,9 @@ func sysSwaggerRouter(r *gin.RouterGroup) { func sysNoCheckRoleRouter(r *gin.RouterGroup) { v1 := r.Group("/api/v1") - m := monitor.Monitor{} - v1.GET("/monitor/server", m.ServerInfo) - sys := system.System{} + //m := apis2.Monitor{} + //v1.GET("/monitor/server", m.ServerInfo) + sys := apis.System{} v1.GET("/getCaptcha", sys.GenerateCaptchaHandler) gen := tools.Gen{} v1.GET("/gen/preview/:tableId", gen.Preview) @@ -76,8 +71,7 @@ func sysNoCheckRoleRouter(r *gin.RouterGroup) { registerDBRouter(v1) registerSysTableRouter(v1) - registerPublicRouter(v1) - registerSysSettingRouter(v1) + //registerPublicRouter(v1) } func registerDBRouter(api *gin.RouterGroup) { @@ -121,8 +115,8 @@ func sysCheckRoleRouterInit(r *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddle } func registerBaseRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_menu.SysMenu{} - api2 := sys_dept.SysDept{} + api := apis.SysMenu{} + api2 := apis.SysDept{} v1auth := v1.Group("").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { //v1auth.GET("/getinfo", system.GetInfo) @@ -172,8 +166,8 @@ func registerBaseRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddlewar //} func registerDictRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - dictApi := dict.SysDictType{} - dataApi := dict.SysDictData{} + dictApi := apis.SysDictType{} + dataApi := apis.SysDictData{} dicts := v1.Group("/dict").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { @@ -202,21 +196,19 @@ func registerDictRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddlewar // dept.DELETE("/:id", system.DeleteDept) // } //} -func registerSysSettingRouter(v1 *gin.RouterGroup) { - api := system.SysSetting{} - m := monitor.Monitor{} - setting := v1.Group("/setting") - { - setting.GET("", api.GetSetting) - setting.POST("", api.CreateOrUpdateSetting) - setting.GET("/serverInfo", m.ServerInfo) - } -} +//func registerSysSettingRouter(v1 *gin.RouterGroup) { +// +// //m := apis2.Monitor{} +// setting := v1.Group("/setting") +// { +// setting.GET("/serverInfo", m.ServerInfo) +// } +//} -func registerPublicRouter(v1 *gin.RouterGroup) { - p := v1.Group("/public") - { - file := public.File{} - p.POST("/uploadFile", file.UploadFile) - } -} +//func registerPublicRouter(v1 *gin.RouterGroup) { +// p := v1.Group("/public") +// { +// file := apis2.File{} +// p.POST("/uploadFile", file.UploadFile) +// } +//} diff --git a/app/admin/router/sys_user.go b/app/admin/router/sys_user.go index 59e4a67e..aa78b72e 100644 --- a/app/admin/router/sys_user.go +++ b/app/admin/router/sys_user.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/sys_user" + "go-admin/app/admin/apis" "go-admin/common/actions" middleware2 "go-admin/common/middleware" ) @@ -14,7 +14,7 @@ func init() { // 需认证的路由代码 func registerSysUserRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_user.SysUser{} + api := apis.SysUser{} r := v1.Group("/sysUser").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()).Use(actions.PermissionAction()) { r.GET("", api.GetSysUserList) diff --git a/app/admin/service/sys_user.go b/app/admin/service/sys_user.go index 8681a291..2962f1a6 100644 --- a/app/admin/service/sys_user.go +++ b/app/admin/service/sys_user.go @@ -41,21 +41,19 @@ func (e *SysUser) GetSysUserPage(c cDto.Index, p *actions.DataPermission, list * // GetSysUser 获取SysUser对象 func (e *SysUser) GetSysUser(d cDto.Control, p *actions.DataPermission, model *system.SysUser) error { - var err error var data system.SysUser - db := e.Orm.Model(&data). + err := e.Orm.Model(&data). Scopes( actions.Permission(data.TableName(), p), ). - First(model, d.GetId()) - err = db.Error + First(model, d.GetId()).Error if err != nil && errors.Is(err, gorm.ErrRecordNotFound) { err = errors.New("查看对象不存在或无权查看") e.Log.Errorf("db error: %s", err) return err } - if db.Error != nil { + if err != nil { e.Log.Errorf("db error: %s", err) return err } @@ -84,8 +82,8 @@ func (e *SysUser) UpdateSysUser(c common.ActiveRecord, p *actions.DataPermission Scopes( actions.Permission(c.TableName(), p), ).Where(c.GetId()).Updates(c) - if db.Error != nil { - e.Log.Errorf("db error: %s", err) + if err = db.Error; err != nil { + e.Log.Errorf("Service UpdateSysUser error: %s", err) return err } if db.RowsAffected == 0 { @@ -104,14 +102,12 @@ func (e *SysUser) RemoveSysUser(d cDto.Control, c common.ActiveRecord, p *action Scopes( actions.Permission(data.TableName(), p), ).Where(d.GetId()).Delete(c) - if db.Error != nil { - err = db.Error + if err = db.Error; err != nil { e.Log.Errorf("Delete error: %s", err) return err } if db.RowsAffected == 0 { - err = errors.New("无权删除该数据") - return err + return errors.New("无权删除该数据") } return nil } diff --git a/app/cms/models/sys_category.go b/app/cms/models/sys_category.go new file mode 100644 index 00000000..76f3c9b8 --- /dev/null +++ b/app/cms/models/sys_category.go @@ -0,0 +1,29 @@ +package models + +import ( + "go-admin/common/models" +) + +type SysCategory struct { + models.Model + Name string `json:"name" gorm:"size:255;comment:名称"` // + Img string `json:"img" gorm:"size:255;comment:图标"` // + Sort int `json:"sort" gorm:"size:4;comment:排序"` // + Status int `json:"status" gorm:"size:1;comment:状态"` // + Remark string `json:"remark" gorm:"size:255;comment:备注"` // + models.ControlBy + models.ModelTime +} + +func (SysCategory) TableName() string { + return "sys_category" +} + +func (e *SysCategory) Generate() models.ActiveRecord { + o := *e + return &o +} + +func (e *SysCategory) GetId() interface{} { + return e.Id +} diff --git a/app/admin/models/sys_content.go b/app/cms/models/sys_content.go similarity index 100% rename from app/admin/models/sys_content.go rename to app/cms/models/sys_content.go diff --git a/app/cms/router/init_router.go b/app/cms/router/init_router.go new file mode 100644 index 00000000..7054bf56 --- /dev/null +++ b/app/cms/router/init_router.go @@ -0,0 +1,42 @@ +package router + +import ( + "os" + + "github.com/gin-gonic/gin" + log "github.com/go-admin-team/go-admin-core/logger" + "github.com/go-admin-team/go-admin-core/sdk" + "github.com/go-admin-team/go-admin-core/sdk/pkg" + + common "go-admin/common/middleware" +) + +// InitRouter 路由初始化,不要怀疑,这里用到了 +func InitRouter() { + var r *gin.Engine + h := sdk.Runtime.GetEngine() + if h == nil { + h = gin.New() + sdk.Runtime.SetEngine(h) + } + switch h.(type) { + case *gin.Engine: + r = h.(*gin.Engine) + default: + log.Fatal("not support other engine") + os.Exit(-1) + } + + r.Use(common.Sentinel()). + Use(common.RequestId(pkg.TrafficKey)) + common.InitMiddleware(r) + // the jwt middleware + authMiddleware, err := common.AuthInit() + if err != nil { + log.Fatalf("JWT Init Error, %s", err.Error()) + } + + // 注册业务路由 + // TODO: 这里可存放业务路由,里边并无实际路由只有演示代码 + initRouter(r, authMiddleware) +} \ No newline at end of file diff --git a/app/cms/router/router.go b/app/cms/router/router.go new file mode 100644 index 00000000..a99da845 --- /dev/null +++ b/app/cms/router/router.go @@ -0,0 +1,43 @@ +package router + + +import ( + "github.com/gin-gonic/gin" + jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" +) + +var ( + routerNoCheckRole = make([]func(*gin.RouterGroup), 0) + routerCheckRole = make([]func(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware), 0) +) + +// initRouter 路由示例 +func initRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) *gin.Engine { + + // 无需认证的路由 + noCheckRoleRouter(r) + // 需要认证的路由 + checkRoleRouter(r, authMiddleware) + + return r +} + +// noCheckRoleRouter 无需认证的路由示例 +func noCheckRoleRouter(r *gin.Engine) { + // 可根据业务需求来设置接口版本 + v1 := r.Group("/api/v1") + + for _, f := range routerNoCheckRole { + f(v1) + } +} + +// checkRoleRouter 需要认证的路由示例 +func checkRoleRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) { + // 可根据业务需求来设置接口版本 + v1 := r.Group("/api/v1") + + for _, f := range routerCheckRole { + f(v1, authMiddleware) + } +} \ No newline at end of file diff --git a/app/admin/router/sys_category.go b/app/cms/router/sys_category.go similarity index 87% rename from app/admin/router/sys_category.go rename to app/cms/router/sys_category.go index df8322a3..7cb4280f 100644 --- a/app/admin/router/sys_category.go +++ b/app/cms/router/sys_category.go @@ -2,11 +2,11 @@ package router import ( "github.com/gin-gonic/gin" - middleware2 "go-admin/common/middleware" + "go-admin/app/cms/models" + "go-admin/app/cms/service/dto" + "go-admin/common/middleware" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/models" - "go-admin/app/admin/service/dto" "go-admin/common/actions" ) @@ -16,7 +16,7 @@ func init() { // 需认证的路由代码 func registerSysCategoryRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - r := v1.Group("/syscategory").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) + r := v1.Group("/syscategory").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { model := &models.SysCategory{} r.GET("", actions.PermissionAction(), actions.IndexAction(model, new(dto.SysCategorySearch), func() interface{} { diff --git a/app/admin/router/sys_content.go b/app/cms/router/sys_content.go similarity index 72% rename from app/admin/router/sys_content.go rename to app/cms/router/sys_content.go index 133d7248..aac6da29 100644 --- a/app/admin/router/sys_content.go +++ b/app/cms/router/sys_content.go @@ -3,10 +3,10 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/models" - "go-admin/app/admin/service/dto" + "go-admin/app/cms/models" + "go-admin/app/cms/service/dto" "go-admin/common/actions" - middleware2 "go-admin/common/middleware" + "go-admin/common/middleware" ) func init() { @@ -16,14 +16,8 @@ func init() { // 需认证的路由代码 func registerSysContentRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - r := v1.Group("/syscontent").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) + r := v1.Group("/syscontent").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { - //r.GET("", sys_content.GetSysContentList) - //r.GET("/:id", sys_content.GetSysContent) - //r.POST("", sys_content.InsertSysContent) - //r.PUT("", sys_content.UpdateSysContent) - //r.DELETE("/:id", sys_content.DeleteSysContent) - model := &models.SysContent{} r.GET("", actions.PermissionAction(), actions.IndexAction(model, new(dto.SysContentSearch), func() interface{} { list := make([]models.SysContent, 0) diff --git a/app/admin/service/dto/sys_category.go b/app/cms/service/dto/sys_category.go similarity index 65% rename from app/admin/service/dto/sys_category.go rename to app/cms/service/dto/sys_category.go index 88ca2585..aad12559 100644 --- a/app/admin/service/dto/sys_category.go +++ b/app/cms/service/dto/sys_category.go @@ -2,20 +2,19 @@ package dto import ( "errors" - vd "github.com/bytedance/go-tagexpr/v2/validator" "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/api" + "go-admin/app/cms/models" - "go-admin/app/admin/models" "go-admin/common/dto" common "go-admin/common/models" ) type SysCategorySearch struct { dto.Pagination `search:"-"` - Name string `form:"name" search:"type:exact;column:name;table:sys_category" comment:"名称" vd:"?"` - Status string `form:"status" search:"type:exact;column:status;table:sys_category" comment:"状态" vd:"?"` - CateId int `form:"cateId" search:"type:exact;column:cate_id;table:sys_category" comment:"分类id" vd:"?"` + Name string `form:"name" search:"type:exact;column:name;table:sys_category" comment:"名称"` + Status string `form:"status" search:"type:exact;column:status;table:sys_category" comment:"状态"` + CateId int `form:"cateId" search:"type:exact;column:cate_id;table:sys_category" comment:"分类id"` } func (m *SysCategorySearch) GetNeedSearch() interface{} { @@ -30,10 +29,6 @@ func (m *SysCategorySearch) Bind(ctx *gin.Context) error { log.Debugf("ShouldBind error: %s", err.Error()) } - if err = vd.Validate(m); err != nil { - log.Errorf("Validate error: %s", err.Error()) - return err - } return err } @@ -43,12 +38,12 @@ func (m *SysCategorySearch) Generate() dto.Index { } type SysCategoryControl struct { - ID int `uri:"Id" comment:"标识"` - Name string `json:"name" comment:"名称" vd:"len($)>0 && $!=' '; msg:'invalid name: 不能是空字符串'"` - Img string `json:"img" comment:"图标" vd:"?"` - Sort int `json:"sort" comment:"排序" vd:"?"` - Status int `json:"status" comment:"状态" vd:"$>0; msg:'invalid status: 状态无效'"` - Remark string `json:"remark" comment:"备注" vd:"?"` + Id int `uri:"Id" comment:"标识"` + Name string `json:"name" comment:"名称"` + Img string `json:"img" comment:"图标"` + Sort int `json:"sort" comment:"排序"` + Status int `json:"status" comment:"状态"` + Remark string `json:"remark" comment:"备注"` } func (s *SysCategoryControl) Bind(ctx *gin.Context) error { @@ -63,10 +58,7 @@ func (s *SysCategoryControl) Bind(ctx *gin.Context) error { log.Errorf("ShouldBind error: %s", err.Error()) err = errors.New("数据绑定出错") } - if err1 := vd.Validate(s); err != nil { - log.Errorf("Validate error: %s", err1.Error()) - return err1 - } + return err } @@ -77,7 +69,7 @@ func (s *SysCategoryControl) Generate() dto.Control { func (s *SysCategoryControl) GenerateM() (common.ActiveRecord, error) { return &models.SysCategory{ - Model: common.Model{Id: s.ID}, + Model: common.Model{Id: s.Id}, Name: s.Name, Img: s.Img, Sort: s.Sort, @@ -87,11 +79,11 @@ func (s *SysCategoryControl) GenerateM() (common.ActiveRecord, error) { } func (s *SysCategoryControl) GetId() interface{} { - return s.ID + return s.Id } type SysCategoryById struct { - dto.ObjectById `vd:"?"` + dto.ObjectById } func (s *SysCategoryById) Generate() dto.Control { @@ -101,4 +93,4 @@ func (s *SysCategoryById) Generate() dto.Control { func (s *SysCategoryById) GenerateM() (common.ActiveRecord, error) { return &models.SysCategory{}, nil -} \ No newline at end of file +} diff --git a/app/admin/service/dto/sys_content.go b/app/cms/service/dto/sys_content.go similarity index 94% rename from app/admin/service/dto/sys_content.go rename to app/cms/service/dto/sys_content.go index 0a639793..43f986a1 100644 --- a/app/admin/service/dto/sys_content.go +++ b/app/cms/service/dto/sys_content.go @@ -3,8 +3,8 @@ package dto import ( "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/api" + "go-admin/app/cms/models" - "go-admin/app/admin/models" "go-admin/common/dto" common "go-admin/common/models" ) @@ -34,7 +34,7 @@ func (m *SysContentSearch) Generate() dto.Index { } type SysContentControl struct { - ID int `uri:"ID" comment:""` // + Id int `uri:"Id" comment:""` // CateId int `json:"cateId" comment:""` Name string `json:"name" comment:""` Status int `json:"status" comment:""` @@ -65,7 +65,7 @@ func (s *SysContentControl) Generate() dto.Control { func (s *SysContentControl) GenerateM() (common.ActiveRecord, error) { return &models.SysContent{ - Model: common.Model{s.ID}, + Model: common.Model{s.Id}, CateId: s.CateId, Name: s.Name, Status: s.Status, @@ -77,7 +77,7 @@ func (s *SysContentControl) GenerateM() (common.ActiveRecord, error) { } func (s *SysContentControl) GetId() interface{} { - return s.ID + return s.Id } type SysContentById struct { diff --git a/app/admin/apis/sys_job/sys_job.go b/app/jobs/apis/sys_job.go similarity index 95% rename from app/admin/apis/sys_job/sys_job.go rename to app/jobs/apis/sys_job.go index 95b65b8c..5e1a27ca 100644 --- a/app/admin/apis/sys_job/sys_job.go +++ b/app/jobs/apis/sys_job.go @@ -1,11 +1,11 @@ -package sys_job +package apis import ( + "go-admin/app/jobs/service" "net/http" "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk" - "go-admin/app/admin/service" "go-admin/common/apis" "go-admin/common/dto" ) @@ -16,6 +16,7 @@ type SysJob struct { // RemoveJobForService 调用service实现 func (e SysJob) RemoveJobForService(c *gin.Context) { + e.SetContext(c) log := e.GetLogger() db, err := e.GetOrm() if err != nil { @@ -44,7 +45,7 @@ func (e SysJob) RemoveJobForService(c *gin.Context) { // StartJobForService 启动job service实现 func (e SysJob) StartJobForService(c *gin.Context) { - e.Context = c + e.SetContext(c) log := e.GetLogger() db, err := e.GetOrm() if err != nil { diff --git a/app/jobs/jobbase.go b/app/jobs/jobbase.go index 3a212279..3e09b888 100644 --- a/app/jobs/jobbase.go +++ b/app/jobs/jobbase.go @@ -4,6 +4,7 @@ import ( "fmt" log "github.com/go-admin-team/go-admin-core/logger" "github.com/go-admin-team/go-admin-core/sdk" + models2 "go-admin/app/jobs/models" "gorm.io/gorm" "sync" "time" @@ -12,7 +13,6 @@ import ( "github.com/go-admin-team/go-admin-core/sdk/pkg" "github.com/go-admin-team/go-admin-core/sdk/pkg/cronjob" - "go-admin/app/admin/models" ) var timeFormat = "2006-01-02 15:04:05" @@ -108,8 +108,8 @@ func Setup(dbs map[string]*gorm.DB) { func setup(key string, db *gorm.DB) { crontab := sdk.Runtime.GetCrontabKey(key) - sysJob := models.SysJob{} - jobList := make([]models.SysJob, 0) + sysJob := models2.SysJob{} + jobList := make([]models2.SysJob, 0) err := sysJob.GetList(db, &jobList) if err != nil { fmt.Println(time.Now().Format(timeFormat), " [ERROR] JobCore init error", err) diff --git a/app/admin/models/sys_job.go b/app/jobs/models/sys_job.go similarity index 56% rename from app/admin/models/sys_job.go rename to app/jobs/models/sys_job.go index bc88025a..5a62f9d0 100644 --- a/app/admin/models/sys_job.go +++ b/app/jobs/models/sys_job.go @@ -44,32 +44,6 @@ func (e *SysJob) SetUpdateBy(updateBy int) { e.UpdateBy = updateBy } -// 创建SysJob -//func (e *SysJob) Create() (err error) { -// return orm.Eloquent.Table(e.TableName()).Create(e).Error -//} - -// 获取SysJob -//func (e *SysJob) Get(id interface{}) (err error) { -// return orm.Eloquent.Table(e.TableName()).First(e, id).Error -//} - -// 获取SysJob带分页 -//func (e *SysJob) GetPage(pageSize int, pageIndex int, v interface{}, list interface{}) (int, error) { -// table := orm.Eloquent.Table(e.TableName()).Scopes(dto.MakeCondition(v)) -// -// // 数据权限控制(如果不需要数据权限请将此处去掉) -// //dataPermission := new(DataPermission) -// userid, _ := tools.StringToInt(e.DataScope) -// -// var count int64 -// -// if err := table.Scopes(system.DataScopes(e.TableName(), userid), dto.Paginate(pageSize, pageIndex)).Find(list).Offset(-1).Limit(-1).Count(&count).Error; err != nil { -// return 0, err -// } -// return int(count), nil -//} - func (e *SysJob) GetList(tx *gorm.DB, list interface{}) (err error) { return tx.Table(e.TableName()).Where("status = ?", 2).Find(list).Error } @@ -85,25 +59,3 @@ func (e *SysJob) RemoveAllEntryID(tx *gorm.DB) (update SysJob, err error) { } return } - -//func (e *SysJob) RemoveEntryID(entryID int) (update SysJob, err error) { -// if err = orm.Eloquent.Table(e.TableName()).Where("entry_id = ?", entryID).Updates(map[string]interface{}{"entry_id": 0}).Error; err != nil { -// return -// } -// return -//} - -// 删除SysJob -//func (e *SysJob) Delete(id int) (success bool, err error) { -// if err = orm.Eloquent.Table(e.TableName()).Where(id).Delete(&SysJob{}).Error; err != nil { -// success = false -// return -// } -// success = true -// return -//} - -//批量删除 -//func (e *SysJob) BatchDelete(id []int) error { -// return orm.Eloquent.Table(e.TableName()).Where(id).Delete(&SysJob{}).Error -//} diff --git a/app/jobs/router/int_router.go b/app/jobs/router/int_router.go new file mode 100644 index 00000000..7054bf56 --- /dev/null +++ b/app/jobs/router/int_router.go @@ -0,0 +1,42 @@ +package router + +import ( + "os" + + "github.com/gin-gonic/gin" + log "github.com/go-admin-team/go-admin-core/logger" + "github.com/go-admin-team/go-admin-core/sdk" + "github.com/go-admin-team/go-admin-core/sdk/pkg" + + common "go-admin/common/middleware" +) + +// InitRouter 路由初始化,不要怀疑,这里用到了 +func InitRouter() { + var r *gin.Engine + h := sdk.Runtime.GetEngine() + if h == nil { + h = gin.New() + sdk.Runtime.SetEngine(h) + } + switch h.(type) { + case *gin.Engine: + r = h.(*gin.Engine) + default: + log.Fatal("not support other engine") + os.Exit(-1) + } + + r.Use(common.Sentinel()). + Use(common.RequestId(pkg.TrafficKey)) + common.InitMiddleware(r) + // the jwt middleware + authMiddleware, err := common.AuthInit() + if err != nil { + log.Fatalf("JWT Init Error, %s", err.Error()) + } + + // 注册业务路由 + // TODO: 这里可存放业务路由,里边并无实际路由只有演示代码 + initRouter(r, authMiddleware) +} \ No newline at end of file diff --git a/app/jobs/router/router.go b/app/jobs/router/router.go new file mode 100644 index 00000000..a99da845 --- /dev/null +++ b/app/jobs/router/router.go @@ -0,0 +1,43 @@ +package router + + +import ( + "github.com/gin-gonic/gin" + jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" +) + +var ( + routerNoCheckRole = make([]func(*gin.RouterGroup), 0) + routerCheckRole = make([]func(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware), 0) +) + +// initRouter 路由示例 +func initRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) *gin.Engine { + + // 无需认证的路由 + noCheckRoleRouter(r) + // 需要认证的路由 + checkRoleRouter(r, authMiddleware) + + return r +} + +// noCheckRoleRouter 无需认证的路由示例 +func noCheckRoleRouter(r *gin.Engine) { + // 可根据业务需求来设置接口版本 + v1 := r.Group("/api/v1") + + for _, f := range routerNoCheckRole { + f(v1) + } +} + +// checkRoleRouter 需要认证的路由示例 +func checkRoleRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) { + // 可根据业务需求来设置接口版本 + v1 := r.Group("/api/v1") + + for _, f := range routerCheckRole { + f(v1, authMiddleware) + } +} \ No newline at end of file diff --git a/app/admin/router/sys_job.go b/app/jobs/router/sys_job.go similarity index 67% rename from app/admin/router/sys_job.go rename to app/jobs/router/sys_job.go index a6985b8c..11376a0c 100644 --- a/app/admin/router/sys_job.go +++ b/app/jobs/router/sys_job.go @@ -3,9 +3,9 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/sys_job" - "go-admin/app/admin/models" - "go-admin/app/admin/service/dto" + "go-admin/app/jobs/apis" + models2 "go-admin/app/jobs/models" + dto2 "go-admin/app/jobs/service/dto" "go-admin/common/actions" middleware2 "go-admin/common/middleware" ) @@ -19,19 +19,19 @@ func registerSysJobRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddlew r := v1.Group("/sysjob").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) { - sysJob := &models.SysJob{} - r.GET("", actions.PermissionAction(), actions.IndexAction(sysJob, new(dto.SysJobSearch), func() interface{} { - list := make([]models.SysJob, 0) + sysJob := &models2.SysJob{} + r.GET("", actions.PermissionAction(), actions.IndexAction(sysJob, new(dto2.SysJobSearch), func() interface{} { + list := make([]models2.SysJob, 0) return &list })) - r.GET("/:id", actions.PermissionAction(), actions.ViewAction(new(dto.SysJobById), func() interface{} { - return &dto.SysJobItem{} + r.GET("/:id", actions.PermissionAction(), actions.ViewAction(new(dto2.SysJobById), func() interface{} { + return &dto2.SysJobItem{} })) - r.POST("", actions.CreateAction(new(dto.SysJobControl))) - r.PUT("", actions.PermissionAction(), actions.UpdateAction(new(dto.SysJobControl))) - r.DELETE("", actions.PermissionAction(), actions.DeleteAction(new(dto.SysJobById))) + r.POST("", actions.CreateAction(new(dto2.SysJobControl))) + r.PUT("", actions.PermissionAction(), actions.UpdateAction(new(dto2.SysJobControl))) + r.DELETE("", actions.PermissionAction(), actions.DeleteAction(new(dto2.SysJobById))) } - sysJob := sys_job.SysJob{} + sysJob := apis.SysJob{} v1.GET("/job/remove/:id", sysJob.RemoveJobForService) v1.GET("/job/start/:id", sysJob.StartJobForService) diff --git a/app/admin/service/dto/sys_job.go b/app/jobs/service/dto/sys_job.go similarity index 99% rename from app/admin/service/dto/sys_job.go rename to app/jobs/service/dto/sys_job.go index 6953cab8..c66bcbdf 100644 --- a/app/admin/service/dto/sys_job.go +++ b/app/jobs/service/dto/sys_job.go @@ -3,8 +3,8 @@ package dto import ( "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/api" + "go-admin/app/jobs/models" - "go-admin/app/admin/models" "go-admin/common/dto" common "go-admin/common/models" ) diff --git a/app/admin/service/sys_job.go b/app/jobs/service/sys_job.go similarity index 98% rename from app/admin/service/sys_job.go rename to app/jobs/service/sys_job.go index dde262d7..3722636b 100644 --- a/app/admin/service/sys_job.go +++ b/app/jobs/service/sys_job.go @@ -2,9 +2,9 @@ package service import ( "github.com/robfig/cron/v3" + "go-admin/app/jobs/models" "time" - "go-admin/app/admin/models" "go-admin/app/jobs" "go-admin/common/dto" "go-admin/common/service" diff --git a/app/admin/apis/public/file.go b/app/other/apis/file.go similarity index 99% rename from app/admin/apis/public/file.go rename to app/other/apis/file.go index 42a4aca7..84fa7e76 100644 --- a/app/admin/apis/public/file.go +++ b/app/other/apis/file.go @@ -1,4 +1,4 @@ -package public +package apis import ( "encoding/base64" diff --git a/app/admin/apis/monitor/server.go b/app/other/apis/server.go similarity index 97% rename from app/admin/apis/monitor/server.go rename to app/other/apis/server.go index 9e5b2329..0b2c4ee9 100644 --- a/app/admin/apis/monitor/server.go +++ b/app/other/apis/server.go @@ -1,4 +1,4 @@ -package monitor +package apis import ( "runtime" @@ -24,6 +24,7 @@ type Monitor struct { apis.Api } +// ServerInfo 获取系统信息 // @Summary 系统信息 // @Description 获取JSON // @Tags 系统信息 diff --git a/app/admin/apis/sys_china_area_data/sys_china_area_data.go b/app/other/apis/sys_china_area_data.go similarity index 84% rename from app/admin/apis/sys_china_area_data/sys_china_area_data.go rename to app/other/apis/sys_china_area_data.go index bdf82982..eb56e619 100644 --- a/app/admin/apis/sys_china_area_data/sys_china_area_data.go +++ b/app/other/apis/sys_china_area_data.go @@ -1,14 +1,14 @@ -package sys_china_area_data +package apis import ( + models2 "go-admin/app/other/models" + service2 "go-admin/app/other/service" + dto2 "go-admin/app/other/service/dto" "net/http" "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" - "go-admin/app/admin/models" - "go-admin/app/admin/service" - "go-admin/app/admin/service/dto" "go-admin/common/actions" "go-admin/common/apis" ) @@ -20,7 +20,7 @@ type SysChinaAreaData struct { func (e SysChinaAreaData) GetSysChinaAreaDataList(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - d := new(dto.SysChinaAreaDataSearch) + d := new(dto2.SysChinaAreaDataSearch) db, err := e.GetOrm() if err != nil { log.Error(err) @@ -37,9 +37,9 @@ func (e SysChinaAreaData) GetSysChinaAreaDataList(c *gin.Context) { //数据权限检查 p := actions.GetPermissionFromContext(c) - list := make([]models.SysChinaAreaData, 0) + list := make([]models2.SysChinaAreaData, 0) var count int64 - serviceStudent := service.SysChinaAreaData{} + serviceStudent := service2.SysChinaAreaData{} serviceStudent.Log = log serviceStudent.Orm = db err = serviceStudent.GetSysChinaAreaDataPage(d, p, &list, &count) @@ -54,7 +54,7 @@ func (e SysChinaAreaData) GetSysChinaAreaDataList(c *gin.Context) { func (e SysChinaAreaData) GetSysChinaAreaData(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - control := new(dto.SysChinaAreaDataById) + control := new(dto2.SysChinaAreaDataById) db, err := e.GetOrm() if err != nil { log.Error(err) @@ -67,12 +67,12 @@ func (e SysChinaAreaData) GetSysChinaAreaData(c *gin.Context) { e.Error(http.StatusUnprocessableEntity, err, "参数验证失败") return } - var object models.SysChinaAreaData + var object models2.SysChinaAreaData //数据权限检查 p := actions.GetPermissionFromContext(c) - serviceSysChinaAreaData := service.SysChinaAreaData{} + serviceSysChinaAreaData := service2.SysChinaAreaData{} serviceSysChinaAreaData.Log = log serviceSysChinaAreaData.Orm = db err = serviceSysChinaAreaData.GetSysChinaAreaData(control, p, &object) @@ -87,7 +87,7 @@ func (e SysChinaAreaData) GetSysChinaAreaData(c *gin.Context) { func (e SysChinaAreaData) InsertSysChinaAreaData(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - control := new(dto.SysChinaAreaDataControl) + control := new(dto2.SysChinaAreaDataControl) db, err := e.GetOrm() if err != nil { log.Error(err) @@ -108,7 +108,7 @@ func (e SysChinaAreaData) InsertSysChinaAreaData(c *gin.Context) { // 设置创建人 object.SetCreateBy(user.GetUserId(c)) - serviceSysChinaAreaData := service.SysChinaAreaData{} + serviceSysChinaAreaData := service2.SysChinaAreaData{} serviceSysChinaAreaData.Orm = db serviceSysChinaAreaData.Log = log err = serviceSysChinaAreaData.InsertSysChinaAreaData(object) @@ -124,7 +124,7 @@ func (e SysChinaAreaData) InsertSysChinaAreaData(c *gin.Context) { func (e SysChinaAreaData) UpdateSysChinaAreaData(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - control := new(dto.SysChinaAreaDataControl) + control := new(dto2.SysChinaAreaDataControl) db, err := e.GetOrm() if err != nil { log.Error(err) @@ -147,7 +147,7 @@ func (e SysChinaAreaData) UpdateSysChinaAreaData(c *gin.Context) { //数据权限检查 p := actions.GetPermissionFromContext(c) - serviceSysChinaAreaData := service.SysChinaAreaData{} + serviceSysChinaAreaData := service2.SysChinaAreaData{} serviceSysChinaAreaData.Orm = db serviceSysChinaAreaData.Log = log err = serviceSysChinaAreaData.UpdateSysChinaAreaData(object, p) @@ -161,7 +161,7 @@ func (e SysChinaAreaData) UpdateSysChinaAreaData(c *gin.Context) { func (e SysChinaAreaData) DeleteSysChinaAreaData(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - control := new(dto.SysChinaAreaDataById) + control := new(dto2.SysChinaAreaDataById) db, err := e.GetOrm() if err != nil { log.Error(err) @@ -182,7 +182,7 @@ func (e SysChinaAreaData) DeleteSysChinaAreaData(c *gin.Context) { // 数据权限检查 p := actions.GetPermissionFromContext(c) - serviceSysChinaAreaData := service.SysChinaAreaData{} + serviceSysChinaAreaData := service2.SysChinaAreaData{} serviceSysChinaAreaData.Orm = db serviceSysChinaAreaData.Log = log err = serviceSysChinaAreaData.RemoveSysChinaAreaData(control, p) diff --git a/app/admin/apis/sys_file/sys_file_dir.go b/app/other/apis/sys_file_dir.go similarity index 95% rename from app/admin/apis/sys_file/sys_file_dir.go rename to app/other/apis/sys_file_dir.go index 8d8f349a..8723bec8 100644 --- a/app/admin/apis/sys_file/sys_file_dir.go +++ b/app/other/apis/sys_file_dir.go @@ -1,4 +1,4 @@ -package sys_file +package apis import ( "net/http" @@ -7,9 +7,9 @@ import ( "github.com/go-admin-team/go-admin-core/sdk/pkg" "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" - "go-admin/app/admin/models" - "go-admin/app/admin/service" - "go-admin/app/admin/service/dto" + "go-admin/app/other/models" + "go-admin/app/other/service" + "go-admin/app/other/service/dto" "go-admin/common/actions" "go-admin/common/apis" ) @@ -33,7 +33,7 @@ func (e SysFileDir) GetSysFileDirList(c *gin.Context) { log.Debugf("ShouldBind error: %s", err.Error()) } - var list *[]models.SysFileDirL + var list *[]models.SysFileDir serviceStudent := service.SysFileDir{} serviceStudent.Log = log serviceStudent.Orm = db @@ -115,7 +115,7 @@ func (e SysFileDir) InsertSysFileDir(c *gin.Context) { return } - e.OK(control.ID, "创建成功") + e.OK(control.Id, "创建成功") } func (e SysFileDir) UpdateSysFileDir(c *gin.Context) { @@ -153,7 +153,7 @@ func (e SysFileDir) UpdateSysFileDir(c *gin.Context) { e.Error(http.StatusInternalServerError, err, "更新失败") return } - e.OK(control.ID, "更新成功") + e.OK(control.Id, "更新成功") } func (e SysFileDir) DeleteSysFileDir(c *gin.Context) { diff --git a/app/admin/apis/sys_file/sys_file_info.go b/app/other/apis/sys_file_info.go similarity index 86% rename from app/admin/apis/sys_file/sys_file_info.go rename to app/other/apis/sys_file_info.go index 637743bf..95537a0c 100644 --- a/app/admin/apis/sys_file/sys_file_info.go +++ b/app/other/apis/sys_file_info.go @@ -1,14 +1,14 @@ -package sys_file +package apis import ( + models2 "go-admin/app/other/models" + service2 "go-admin/app/other/service" + dto2 "go-admin/app/other/service/dto" "net/http" "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" - "go-admin/app/admin/models" - "go-admin/app/admin/service" - "go-admin/app/admin/service/dto" "go-admin/common/actions" "go-admin/common/apis" ) @@ -20,7 +20,7 @@ type SysFileInfo struct { func (e SysFileInfo) GetSysFileInfoList(c *gin.Context) { e.Context = c log := e.GetLogger() - search := new(dto.SysFileInfoSearch) + search := new(dto2.SysFileInfoSearch) db, err := e.GetOrm() if err != nil { log.Error(err) @@ -36,9 +36,9 @@ func (e SysFileInfo) GetSysFileInfoList(c *gin.Context) { //数据权限检查 p := actions.GetPermissionFromContext(c) - list := make([]models.SysFileInfo, 0) + list := make([]models2.SysFileInfo, 0) var count int64 - serviceStudent := service.SysFileInfo{} + serviceStudent := service2.SysFileInfo{} serviceStudent.Log = log serviceStudent.Orm = db err = serviceStudent.GetSysFileInfoPage(search, p, &list, &count) @@ -52,7 +52,7 @@ func (e SysFileInfo) GetSysFileInfoList(c *gin.Context) { } func (e SysFileInfo) GetSysFileInfo(c *gin.Context) { - control := new(dto.SysFileInfoById) + control := new(dto2.SysFileInfoById) e.Context = c log := e.GetLogger() db, err := e.GetOrm() @@ -69,12 +69,12 @@ func (e SysFileInfo) GetSysFileInfo(c *gin.Context) { return } - var object models.SysFileInfo + var object models2.SysFileInfo //数据权限检查 p := actions.GetPermissionFromContext(c) - serviceSysFileInfo := service.SysFileInfo{} + serviceSysFileInfo := service2.SysFileInfo{} serviceSysFileInfo.Log = log serviceSysFileInfo.Orm = db err = serviceSysFileInfo.GetSysFileInfo(control, p, &object) @@ -88,7 +88,7 @@ func (e SysFileInfo) GetSysFileInfo(c *gin.Context) { } func (e SysFileInfo) InsertSysFileInfo(c *gin.Context) { - control := new(dto.SysFileInfoControl) + control := new(dto2.SysFileInfoControl) e.Context = c log := e.GetLogger() db, err := e.GetOrm() @@ -113,7 +113,7 @@ func (e SysFileInfo) InsertSysFileInfo(c *gin.Context) { // 设置创建人 control.CreateBy = user.GetUserId(c) - serviceSysFileInfo := service.SysFileInfo{} + serviceSysFileInfo := service2.SysFileInfo{} serviceSysFileInfo.Orm = db serviceSysFileInfo.Log = log err = serviceSysFileInfo.InsertSysFileInfo(control) @@ -123,11 +123,11 @@ func (e SysFileInfo) InsertSysFileInfo(c *gin.Context) { return } - e.OK(control.ID, "创建成功") + e.OK(control.Id, "创建成功") } func (e SysFileInfo) UpdateSysFileInfo(c *gin.Context) { - control := new(dto.SysFileInfoControl) + control := new(dto2.SysFileInfoControl) e.Context = c log := e.GetLogger() db, err := e.GetOrm() @@ -154,7 +154,7 @@ func (e SysFileInfo) UpdateSysFileInfo(c *gin.Context) { //数据权限检查 p := actions.GetPermissionFromContext(c) - serviceSysFileInfo := service.SysFileInfo{} + serviceSysFileInfo := service2.SysFileInfo{} serviceSysFileInfo.Orm = db serviceSysFileInfo.Log = log err = serviceSysFileInfo.UpdateSysFileInfo(control, p) @@ -163,11 +163,11 @@ func (e SysFileInfo) UpdateSysFileInfo(c *gin.Context) { e.Error(http.StatusInternalServerError, err, "创建失败") return } - e.OK(control.ID, "更新成功") + e.OK(control.Id, "更新成功") } func (e SysFileInfo) DeleteSysFileInfo(c *gin.Context) { - control := new(dto.SysFileInfoById) + control := new(dto2.SysFileInfoById) e.Context = c log := e.GetLogger() db, err := e.GetOrm() @@ -196,7 +196,7 @@ func (e SysFileInfo) DeleteSysFileInfo(c *gin.Context) { // 数据权限检查 p := actions.GetPermissionFromContext(c) - serviceSysFileInfo := service.SysFileInfo{} + serviceSysFileInfo := service2.SysFileInfo{} serviceSysFileInfo.Orm = db serviceSysFileInfo.Log = log err = serviceSysFileInfo.RemoveSysFileInfo(control, p) diff --git a/app/admin/models/sys_china_area_data.go b/app/other/models/sys_china_area_data.go similarity index 70% rename from app/admin/models/sys_china_area_data.go rename to app/other/models/sys_china_area_data.go index 019b041f..e9bf7658 100644 --- a/app/admin/models/sys_china_area_data.go +++ b/app/other/models/sys_china_area_data.go @@ -6,9 +6,8 @@ import ( type SysChinaAreaData struct { models.Model - - PId string `json:"pId" gorm:"type:int(11);comment:上级编码"` - Name string `json:"name" gorm:"type:varchar(128);comment:名称"` + PId string `json:"p_id" gorm:"size:11;comment:上级编码"` + Name string `json:"name" gorm:"size:128;comment:名称"` models.ControlBy models.ModelTime } diff --git a/app/admin/models/sys_file_dir.go b/app/other/models/sys_file_dir.go similarity index 53% rename from app/admin/models/sys_file_dir.go rename to app/other/models/sys_file_dir.go index 246b14c7..b8ea46ee 100644 --- a/app/admin/models/sys_file_dir.go +++ b/app/other/models/sys_file_dir.go @@ -7,7 +7,7 @@ import ( type SysFileDir struct { models.Model Label string `json:"label" gorm:"type:varchar(255);comment:目录名称"` // 目录名称 - PId int `json:"pId" gorm:"type:int(11);comment:上级目录"` // 上级目录 + PId int `json:"p_id" gorm:"type:int(11);comment:上级目录"` // 上级目录 Sort string `json:"sort" gorm:"type:bigint(20);comment:排序"` // 排序 Path string `json:"path" gorm:"type:varchar(255);comment:路径"` // 路径 Children []SysFileDir `json:"children,omitempty" gorm:"-"` // 下级信息 @@ -15,16 +15,16 @@ type SysFileDir struct { models.ModelTime } -type SysFileDirL struct { - models.Model - Label string `json:"label" gorm:"type:varchar(255);comment:目录名称"` // 目录名称 - PId int `json:"pId" gorm:"type:int(11);comment:上级目录"` // 上级目录 - Sort string `json:"sort" gorm:"type:bigint(20);comment:排序"` // 排序 - Path string `json:"path" gorm:"type:varchar(255);comment:路径"` // 路径 - models.ControlBy - models.ModelTime - Children []SysFileDirL `json:"children,omitempty" gorm:"-"` // 下级信息 -} +//type SysFileDirL struct { +// models.Model +// Label string `json:"label" gorm:"type:varchar(255);comment:目录名称"` // 目录名称 +// PId int `json:"pId" gorm:"type:int(11);comment:上级目录"` // 上级目录 +// Sort string `json:"sort" gorm:"type:bigint(20);comment:排序"` // 排序 +// Path string `json:"path" gorm:"type:varchar(255);comment:路径"` // 路径 +// models.ControlBy +// models.ModelTime +// Children []SysFileDirL `json:"children,omitempty" gorm:"-"` // 下级信息 +//} func (SysFileDir) TableName() string { /**/ return "sys_file_dir" diff --git a/app/other/models/sys_file_info.go b/app/other/models/sys_file_info.go new file mode 100644 index 00000000..be9ed7a1 --- /dev/null +++ b/app/other/models/sys_file_info.go @@ -0,0 +1,31 @@ +package models + +import ( + "go-admin/common/models" +) + +type SysFileInfo struct { + models.Model + Type string `json:"type" gorm:"size:255;comment:类型"` // + Name string `json:"name" gorm:"size:255;comment:名称"` // + Size string `json:"size" gorm:"size:11;comment:大小"` // + PId int `json:"p_id" gorm:"size:11;comment:目录"` // + Source string `json:"source" gorm:"size:255;comment:来源"` // + Url string `json:"url" gorm:"size:255;comment:地址"` // + FullUrl string `json:"full_url" gorm:"size:255;comment:全地址"` // + models.ControlBy + models.ModelTime +} + +func (SysFileInfo) TableName() string { + return "sys_file_info" +} + +func (e *SysFileInfo) Generate() models.ActiveRecord { + o := *e + return &o +} + +func (e *SysFileInfo) GetId() interface{} { + return e.Id +} diff --git a/app/other/router/init_router.go b/app/other/router/init_router.go new file mode 100644 index 00000000..7054bf56 --- /dev/null +++ b/app/other/router/init_router.go @@ -0,0 +1,42 @@ +package router + +import ( + "os" + + "github.com/gin-gonic/gin" + log "github.com/go-admin-team/go-admin-core/logger" + "github.com/go-admin-team/go-admin-core/sdk" + "github.com/go-admin-team/go-admin-core/sdk/pkg" + + common "go-admin/common/middleware" +) + +// InitRouter 路由初始化,不要怀疑,这里用到了 +func InitRouter() { + var r *gin.Engine + h := sdk.Runtime.GetEngine() + if h == nil { + h = gin.New() + sdk.Runtime.SetEngine(h) + } + switch h.(type) { + case *gin.Engine: + r = h.(*gin.Engine) + default: + log.Fatal("not support other engine") + os.Exit(-1) + } + + r.Use(common.Sentinel()). + Use(common.RequestId(pkg.TrafficKey)) + common.InitMiddleware(r) + // the jwt middleware + authMiddleware, err := common.AuthInit() + if err != nil { + log.Fatalf("JWT Init Error, %s", err.Error()) + } + + // 注册业务路由 + // TODO: 这里可存放业务路由,里边并无实际路由只有演示代码 + initRouter(r, authMiddleware) +} \ No newline at end of file diff --git a/app/admin/router/monitor.go b/app/other/router/monitor.go similarity index 88% rename from app/admin/router/monitor.go rename to app/other/router/monitor.go index b6cf2fab..f3c6c788 100644 --- a/app/admin/router/monitor.go +++ b/app/other/router/monitor.go @@ -20,10 +20,14 @@ func Monitor() { switch h.(type) { case *gin.Engine: r = h.(*gin.Engine) + //开发环境启动监控指标 + setHandle(r) default: log.Fatal("not support other engine") } - //开发环境启动监控指标 +} + +func setHandle(r *gin.Engine) { r.GET("/metrics", transfer.Handler(promhttp.Handler())) //健康检查 r.GET("/health", func(c *gin.Context) { diff --git a/app/other/router/router.go b/app/other/router/router.go new file mode 100644 index 00000000..a99da845 --- /dev/null +++ b/app/other/router/router.go @@ -0,0 +1,43 @@ +package router + + +import ( + "github.com/gin-gonic/gin" + jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" +) + +var ( + routerNoCheckRole = make([]func(*gin.RouterGroup), 0) + routerCheckRole = make([]func(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware), 0) +) + +// initRouter 路由示例 +func initRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) *gin.Engine { + + // 无需认证的路由 + noCheckRoleRouter(r) + // 需要认证的路由 + checkRoleRouter(r, authMiddleware) + + return r +} + +// noCheckRoleRouter 无需认证的路由示例 +func noCheckRoleRouter(r *gin.Engine) { + // 可根据业务需求来设置接口版本 + v1 := r.Group("/api/v1") + + for _, f := range routerNoCheckRole { + f(v1) + } +} + +// checkRoleRouter 需要认证的路由示例 +func checkRoleRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) { + // 可根据业务需求来设置接口版本 + v1 := r.Group("/api/v1") + + for _, f := range routerCheckRole { + f(v1, authMiddleware) + } +} \ No newline at end of file diff --git a/app/admin/router/sys_china_area_data.go b/app/other/router/sys_china_area_data.go similarity index 77% rename from app/admin/router/sys_china_area_data.go rename to app/other/router/sys_china_area_data.go index 0dca1098..3a23d25c 100644 --- a/app/admin/router/sys_china_area_data.go +++ b/app/other/router/sys_china_area_data.go @@ -3,8 +3,8 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/sys_china_area_data" - middleware2 "go-admin/common/middleware" + "go-admin/app/other/apis" + "go-admin/common/middleware" ) func init() { @@ -13,8 +13,8 @@ func init() { // 需认证的路由代码 func registerSysChinaAreaDataRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_china_area_data.SysChinaAreaData{} - r := v1.Group("/sys_china_area_data").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) + api := apis.SysChinaAreaData{} + r := v1.Group("/sys_china_area_data").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { r.GET("", api.GetSysChinaAreaDataList) r.GET("/:id", api.GetSysChinaAreaData) diff --git a/app/admin/router/sys_file_dir.go b/app/other/router/sys_file_dir.go similarity index 71% rename from app/admin/router/sys_file_dir.go rename to app/other/router/sys_file_dir.go index d2d47193..156175cb 100644 --- a/app/admin/router/sys_file_dir.go +++ b/app/other/router/sys_file_dir.go @@ -3,8 +3,8 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/sys_file" - middleware2 "go-admin/common/middleware" + "go-admin/app/other/apis" + "go-admin/common/middleware" ) func init() { @@ -13,8 +13,8 @@ func init() { // 需认证的路由代码 func registerSysFileDirRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_file.SysFileDir{} - r := v1.Group("/sysfiledir").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) + api := apis.SysFileDir{} + r := v1.Group("/file-dir").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { r.GET("", api.GetSysFileDirList) r.GET("/:id", api.GetSysFileDir) diff --git a/app/admin/router/sys_file_info.go b/app/other/router/sys_file_info.go similarity index 71% rename from app/admin/router/sys_file_info.go rename to app/other/router/sys_file_info.go index 5cd1d458..09c0f62a 100644 --- a/app/admin/router/sys_file_info.go +++ b/app/other/router/sys_file_info.go @@ -3,8 +3,8 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/sys_file" - middleware2 "go-admin/common/middleware" + "go-admin/app/other/apis" + "go-admin/common/middleware" ) func init() { @@ -13,8 +13,8 @@ func init() { // 需认证的路由代码 func registerSysFileInfoRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_file.SysFileInfo{} - r := v1.Group("/sysfileinfo").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) + api := apis.SysFileInfo{} + r := v1.Group("/file-info").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { r.GET("", api.GetSysFileInfoList) r.GET("/:id", api.GetSysFileInfo) diff --git a/app/admin/service/dto/syschinaareadata.go b/app/other/service/dto/sys_china_area_data.go similarity index 93% rename from app/admin/service/dto/syschinaareadata.go rename to app/other/service/dto/sys_china_area_data.go index 773571e8..63ab10ba 100644 --- a/app/admin/service/dto/syschinaareadata.go +++ b/app/other/service/dto/sys_china_area_data.go @@ -1,12 +1,12 @@ package dto import ( + models2 "go-admin/app/other/models" "time" "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/api" - "go-admin/app/admin/models" "go-admin/common/dto" common "go-admin/common/models" ) @@ -53,9 +53,8 @@ func (s *SysChinaAreaDataControl) Bind(ctx *gin.Context) error { return err } -func (s *SysChinaAreaDataControl) Generate() (*models.SysChinaAreaData, error) { - return &models.SysChinaAreaData{ - +func (s *SysChinaAreaDataControl) Generate() (*models2.SysChinaAreaData, error) { + return &models2.SysChinaAreaData{ Model: common.Model{Id: s.Id}, PId: s.PId, Name: s.Name, diff --git a/app/admin/service/dto/sys_file_dir.go b/app/other/service/dto/sys_file_dir.go similarity index 94% rename from app/admin/service/dto/sys_file_dir.go rename to app/other/service/dto/sys_file_dir.go index 834258cf..dab253ba 100644 --- a/app/admin/service/dto/sys_file_dir.go +++ b/app/other/service/dto/sys_file_dir.go @@ -3,8 +3,8 @@ package dto import ( "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/api" + "go-admin/app/other/models" - "go-admin/app/admin/models" "go-admin/common/dto" common "go-admin/common/models" ) @@ -38,7 +38,7 @@ func (m *SysFileDirSearch) Generate() dto.Index { } type SysFileDirControl struct { - ID int `uri:"Id" comment:"标识"` // 标识 + Id int `uri:"Id" comment:"标识"` // 标识 Label string `json:"label" comment:"目录名称"` PId int `json:"pId" comment:"上级目录"` Sort string `json:"sort" comment:"排序"` @@ -68,7 +68,7 @@ func (s *SysFileDirControl) Generate() dto.Control { func (s *SysFileDirControl) GenerateM() (common.ActiveRecord, error) { return &models.SysFileDir{ - Model: common.Model{Id: s.ID}, + Model: common.Model{Id: s.Id}, Label: s.Label, PId: s.PId, //Sort: s.Sort, @@ -81,7 +81,7 @@ func (s *SysFileDirControl) GenerateM() (common.ActiveRecord, error) { } func (s *SysFileDirControl) GetId() interface{} { - return s.ID + return s.Id } type SysFileDirById struct { diff --git a/app/admin/service/dto/sys_file_info.go b/app/other/service/dto/sys_file_info.go similarity index 92% rename from app/admin/service/dto/sys_file_info.go rename to app/other/service/dto/sys_file_info.go index ba6e4bdc..955555a9 100644 --- a/app/admin/service/dto/sys_file_info.go +++ b/app/other/service/dto/sys_file_info.go @@ -1,7 +1,7 @@ package dto import ( - "go-admin/app/admin/models" + "go-admin/app/other/models" "go-admin/common/dto" common "go-admin/common/models" ) @@ -20,7 +20,7 @@ func (m *SysFileInfoSearch) GetNeedSearch() interface{} { } type SysFileInfoControl struct { - ID int `uri:"id" comment:"标识"` // 标识 + Id int `uri:"id" comment:"标识"` // 标识 Type string `json:"type" comment:"类型"` Name string `json:"name" comment:"名称"` Size string `json:"size" comment:"大小"` @@ -34,7 +34,7 @@ type SysFileInfoControl struct { func (s *SysFileInfoControl) Generate() (*models.SysFileInfo, error) { return &models.SysFileInfo{ - Model: common.Model{Id: s.ID}, + Model: common.Model{Id: s.Id}, Type: s.Type, Name: s.Name, Size: s.Size, diff --git a/app/admin/service/sys_china_area_data.go b/app/other/service/sys_china_area_data.go similarity index 70% rename from app/admin/service/sys_china_area_data.go rename to app/other/service/sys_china_area_data.go index 2ff6aa6d..c2a4ec49 100644 --- a/app/admin/service/sys_china_area_data.go +++ b/app/other/service/sys_china_area_data.go @@ -2,11 +2,11 @@ package service import ( "errors" + models2 "go-admin/app/other/models" + dto2 "go-admin/app/other/service/dto" "gorm.io/gorm" - "go-admin/app/admin/models" - "go-admin/app/admin/service/dto" "go-admin/common/actions" cDto "go-admin/common/dto" "go-admin/common/service" @@ -17,8 +17,8 @@ type SysChinaAreaData struct { } // GetSysChinaAreaDataPage 获取SysChinaAreaData列表 -func (e *SysChinaAreaData) GetSysChinaAreaDataPage(c *dto.SysChinaAreaDataSearch, p *actions.DataPermission, list *[]models.SysChinaAreaData, count *int64) error { - var data models.SysChinaAreaData +func (e *SysChinaAreaData) GetSysChinaAreaDataPage(c *dto2.SysChinaAreaDataSearch, p *actions.DataPermission, list *[]models2.SysChinaAreaData, count *int64) error { + var data models2.SysChinaAreaData err := e.Orm.Model(&data). Scopes( @@ -36,8 +36,8 @@ func (e *SysChinaAreaData) GetSysChinaAreaDataPage(c *dto.SysChinaAreaDataSearch } // GetSysChinaAreaData 获取SysChinaAreaData对象 -func (e *SysChinaAreaData) GetSysChinaAreaData(d *dto.SysChinaAreaDataById, p *actions.DataPermission, model *models.SysChinaAreaData) error { - var data models.SysChinaAreaData +func (e *SysChinaAreaData) GetSysChinaAreaData(d *dto2.SysChinaAreaDataById, p *actions.DataPermission, model *models2.SysChinaAreaData) error { + var data models2.SysChinaAreaData err := e.Orm.Model(&data). Scopes( @@ -57,8 +57,8 @@ func (e *SysChinaAreaData) GetSysChinaAreaData(d *dto.SysChinaAreaDataById, p *a } // InsertSysChinaAreaData 创建SysChinaAreaData对象 -func (e *SysChinaAreaData) InsertSysChinaAreaData(model *models.SysChinaAreaData) error { - var data models.SysChinaAreaData +func (e *SysChinaAreaData) InsertSysChinaAreaData(model *models2.SysChinaAreaData) error { + var data models2.SysChinaAreaData err := e.Orm.Model(&data). Create(model).Error @@ -70,7 +70,7 @@ func (e *SysChinaAreaData) InsertSysChinaAreaData(model *models.SysChinaAreaData } // UpdateSysChinaAreaData 修改SysChinaAreaData对象 -func (e *SysChinaAreaData) UpdateSysChinaAreaData(c *models.SysChinaAreaData, p *actions.DataPermission) error { +func (e *SysChinaAreaData) UpdateSysChinaAreaData(c *models2.SysChinaAreaData, p *actions.DataPermission) error { db := e.Orm.Model(c). Scopes( actions.Permission(c.TableName(), p), @@ -86,9 +86,9 @@ func (e *SysChinaAreaData) UpdateSysChinaAreaData(c *models.SysChinaAreaData, p } // RemoveSysChinaAreaData 删除SysChinaAreaData -func (e *SysChinaAreaData) RemoveSysChinaAreaData(d *dto.SysChinaAreaDataById, p *actions.DataPermission) error { +func (e *SysChinaAreaData) RemoveSysChinaAreaData(d *dto2.SysChinaAreaDataById, p *actions.DataPermission) error { - var data models.SysChinaAreaData + var data models2.SysChinaAreaData db := e.Orm.Model(&data). Scopes( diff --git a/app/admin/service/sys_file_dir.go b/app/other/service/sys_file_dir.go similarity index 86% rename from app/admin/service/sys_file_dir.go rename to app/other/service/sys_file_dir.go index 541eec50..422252f9 100644 --- a/app/admin/service/sys_file_dir.go +++ b/app/other/service/sys_file_dir.go @@ -3,11 +3,11 @@ package service import ( "errors" "fmt" + "go-admin/app/other/models" + "go-admin/app/other/service/dto" "gorm.io/gorm" - "go-admin/app/admin/models" - "go-admin/app/admin/service/dto" "go-admin/common/actions" cDto "go-admin/common/dto" "go-admin/common/service" @@ -18,7 +18,7 @@ type SysFileDir struct { } // GetSysFileDirPage 获取SysFileDir列表 -func (e *SysFileDir) GetSysFileDirPage(c *dto.SysFileDirSearch, list *[]models.SysFileDirL) error { +func (e *SysFileDir) GetSysFileDirPage(c *dto.SysFileDirSearch, list *[]models.SysFileDir) error { var err error var data models.SysFileDir @@ -65,7 +65,7 @@ func (e *SysFileDir) InsertSysFileDir(model *dto.SysFileDirControl) error { e.Log.Errorf("db error: %s", err) return err } - path := fmt.Sprintf("/%d", model.ID) + path := fmt.Sprintf("/%d", model.Id) //db = e.Orm.Model(&data). // First(&data, model.GetId()) //err = db.Error @@ -79,7 +79,7 @@ func (e *SysFileDir) InsertSysFileDir(model *dto.SysFileDirControl) error { } //var mp = map[string]string{} //mp["path"] = path - if err = e.Orm.Model(&models.SysFileDir{}).Where("id = ?", model.ID).Update("path", path).Error; err != nil { + if err = e.Orm.Model(&models.SysFileDir{}).Where("id = ?", model.Id).Update("path", path).Error; err != nil { return err } @@ -94,7 +94,7 @@ func (e *SysFileDir) UpdateSysFileDir(c *dto.SysFileDirControl, p *actions.DataP db := e.Orm. Scopes( actions.Permission(data.TableName(), p), - ).Where(c.ID).Updates(data) + ).Where(c.Id).Updates(data) if db.Error != nil { e.Log.Errorf("db error: %s", err) return err @@ -126,10 +126,10 @@ func (e *SysFileDir) RemoveSysFileDir(d *dto.SysFileDirById, p *actions.DataPerm return nil } -func (e *SysFileDir) SetSysFileDir(c *dto.SysFileDirSearch) (*[]models.SysFileDirL, error) { - var list []models.SysFileDirL +func (e *SysFileDir) SetSysFileDir(c *dto.SysFileDirSearch) (*[]models.SysFileDir, error) { + var list []models.SysFileDir err := e.GetSysFileDirPage(c, &list) - m := make([]models.SysFileDirL, 0) + m := make([]models.SysFileDir, 0) for i := 0; i < len(list); i++ { if list[i].PId != 0 { continue @@ -140,21 +140,21 @@ func (e *SysFileDir) SetSysFileDir(c *dto.SysFileDirSearch) (*[]models.SysFileDi return &m, err } -func SysFileDirCall(list *[]models.SysFileDirL, m models.SysFileDirL) models.SysFileDirL { +func SysFileDirCall(list *[]models.SysFileDir, m models.SysFileDir) models.SysFileDir { listGroup := *list - min := make([]models.SysFileDirL, 0) + min := make([]models.SysFileDir, 0) for j := 0; j < len(listGroup); j++ { if m.Id != listGroup[j].PId { continue } - mi := models.SysFileDirL{} + mi := models.SysFileDir{} mi.Id = listGroup[j].Id mi.PId = listGroup[j].PId mi.Label = listGroup[j].Label //mi.Sort = listGroup[j].Sort mi.CreatedAt = listGroup[j].CreatedAt mi.UpdatedAt = listGroup[j].UpdatedAt - mi.Children = []models.SysFileDirL{} + mi.Children = []models.SysFileDir{} ms := SysFileDirCall(list, mi) min = append(min, ms) } diff --git a/app/admin/service/sys_file_info.go b/app/other/service/sys_file_info.go similarity index 71% rename from app/admin/service/sys_file_info.go rename to app/other/service/sys_file_info.go index d72db34c..de840abd 100644 --- a/app/admin/service/sys_file_info.go +++ b/app/other/service/sys_file_info.go @@ -2,11 +2,11 @@ package service import ( "errors" + models2 "go-admin/app/other/models" + dto2 "go-admin/app/other/service/dto" "gorm.io/gorm" - "go-admin/app/admin/models" - "go-admin/app/admin/service/dto" "go-admin/common/actions" cDto "go-admin/common/dto" "go-admin/common/service" @@ -17,9 +17,9 @@ type SysFileInfo struct { } // GetSysFileInfoPage 获取SysFileInfo列表 -func (e *SysFileInfo) GetSysFileInfoPage(c *dto.SysFileInfoSearch, p *actions.DataPermission, list *[]models.SysFileInfo, count *int64) error { +func (e *SysFileInfo) GetSysFileInfoPage(c *dto2.SysFileInfoSearch, p *actions.DataPermission, list *[]models2.SysFileInfo, count *int64) error { var err error - var data models.SysFileInfo + var data models2.SysFileInfo err = e.Orm.Model(&data). Scopes( @@ -37,9 +37,9 @@ func (e *SysFileInfo) GetSysFileInfoPage(c *dto.SysFileInfoSearch, p *actions.Da } // GetSysFileInfo 获取SysFileInfo对象 -func (e *SysFileInfo) GetSysFileInfo(d *dto.SysFileInfoById, p *actions.DataPermission, model *models.SysFileInfo) error { +func (e *SysFileInfo) GetSysFileInfo(d *dto2.SysFileInfoById, p *actions.DataPermission, model *models2.SysFileInfo) error { var err error - var data models.SysFileInfo + var data models2.SysFileInfo db := e.Orm.Model(&data). Scopes( @@ -60,9 +60,9 @@ func (e *SysFileInfo) GetSysFileInfo(d *dto.SysFileInfoById, p *actions.DataPerm } // InsertSysFileInfo 创建SysFileInfo对象 -func (e *SysFileInfo) InsertSysFileInfo(model *dto.SysFileInfoControl) error { +func (e *SysFileInfo) InsertSysFileInfo(model *dto2.SysFileInfoControl) error { var err error - var data *models.SysFileInfo + var data *models2.SysFileInfo data, err = model.Generate() if err != nil { @@ -80,9 +80,9 @@ func (e *SysFileInfo) InsertSysFileInfo(model *dto.SysFileInfoControl) error { } // UpdateSysFileInfo 修改SysFileInfo对象 -func (e *SysFileInfo) UpdateSysFileInfo(c *dto.SysFileInfoControl, p *actions.DataPermission) error { +func (e *SysFileInfo) UpdateSysFileInfo(c *dto2.SysFileInfoControl, p *actions.DataPermission) error { var err error - var data *models.SysFileInfo + var data *models2.SysFileInfo data, err = c.Generate() if err != nil { @@ -92,7 +92,7 @@ func (e *SysFileInfo) UpdateSysFileInfo(c *dto.SysFileInfoControl, p *actions.Da err = e.Orm.Debug().Model(&data). Scopes( actions.Permission(data.TableName(), p), - ).Where("id = ?", c.ID).Updates(&data).Error + ).Where("id = ?", c.Id).Updates(&data).Error if err != nil { e.Log.Errorf("db error: %s", err) return err @@ -105,9 +105,9 @@ func (e *SysFileInfo) UpdateSysFileInfo(c *dto.SysFileInfoControl, p *actions.Da } // RemoveSysFileInfo 删除SysFileInfo -func (e *SysFileInfo) RemoveSysFileInfo(d *dto.SysFileInfoById, p *actions.DataPermission) error { +func (e *SysFileInfo) RemoveSysFileInfo(d *dto2.SysFileInfoById, p *actions.DataPermission) error { var err error - var data models.SysFileInfo + var data models2.SysFileInfo db := e.Orm.Model(&data). Scopes( diff --git a/cmd/api/cms.go b/cmd/api/cms.go new file mode 100644 index 00000000..563565c6 --- /dev/null +++ b/cmd/api/cms.go @@ -0,0 +1,8 @@ +package api + +import "go-admin/app/cms/router" + +func init() { + //注册路由 fixme 其他应用的路由,在本目录新建文件放在init方法 + AppRouters = append(AppRouters, router.InitRouter) +} \ No newline at end of file diff --git a/cmd/api/jobs.go b/cmd/api/jobs.go new file mode 100644 index 00000000..37de4ee5 --- /dev/null +++ b/cmd/api/jobs.go @@ -0,0 +1,8 @@ +package api + +import "go-admin/app/jobs/router" + +func init() { + //注册路由 fixme 其他应用的路由,在本目录新建文件放在init方法 + AppRouters = append(AppRouters, router.InitRouter) +} \ No newline at end of file diff --git a/cmd/api/other.go b/cmd/api/other.go new file mode 100644 index 00000000..f9c990f5 --- /dev/null +++ b/cmd/api/other.go @@ -0,0 +1,8 @@ +package api + +import "go-admin/app/other/router" + +func init() { + //注册路由 fixme 其他应用的路由,在本目录新建文件放在init方法 + AppRouters = append(AppRouters, router.InitRouter) +} \ No newline at end of file diff --git a/cmd/api/server.go b/cmd/api/server.go index 48b13d67..58cd32f7 100644 --- a/cmd/api/server.go +++ b/cmd/api/server.go @@ -3,6 +3,7 @@ package api import ( "context" "fmt" + router2 "go-admin/app/other/router" "log" "net/http" "os" @@ -115,7 +116,7 @@ func run() error { if config.ApplicationConfig.Mode == "dev" { //监控 - AppRouters = append(AppRouters, router.Monitor) + AppRouters = append(AppRouters, router2.Monitor) } for _, f := range AppRouters { diff --git a/common/global/adm.go b/common/global/adm.go index 8757d137..1e9d1f9c 100644 --- a/common/global/adm.go +++ b/common/global/adm.go @@ -1,8 +1,8 @@ package global const ( - // go-admin Version Info - Version = "1.3.3" + // Version go-admin version info + Version = "1.4.0" ) var ( diff --git a/common/middleware/handler/user.go b/common/middleware/handler/user.go index 346d59d0..64477377 100644 --- a/common/middleware/handler/user.go +++ b/common/middleware/handler/user.go @@ -6,26 +6,26 @@ import ( ) type SysUser struct { - models.ControlBy - models.ModelTime UserId int `gorm:"primaryKey;autoIncrement;comment:编码" json:"userId"` - Username string `json:"username" gorm:"type:varchar(64);comment:用户名"` - Password string `json:"-" gorm:"type:varchar(128);comment:密码"` - NickName string `json:"nickName" gorm:"type:varchar(128);comment:昵称"` - Phone string `json:"phone" gorm:"type:varchar(11);comment:手机号"` - RoleId int `json:"roleId" gorm:"type:bigint(20);comment:角色ID"` - Salt string `json:"-" gorm:"type:varchar(255);comment:加盐"` - Avatar string `json:"avatar" gorm:"type:varchar(255);comment:头像"` - Sex string `json:"sex" gorm:"type:varchar(255);comment:性别"` - Email string `json:"email" gorm:"type:varchar(128);comment:邮箱"` - DeptId int `json:"deptId" gorm:"type:bigint(20);comment:部门"` - PostId int `json:"postId" gorm:"type:bigint(20);comment:岗位"` - Remark string `json:"remark" gorm:"type:varchar(255);comment:备注"` - Status string `json:"status" gorm:"type:varchar(4);comment:状态"` + Username string `json:"username" gorm:"size:64;comment:用户名"` + Password string `json:"-" gorm:"size:128;comment:密码"` + NickName string `json:"nickName" gorm:"size:128;comment:昵称"` + Phone string `json:"phone" gorm:"size:11;comment:手机号"` + RoleId int `json:"roleId" gorm:"size:20;comment:角色ID"` + Salt string `json:"-" gorm:"size:255;comment:加盐"` + Avatar string `json:"avatar" gorm:"size:255;comment:头像"` + Sex string `json:"sex" gorm:"size:255;comment:性别"` + Email string `json:"email" gorm:"size:128;comment:邮箱"` + DeptId int `json:"deptId" gorm:"size:20;comment:部门"` + PostId int `json:"postId" gorm:"size:20;comment:岗位"` + Remark string `json:"remark" gorm:"size:255;comment:备注"` + Status string `json:"status" gorm:"size:4;comment:状态"` DeptIds []int `json:"deptIds" gorm:"-"` PostIds []int `json:"postIds" gorm:"-"` RoleIds []int `json:"roleIds" gorm:"-"` //Dept *SysDept `json:"dept"` + models.ControlBy + models.ModelTime } func (SysUser) TableName() string { diff --git a/config/extend.go b/config/extend.go index e477fbf9..0d4c9622 100644 --- a/config/extend.go +++ b/config/extend.go @@ -1,13 +1,13 @@ package config -var ExtConfig Extand +var ExtConfig Extend -// 扩展配置 +// Extend 扩展配置 // extend: // demo: // name: demo-name // 使用方法: config.ExtConfig......即可!! -type Extand struct { +type Extend struct { // Demo Demo // 这里配置对应配置文件的结构即可 } From c6a52134b3d5d2ac57b0f60d88ebba45ace9ec6f Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Sat, 8 May 2021 09:35:49 +0800 Subject: [PATCH 10/15] =?UTF-8?q?feat=E2=9C=A8=E4=BC=98=E5=8C=96=E5=AD=97?= =?UTF-8?q?=E5=85=B8=E6=95=B0=E6=8D=AE=E9=94=99=E8=AF=AF=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E5=86=99=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/{system => }/captcha.go | 2 +- app/admin/apis/{system => }/index.go | 2 +- .../{system/sys_config => }/sys_config.go | 2 +- .../apis/{system/sys_dept => }/sys_dept.go | 2 +- .../apis/{system/dict => }/sys_dict_data.go | 2 +- .../apis/{system/dict => }/sys_dict_type.go | 2 +- .../sys_login_log => }/sys_login_log.go | 2 +- .../apis/{system/sys_menu => }/sys_menu.go | 2 +- .../sys_opera_log => }/sys_opera_log.go | 2 +- .../apis/{system/sys_post => }/sys_post.go | 2 +- .../apis/{system/sys_role => }/sys_role.go | 2 +- app/admin/apis/{sys_user => }/sys_user.go | 2 +- app/admin/apis/system/settings.go | 98 ------------------- app/admin/models/sys_category.go | 29 ------ app/admin/models/sys_file_info.go | 31 ------ app/admin/router/sys_config.go | 4 +- app/admin/router/sys_dept.go | 4 +- app/admin/router/sys_login_log.go | 4 +- app/admin/router/sys_menu.go | 4 +- app/admin/router/sys_opera_log.go | 4 +- app/admin/router/sys_post.go | 4 +- app/admin/router/sys_role.go | 4 +- app/admin/router/sys_router.go | 58 +++++------ app/admin/router/sys_user.go | 4 +- app/admin/service/sys_dict_data.go | 2 +- app/admin/service/sys_user.go | 18 ++-- app/cms/models/sys_category.go | 29 ++++++ app/{admin => cms}/models/sys_content.go | 0 app/cms/router/init_router.go | 42 ++++++++ app/cms/router/router.go | 43 ++++++++ app/{admin => cms}/router/sys_category.go | 8 +- app/{admin => cms}/router/sys_content.go | 14 +-- .../service/dto/sys_category.go | 38 +++---- app/{admin => cms}/service/dto/sys_content.go | 8 +- .../apis/sys_job => jobs/apis}/sys_job.go | 7 +- app/jobs/jobbase.go | 6 +- app/{admin => jobs}/models/sys_job.go | 48 --------- app/jobs/router/int_router.go | 42 ++++++++ app/jobs/router/router.go | 43 ++++++++ app/{admin => jobs}/router/sys_job.go | 24 ++--- app/{admin => jobs}/service/dto/sys_job.go | 2 +- app/{admin => jobs}/service/sys_job.go | 2 +- app/{admin/apis/public => other/apis}/file.go | 2 +- .../apis/monitor => other/apis}/server.go | 3 +- .../apis}/sys_china_area_data.go | 32 +++--- .../sys_file => other/apis}/sys_file_dir.go | 14 +-- .../sys_file => other/apis}/sys_file_info.go | 36 +++---- .../models/sys_china_area_data.go | 5 +- app/{admin => other}/models/sys_file_dir.go | 22 ++--- app/other/models/sys_file_info.go | 31 ++++++ app/other/router/init_router.go | 42 ++++++++ app/{admin => other}/router/monitor.go | 6 +- app/other/router/router.go | 43 ++++++++ .../router/sys_china_area_data.go | 8 +- app/{admin => other}/router/sys_file_dir.go | 8 +- app/{admin => other}/router/sys_file_info.go | 8 +- .../service/dto/sys_china_area_data.go} | 7 +- .../service/dto/sys_file_dir.go | 8 +- .../service/dto/sys_file_info.go | 6 +- .../service/sys_china_area_data.go | 22 ++--- app/{admin => other}/service/sys_file_dir.go | 26 ++--- app/{admin => other}/service/sys_file_info.go | 26 ++--- cmd/api/cms.go | 8 ++ cmd/api/jobs.go | 8 ++ cmd/api/other.go | 8 ++ cmd/api/server.go | 3 +- common/global/adm.go | 4 +- common/middleware/handler/user.go | 30 +++--- config/extend.go | 6 +- 69 files changed, 591 insertions(+), 479 deletions(-) rename app/admin/apis/{system => }/captcha.go (97%) rename app/admin/apis/{system => }/index.go (97%) rename app/admin/apis/{system/sys_config => }/sys_config.go (99%) rename app/admin/apis/{system/sys_dept => }/sys_dept.go (99%) rename app/admin/apis/{system/dict => }/sys_dict_data.go (99%) rename app/admin/apis/{system/dict => }/sys_dict_type.go (99%) rename app/admin/apis/{system/sys_login_log => }/sys_login_log.go (99%) rename app/admin/apis/{system/sys_menu => }/sys_menu.go (99%) rename app/admin/apis/{system/sys_opera_log => }/sys_opera_log.go (99%) rename app/admin/apis/{system/sys_post => }/sys_post.go (99%) rename app/admin/apis/{system/sys_role => }/sys_role.go (99%) rename app/admin/apis/{sys_user => }/sys_user.go (99%) delete mode 100644 app/admin/apis/system/settings.go delete mode 100644 app/admin/models/sys_category.go delete mode 100644 app/admin/models/sys_file_info.go create mode 100644 app/cms/models/sys_category.go rename app/{admin => cms}/models/sys_content.go (100%) create mode 100644 app/cms/router/init_router.go create mode 100644 app/cms/router/router.go rename app/{admin => cms}/router/sys_category.go (87%) rename app/{admin => cms}/router/sys_content.go (72%) rename app/{admin => cms}/service/dto/sys_category.go (65%) rename app/{admin => cms}/service/dto/sys_content.go (94%) rename app/{admin/apis/sys_job => jobs/apis}/sys_job.go (95%) rename app/{admin => jobs}/models/sys_job.go (56%) create mode 100644 app/jobs/router/int_router.go create mode 100644 app/jobs/router/router.go rename app/{admin => jobs}/router/sys_job.go (67%) rename app/{admin => jobs}/service/dto/sys_job.go (99%) rename app/{admin => jobs}/service/sys_job.go (98%) rename app/{admin/apis/public => other/apis}/file.go (99%) rename app/{admin/apis/monitor => other/apis}/server.go (97%) rename app/{admin/apis/sys_china_area_data => other/apis}/sys_china_area_data.go (84%) rename app/{admin/apis/sys_file => other/apis}/sys_file_dir.go (95%) rename app/{admin/apis/sys_file => other/apis}/sys_file_info.go (86%) rename app/{admin => other}/models/sys_china_area_data.go (70%) rename app/{admin => other}/models/sys_file_dir.go (53%) create mode 100644 app/other/models/sys_file_info.go create mode 100644 app/other/router/init_router.go rename app/{admin => other}/router/monitor.go (88%) create mode 100644 app/other/router/router.go rename app/{admin => other}/router/sys_china_area_data.go (77%) rename app/{admin => other}/router/sys_file_dir.go (71%) rename app/{admin => other}/router/sys_file_info.go (71%) rename app/{admin/service/dto/syschinaareadata.go => other/service/dto/sys_china_area_data.go} (93%) rename app/{admin => other}/service/dto/sys_file_dir.go (94%) rename app/{admin => other}/service/dto/sys_file_info.go (92%) rename app/{admin => other}/service/sys_china_area_data.go (70%) rename app/{admin => other}/service/sys_file_dir.go (86%) rename app/{admin => other}/service/sys_file_info.go (71%) create mode 100644 cmd/api/cms.go create mode 100644 cmd/api/jobs.go create mode 100644 cmd/api/other.go diff --git a/app/admin/apis/system/captcha.go b/app/admin/apis/captcha.go similarity index 97% rename from app/admin/apis/system/captcha.go rename to app/admin/apis/captcha.go index 511fb784..0b99d965 100644 --- a/app/admin/apis/system/captcha.go +++ b/app/admin/apis/captcha.go @@ -1,4 +1,4 @@ -package system +package apis import ( "github.com/gin-gonic/gin" diff --git a/app/admin/apis/system/index.go b/app/admin/apis/index.go similarity index 97% rename from app/admin/apis/system/index.go rename to app/admin/apis/index.go index 59997496..19d691d0 100644 --- a/app/admin/apis/system/index.go +++ b/app/admin/apis/index.go @@ -1,4 +1,4 @@ -package system +package apis import ( "github.com/gin-gonic/gin" diff --git a/app/admin/apis/system/sys_config/sys_config.go b/app/admin/apis/sys_config.go similarity index 99% rename from app/admin/apis/system/sys_config/sys_config.go rename to app/admin/apis/sys_config.go index 977de4f8..f16310dd 100644 --- a/app/admin/apis/system/sys_config/sys_config.go +++ b/app/admin/apis/sys_config.go @@ -1,4 +1,4 @@ -package sys_config +package apis import ( "net/http" diff --git a/app/admin/apis/system/sys_dept/sys_dept.go b/app/admin/apis/sys_dept.go similarity index 99% rename from app/admin/apis/system/sys_dept/sys_dept.go rename to app/admin/apis/sys_dept.go index 71cfa021..e7189563 100644 --- a/app/admin/apis/system/sys_dept/sys_dept.go +++ b/app/admin/apis/sys_dept.go @@ -1,4 +1,4 @@ -package sys_dept +package apis import ( "github.com/go-admin-team/go-admin-core/sdk/pkg" diff --git a/app/admin/apis/system/dict/sys_dict_data.go b/app/admin/apis/sys_dict_data.go similarity index 99% rename from app/admin/apis/system/dict/sys_dict_data.go rename to app/admin/apis/sys_dict_data.go index 94d16df7..d708bf72 100644 --- a/app/admin/apis/system/dict/sys_dict_data.go +++ b/app/admin/apis/sys_dict_data.go @@ -1,4 +1,4 @@ -package dict +package apis import ( "net/http" diff --git a/app/admin/apis/system/dict/sys_dict_type.go b/app/admin/apis/sys_dict_type.go similarity index 99% rename from app/admin/apis/system/dict/sys_dict_type.go rename to app/admin/apis/sys_dict_type.go index c2a05296..bc8fda22 100644 --- a/app/admin/apis/system/dict/sys_dict_type.go +++ b/app/admin/apis/sys_dict_type.go @@ -1,4 +1,4 @@ -package dict +package apis import ( "net/http" diff --git a/app/admin/apis/system/sys_login_log/sys_login_log.go b/app/admin/apis/sys_login_log.go similarity index 99% rename from app/admin/apis/system/sys_login_log/sys_login_log.go rename to app/admin/apis/sys_login_log.go index 2c3cbe3c..f604c585 100644 --- a/app/admin/apis/system/sys_login_log/sys_login_log.go +++ b/app/admin/apis/sys_login_log.go @@ -1,4 +1,4 @@ -package sys_login_log +package apis import ( "net/http" diff --git a/app/admin/apis/system/sys_menu/sys_menu.go b/app/admin/apis/sys_menu.go similarity index 99% rename from app/admin/apis/system/sys_menu/sys_menu.go rename to app/admin/apis/sys_menu.go index 7654b786..ca3ec62b 100644 --- a/app/admin/apis/system/sys_menu/sys_menu.go +++ b/app/admin/apis/sys_menu.go @@ -1,4 +1,4 @@ -package sys_menu +package apis import ( "net/http" diff --git a/app/admin/apis/system/sys_opera_log/sys_opera_log.go b/app/admin/apis/sys_opera_log.go similarity index 99% rename from app/admin/apis/system/sys_opera_log/sys_opera_log.go rename to app/admin/apis/sys_opera_log.go index 8a150276..2dbc31e5 100644 --- a/app/admin/apis/system/sys_opera_log/sys_opera_log.go +++ b/app/admin/apis/sys_opera_log.go @@ -1,4 +1,4 @@ -package sys_opera_log +package apis import ( "net/http" diff --git a/app/admin/apis/system/sys_post/sys_post.go b/app/admin/apis/sys_post.go similarity index 99% rename from app/admin/apis/system/sys_post/sys_post.go rename to app/admin/apis/sys_post.go index a4789bb4..6ec209f3 100644 --- a/app/admin/apis/system/sys_post/sys_post.go +++ b/app/admin/apis/sys_post.go @@ -1,4 +1,4 @@ -package sys_post +package apis import ( "net/http" diff --git a/app/admin/apis/system/sys_role/sys_role.go b/app/admin/apis/sys_role.go similarity index 99% rename from app/admin/apis/system/sys_role/sys_role.go rename to app/admin/apis/sys_role.go index 20544c10..a4f31f18 100644 --- a/app/admin/apis/system/sys_role/sys_role.go +++ b/app/admin/apis/sys_role.go @@ -1,4 +1,4 @@ -package sys_role +package apis import ( "net/http" diff --git a/app/admin/apis/sys_user/sys_user.go b/app/admin/apis/sys_user.go similarity index 99% rename from app/admin/apis/sys_user/sys_user.go rename to app/admin/apis/sys_user.go index 3a04a1a7..a8d2c196 100644 --- a/app/admin/apis/sys_user/sys_user.go +++ b/app/admin/apis/sys_user.go @@ -1,4 +1,4 @@ -package sys_user +package apis import ( "net/http" diff --git a/app/admin/apis/system/settings.go b/app/admin/apis/system/settings.go deleted file mode 100644 index af53e0eb..00000000 --- a/app/admin/apis/system/settings.go +++ /dev/null @@ -1,98 +0,0 @@ -package system - -import ( - "fmt" - "net/http" - "strings" - - "github.com/gin-gonic/gin" - - "go-admin/app/admin/models" - "go-admin/app/admin/service" - "go-admin/app/admin/service/dto" - "go-admin/common/apis" -) - -type SysSetting struct { - apis.Api -} - -// @Summary 查询系统信息 -// @Description 获取JSON -// @Tags 系统信息 -// @Success 200 {string} string "{"code": 200, "message": "添加成功"}" -// @Success 200 {string} string "{"code": -1, "message": "添加失败"}" -// @Router /api/v1/setting [get] -func (e SysSetting) GetSetting(c *gin.Context) { - e.Context = c - log := e.GetLogger() - db, err := e.GetOrm() - if err != nil { - log.Error(err) - return - } - - sysSettingService := service.SysSetting{} - sysSettingService.Log = log - sysSettingService.Orm = db - var model = models.SysSetting{} - err = sysSettingService.GetSysSetting(&model) - if err != nil { - e.Error(http.StatusInternalServerError, err, "查询失败") - return - } - - if model.Logo != "" { - if !strings.HasPrefix(model.Logo, "http") { - model.Logo = fmt.Sprintf("http://%s/%s", c.Request.Host, model.Logo) - } - } - - e.OK(model, "查询成功") -} - -// @Summary 更新或提交系统信息 -// @Description 获取JSON -// @Tags 系统信息 -// @Param data body dto.SysSettingControl true "body" -// @Success 200 {string} string "{"code": 200, "message": "添加成功"}" -// @Success 200 {string} string "{"code": -1, "message": "添加失败"}" -// @Router /api/v1/system/setting [post] -func (e SysSetting) CreateOrUpdateSetting(c *gin.Context) { - control := new(dto.SysSettingControl) - e.Context = c - log := e.GetLogger() - db, err := e.GetOrm() - if err != nil { - log.Error(err) - return - } - - //更新操作 - err = control.Bind(c) - if err != nil { - e.Error(http.StatusUnprocessableEntity, err, "参数验证失败") - return - } - object, err := control.Generate() - if err != nil { - e.Error(http.StatusInternalServerError, err, "模型生成失败") - return - } - - sysSettingService := service.SysSetting{} - sysSettingService.Log = log - sysSettingService.Orm = db - err = sysSettingService.UpdateSysSetting(object) - if err != nil { - e.Error(http.StatusInternalServerError, err, "更新失败") - return - } - - if object.Logo != "" { - if !strings.HasPrefix(object.Logo, "http") { - object.Logo = fmt.Sprintf("http://%s/%s", c.Request.Host, object.Logo) - } - } - e.OK(object, "提交成功") -} diff --git a/app/admin/models/sys_category.go b/app/admin/models/sys_category.go deleted file mode 100644 index 219394ca..00000000 --- a/app/admin/models/sys_category.go +++ /dev/null @@ -1,29 +0,0 @@ -package models - -import ( - "go-admin/common/models" -) - -type SysCategory struct { - models.Model - Name string `json:"name" gorm:"type:varchar(255);comment:名称"` // - Img string `json:"img" gorm:"type:varchar(255);comment:图标"` // - Sort int `json:"sort" gorm:"type:int(4);comment:排序"` // - Status int `json:"status" gorm:"type:int(1);comment:状态"` // - Remark string `json:"remark" gorm:"type:varchar(255);comment:备注"` // - models.ControlBy - models.ModelTime -} - -func (SysCategory) TableName() string { - return "sys_category" -} - -func (e *SysCategory) Generate() models.ActiveRecord { - o := *e - return &o -} - -func (e *SysCategory) GetId() interface{} { - return e.Id -} \ No newline at end of file diff --git a/app/admin/models/sys_file_info.go b/app/admin/models/sys_file_info.go deleted file mode 100644 index 598969e0..00000000 --- a/app/admin/models/sys_file_info.go +++ /dev/null @@ -1,31 +0,0 @@ -package models - -import ( - "go-admin/common/models" -) - -type SysFileInfo struct { - models.Model - Type string `json:"type" gorm:"type:varchar(255);comment:类型"` // - Name string `json:"name" gorm:"type:varchar(255);comment:名称"` // - Size string `json:"size" gorm:"type:int(11);comment:大小"` // - PId int `json:"pId" gorm:"type:int(11);comment:目录"` // - Source string `json:"source" gorm:"type:varchar(255);comment:来源"` // - Url string `json:"url" gorm:"type:varchar(255);comment:地址"` // - FullUrl string `json:"fullUrl" gorm:"type:varchar(255);comment:全地址"` // - models.ControlBy - models.ModelTime -} - -func (SysFileInfo) TableName() string { - return "sys_file_info" -} - -func (e *SysFileInfo) Generate() models.ActiveRecord { - o := *e - return &o -} - -func (e *SysFileInfo) GetId() interface{} { - return e.Id -} diff --git a/app/admin/router/sys_config.go b/app/admin/router/sys_config.go index 9b90da77..9825c8b4 100644 --- a/app/admin/router/sys_config.go +++ b/app/admin/router/sys_config.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/system/sys_config" + "go-admin/app/admin/apis" middleware2 "go-admin/common/middleware" ) @@ -13,7 +13,7 @@ func init() { // 需认证的路由代码 func registerSysConfigRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_config.SysConfig{} + api := apis.SysConfig{} r := v1.Group("/config").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) { diff --git a/app/admin/router/sys_dept.go b/app/admin/router/sys_dept.go index 7ce7eddb..6dbe23ac 100644 --- a/app/admin/router/sys_dept.go +++ b/app/admin/router/sys_dept.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/system/sys_dept" + "go-admin/app/admin/apis" middleware2 "go-admin/common/middleware" ) @@ -13,7 +13,7 @@ func init() { // 需认证的路由代码 func registerSysDeptRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_dept.SysDept{} + api := apis.SysDept{} r := v1.Group("/dept").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) { r.GET("", api.GetSysDeptList) diff --git a/app/admin/router/sys_login_log.go b/app/admin/router/sys_login_log.go index b813357a..b73d7b5a 100644 --- a/app/admin/router/sys_login_log.go +++ b/app/admin/router/sys_login_log.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/system/sys_login_log" + "go-admin/app/admin/apis" middleware2 "go-admin/common/middleware" ) @@ -13,7 +13,7 @@ func init() { // 需认证的路由代码 func registerSysLoginLogRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_login_log.SysLoginLog{} + api := apis.SysLoginLog{} r := v1.Group("/sys-login-log").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) { r.GET("", api.GetSysLoginLogList) diff --git a/app/admin/router/sys_menu.go b/app/admin/router/sys_menu.go index 8d7b300a..19f57f13 100644 --- a/app/admin/router/sys_menu.go +++ b/app/admin/router/sys_menu.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/system/sys_menu" + "go-admin/app/admin/apis" middleware2 "go-admin/common/middleware" ) @@ -13,7 +13,7 @@ func init() { // 需认证的路由代码 func registerSysMenuRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_menu.SysMenu{} + api := apis.SysMenu{} //menu := v1.Group("/menu").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) //{ // menu.GET("/:id", system.GetMenu) diff --git a/app/admin/router/sys_opera_log.go b/app/admin/router/sys_opera_log.go index 37e0db53..998d2c93 100644 --- a/app/admin/router/sys_opera_log.go +++ b/app/admin/router/sys_opera_log.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/system/sys_opera_log" + "go-admin/app/admin/apis" middleware2 "go-admin/common/middleware" ) @@ -13,7 +13,7 @@ func init() { // 需认证的路由代码 func registerSysOperaLogRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_opera_log.SysOperaLog{} + api := apis.SysOperaLog{} r := v1.Group("/sys-opera-log").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) { r.GET("", api.GetSysOperaLogList) diff --git a/app/admin/router/sys_post.go b/app/admin/router/sys_post.go index a77f8616..eeed976d 100644 --- a/app/admin/router/sys_post.go +++ b/app/admin/router/sys_post.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/system/sys_post" + "go-admin/app/admin/apis" middleware2 "go-admin/common/middleware" ) @@ -13,7 +13,7 @@ func init() { // 需认证的路由代码 func registerSyPostRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_post.SysPost{} + api := apis.SysPost{} r := v1.Group("/post").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) { r.GET("", api.GetSysPostList) diff --git a/app/admin/router/sys_role.go b/app/admin/router/sys_role.go index 9ad9efa1..5ba9ec5f 100644 --- a/app/admin/router/sys_role.go +++ b/app/admin/router/sys_role.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/system/sys_role" + "go-admin/app/admin/apis" middleware2 "go-admin/common/middleware" ) @@ -13,7 +13,7 @@ func init() { // 需认证的路由代码 func registerSysRoleRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_role.SysRole{} + api := apis.SysRole{} r := v1.Group("/role").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) { r.GET("", api.GetSysRoleList) diff --git a/app/admin/router/sys_router.go b/app/admin/router/sys_router.go index ee4addff..ab6793c0 100644 --- a/app/admin/router/sys_router.go +++ b/app/admin/router/sys_router.go @@ -1,6 +1,7 @@ package router import ( + "go-admin/app/admin/apis" "mime" "github.com/gin-gonic/gin" @@ -9,12 +10,6 @@ import ( ginSwagger "github.com/swaggo/gin-swagger" "github.com/swaggo/gin-swagger/swaggerFiles" - "go-admin/app/admin/apis/monitor" - "go-admin/app/admin/apis/public" - "go-admin/app/admin/apis/system" - "go-admin/app/admin/apis/system/dict" - "go-admin/app/admin/apis/system/sys_dept" - "go-admin/app/admin/apis/system/sys_menu" "go-admin/app/admin/apis/tools" "go-admin/common/middleware" "go-admin/common/middleware/handler" @@ -41,7 +36,7 @@ func sysBaseRouter(r *gin.RouterGroup) { go ws.WebsocketManager.SendService() go ws.WebsocketManager.SendAllService() - r.GET("/", system.HelloWorld) + r.GET("/", apis.HelloWorld) r.GET("/info", handler.Ping) } @@ -61,9 +56,9 @@ func sysSwaggerRouter(r *gin.RouterGroup) { func sysNoCheckRoleRouter(r *gin.RouterGroup) { v1 := r.Group("/api/v1") - m := monitor.Monitor{} - v1.GET("/monitor/server", m.ServerInfo) - sys := system.System{} + //m := apis2.Monitor{} + //v1.GET("/monitor/server", m.ServerInfo) + sys := apis.System{} v1.GET("/getCaptcha", sys.GenerateCaptchaHandler) gen := tools.Gen{} v1.GET("/gen/preview/:tableId", gen.Preview) @@ -76,8 +71,7 @@ func sysNoCheckRoleRouter(r *gin.RouterGroup) { registerDBRouter(v1) registerSysTableRouter(v1) - registerPublicRouter(v1) - registerSysSettingRouter(v1) + //registerPublicRouter(v1) } func registerDBRouter(api *gin.RouterGroup) { @@ -121,8 +115,8 @@ func sysCheckRoleRouterInit(r *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddle } func registerBaseRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_menu.SysMenu{} - api2 := sys_dept.SysDept{} + api := apis.SysMenu{} + api2 := apis.SysDept{} v1auth := v1.Group("").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { //v1auth.GET("/getinfo", system.GetInfo) @@ -172,8 +166,8 @@ func registerBaseRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddlewar //} func registerDictRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - dictApi := dict.SysDictType{} - dataApi := dict.SysDictData{} + dictApi := apis.SysDictType{} + dataApi := apis.SysDictData{} dicts := v1.Group("/dict").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { @@ -202,21 +196,19 @@ func registerDictRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddlewar // dept.DELETE("/:id", system.DeleteDept) // } //} -func registerSysSettingRouter(v1 *gin.RouterGroup) { - api := system.SysSetting{} - m := monitor.Monitor{} - setting := v1.Group("/setting") - { - setting.GET("", api.GetSetting) - setting.POST("", api.CreateOrUpdateSetting) - setting.GET("/serverInfo", m.ServerInfo) - } -} +//func registerSysSettingRouter(v1 *gin.RouterGroup) { +// +// //m := apis2.Monitor{} +// setting := v1.Group("/setting") +// { +// setting.GET("/serverInfo", m.ServerInfo) +// } +//} -func registerPublicRouter(v1 *gin.RouterGroup) { - p := v1.Group("/public") - { - file := public.File{} - p.POST("/uploadFile", file.UploadFile) - } -} +//func registerPublicRouter(v1 *gin.RouterGroup) { +// p := v1.Group("/public") +// { +// file := apis2.File{} +// p.POST("/uploadFile", file.UploadFile) +// } +//} diff --git a/app/admin/router/sys_user.go b/app/admin/router/sys_user.go index 59e4a67e..aa78b72e 100644 --- a/app/admin/router/sys_user.go +++ b/app/admin/router/sys_user.go @@ -3,7 +3,7 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/sys_user" + "go-admin/app/admin/apis" "go-admin/common/actions" middleware2 "go-admin/common/middleware" ) @@ -14,7 +14,7 @@ func init() { // 需认证的路由代码 func registerSysUserRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_user.SysUser{} + api := apis.SysUser{} r := v1.Group("/sysUser").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()).Use(actions.PermissionAction()) { r.GET("", api.GetSysUserList) diff --git a/app/admin/service/sys_dict_data.go b/app/admin/service/sys_dict_data.go index 92179020..4af36da3 100644 --- a/app/admin/service/sys_dict_data.go +++ b/app/admin/service/sys_dict_data.go @@ -75,7 +75,7 @@ func (e *SysDictData) Update(c *system.SysDictData) error { db := e.Orm.Model(&data). Where(c.GetId()).Updates(c) - if db.Error != nil { + if err = db.Error; err != nil { e.Log.Errorf("db error: %s", err) return err } diff --git a/app/admin/service/sys_user.go b/app/admin/service/sys_user.go index 8681a291..2962f1a6 100644 --- a/app/admin/service/sys_user.go +++ b/app/admin/service/sys_user.go @@ -41,21 +41,19 @@ func (e *SysUser) GetSysUserPage(c cDto.Index, p *actions.DataPermission, list * // GetSysUser 获取SysUser对象 func (e *SysUser) GetSysUser(d cDto.Control, p *actions.DataPermission, model *system.SysUser) error { - var err error var data system.SysUser - db := e.Orm.Model(&data). + err := e.Orm.Model(&data). Scopes( actions.Permission(data.TableName(), p), ). - First(model, d.GetId()) - err = db.Error + First(model, d.GetId()).Error if err != nil && errors.Is(err, gorm.ErrRecordNotFound) { err = errors.New("查看对象不存在或无权查看") e.Log.Errorf("db error: %s", err) return err } - if db.Error != nil { + if err != nil { e.Log.Errorf("db error: %s", err) return err } @@ -84,8 +82,8 @@ func (e *SysUser) UpdateSysUser(c common.ActiveRecord, p *actions.DataPermission Scopes( actions.Permission(c.TableName(), p), ).Where(c.GetId()).Updates(c) - if db.Error != nil { - e.Log.Errorf("db error: %s", err) + if err = db.Error; err != nil { + e.Log.Errorf("Service UpdateSysUser error: %s", err) return err } if db.RowsAffected == 0 { @@ -104,14 +102,12 @@ func (e *SysUser) RemoveSysUser(d cDto.Control, c common.ActiveRecord, p *action Scopes( actions.Permission(data.TableName(), p), ).Where(d.GetId()).Delete(c) - if db.Error != nil { - err = db.Error + if err = db.Error; err != nil { e.Log.Errorf("Delete error: %s", err) return err } if db.RowsAffected == 0 { - err = errors.New("无权删除该数据") - return err + return errors.New("无权删除该数据") } return nil } diff --git a/app/cms/models/sys_category.go b/app/cms/models/sys_category.go new file mode 100644 index 00000000..76f3c9b8 --- /dev/null +++ b/app/cms/models/sys_category.go @@ -0,0 +1,29 @@ +package models + +import ( + "go-admin/common/models" +) + +type SysCategory struct { + models.Model + Name string `json:"name" gorm:"size:255;comment:名称"` // + Img string `json:"img" gorm:"size:255;comment:图标"` // + Sort int `json:"sort" gorm:"size:4;comment:排序"` // + Status int `json:"status" gorm:"size:1;comment:状态"` // + Remark string `json:"remark" gorm:"size:255;comment:备注"` // + models.ControlBy + models.ModelTime +} + +func (SysCategory) TableName() string { + return "sys_category" +} + +func (e *SysCategory) Generate() models.ActiveRecord { + o := *e + return &o +} + +func (e *SysCategory) GetId() interface{} { + return e.Id +} diff --git a/app/admin/models/sys_content.go b/app/cms/models/sys_content.go similarity index 100% rename from app/admin/models/sys_content.go rename to app/cms/models/sys_content.go diff --git a/app/cms/router/init_router.go b/app/cms/router/init_router.go new file mode 100644 index 00000000..7054bf56 --- /dev/null +++ b/app/cms/router/init_router.go @@ -0,0 +1,42 @@ +package router + +import ( + "os" + + "github.com/gin-gonic/gin" + log "github.com/go-admin-team/go-admin-core/logger" + "github.com/go-admin-team/go-admin-core/sdk" + "github.com/go-admin-team/go-admin-core/sdk/pkg" + + common "go-admin/common/middleware" +) + +// InitRouter 路由初始化,不要怀疑,这里用到了 +func InitRouter() { + var r *gin.Engine + h := sdk.Runtime.GetEngine() + if h == nil { + h = gin.New() + sdk.Runtime.SetEngine(h) + } + switch h.(type) { + case *gin.Engine: + r = h.(*gin.Engine) + default: + log.Fatal("not support other engine") + os.Exit(-1) + } + + r.Use(common.Sentinel()). + Use(common.RequestId(pkg.TrafficKey)) + common.InitMiddleware(r) + // the jwt middleware + authMiddleware, err := common.AuthInit() + if err != nil { + log.Fatalf("JWT Init Error, %s", err.Error()) + } + + // 注册业务路由 + // TODO: 这里可存放业务路由,里边并无实际路由只有演示代码 + initRouter(r, authMiddleware) +} \ No newline at end of file diff --git a/app/cms/router/router.go b/app/cms/router/router.go new file mode 100644 index 00000000..a99da845 --- /dev/null +++ b/app/cms/router/router.go @@ -0,0 +1,43 @@ +package router + + +import ( + "github.com/gin-gonic/gin" + jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" +) + +var ( + routerNoCheckRole = make([]func(*gin.RouterGroup), 0) + routerCheckRole = make([]func(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware), 0) +) + +// initRouter 路由示例 +func initRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) *gin.Engine { + + // 无需认证的路由 + noCheckRoleRouter(r) + // 需要认证的路由 + checkRoleRouter(r, authMiddleware) + + return r +} + +// noCheckRoleRouter 无需认证的路由示例 +func noCheckRoleRouter(r *gin.Engine) { + // 可根据业务需求来设置接口版本 + v1 := r.Group("/api/v1") + + for _, f := range routerNoCheckRole { + f(v1) + } +} + +// checkRoleRouter 需要认证的路由示例 +func checkRoleRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) { + // 可根据业务需求来设置接口版本 + v1 := r.Group("/api/v1") + + for _, f := range routerCheckRole { + f(v1, authMiddleware) + } +} \ No newline at end of file diff --git a/app/admin/router/sys_category.go b/app/cms/router/sys_category.go similarity index 87% rename from app/admin/router/sys_category.go rename to app/cms/router/sys_category.go index df8322a3..7cb4280f 100644 --- a/app/admin/router/sys_category.go +++ b/app/cms/router/sys_category.go @@ -2,11 +2,11 @@ package router import ( "github.com/gin-gonic/gin" - middleware2 "go-admin/common/middleware" + "go-admin/app/cms/models" + "go-admin/app/cms/service/dto" + "go-admin/common/middleware" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/models" - "go-admin/app/admin/service/dto" "go-admin/common/actions" ) @@ -16,7 +16,7 @@ func init() { // 需认证的路由代码 func registerSysCategoryRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - r := v1.Group("/syscategory").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) + r := v1.Group("/syscategory").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { model := &models.SysCategory{} r.GET("", actions.PermissionAction(), actions.IndexAction(model, new(dto.SysCategorySearch), func() interface{} { diff --git a/app/admin/router/sys_content.go b/app/cms/router/sys_content.go similarity index 72% rename from app/admin/router/sys_content.go rename to app/cms/router/sys_content.go index 133d7248..aac6da29 100644 --- a/app/admin/router/sys_content.go +++ b/app/cms/router/sys_content.go @@ -3,10 +3,10 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/models" - "go-admin/app/admin/service/dto" + "go-admin/app/cms/models" + "go-admin/app/cms/service/dto" "go-admin/common/actions" - middleware2 "go-admin/common/middleware" + "go-admin/common/middleware" ) func init() { @@ -16,14 +16,8 @@ func init() { // 需认证的路由代码 func registerSysContentRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - r := v1.Group("/syscontent").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) + r := v1.Group("/syscontent").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { - //r.GET("", sys_content.GetSysContentList) - //r.GET("/:id", sys_content.GetSysContent) - //r.POST("", sys_content.InsertSysContent) - //r.PUT("", sys_content.UpdateSysContent) - //r.DELETE("/:id", sys_content.DeleteSysContent) - model := &models.SysContent{} r.GET("", actions.PermissionAction(), actions.IndexAction(model, new(dto.SysContentSearch), func() interface{} { list := make([]models.SysContent, 0) diff --git a/app/admin/service/dto/sys_category.go b/app/cms/service/dto/sys_category.go similarity index 65% rename from app/admin/service/dto/sys_category.go rename to app/cms/service/dto/sys_category.go index 88ca2585..aad12559 100644 --- a/app/admin/service/dto/sys_category.go +++ b/app/cms/service/dto/sys_category.go @@ -2,20 +2,19 @@ package dto import ( "errors" - vd "github.com/bytedance/go-tagexpr/v2/validator" "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/api" + "go-admin/app/cms/models" - "go-admin/app/admin/models" "go-admin/common/dto" common "go-admin/common/models" ) type SysCategorySearch struct { dto.Pagination `search:"-"` - Name string `form:"name" search:"type:exact;column:name;table:sys_category" comment:"名称" vd:"?"` - Status string `form:"status" search:"type:exact;column:status;table:sys_category" comment:"状态" vd:"?"` - CateId int `form:"cateId" search:"type:exact;column:cate_id;table:sys_category" comment:"分类id" vd:"?"` + Name string `form:"name" search:"type:exact;column:name;table:sys_category" comment:"名称"` + Status string `form:"status" search:"type:exact;column:status;table:sys_category" comment:"状态"` + CateId int `form:"cateId" search:"type:exact;column:cate_id;table:sys_category" comment:"分类id"` } func (m *SysCategorySearch) GetNeedSearch() interface{} { @@ -30,10 +29,6 @@ func (m *SysCategorySearch) Bind(ctx *gin.Context) error { log.Debugf("ShouldBind error: %s", err.Error()) } - if err = vd.Validate(m); err != nil { - log.Errorf("Validate error: %s", err.Error()) - return err - } return err } @@ -43,12 +38,12 @@ func (m *SysCategorySearch) Generate() dto.Index { } type SysCategoryControl struct { - ID int `uri:"Id" comment:"标识"` - Name string `json:"name" comment:"名称" vd:"len($)>0 && $!=' '; msg:'invalid name: 不能是空字符串'"` - Img string `json:"img" comment:"图标" vd:"?"` - Sort int `json:"sort" comment:"排序" vd:"?"` - Status int `json:"status" comment:"状态" vd:"$>0; msg:'invalid status: 状态无效'"` - Remark string `json:"remark" comment:"备注" vd:"?"` + Id int `uri:"Id" comment:"标识"` + Name string `json:"name" comment:"名称"` + Img string `json:"img" comment:"图标"` + Sort int `json:"sort" comment:"排序"` + Status int `json:"status" comment:"状态"` + Remark string `json:"remark" comment:"备注"` } func (s *SysCategoryControl) Bind(ctx *gin.Context) error { @@ -63,10 +58,7 @@ func (s *SysCategoryControl) Bind(ctx *gin.Context) error { log.Errorf("ShouldBind error: %s", err.Error()) err = errors.New("数据绑定出错") } - if err1 := vd.Validate(s); err != nil { - log.Errorf("Validate error: %s", err1.Error()) - return err1 - } + return err } @@ -77,7 +69,7 @@ func (s *SysCategoryControl) Generate() dto.Control { func (s *SysCategoryControl) GenerateM() (common.ActiveRecord, error) { return &models.SysCategory{ - Model: common.Model{Id: s.ID}, + Model: common.Model{Id: s.Id}, Name: s.Name, Img: s.Img, Sort: s.Sort, @@ -87,11 +79,11 @@ func (s *SysCategoryControl) GenerateM() (common.ActiveRecord, error) { } func (s *SysCategoryControl) GetId() interface{} { - return s.ID + return s.Id } type SysCategoryById struct { - dto.ObjectById `vd:"?"` + dto.ObjectById } func (s *SysCategoryById) Generate() dto.Control { @@ -101,4 +93,4 @@ func (s *SysCategoryById) Generate() dto.Control { func (s *SysCategoryById) GenerateM() (common.ActiveRecord, error) { return &models.SysCategory{}, nil -} \ No newline at end of file +} diff --git a/app/admin/service/dto/sys_content.go b/app/cms/service/dto/sys_content.go similarity index 94% rename from app/admin/service/dto/sys_content.go rename to app/cms/service/dto/sys_content.go index 0a639793..43f986a1 100644 --- a/app/admin/service/dto/sys_content.go +++ b/app/cms/service/dto/sys_content.go @@ -3,8 +3,8 @@ package dto import ( "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/api" + "go-admin/app/cms/models" - "go-admin/app/admin/models" "go-admin/common/dto" common "go-admin/common/models" ) @@ -34,7 +34,7 @@ func (m *SysContentSearch) Generate() dto.Index { } type SysContentControl struct { - ID int `uri:"ID" comment:""` // + Id int `uri:"Id" comment:""` // CateId int `json:"cateId" comment:""` Name string `json:"name" comment:""` Status int `json:"status" comment:""` @@ -65,7 +65,7 @@ func (s *SysContentControl) Generate() dto.Control { func (s *SysContentControl) GenerateM() (common.ActiveRecord, error) { return &models.SysContent{ - Model: common.Model{s.ID}, + Model: common.Model{s.Id}, CateId: s.CateId, Name: s.Name, Status: s.Status, @@ -77,7 +77,7 @@ func (s *SysContentControl) GenerateM() (common.ActiveRecord, error) { } func (s *SysContentControl) GetId() interface{} { - return s.ID + return s.Id } type SysContentById struct { diff --git a/app/admin/apis/sys_job/sys_job.go b/app/jobs/apis/sys_job.go similarity index 95% rename from app/admin/apis/sys_job/sys_job.go rename to app/jobs/apis/sys_job.go index 95b65b8c..5e1a27ca 100644 --- a/app/admin/apis/sys_job/sys_job.go +++ b/app/jobs/apis/sys_job.go @@ -1,11 +1,11 @@ -package sys_job +package apis import ( + "go-admin/app/jobs/service" "net/http" "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk" - "go-admin/app/admin/service" "go-admin/common/apis" "go-admin/common/dto" ) @@ -16,6 +16,7 @@ type SysJob struct { // RemoveJobForService 调用service实现 func (e SysJob) RemoveJobForService(c *gin.Context) { + e.SetContext(c) log := e.GetLogger() db, err := e.GetOrm() if err != nil { @@ -44,7 +45,7 @@ func (e SysJob) RemoveJobForService(c *gin.Context) { // StartJobForService 启动job service实现 func (e SysJob) StartJobForService(c *gin.Context) { - e.Context = c + e.SetContext(c) log := e.GetLogger() db, err := e.GetOrm() if err != nil { diff --git a/app/jobs/jobbase.go b/app/jobs/jobbase.go index 3a212279..3e09b888 100644 --- a/app/jobs/jobbase.go +++ b/app/jobs/jobbase.go @@ -4,6 +4,7 @@ import ( "fmt" log "github.com/go-admin-team/go-admin-core/logger" "github.com/go-admin-team/go-admin-core/sdk" + models2 "go-admin/app/jobs/models" "gorm.io/gorm" "sync" "time" @@ -12,7 +13,6 @@ import ( "github.com/go-admin-team/go-admin-core/sdk/pkg" "github.com/go-admin-team/go-admin-core/sdk/pkg/cronjob" - "go-admin/app/admin/models" ) var timeFormat = "2006-01-02 15:04:05" @@ -108,8 +108,8 @@ func Setup(dbs map[string]*gorm.DB) { func setup(key string, db *gorm.DB) { crontab := sdk.Runtime.GetCrontabKey(key) - sysJob := models.SysJob{} - jobList := make([]models.SysJob, 0) + sysJob := models2.SysJob{} + jobList := make([]models2.SysJob, 0) err := sysJob.GetList(db, &jobList) if err != nil { fmt.Println(time.Now().Format(timeFormat), " [ERROR] JobCore init error", err) diff --git a/app/admin/models/sys_job.go b/app/jobs/models/sys_job.go similarity index 56% rename from app/admin/models/sys_job.go rename to app/jobs/models/sys_job.go index bc88025a..5a62f9d0 100644 --- a/app/admin/models/sys_job.go +++ b/app/jobs/models/sys_job.go @@ -44,32 +44,6 @@ func (e *SysJob) SetUpdateBy(updateBy int) { e.UpdateBy = updateBy } -// 创建SysJob -//func (e *SysJob) Create() (err error) { -// return orm.Eloquent.Table(e.TableName()).Create(e).Error -//} - -// 获取SysJob -//func (e *SysJob) Get(id interface{}) (err error) { -// return orm.Eloquent.Table(e.TableName()).First(e, id).Error -//} - -// 获取SysJob带分页 -//func (e *SysJob) GetPage(pageSize int, pageIndex int, v interface{}, list interface{}) (int, error) { -// table := orm.Eloquent.Table(e.TableName()).Scopes(dto.MakeCondition(v)) -// -// // 数据权限控制(如果不需要数据权限请将此处去掉) -// //dataPermission := new(DataPermission) -// userid, _ := tools.StringToInt(e.DataScope) -// -// var count int64 -// -// if err := table.Scopes(system.DataScopes(e.TableName(), userid), dto.Paginate(pageSize, pageIndex)).Find(list).Offset(-1).Limit(-1).Count(&count).Error; err != nil { -// return 0, err -// } -// return int(count), nil -//} - func (e *SysJob) GetList(tx *gorm.DB, list interface{}) (err error) { return tx.Table(e.TableName()).Where("status = ?", 2).Find(list).Error } @@ -85,25 +59,3 @@ func (e *SysJob) RemoveAllEntryID(tx *gorm.DB) (update SysJob, err error) { } return } - -//func (e *SysJob) RemoveEntryID(entryID int) (update SysJob, err error) { -// if err = orm.Eloquent.Table(e.TableName()).Where("entry_id = ?", entryID).Updates(map[string]interface{}{"entry_id": 0}).Error; err != nil { -// return -// } -// return -//} - -// 删除SysJob -//func (e *SysJob) Delete(id int) (success bool, err error) { -// if err = orm.Eloquent.Table(e.TableName()).Where(id).Delete(&SysJob{}).Error; err != nil { -// success = false -// return -// } -// success = true -// return -//} - -//批量删除 -//func (e *SysJob) BatchDelete(id []int) error { -// return orm.Eloquent.Table(e.TableName()).Where(id).Delete(&SysJob{}).Error -//} diff --git a/app/jobs/router/int_router.go b/app/jobs/router/int_router.go new file mode 100644 index 00000000..7054bf56 --- /dev/null +++ b/app/jobs/router/int_router.go @@ -0,0 +1,42 @@ +package router + +import ( + "os" + + "github.com/gin-gonic/gin" + log "github.com/go-admin-team/go-admin-core/logger" + "github.com/go-admin-team/go-admin-core/sdk" + "github.com/go-admin-team/go-admin-core/sdk/pkg" + + common "go-admin/common/middleware" +) + +// InitRouter 路由初始化,不要怀疑,这里用到了 +func InitRouter() { + var r *gin.Engine + h := sdk.Runtime.GetEngine() + if h == nil { + h = gin.New() + sdk.Runtime.SetEngine(h) + } + switch h.(type) { + case *gin.Engine: + r = h.(*gin.Engine) + default: + log.Fatal("not support other engine") + os.Exit(-1) + } + + r.Use(common.Sentinel()). + Use(common.RequestId(pkg.TrafficKey)) + common.InitMiddleware(r) + // the jwt middleware + authMiddleware, err := common.AuthInit() + if err != nil { + log.Fatalf("JWT Init Error, %s", err.Error()) + } + + // 注册业务路由 + // TODO: 这里可存放业务路由,里边并无实际路由只有演示代码 + initRouter(r, authMiddleware) +} \ No newline at end of file diff --git a/app/jobs/router/router.go b/app/jobs/router/router.go new file mode 100644 index 00000000..a99da845 --- /dev/null +++ b/app/jobs/router/router.go @@ -0,0 +1,43 @@ +package router + + +import ( + "github.com/gin-gonic/gin" + jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" +) + +var ( + routerNoCheckRole = make([]func(*gin.RouterGroup), 0) + routerCheckRole = make([]func(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware), 0) +) + +// initRouter 路由示例 +func initRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) *gin.Engine { + + // 无需认证的路由 + noCheckRoleRouter(r) + // 需要认证的路由 + checkRoleRouter(r, authMiddleware) + + return r +} + +// noCheckRoleRouter 无需认证的路由示例 +func noCheckRoleRouter(r *gin.Engine) { + // 可根据业务需求来设置接口版本 + v1 := r.Group("/api/v1") + + for _, f := range routerNoCheckRole { + f(v1) + } +} + +// checkRoleRouter 需要认证的路由示例 +func checkRoleRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) { + // 可根据业务需求来设置接口版本 + v1 := r.Group("/api/v1") + + for _, f := range routerCheckRole { + f(v1, authMiddleware) + } +} \ No newline at end of file diff --git a/app/admin/router/sys_job.go b/app/jobs/router/sys_job.go similarity index 67% rename from app/admin/router/sys_job.go rename to app/jobs/router/sys_job.go index a6985b8c..11376a0c 100644 --- a/app/admin/router/sys_job.go +++ b/app/jobs/router/sys_job.go @@ -3,9 +3,9 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/sys_job" - "go-admin/app/admin/models" - "go-admin/app/admin/service/dto" + "go-admin/app/jobs/apis" + models2 "go-admin/app/jobs/models" + dto2 "go-admin/app/jobs/service/dto" "go-admin/common/actions" middleware2 "go-admin/common/middleware" ) @@ -19,19 +19,19 @@ func registerSysJobRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddlew r := v1.Group("/sysjob").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) { - sysJob := &models.SysJob{} - r.GET("", actions.PermissionAction(), actions.IndexAction(sysJob, new(dto.SysJobSearch), func() interface{} { - list := make([]models.SysJob, 0) + sysJob := &models2.SysJob{} + r.GET("", actions.PermissionAction(), actions.IndexAction(sysJob, new(dto2.SysJobSearch), func() interface{} { + list := make([]models2.SysJob, 0) return &list })) - r.GET("/:id", actions.PermissionAction(), actions.ViewAction(new(dto.SysJobById), func() interface{} { - return &dto.SysJobItem{} + r.GET("/:id", actions.PermissionAction(), actions.ViewAction(new(dto2.SysJobById), func() interface{} { + return &dto2.SysJobItem{} })) - r.POST("", actions.CreateAction(new(dto.SysJobControl))) - r.PUT("", actions.PermissionAction(), actions.UpdateAction(new(dto.SysJobControl))) - r.DELETE("", actions.PermissionAction(), actions.DeleteAction(new(dto.SysJobById))) + r.POST("", actions.CreateAction(new(dto2.SysJobControl))) + r.PUT("", actions.PermissionAction(), actions.UpdateAction(new(dto2.SysJobControl))) + r.DELETE("", actions.PermissionAction(), actions.DeleteAction(new(dto2.SysJobById))) } - sysJob := sys_job.SysJob{} + sysJob := apis.SysJob{} v1.GET("/job/remove/:id", sysJob.RemoveJobForService) v1.GET("/job/start/:id", sysJob.StartJobForService) diff --git a/app/admin/service/dto/sys_job.go b/app/jobs/service/dto/sys_job.go similarity index 99% rename from app/admin/service/dto/sys_job.go rename to app/jobs/service/dto/sys_job.go index 6953cab8..c66bcbdf 100644 --- a/app/admin/service/dto/sys_job.go +++ b/app/jobs/service/dto/sys_job.go @@ -3,8 +3,8 @@ package dto import ( "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/api" + "go-admin/app/jobs/models" - "go-admin/app/admin/models" "go-admin/common/dto" common "go-admin/common/models" ) diff --git a/app/admin/service/sys_job.go b/app/jobs/service/sys_job.go similarity index 98% rename from app/admin/service/sys_job.go rename to app/jobs/service/sys_job.go index dde262d7..3722636b 100644 --- a/app/admin/service/sys_job.go +++ b/app/jobs/service/sys_job.go @@ -2,9 +2,9 @@ package service import ( "github.com/robfig/cron/v3" + "go-admin/app/jobs/models" "time" - "go-admin/app/admin/models" "go-admin/app/jobs" "go-admin/common/dto" "go-admin/common/service" diff --git a/app/admin/apis/public/file.go b/app/other/apis/file.go similarity index 99% rename from app/admin/apis/public/file.go rename to app/other/apis/file.go index 42a4aca7..84fa7e76 100644 --- a/app/admin/apis/public/file.go +++ b/app/other/apis/file.go @@ -1,4 +1,4 @@ -package public +package apis import ( "encoding/base64" diff --git a/app/admin/apis/monitor/server.go b/app/other/apis/server.go similarity index 97% rename from app/admin/apis/monitor/server.go rename to app/other/apis/server.go index 9e5b2329..0b2c4ee9 100644 --- a/app/admin/apis/monitor/server.go +++ b/app/other/apis/server.go @@ -1,4 +1,4 @@ -package monitor +package apis import ( "runtime" @@ -24,6 +24,7 @@ type Monitor struct { apis.Api } +// ServerInfo 获取系统信息 // @Summary 系统信息 // @Description 获取JSON // @Tags 系统信息 diff --git a/app/admin/apis/sys_china_area_data/sys_china_area_data.go b/app/other/apis/sys_china_area_data.go similarity index 84% rename from app/admin/apis/sys_china_area_data/sys_china_area_data.go rename to app/other/apis/sys_china_area_data.go index bdf82982..eb56e619 100644 --- a/app/admin/apis/sys_china_area_data/sys_china_area_data.go +++ b/app/other/apis/sys_china_area_data.go @@ -1,14 +1,14 @@ -package sys_china_area_data +package apis import ( + models2 "go-admin/app/other/models" + service2 "go-admin/app/other/service" + dto2 "go-admin/app/other/service/dto" "net/http" "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" - "go-admin/app/admin/models" - "go-admin/app/admin/service" - "go-admin/app/admin/service/dto" "go-admin/common/actions" "go-admin/common/apis" ) @@ -20,7 +20,7 @@ type SysChinaAreaData struct { func (e SysChinaAreaData) GetSysChinaAreaDataList(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - d := new(dto.SysChinaAreaDataSearch) + d := new(dto2.SysChinaAreaDataSearch) db, err := e.GetOrm() if err != nil { log.Error(err) @@ -37,9 +37,9 @@ func (e SysChinaAreaData) GetSysChinaAreaDataList(c *gin.Context) { //数据权限检查 p := actions.GetPermissionFromContext(c) - list := make([]models.SysChinaAreaData, 0) + list := make([]models2.SysChinaAreaData, 0) var count int64 - serviceStudent := service.SysChinaAreaData{} + serviceStudent := service2.SysChinaAreaData{} serviceStudent.Log = log serviceStudent.Orm = db err = serviceStudent.GetSysChinaAreaDataPage(d, p, &list, &count) @@ -54,7 +54,7 @@ func (e SysChinaAreaData) GetSysChinaAreaDataList(c *gin.Context) { func (e SysChinaAreaData) GetSysChinaAreaData(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - control := new(dto.SysChinaAreaDataById) + control := new(dto2.SysChinaAreaDataById) db, err := e.GetOrm() if err != nil { log.Error(err) @@ -67,12 +67,12 @@ func (e SysChinaAreaData) GetSysChinaAreaData(c *gin.Context) { e.Error(http.StatusUnprocessableEntity, err, "参数验证失败") return } - var object models.SysChinaAreaData + var object models2.SysChinaAreaData //数据权限检查 p := actions.GetPermissionFromContext(c) - serviceSysChinaAreaData := service.SysChinaAreaData{} + serviceSysChinaAreaData := service2.SysChinaAreaData{} serviceSysChinaAreaData.Log = log serviceSysChinaAreaData.Orm = db err = serviceSysChinaAreaData.GetSysChinaAreaData(control, p, &object) @@ -87,7 +87,7 @@ func (e SysChinaAreaData) GetSysChinaAreaData(c *gin.Context) { func (e SysChinaAreaData) InsertSysChinaAreaData(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - control := new(dto.SysChinaAreaDataControl) + control := new(dto2.SysChinaAreaDataControl) db, err := e.GetOrm() if err != nil { log.Error(err) @@ -108,7 +108,7 @@ func (e SysChinaAreaData) InsertSysChinaAreaData(c *gin.Context) { // 设置创建人 object.SetCreateBy(user.GetUserId(c)) - serviceSysChinaAreaData := service.SysChinaAreaData{} + serviceSysChinaAreaData := service2.SysChinaAreaData{} serviceSysChinaAreaData.Orm = db serviceSysChinaAreaData.Log = log err = serviceSysChinaAreaData.InsertSysChinaAreaData(object) @@ -124,7 +124,7 @@ func (e SysChinaAreaData) InsertSysChinaAreaData(c *gin.Context) { func (e SysChinaAreaData) UpdateSysChinaAreaData(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - control := new(dto.SysChinaAreaDataControl) + control := new(dto2.SysChinaAreaDataControl) db, err := e.GetOrm() if err != nil { log.Error(err) @@ -147,7 +147,7 @@ func (e SysChinaAreaData) UpdateSysChinaAreaData(c *gin.Context) { //数据权限检查 p := actions.GetPermissionFromContext(c) - serviceSysChinaAreaData := service.SysChinaAreaData{} + serviceSysChinaAreaData := service2.SysChinaAreaData{} serviceSysChinaAreaData.Orm = db serviceSysChinaAreaData.Log = log err = serviceSysChinaAreaData.UpdateSysChinaAreaData(object, p) @@ -161,7 +161,7 @@ func (e SysChinaAreaData) UpdateSysChinaAreaData(c *gin.Context) { func (e SysChinaAreaData) DeleteSysChinaAreaData(c *gin.Context) { e.SetContext(c) log := e.GetLogger() - control := new(dto.SysChinaAreaDataById) + control := new(dto2.SysChinaAreaDataById) db, err := e.GetOrm() if err != nil { log.Error(err) @@ -182,7 +182,7 @@ func (e SysChinaAreaData) DeleteSysChinaAreaData(c *gin.Context) { // 数据权限检查 p := actions.GetPermissionFromContext(c) - serviceSysChinaAreaData := service.SysChinaAreaData{} + serviceSysChinaAreaData := service2.SysChinaAreaData{} serviceSysChinaAreaData.Orm = db serviceSysChinaAreaData.Log = log err = serviceSysChinaAreaData.RemoveSysChinaAreaData(control, p) diff --git a/app/admin/apis/sys_file/sys_file_dir.go b/app/other/apis/sys_file_dir.go similarity index 95% rename from app/admin/apis/sys_file/sys_file_dir.go rename to app/other/apis/sys_file_dir.go index 8d8f349a..8723bec8 100644 --- a/app/admin/apis/sys_file/sys_file_dir.go +++ b/app/other/apis/sys_file_dir.go @@ -1,4 +1,4 @@ -package sys_file +package apis import ( "net/http" @@ -7,9 +7,9 @@ import ( "github.com/go-admin-team/go-admin-core/sdk/pkg" "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" - "go-admin/app/admin/models" - "go-admin/app/admin/service" - "go-admin/app/admin/service/dto" + "go-admin/app/other/models" + "go-admin/app/other/service" + "go-admin/app/other/service/dto" "go-admin/common/actions" "go-admin/common/apis" ) @@ -33,7 +33,7 @@ func (e SysFileDir) GetSysFileDirList(c *gin.Context) { log.Debugf("ShouldBind error: %s", err.Error()) } - var list *[]models.SysFileDirL + var list *[]models.SysFileDir serviceStudent := service.SysFileDir{} serviceStudent.Log = log serviceStudent.Orm = db @@ -115,7 +115,7 @@ func (e SysFileDir) InsertSysFileDir(c *gin.Context) { return } - e.OK(control.ID, "创建成功") + e.OK(control.Id, "创建成功") } func (e SysFileDir) UpdateSysFileDir(c *gin.Context) { @@ -153,7 +153,7 @@ func (e SysFileDir) UpdateSysFileDir(c *gin.Context) { e.Error(http.StatusInternalServerError, err, "更新失败") return } - e.OK(control.ID, "更新成功") + e.OK(control.Id, "更新成功") } func (e SysFileDir) DeleteSysFileDir(c *gin.Context) { diff --git a/app/admin/apis/sys_file/sys_file_info.go b/app/other/apis/sys_file_info.go similarity index 86% rename from app/admin/apis/sys_file/sys_file_info.go rename to app/other/apis/sys_file_info.go index 637743bf..95537a0c 100644 --- a/app/admin/apis/sys_file/sys_file_info.go +++ b/app/other/apis/sys_file_info.go @@ -1,14 +1,14 @@ -package sys_file +package apis import ( + models2 "go-admin/app/other/models" + service2 "go-admin/app/other/service" + dto2 "go-admin/app/other/service/dto" "net/http" "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" - "go-admin/app/admin/models" - "go-admin/app/admin/service" - "go-admin/app/admin/service/dto" "go-admin/common/actions" "go-admin/common/apis" ) @@ -20,7 +20,7 @@ type SysFileInfo struct { func (e SysFileInfo) GetSysFileInfoList(c *gin.Context) { e.Context = c log := e.GetLogger() - search := new(dto.SysFileInfoSearch) + search := new(dto2.SysFileInfoSearch) db, err := e.GetOrm() if err != nil { log.Error(err) @@ -36,9 +36,9 @@ func (e SysFileInfo) GetSysFileInfoList(c *gin.Context) { //数据权限检查 p := actions.GetPermissionFromContext(c) - list := make([]models.SysFileInfo, 0) + list := make([]models2.SysFileInfo, 0) var count int64 - serviceStudent := service.SysFileInfo{} + serviceStudent := service2.SysFileInfo{} serviceStudent.Log = log serviceStudent.Orm = db err = serviceStudent.GetSysFileInfoPage(search, p, &list, &count) @@ -52,7 +52,7 @@ func (e SysFileInfo) GetSysFileInfoList(c *gin.Context) { } func (e SysFileInfo) GetSysFileInfo(c *gin.Context) { - control := new(dto.SysFileInfoById) + control := new(dto2.SysFileInfoById) e.Context = c log := e.GetLogger() db, err := e.GetOrm() @@ -69,12 +69,12 @@ func (e SysFileInfo) GetSysFileInfo(c *gin.Context) { return } - var object models.SysFileInfo + var object models2.SysFileInfo //数据权限检查 p := actions.GetPermissionFromContext(c) - serviceSysFileInfo := service.SysFileInfo{} + serviceSysFileInfo := service2.SysFileInfo{} serviceSysFileInfo.Log = log serviceSysFileInfo.Orm = db err = serviceSysFileInfo.GetSysFileInfo(control, p, &object) @@ -88,7 +88,7 @@ func (e SysFileInfo) GetSysFileInfo(c *gin.Context) { } func (e SysFileInfo) InsertSysFileInfo(c *gin.Context) { - control := new(dto.SysFileInfoControl) + control := new(dto2.SysFileInfoControl) e.Context = c log := e.GetLogger() db, err := e.GetOrm() @@ -113,7 +113,7 @@ func (e SysFileInfo) InsertSysFileInfo(c *gin.Context) { // 设置创建人 control.CreateBy = user.GetUserId(c) - serviceSysFileInfo := service.SysFileInfo{} + serviceSysFileInfo := service2.SysFileInfo{} serviceSysFileInfo.Orm = db serviceSysFileInfo.Log = log err = serviceSysFileInfo.InsertSysFileInfo(control) @@ -123,11 +123,11 @@ func (e SysFileInfo) InsertSysFileInfo(c *gin.Context) { return } - e.OK(control.ID, "创建成功") + e.OK(control.Id, "创建成功") } func (e SysFileInfo) UpdateSysFileInfo(c *gin.Context) { - control := new(dto.SysFileInfoControl) + control := new(dto2.SysFileInfoControl) e.Context = c log := e.GetLogger() db, err := e.GetOrm() @@ -154,7 +154,7 @@ func (e SysFileInfo) UpdateSysFileInfo(c *gin.Context) { //数据权限检查 p := actions.GetPermissionFromContext(c) - serviceSysFileInfo := service.SysFileInfo{} + serviceSysFileInfo := service2.SysFileInfo{} serviceSysFileInfo.Orm = db serviceSysFileInfo.Log = log err = serviceSysFileInfo.UpdateSysFileInfo(control, p) @@ -163,11 +163,11 @@ func (e SysFileInfo) UpdateSysFileInfo(c *gin.Context) { e.Error(http.StatusInternalServerError, err, "创建失败") return } - e.OK(control.ID, "更新成功") + e.OK(control.Id, "更新成功") } func (e SysFileInfo) DeleteSysFileInfo(c *gin.Context) { - control := new(dto.SysFileInfoById) + control := new(dto2.SysFileInfoById) e.Context = c log := e.GetLogger() db, err := e.GetOrm() @@ -196,7 +196,7 @@ func (e SysFileInfo) DeleteSysFileInfo(c *gin.Context) { // 数据权限检查 p := actions.GetPermissionFromContext(c) - serviceSysFileInfo := service.SysFileInfo{} + serviceSysFileInfo := service2.SysFileInfo{} serviceSysFileInfo.Orm = db serviceSysFileInfo.Log = log err = serviceSysFileInfo.RemoveSysFileInfo(control, p) diff --git a/app/admin/models/sys_china_area_data.go b/app/other/models/sys_china_area_data.go similarity index 70% rename from app/admin/models/sys_china_area_data.go rename to app/other/models/sys_china_area_data.go index 019b041f..e9bf7658 100644 --- a/app/admin/models/sys_china_area_data.go +++ b/app/other/models/sys_china_area_data.go @@ -6,9 +6,8 @@ import ( type SysChinaAreaData struct { models.Model - - PId string `json:"pId" gorm:"type:int(11);comment:上级编码"` - Name string `json:"name" gorm:"type:varchar(128);comment:名称"` + PId string `json:"p_id" gorm:"size:11;comment:上级编码"` + Name string `json:"name" gorm:"size:128;comment:名称"` models.ControlBy models.ModelTime } diff --git a/app/admin/models/sys_file_dir.go b/app/other/models/sys_file_dir.go similarity index 53% rename from app/admin/models/sys_file_dir.go rename to app/other/models/sys_file_dir.go index 246b14c7..b8ea46ee 100644 --- a/app/admin/models/sys_file_dir.go +++ b/app/other/models/sys_file_dir.go @@ -7,7 +7,7 @@ import ( type SysFileDir struct { models.Model Label string `json:"label" gorm:"type:varchar(255);comment:目录名称"` // 目录名称 - PId int `json:"pId" gorm:"type:int(11);comment:上级目录"` // 上级目录 + PId int `json:"p_id" gorm:"type:int(11);comment:上级目录"` // 上级目录 Sort string `json:"sort" gorm:"type:bigint(20);comment:排序"` // 排序 Path string `json:"path" gorm:"type:varchar(255);comment:路径"` // 路径 Children []SysFileDir `json:"children,omitempty" gorm:"-"` // 下级信息 @@ -15,16 +15,16 @@ type SysFileDir struct { models.ModelTime } -type SysFileDirL struct { - models.Model - Label string `json:"label" gorm:"type:varchar(255);comment:目录名称"` // 目录名称 - PId int `json:"pId" gorm:"type:int(11);comment:上级目录"` // 上级目录 - Sort string `json:"sort" gorm:"type:bigint(20);comment:排序"` // 排序 - Path string `json:"path" gorm:"type:varchar(255);comment:路径"` // 路径 - models.ControlBy - models.ModelTime - Children []SysFileDirL `json:"children,omitempty" gorm:"-"` // 下级信息 -} +//type SysFileDirL struct { +// models.Model +// Label string `json:"label" gorm:"type:varchar(255);comment:目录名称"` // 目录名称 +// PId int `json:"pId" gorm:"type:int(11);comment:上级目录"` // 上级目录 +// Sort string `json:"sort" gorm:"type:bigint(20);comment:排序"` // 排序 +// Path string `json:"path" gorm:"type:varchar(255);comment:路径"` // 路径 +// models.ControlBy +// models.ModelTime +// Children []SysFileDirL `json:"children,omitempty" gorm:"-"` // 下级信息 +//} func (SysFileDir) TableName() string { /**/ return "sys_file_dir" diff --git a/app/other/models/sys_file_info.go b/app/other/models/sys_file_info.go new file mode 100644 index 00000000..be9ed7a1 --- /dev/null +++ b/app/other/models/sys_file_info.go @@ -0,0 +1,31 @@ +package models + +import ( + "go-admin/common/models" +) + +type SysFileInfo struct { + models.Model + Type string `json:"type" gorm:"size:255;comment:类型"` // + Name string `json:"name" gorm:"size:255;comment:名称"` // + Size string `json:"size" gorm:"size:11;comment:大小"` // + PId int `json:"p_id" gorm:"size:11;comment:目录"` // + Source string `json:"source" gorm:"size:255;comment:来源"` // + Url string `json:"url" gorm:"size:255;comment:地址"` // + FullUrl string `json:"full_url" gorm:"size:255;comment:全地址"` // + models.ControlBy + models.ModelTime +} + +func (SysFileInfo) TableName() string { + return "sys_file_info" +} + +func (e *SysFileInfo) Generate() models.ActiveRecord { + o := *e + return &o +} + +func (e *SysFileInfo) GetId() interface{} { + return e.Id +} diff --git a/app/other/router/init_router.go b/app/other/router/init_router.go new file mode 100644 index 00000000..7054bf56 --- /dev/null +++ b/app/other/router/init_router.go @@ -0,0 +1,42 @@ +package router + +import ( + "os" + + "github.com/gin-gonic/gin" + log "github.com/go-admin-team/go-admin-core/logger" + "github.com/go-admin-team/go-admin-core/sdk" + "github.com/go-admin-team/go-admin-core/sdk/pkg" + + common "go-admin/common/middleware" +) + +// InitRouter 路由初始化,不要怀疑,这里用到了 +func InitRouter() { + var r *gin.Engine + h := sdk.Runtime.GetEngine() + if h == nil { + h = gin.New() + sdk.Runtime.SetEngine(h) + } + switch h.(type) { + case *gin.Engine: + r = h.(*gin.Engine) + default: + log.Fatal("not support other engine") + os.Exit(-1) + } + + r.Use(common.Sentinel()). + Use(common.RequestId(pkg.TrafficKey)) + common.InitMiddleware(r) + // the jwt middleware + authMiddleware, err := common.AuthInit() + if err != nil { + log.Fatalf("JWT Init Error, %s", err.Error()) + } + + // 注册业务路由 + // TODO: 这里可存放业务路由,里边并无实际路由只有演示代码 + initRouter(r, authMiddleware) +} \ No newline at end of file diff --git a/app/admin/router/monitor.go b/app/other/router/monitor.go similarity index 88% rename from app/admin/router/monitor.go rename to app/other/router/monitor.go index b6cf2fab..f3c6c788 100644 --- a/app/admin/router/monitor.go +++ b/app/other/router/monitor.go @@ -20,10 +20,14 @@ func Monitor() { switch h.(type) { case *gin.Engine: r = h.(*gin.Engine) + //开发环境启动监控指标 + setHandle(r) default: log.Fatal("not support other engine") } - //开发环境启动监控指标 +} + +func setHandle(r *gin.Engine) { r.GET("/metrics", transfer.Handler(promhttp.Handler())) //健康检查 r.GET("/health", func(c *gin.Context) { diff --git a/app/other/router/router.go b/app/other/router/router.go new file mode 100644 index 00000000..a99da845 --- /dev/null +++ b/app/other/router/router.go @@ -0,0 +1,43 @@ +package router + + +import ( + "github.com/gin-gonic/gin" + jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" +) + +var ( + routerNoCheckRole = make([]func(*gin.RouterGroup), 0) + routerCheckRole = make([]func(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware), 0) +) + +// initRouter 路由示例 +func initRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) *gin.Engine { + + // 无需认证的路由 + noCheckRoleRouter(r) + // 需要认证的路由 + checkRoleRouter(r, authMiddleware) + + return r +} + +// noCheckRoleRouter 无需认证的路由示例 +func noCheckRoleRouter(r *gin.Engine) { + // 可根据业务需求来设置接口版本 + v1 := r.Group("/api/v1") + + for _, f := range routerNoCheckRole { + f(v1) + } +} + +// checkRoleRouter 需要认证的路由示例 +func checkRoleRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) { + // 可根据业务需求来设置接口版本 + v1 := r.Group("/api/v1") + + for _, f := range routerCheckRole { + f(v1, authMiddleware) + } +} \ No newline at end of file diff --git a/app/admin/router/sys_china_area_data.go b/app/other/router/sys_china_area_data.go similarity index 77% rename from app/admin/router/sys_china_area_data.go rename to app/other/router/sys_china_area_data.go index 0dca1098..3a23d25c 100644 --- a/app/admin/router/sys_china_area_data.go +++ b/app/other/router/sys_china_area_data.go @@ -3,8 +3,8 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/sys_china_area_data" - middleware2 "go-admin/common/middleware" + "go-admin/app/other/apis" + "go-admin/common/middleware" ) func init() { @@ -13,8 +13,8 @@ func init() { // 需认证的路由代码 func registerSysChinaAreaDataRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_china_area_data.SysChinaAreaData{} - r := v1.Group("/sys_china_area_data").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) + api := apis.SysChinaAreaData{} + r := v1.Group("/sys_china_area_data").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { r.GET("", api.GetSysChinaAreaDataList) r.GET("/:id", api.GetSysChinaAreaData) diff --git a/app/admin/router/sys_file_dir.go b/app/other/router/sys_file_dir.go similarity index 71% rename from app/admin/router/sys_file_dir.go rename to app/other/router/sys_file_dir.go index d2d47193..156175cb 100644 --- a/app/admin/router/sys_file_dir.go +++ b/app/other/router/sys_file_dir.go @@ -3,8 +3,8 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/sys_file" - middleware2 "go-admin/common/middleware" + "go-admin/app/other/apis" + "go-admin/common/middleware" ) func init() { @@ -13,8 +13,8 @@ func init() { // 需认证的路由代码 func registerSysFileDirRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_file.SysFileDir{} - r := v1.Group("/sysfiledir").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) + api := apis.SysFileDir{} + r := v1.Group("/file-dir").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { r.GET("", api.GetSysFileDirList) r.GET("/:id", api.GetSysFileDir) diff --git a/app/admin/router/sys_file_info.go b/app/other/router/sys_file_info.go similarity index 71% rename from app/admin/router/sys_file_info.go rename to app/other/router/sys_file_info.go index 5cd1d458..09c0f62a 100644 --- a/app/admin/router/sys_file_info.go +++ b/app/other/router/sys_file_info.go @@ -3,8 +3,8 @@ package router import ( "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" - "go-admin/app/admin/apis/sys_file" - middleware2 "go-admin/common/middleware" + "go-admin/app/other/apis" + "go-admin/common/middleware" ) func init() { @@ -13,8 +13,8 @@ func init() { // 需认证的路由代码 func registerSysFileInfoRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - api := sys_file.SysFileInfo{} - r := v1.Group("/sysfileinfo").Use(authMiddleware.MiddlewareFunc()).Use(middleware2.AuthCheckRole()) + api := apis.SysFileInfo{} + r := v1.Group("/file-info").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { r.GET("", api.GetSysFileInfoList) r.GET("/:id", api.GetSysFileInfo) diff --git a/app/admin/service/dto/syschinaareadata.go b/app/other/service/dto/sys_china_area_data.go similarity index 93% rename from app/admin/service/dto/syschinaareadata.go rename to app/other/service/dto/sys_china_area_data.go index 773571e8..63ab10ba 100644 --- a/app/admin/service/dto/syschinaareadata.go +++ b/app/other/service/dto/sys_china_area_data.go @@ -1,12 +1,12 @@ package dto import ( + models2 "go-admin/app/other/models" "time" "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/api" - "go-admin/app/admin/models" "go-admin/common/dto" common "go-admin/common/models" ) @@ -53,9 +53,8 @@ func (s *SysChinaAreaDataControl) Bind(ctx *gin.Context) error { return err } -func (s *SysChinaAreaDataControl) Generate() (*models.SysChinaAreaData, error) { - return &models.SysChinaAreaData{ - +func (s *SysChinaAreaDataControl) Generate() (*models2.SysChinaAreaData, error) { + return &models2.SysChinaAreaData{ Model: common.Model{Id: s.Id}, PId: s.PId, Name: s.Name, diff --git a/app/admin/service/dto/sys_file_dir.go b/app/other/service/dto/sys_file_dir.go similarity index 94% rename from app/admin/service/dto/sys_file_dir.go rename to app/other/service/dto/sys_file_dir.go index 834258cf..dab253ba 100644 --- a/app/admin/service/dto/sys_file_dir.go +++ b/app/other/service/dto/sys_file_dir.go @@ -3,8 +3,8 @@ package dto import ( "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/api" + "go-admin/app/other/models" - "go-admin/app/admin/models" "go-admin/common/dto" common "go-admin/common/models" ) @@ -38,7 +38,7 @@ func (m *SysFileDirSearch) Generate() dto.Index { } type SysFileDirControl struct { - ID int `uri:"Id" comment:"标识"` // 标识 + Id int `uri:"Id" comment:"标识"` // 标识 Label string `json:"label" comment:"目录名称"` PId int `json:"pId" comment:"上级目录"` Sort string `json:"sort" comment:"排序"` @@ -68,7 +68,7 @@ func (s *SysFileDirControl) Generate() dto.Control { func (s *SysFileDirControl) GenerateM() (common.ActiveRecord, error) { return &models.SysFileDir{ - Model: common.Model{Id: s.ID}, + Model: common.Model{Id: s.Id}, Label: s.Label, PId: s.PId, //Sort: s.Sort, @@ -81,7 +81,7 @@ func (s *SysFileDirControl) GenerateM() (common.ActiveRecord, error) { } func (s *SysFileDirControl) GetId() interface{} { - return s.ID + return s.Id } type SysFileDirById struct { diff --git a/app/admin/service/dto/sys_file_info.go b/app/other/service/dto/sys_file_info.go similarity index 92% rename from app/admin/service/dto/sys_file_info.go rename to app/other/service/dto/sys_file_info.go index ba6e4bdc..955555a9 100644 --- a/app/admin/service/dto/sys_file_info.go +++ b/app/other/service/dto/sys_file_info.go @@ -1,7 +1,7 @@ package dto import ( - "go-admin/app/admin/models" + "go-admin/app/other/models" "go-admin/common/dto" common "go-admin/common/models" ) @@ -20,7 +20,7 @@ func (m *SysFileInfoSearch) GetNeedSearch() interface{} { } type SysFileInfoControl struct { - ID int `uri:"id" comment:"标识"` // 标识 + Id int `uri:"id" comment:"标识"` // 标识 Type string `json:"type" comment:"类型"` Name string `json:"name" comment:"名称"` Size string `json:"size" comment:"大小"` @@ -34,7 +34,7 @@ type SysFileInfoControl struct { func (s *SysFileInfoControl) Generate() (*models.SysFileInfo, error) { return &models.SysFileInfo{ - Model: common.Model{Id: s.ID}, + Model: common.Model{Id: s.Id}, Type: s.Type, Name: s.Name, Size: s.Size, diff --git a/app/admin/service/sys_china_area_data.go b/app/other/service/sys_china_area_data.go similarity index 70% rename from app/admin/service/sys_china_area_data.go rename to app/other/service/sys_china_area_data.go index 2ff6aa6d..c2a4ec49 100644 --- a/app/admin/service/sys_china_area_data.go +++ b/app/other/service/sys_china_area_data.go @@ -2,11 +2,11 @@ package service import ( "errors" + models2 "go-admin/app/other/models" + dto2 "go-admin/app/other/service/dto" "gorm.io/gorm" - "go-admin/app/admin/models" - "go-admin/app/admin/service/dto" "go-admin/common/actions" cDto "go-admin/common/dto" "go-admin/common/service" @@ -17,8 +17,8 @@ type SysChinaAreaData struct { } // GetSysChinaAreaDataPage 获取SysChinaAreaData列表 -func (e *SysChinaAreaData) GetSysChinaAreaDataPage(c *dto.SysChinaAreaDataSearch, p *actions.DataPermission, list *[]models.SysChinaAreaData, count *int64) error { - var data models.SysChinaAreaData +func (e *SysChinaAreaData) GetSysChinaAreaDataPage(c *dto2.SysChinaAreaDataSearch, p *actions.DataPermission, list *[]models2.SysChinaAreaData, count *int64) error { + var data models2.SysChinaAreaData err := e.Orm.Model(&data). Scopes( @@ -36,8 +36,8 @@ func (e *SysChinaAreaData) GetSysChinaAreaDataPage(c *dto.SysChinaAreaDataSearch } // GetSysChinaAreaData 获取SysChinaAreaData对象 -func (e *SysChinaAreaData) GetSysChinaAreaData(d *dto.SysChinaAreaDataById, p *actions.DataPermission, model *models.SysChinaAreaData) error { - var data models.SysChinaAreaData +func (e *SysChinaAreaData) GetSysChinaAreaData(d *dto2.SysChinaAreaDataById, p *actions.DataPermission, model *models2.SysChinaAreaData) error { + var data models2.SysChinaAreaData err := e.Orm.Model(&data). Scopes( @@ -57,8 +57,8 @@ func (e *SysChinaAreaData) GetSysChinaAreaData(d *dto.SysChinaAreaDataById, p *a } // InsertSysChinaAreaData 创建SysChinaAreaData对象 -func (e *SysChinaAreaData) InsertSysChinaAreaData(model *models.SysChinaAreaData) error { - var data models.SysChinaAreaData +func (e *SysChinaAreaData) InsertSysChinaAreaData(model *models2.SysChinaAreaData) error { + var data models2.SysChinaAreaData err := e.Orm.Model(&data). Create(model).Error @@ -70,7 +70,7 @@ func (e *SysChinaAreaData) InsertSysChinaAreaData(model *models.SysChinaAreaData } // UpdateSysChinaAreaData 修改SysChinaAreaData对象 -func (e *SysChinaAreaData) UpdateSysChinaAreaData(c *models.SysChinaAreaData, p *actions.DataPermission) error { +func (e *SysChinaAreaData) UpdateSysChinaAreaData(c *models2.SysChinaAreaData, p *actions.DataPermission) error { db := e.Orm.Model(c). Scopes( actions.Permission(c.TableName(), p), @@ -86,9 +86,9 @@ func (e *SysChinaAreaData) UpdateSysChinaAreaData(c *models.SysChinaAreaData, p } // RemoveSysChinaAreaData 删除SysChinaAreaData -func (e *SysChinaAreaData) RemoveSysChinaAreaData(d *dto.SysChinaAreaDataById, p *actions.DataPermission) error { +func (e *SysChinaAreaData) RemoveSysChinaAreaData(d *dto2.SysChinaAreaDataById, p *actions.DataPermission) error { - var data models.SysChinaAreaData + var data models2.SysChinaAreaData db := e.Orm.Model(&data). Scopes( diff --git a/app/admin/service/sys_file_dir.go b/app/other/service/sys_file_dir.go similarity index 86% rename from app/admin/service/sys_file_dir.go rename to app/other/service/sys_file_dir.go index 541eec50..422252f9 100644 --- a/app/admin/service/sys_file_dir.go +++ b/app/other/service/sys_file_dir.go @@ -3,11 +3,11 @@ package service import ( "errors" "fmt" + "go-admin/app/other/models" + "go-admin/app/other/service/dto" "gorm.io/gorm" - "go-admin/app/admin/models" - "go-admin/app/admin/service/dto" "go-admin/common/actions" cDto "go-admin/common/dto" "go-admin/common/service" @@ -18,7 +18,7 @@ type SysFileDir struct { } // GetSysFileDirPage 获取SysFileDir列表 -func (e *SysFileDir) GetSysFileDirPage(c *dto.SysFileDirSearch, list *[]models.SysFileDirL) error { +func (e *SysFileDir) GetSysFileDirPage(c *dto.SysFileDirSearch, list *[]models.SysFileDir) error { var err error var data models.SysFileDir @@ -65,7 +65,7 @@ func (e *SysFileDir) InsertSysFileDir(model *dto.SysFileDirControl) error { e.Log.Errorf("db error: %s", err) return err } - path := fmt.Sprintf("/%d", model.ID) + path := fmt.Sprintf("/%d", model.Id) //db = e.Orm.Model(&data). // First(&data, model.GetId()) //err = db.Error @@ -79,7 +79,7 @@ func (e *SysFileDir) InsertSysFileDir(model *dto.SysFileDirControl) error { } //var mp = map[string]string{} //mp["path"] = path - if err = e.Orm.Model(&models.SysFileDir{}).Where("id = ?", model.ID).Update("path", path).Error; err != nil { + if err = e.Orm.Model(&models.SysFileDir{}).Where("id = ?", model.Id).Update("path", path).Error; err != nil { return err } @@ -94,7 +94,7 @@ func (e *SysFileDir) UpdateSysFileDir(c *dto.SysFileDirControl, p *actions.DataP db := e.Orm. Scopes( actions.Permission(data.TableName(), p), - ).Where(c.ID).Updates(data) + ).Where(c.Id).Updates(data) if db.Error != nil { e.Log.Errorf("db error: %s", err) return err @@ -126,10 +126,10 @@ func (e *SysFileDir) RemoveSysFileDir(d *dto.SysFileDirById, p *actions.DataPerm return nil } -func (e *SysFileDir) SetSysFileDir(c *dto.SysFileDirSearch) (*[]models.SysFileDirL, error) { - var list []models.SysFileDirL +func (e *SysFileDir) SetSysFileDir(c *dto.SysFileDirSearch) (*[]models.SysFileDir, error) { + var list []models.SysFileDir err := e.GetSysFileDirPage(c, &list) - m := make([]models.SysFileDirL, 0) + m := make([]models.SysFileDir, 0) for i := 0; i < len(list); i++ { if list[i].PId != 0 { continue @@ -140,21 +140,21 @@ func (e *SysFileDir) SetSysFileDir(c *dto.SysFileDirSearch) (*[]models.SysFileDi return &m, err } -func SysFileDirCall(list *[]models.SysFileDirL, m models.SysFileDirL) models.SysFileDirL { +func SysFileDirCall(list *[]models.SysFileDir, m models.SysFileDir) models.SysFileDir { listGroup := *list - min := make([]models.SysFileDirL, 0) + min := make([]models.SysFileDir, 0) for j := 0; j < len(listGroup); j++ { if m.Id != listGroup[j].PId { continue } - mi := models.SysFileDirL{} + mi := models.SysFileDir{} mi.Id = listGroup[j].Id mi.PId = listGroup[j].PId mi.Label = listGroup[j].Label //mi.Sort = listGroup[j].Sort mi.CreatedAt = listGroup[j].CreatedAt mi.UpdatedAt = listGroup[j].UpdatedAt - mi.Children = []models.SysFileDirL{} + mi.Children = []models.SysFileDir{} ms := SysFileDirCall(list, mi) min = append(min, ms) } diff --git a/app/admin/service/sys_file_info.go b/app/other/service/sys_file_info.go similarity index 71% rename from app/admin/service/sys_file_info.go rename to app/other/service/sys_file_info.go index d72db34c..de840abd 100644 --- a/app/admin/service/sys_file_info.go +++ b/app/other/service/sys_file_info.go @@ -2,11 +2,11 @@ package service import ( "errors" + models2 "go-admin/app/other/models" + dto2 "go-admin/app/other/service/dto" "gorm.io/gorm" - "go-admin/app/admin/models" - "go-admin/app/admin/service/dto" "go-admin/common/actions" cDto "go-admin/common/dto" "go-admin/common/service" @@ -17,9 +17,9 @@ type SysFileInfo struct { } // GetSysFileInfoPage 获取SysFileInfo列表 -func (e *SysFileInfo) GetSysFileInfoPage(c *dto.SysFileInfoSearch, p *actions.DataPermission, list *[]models.SysFileInfo, count *int64) error { +func (e *SysFileInfo) GetSysFileInfoPage(c *dto2.SysFileInfoSearch, p *actions.DataPermission, list *[]models2.SysFileInfo, count *int64) error { var err error - var data models.SysFileInfo + var data models2.SysFileInfo err = e.Orm.Model(&data). Scopes( @@ -37,9 +37,9 @@ func (e *SysFileInfo) GetSysFileInfoPage(c *dto.SysFileInfoSearch, p *actions.Da } // GetSysFileInfo 获取SysFileInfo对象 -func (e *SysFileInfo) GetSysFileInfo(d *dto.SysFileInfoById, p *actions.DataPermission, model *models.SysFileInfo) error { +func (e *SysFileInfo) GetSysFileInfo(d *dto2.SysFileInfoById, p *actions.DataPermission, model *models2.SysFileInfo) error { var err error - var data models.SysFileInfo + var data models2.SysFileInfo db := e.Orm.Model(&data). Scopes( @@ -60,9 +60,9 @@ func (e *SysFileInfo) GetSysFileInfo(d *dto.SysFileInfoById, p *actions.DataPerm } // InsertSysFileInfo 创建SysFileInfo对象 -func (e *SysFileInfo) InsertSysFileInfo(model *dto.SysFileInfoControl) error { +func (e *SysFileInfo) InsertSysFileInfo(model *dto2.SysFileInfoControl) error { var err error - var data *models.SysFileInfo + var data *models2.SysFileInfo data, err = model.Generate() if err != nil { @@ -80,9 +80,9 @@ func (e *SysFileInfo) InsertSysFileInfo(model *dto.SysFileInfoControl) error { } // UpdateSysFileInfo 修改SysFileInfo对象 -func (e *SysFileInfo) UpdateSysFileInfo(c *dto.SysFileInfoControl, p *actions.DataPermission) error { +func (e *SysFileInfo) UpdateSysFileInfo(c *dto2.SysFileInfoControl, p *actions.DataPermission) error { var err error - var data *models.SysFileInfo + var data *models2.SysFileInfo data, err = c.Generate() if err != nil { @@ -92,7 +92,7 @@ func (e *SysFileInfo) UpdateSysFileInfo(c *dto.SysFileInfoControl, p *actions.Da err = e.Orm.Debug().Model(&data). Scopes( actions.Permission(data.TableName(), p), - ).Where("id = ?", c.ID).Updates(&data).Error + ).Where("id = ?", c.Id).Updates(&data).Error if err != nil { e.Log.Errorf("db error: %s", err) return err @@ -105,9 +105,9 @@ func (e *SysFileInfo) UpdateSysFileInfo(c *dto.SysFileInfoControl, p *actions.Da } // RemoveSysFileInfo 删除SysFileInfo -func (e *SysFileInfo) RemoveSysFileInfo(d *dto.SysFileInfoById, p *actions.DataPermission) error { +func (e *SysFileInfo) RemoveSysFileInfo(d *dto2.SysFileInfoById, p *actions.DataPermission) error { var err error - var data models.SysFileInfo + var data models2.SysFileInfo db := e.Orm.Model(&data). Scopes( diff --git a/cmd/api/cms.go b/cmd/api/cms.go new file mode 100644 index 00000000..563565c6 --- /dev/null +++ b/cmd/api/cms.go @@ -0,0 +1,8 @@ +package api + +import "go-admin/app/cms/router" + +func init() { + //注册路由 fixme 其他应用的路由,在本目录新建文件放在init方法 + AppRouters = append(AppRouters, router.InitRouter) +} \ No newline at end of file diff --git a/cmd/api/jobs.go b/cmd/api/jobs.go new file mode 100644 index 00000000..37de4ee5 --- /dev/null +++ b/cmd/api/jobs.go @@ -0,0 +1,8 @@ +package api + +import "go-admin/app/jobs/router" + +func init() { + //注册路由 fixme 其他应用的路由,在本目录新建文件放在init方法 + AppRouters = append(AppRouters, router.InitRouter) +} \ No newline at end of file diff --git a/cmd/api/other.go b/cmd/api/other.go new file mode 100644 index 00000000..f9c990f5 --- /dev/null +++ b/cmd/api/other.go @@ -0,0 +1,8 @@ +package api + +import "go-admin/app/other/router" + +func init() { + //注册路由 fixme 其他应用的路由,在本目录新建文件放在init方法 + AppRouters = append(AppRouters, router.InitRouter) +} \ No newline at end of file diff --git a/cmd/api/server.go b/cmd/api/server.go index 48b13d67..58cd32f7 100644 --- a/cmd/api/server.go +++ b/cmd/api/server.go @@ -3,6 +3,7 @@ package api import ( "context" "fmt" + router2 "go-admin/app/other/router" "log" "net/http" "os" @@ -115,7 +116,7 @@ func run() error { if config.ApplicationConfig.Mode == "dev" { //监控 - AppRouters = append(AppRouters, router.Monitor) + AppRouters = append(AppRouters, router2.Monitor) } for _, f := range AppRouters { diff --git a/common/global/adm.go b/common/global/adm.go index 8757d137..1e9d1f9c 100644 --- a/common/global/adm.go +++ b/common/global/adm.go @@ -1,8 +1,8 @@ package global const ( - // go-admin Version Info - Version = "1.3.3" + // Version go-admin version info + Version = "1.4.0" ) var ( diff --git a/common/middleware/handler/user.go b/common/middleware/handler/user.go index 346d59d0..64477377 100644 --- a/common/middleware/handler/user.go +++ b/common/middleware/handler/user.go @@ -6,26 +6,26 @@ import ( ) type SysUser struct { - models.ControlBy - models.ModelTime UserId int `gorm:"primaryKey;autoIncrement;comment:编码" json:"userId"` - Username string `json:"username" gorm:"type:varchar(64);comment:用户名"` - Password string `json:"-" gorm:"type:varchar(128);comment:密码"` - NickName string `json:"nickName" gorm:"type:varchar(128);comment:昵称"` - Phone string `json:"phone" gorm:"type:varchar(11);comment:手机号"` - RoleId int `json:"roleId" gorm:"type:bigint(20);comment:角色ID"` - Salt string `json:"-" gorm:"type:varchar(255);comment:加盐"` - Avatar string `json:"avatar" gorm:"type:varchar(255);comment:头像"` - Sex string `json:"sex" gorm:"type:varchar(255);comment:性别"` - Email string `json:"email" gorm:"type:varchar(128);comment:邮箱"` - DeptId int `json:"deptId" gorm:"type:bigint(20);comment:部门"` - PostId int `json:"postId" gorm:"type:bigint(20);comment:岗位"` - Remark string `json:"remark" gorm:"type:varchar(255);comment:备注"` - Status string `json:"status" gorm:"type:varchar(4);comment:状态"` + Username string `json:"username" gorm:"size:64;comment:用户名"` + Password string `json:"-" gorm:"size:128;comment:密码"` + NickName string `json:"nickName" gorm:"size:128;comment:昵称"` + Phone string `json:"phone" gorm:"size:11;comment:手机号"` + RoleId int `json:"roleId" gorm:"size:20;comment:角色ID"` + Salt string `json:"-" gorm:"size:255;comment:加盐"` + Avatar string `json:"avatar" gorm:"size:255;comment:头像"` + Sex string `json:"sex" gorm:"size:255;comment:性别"` + Email string `json:"email" gorm:"size:128;comment:邮箱"` + DeptId int `json:"deptId" gorm:"size:20;comment:部门"` + PostId int `json:"postId" gorm:"size:20;comment:岗位"` + Remark string `json:"remark" gorm:"size:255;comment:备注"` + Status string `json:"status" gorm:"size:4;comment:状态"` DeptIds []int `json:"deptIds" gorm:"-"` PostIds []int `json:"postIds" gorm:"-"` RoleIds []int `json:"roleIds" gorm:"-"` //Dept *SysDept `json:"dept"` + models.ControlBy + models.ModelTime } func (SysUser) TableName() string { diff --git a/config/extend.go b/config/extend.go index e477fbf9..0d4c9622 100644 --- a/config/extend.go +++ b/config/extend.go @@ -1,13 +1,13 @@ package config -var ExtConfig Extand +var ExtConfig Extend -// 扩展配置 +// Extend 扩展配置 // extend: // demo: // name: demo-name // 使用方法: config.ExtConfig......即可!! -type Extand struct { +type Extend struct { // Demo Demo // 这里配置对应配置文件的结构即可 } From 6222765e20f39afc647d3c27fa791423f17f03aa Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Sat, 8 May 2021 16:50:51 +0800 Subject: [PATCH 11/15] =?UTF-8?q?feat=E2=9C=A8=E4=BC=98=E5=8C=96=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/sys_config.go | 18 ++++++++---------- app/admin/service/dto/sys_config.go | 16 ++++++++-------- app/admin/service/sys_config.go | 4 ++-- app/other/apis/file.go | 13 ++++++------- common/apis/api.go | 25 ++++++++++++++++++++++--- 5 files changed, 46 insertions(+), 30 deletions(-) diff --git a/app/admin/apis/sys_config.go b/app/admin/apis/sys_config.go index f16310dd..65feb253 100644 --- a/app/admin/apis/sys_config.go +++ b/app/admin/apis/sys_config.go @@ -1,6 +1,7 @@ package apis import ( + "github.com/gin-gonic/gin/binding" "net/http" "github.com/gin-gonic/gin" @@ -25,9 +26,9 @@ func (e SysConfig) GetSysConfigList(c *gin.Context) { log.Error(err) return } - + err = e.Bind(d, binding.Query) //查询列表 - err = d.Bind(c) + //err = d.Bind(c) if err != nil { log.Errorf("参数验证失败, error:%s", err) e.Error(500, err, "参数验证失败") @@ -58,7 +59,7 @@ func (e SysConfig) GetSysConfigBySysApp(c *gin.Context) { log.Error(err) return } - err = d.Bind(c) + err = e.Bind(d, binding.Query) if err != nil { log.Errorf("参数验证失败, error:%s", err) e.Error(500, err, "参数验证失败") @@ -98,6 +99,7 @@ func (e SysConfig) GetSysConfig(c *gin.Context) { return } //查看详情 + err = e.Bind(control) err = control.Bind(c) if err != nil { e.Error(http.StatusUnprocessableEntity, err, "参数验证失败") @@ -132,7 +134,7 @@ func (e SysConfig) InsertSysConfig(c *gin.Context) { } //新增操作 - err = control.Bind(c) + err = e.Bind(control, binding.JSON) if err != nil { e.Error(http.StatusUnprocessableEntity, err, "参数验证失败") log.Errorf("Orm获取失败, error:%s", err) @@ -175,7 +177,7 @@ func (e SysConfig) UpdateSysConfig(c *gin.Context) { } //更新操作 - err = control.Bind(c) + err = e.Bind(control, binding.JSON) if err != nil { e.Error(http.StatusUnprocessableEntity, err, "参数验证失败") @@ -216,19 +218,16 @@ func (e SysConfig) DeleteSysConfig(c *gin.Context) { } //删除操作 - err = control.Bind(c) + err = e.Bind(control, binding.JSON) if err != nil { log.Errorf("Bind error: %s", err) e.Error(http.StatusUnprocessableEntity, err, "参数验证失败") - log.Errorf("Orm获取失败, error:%s", err) - e.Error(500, err, "Orm获取失败") return } object, err := control.GenerateM() if err != nil { e.Error(http.StatusInternalServerError, err, "模型生成失败") log.Errorf("Orm获取失败, error:%s", err) - e.Error(500, err, "Orm获取失败") return } @@ -242,7 +241,6 @@ func (e SysConfig) DeleteSysConfig(c *gin.Context) { if err != nil { e.Error(http.StatusUnprocessableEntity, err, "删除失败") log.Errorf("Orm获取失败, error:%s", err) - e.Error(500, err, "Orm获取失败") return } e.OK(object.GetId(), "删除成功") diff --git a/app/admin/service/dto/sys_config.go b/app/admin/service/dto/sys_config.go index be498452..f5bd85ff 100644 --- a/app/admin/service/dto/sys_config.go +++ b/app/admin/service/dto/sys_config.go @@ -26,14 +26,14 @@ func (m *SysConfigSearch) GetNeedSearch() interface{} { } // Bind 映射上下文中的结构体数据 -func (m *SysConfigSearch) Bind(ctx *gin.Context) error { - log := api.GetRequestLogger(ctx) - err := ctx.ShouldBind(m) - if err != nil { - log.Debugf("ShouldBind error: %s", err.Error()) - } - return err -} +//func (m *SysConfigSearch) Bind(ctx *gin.Context) error { +// log := api.GetRequestLogger(ctx) +// err := ctx.ShouldBind(m) +// if err != nil { +// log.Debugf("ShouldBind error: %s", err.Error()) +// } +// return err +//} // SysConfigControl 增、改使用的结构体 type SysConfigControl struct { diff --git a/app/admin/service/sys_config.go b/app/admin/service/sys_config.go index 2cf60a17..73e23e43 100644 --- a/app/admin/service/sys_config.go +++ b/app/admin/service/sys_config.go @@ -104,7 +104,7 @@ func (e *SysConfig) RemoveSysConfig(d *dto.SysConfigById, c *system.SysConfig) e var data system.SysConfig db := e.Orm.Model(&data). - Where(d.GetId()).Delete(c) + Where(d.Ids).Delete(c) if db.Error != nil { err = db.Error e.Log.Errorf("Service RemoveSysConfig error:%s", err) @@ -129,4 +129,4 @@ func (e *SysConfig) GetSysConfigByKEY(c *dto.SysConfigControl) error { } return nil -} \ No newline at end of file +} diff --git a/app/other/apis/file.go b/app/other/apis/file.go index 84fa7e76..76e40e26 100644 --- a/app/other/apis/file.go +++ b/app/other/apis/file.go @@ -30,6 +30,7 @@ type File struct { apis.Api } +// UploadFile 上传图片 // @Summary 上传图片 // @Description 获取JSON // @Tags 公共接口 @@ -40,31 +41,29 @@ type File struct { // @Success 200 {string} string "{"code": -1, "message": "添加失败"}" // @Router /api/v1/public/uploadFile [post] func (e File) UploadFile(c *gin.Context) { - e.Context = c - + e.SetContext(c) tag, _ := c.GetPostForm("type") - urlPerfix := fmt.Sprintf("http://%s/", c.Request.Host) + urlPrefix := fmt.Sprintf("http://%s/", c.Request.Host) var fileResponse FileResponse if tag == "" { e.Error(500, nil, "缺少标识") - //app.Error(c, 200, errors.New(""), "缺少标识") return } else { switch tag { case "1": // 单图 var done bool - fileResponse, done = e.singleFile(c, fileResponse, urlPerfix) + fileResponse, done = e.singleFile(c, fileResponse, urlPrefix) if done { return } e.OK(fileResponse, "上传成功") return case "2": // 多图 - multipartFile := e.multipleFile(c, urlPerfix) + multipartFile := e.multipleFile(c, urlPrefix) e.OK(multipartFile, "上传成功") return case "3": // base64 - fileResponse = e.baseImg(c, fileResponse, urlPerfix) + fileResponse = e.baseImg(c, fileResponse, urlPrefix) e.OK(fileResponse, "上传成功") } } diff --git a/common/apis/api.go b/common/apis/api.go index c85ef686..055433ad 100644 --- a/common/apis/api.go +++ b/common/apis/api.go @@ -2,10 +2,10 @@ package apis import ( "github.com/gin-gonic/gin/binding" + "github.com/go-admin-team/go-admin-core/sdk/api" "net/http" "github.com/gin-gonic/gin" - "github.com/go-admin-team/go-admin-core/sdk/api" "github.com/go-admin-team/go-admin-core/sdk/pkg" "github.com/go-admin-team/go-admin-core/sdk/pkg/logger" "github.com/go-admin-team/go-admin-core/sdk/pkg/response" @@ -19,11 +19,12 @@ type Api struct { func (e Api) SetContext(c *gin.Context) { e.Context = c - e.Logger = api.GetRequestLogger(c) + } // GetLogger 获取上下文提供的日志 func (e Api) GetLogger() *logger.Logger { + e.Logger = api.GetRequestLogger(e.Context) return e.Logger } @@ -33,6 +34,24 @@ func (e Api) Bind(d interface{}, bindings ...binding.Binding) error { switch bindings[i] { case binding.JSON: err = e.Context.ShouldBindWith(d, binding.JSON) + case binding.XML: + err = e.Context.ShouldBindWith(d, binding.XML) + case binding.Form: + err = e.Context.ShouldBindWith(d, binding.Form) + case binding.Query: + err = e.Context.ShouldBindWith(d, binding.Query) + case binding.FormPost: + err = e.Context.ShouldBindWith(d, binding.FormPost) + case binding.FormMultipart: + err = e.Context.ShouldBindWith(d, binding.FormMultipart) + case binding.ProtoBuf: + err = e.Context.ShouldBindWith(d, binding.ProtoBuf) + case binding.MsgPack: + err = e.Context.ShouldBindWith(d, binding.MsgPack) + case binding.YAML: + err = e.Context.ShouldBindWith(d, binding.YAML) + case binding.Header: + err = e.Context.ShouldBindWith(d, binding.Header) default: err = e.Context.ShouldBindUri(d) } @@ -71,4 +90,4 @@ func (e Api) PageOK(result interface{}, count int, pageIndex int, pageSize int, // Custom 兼容函数 func (e Api) Custom(data gin.H) { response.Custum(e.Context, data) -} \ No newline at end of file +} From 9bc2791b26e88cae004018ee0e6cb7c116495cd6 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Sat, 8 May 2021 17:02:56 +0800 Subject: [PATCH 12/15] =?UTF-8?q?fix=F0=9F=90=9B=20=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=AE=A1=E7=90=86\=E5=86=85=E5=AE=B9=E7=AE=A1=E7=90=86\?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E7=A8=8B=E5=BA=8F\=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=9A=84=E5=B7=B2=E7=9F=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/dto/generate.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/dto/generate.go b/common/dto/generate.go index 74c976b5..c5ed7fae 100644 --- a/common/dto/generate.go +++ b/common/dto/generate.go @@ -22,7 +22,7 @@ func (s *ObjectById) Bind(ctx *gin.Context) error { return err } if ctx.Request.Method == http.MethodDelete { - err = ctx.ShouldBind(&s.Ids) + err = ctx.ShouldBind(&s) if err != nil { log.Warnf("ShouldBind error: %s", err.Error()) return err From 6a2557064ccc1e8ec6370b306e305a89fd3f9ea6 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Sat, 8 May 2021 17:16:52 +0800 Subject: [PATCH 13/15] =?UTF-8?q?fix=F0=9F=90=9B=20gen=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/sys_file/sys_file_dir.go | 8 ++++---- app/admin/apis/sys_job/sys_job.go | 3 ++- app/admin/apis/tools/gen.go | 5 +++-- common/apis/api.go | 5 ++--- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/app/admin/apis/sys_file/sys_file_dir.go b/app/admin/apis/sys_file/sys_file_dir.go index 8d8f349a..d275638c 100644 --- a/app/admin/apis/sys_file/sys_file_dir.go +++ b/app/admin/apis/sys_file/sys_file_dir.go @@ -19,7 +19,7 @@ type SysFileDir struct { } func (e SysFileDir) GetSysFileDirList(c *gin.Context) { - e.SetContext(c) + e.Context = c log := e.GetLogger() search := new(dto.SysFileDirSearch) db, err := e.GetOrm() @@ -49,7 +49,7 @@ func (e SysFileDir) GetSysFileDirList(c *gin.Context) { func (e SysFileDir) GetSysFileDir(c *gin.Context) { control := new(dto.SysFileDirById) - e.SetContext(c) + e.Context = c log := e.GetLogger() db, err := e.GetOrm() if err != nil { @@ -81,7 +81,7 @@ func (e SysFileDir) GetSysFileDir(c *gin.Context) { func (e SysFileDir) InsertSysFileDir(c *gin.Context) { control := new(dto.SysFileDirControl) - e.SetContext(c) + e.Context = c log := e.GetLogger() db, err := e.GetOrm() if err != nil { @@ -195,4 +195,4 @@ func (e SysFileDir) DeleteSysFileDir(c *gin.Context) { return } e.OK(control.Id, "删除成功") -} \ No newline at end of file +} diff --git a/app/admin/apis/sys_job/sys_job.go b/app/admin/apis/sys_job/sys_job.go index 95b65b8c..c0667ddd 100644 --- a/app/admin/apis/sys_job/sys_job.go +++ b/app/admin/apis/sys_job/sys_job.go @@ -16,6 +16,7 @@ type SysJob struct { // RemoveJobForService 调用service实现 func (e SysJob) RemoveJobForService(c *gin.Context) { + e.Context = c log := e.GetLogger() db, err := e.GetOrm() if err != nil { @@ -23,7 +24,7 @@ func (e SysJob) RemoveJobForService(c *gin.Context) { return } var v dto.GeneralDelDto - err = c.BindUri(&v) + err = c.Bind(&v) if err != nil { log.Warnf("参数验证错误, error: %s", err) e.Error(http.StatusUnprocessableEntity, err, "参数验证失败") diff --git a/app/admin/apis/tools/gen.go b/app/admin/apis/tools/gen.go index 06063438..b96c1a36 100644 --- a/app/admin/apis/tools/gen.go +++ b/app/admin/apis/tools/gen.go @@ -273,6 +273,7 @@ func (e Gen) genApiToFile(c *gin.Context, tab tools.SysTables) { } func (e Gen) ActionsGen(c *gin.Context, tab tools.SysTables) { + e.Context = c log := api.GetRequestLogger(c) basePath := "template/v4/" routerFile := basePath + "actions/router_check_role.go.template" @@ -338,7 +339,7 @@ func (e Gen) ActionsGen(c *gin.Context, tab tools.SysTables) { func (e Gen) GenMenuAndApi(c *gin.Context) { log := api.GetRequestLogger(c) - + e.Context = c table := tools.SysTables{} timeNow := pkg.GetCurrentTime() id, err := pkg.StringToInt(c.Param("tableId")) @@ -578,4 +579,4 @@ func (e Gen) GenMenuAndApi(c *gin.Context) { ADelete.MenuId, err = ADelete.Create(db) e.OK("", "数据生成成功!") -} \ No newline at end of file +} diff --git a/common/apis/api.go b/common/apis/api.go index c85ef686..0bc6567a 100644 --- a/common/apis/api.go +++ b/common/apis/api.go @@ -19,12 +19,11 @@ type Api struct { func (e Api) SetContext(c *gin.Context) { e.Context = c - e.Logger = api.GetRequestLogger(c) } // GetLogger 获取上下文提供的日志 func (e Api) GetLogger() *logger.Logger { - return e.Logger + return api.GetRequestLogger(e.Context) } func (e Api) Bind(d interface{}, bindings ...binding.Binding) error { @@ -71,4 +70,4 @@ func (e Api) PageOK(result interface{}, count int, pageIndex int, pageSize int, // Custom 兼容函数 func (e Api) Custom(data gin.H) { response.Custum(e.Context, data) -} \ No newline at end of file +} From a8c5f19075cb72a0a75aa525a20b6bddbbd74ad3 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Sat, 8 May 2021 18:28:51 +0800 Subject: [PATCH 14/15] =?UTF-8?q?refactor=F0=9F=8E=A8=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E5=86=99=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/tools/dbcolumns.go | 1 + app/admin/apis/tools/dbtables.go | 2 +- app/admin/apis/tools/gen.go | 3 ++- app/admin/apis/tools/systables.go | 1 + 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/admin/apis/tools/dbcolumns.go b/app/admin/apis/tools/dbcolumns.go index aa4ca76e..1f82df95 100644 --- a/app/admin/apis/tools/dbcolumns.go +++ b/app/admin/apis/tools/dbcolumns.go @@ -10,6 +10,7 @@ import ( "go-admin/app/admin/models/tools" ) +// GetDBColumnList 分页列表数据 // @Summary 分页列表数据 / page list data // @Description 数据库表列分页列表 / database table column page list // @Tags 工具 / Tools diff --git a/app/admin/apis/tools/dbtables.go b/app/admin/apis/tools/dbtables.go index 12f6ae46..6c94aae8 100644 --- a/app/admin/apis/tools/dbtables.go +++ b/app/admin/apis/tools/dbtables.go @@ -12,6 +12,7 @@ import ( "go-admin/app/admin/models/tools" ) +// GetDBTableList 分页列表数据 // @Summary 分页列表数据 / page list data // @Description 数据库表分页列表 / database table page list // @Tags 工具 / Tools @@ -32,7 +33,6 @@ func (e *Gen) GetDBTableList(c *gin.Context) { err = errors.New("对不起,sqlite3 或 postgres 不支持代码生成!") log.Warn(err) e.Error(403, err, "") - //c.JSON(http.StatusOK, res.ReturnError(500)) return } diff --git a/app/admin/apis/tools/gen.go b/app/admin/apis/tools/gen.go index b96c1a36..27f54c72 100644 --- a/app/admin/apis/tools/gen.go +++ b/app/admin/apis/tools/gen.go @@ -338,8 +338,9 @@ func (e Gen) ActionsGen(c *gin.Context, tab tools.SysTables) { } func (e Gen) GenMenuAndApi(c *gin.Context) { - log := api.GetRequestLogger(c) e.Context = c + log := e.GetLogger() + table := tools.SysTables{} timeNow := pkg.GetCurrentTime() id, err := pkg.StringToInt(c.Param("tableId")) diff --git a/app/admin/apis/tools/systables.go b/app/admin/apis/tools/systables.go index 9e95d83e..c0f4dfda 100644 --- a/app/admin/apis/tools/systables.go +++ b/app/admin/apis/tools/systables.go @@ -18,6 +18,7 @@ type SysTable struct { apis.Api } +// GetSysTableList 分页列表数据 // @Summary 分页列表数据 // @Description 生成表分页列表 // @Tags 工具 - 生成表 From ef33508e2b850d57b98317ad5c705b044fd70a19 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Sat, 8 May 2021 18:29:14 +0800 Subject: [PATCH 15/15] =?UTF-8?q?fix=F0=9F=90=9B=20update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/sys_config.go | 2 +- common/apis/api.go | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/admin/apis/sys_config.go b/app/admin/apis/sys_config.go index 65feb253..fdb1d307 100644 --- a/app/admin/apis/sys_config.go +++ b/app/admin/apis/sys_config.go @@ -18,7 +18,7 @@ type SysConfig struct { } func (e SysConfig) GetSysConfigList(c *gin.Context) { - e.Context = c + e.SetContext(c) //Context = c log := e.GetLogger() d := new(dto.SysConfigSearch) db, err := e.GetOrm() diff --git a/common/apis/api.go b/common/apis/api.go index d4aa0767..ba93ecd4 100644 --- a/common/apis/api.go +++ b/common/apis/api.go @@ -1,12 +1,12 @@ package apis import ( + "fmt" + "github.com/go-admin-team/go-admin-core/sdk/api" "net/http" - "github.com/gin-gonic/gin/binding" - "github.com/go-admin-team/go-admin-core/sdk/api" - "github.com/gin-gonic/gin" + "github.com/gin-gonic/gin/binding" "github.com/go-admin-team/go-admin-core/sdk/pkg" "github.com/go-admin-team/go-admin-core/sdk/pkg/logger" "github.com/go-admin-team/go-admin-core/sdk/pkg/response" @@ -19,14 +19,24 @@ type Api struct { } func (e Api) SetContext(c *gin.Context) { + fmt.Println(&c) e.Context = c + fmt.Println(&e.Context) } // GetLogger 获取上下文提供的日志 func (e Api) GetLogger() *logger.Logger { + return api.GetRequestLogger(e.Context) } +//func (e Api) GetLogger() (*logger.Logger, error) { +// if e.Context == nil { +// return nil, errors.New("API context cannot be nil") +// } +// return api.GetRequestLogger(e.Context), nil +//} + func (e Api) Bind(d interface{}, bindings ...binding.Binding) error { var err error for i := range bindings {