diff --git a/app/admin/apis/sys_dict_data.go b/app/admin/apis/sys_dict_data.go index 07c3f4d9..3cf5486d 100644 --- a/app/admin/apis/sys_dict_data.go +++ b/app/admin/apis/sys_dict_data.go @@ -1,14 +1,12 @@ package apis import ( - "github.com/gin-gonic/gin/binding" - "go-admin/app/admin/models" - "net/http" - "github.com/gin-gonic/gin" + "github.com/gin-gonic/gin/binding" "github.com/go-admin-team/go-admin-core/sdk/api" "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" _ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" + "go-admin/app/admin/models" "go-admin/app/admin/service" "go-admin/app/admin/service/dto" @@ -82,7 +80,7 @@ func (e SysDictData) Get(c *gin.Context) { err = s.Get(&req, &object) if err != nil { e.Logger.Warnf("Get error: %s", err.Error()) - e.Error(http.StatusInternalServerError, err, "查询失败") + e.Error(500, err, "查询失败") return } diff --git a/app/admin/apis/sys_role.go b/app/admin/apis/sys_role.go index e5be2e17..04aa5ece 100644 --- a/app/admin/apis/sys_role.go +++ b/app/admin/apis/sys_role.go @@ -170,7 +170,7 @@ func (e SysRole) Update(c *gin.Context) { } _, err = global.LoadPolicy(c) if err != nil { - e.Error(http.StatusInternalServerError, err, "") + e.Error(500, err, "") return } e.OK(req.GetId(), "更新成功") @@ -227,7 +227,7 @@ func (e SysRole) Update2Status(c *gin.Context) { req := dto.UpdateStatusReq{} err := e.MakeContext(c). MakeOrm(). - Bind(&req, nil, binding.JSON). + Bind(&req). MakeService(&s.Service). Errors if err != nil { @@ -255,7 +255,7 @@ func (e SysRole) Update2Status(c *gin.Context) { // @Router /api/v1/role-status/{id} [put] // @Security Bearer func (e SysRole) Update2DataScope(c *gin.Context) { - s := &service.SysRole{} + s := service.SysRole{} req := dto.RoleDataScopeReq{} err := e.MakeContext(c). MakeOrm(). @@ -275,7 +275,7 @@ func (e SysRole) Update2DataScope(c *gin.Context) { data.UpdateBy = user.GetUserId(c) err = s.UpdateDataScope(&req).Error if err != nil { - e.Error(http.StatusInternalServerError, err, "") + e.Error(500, err, fmt.Sprintf("更新角色数据权限失败!错误详情:%s", err.Error())) return } e.OK(nil, "操作成功") diff --git a/app/admin/models/sys_opera_log.go b/app/admin/models/sys_opera_log.go index a120a409..823d9452 100644 --- a/app/admin/models/sys_opera_log.go +++ b/app/admin/models/sys_opera_log.go @@ -57,24 +57,28 @@ func SaveOperaLog(message storage.Messager) (err error) { if db == nil { err = errors.New("db not exist") log.Errorf("host[%s]'s %s", message.GetPrefix(), err.Error()) - return err + // Log writing to the database ignores error + return nil } var rb []byte rb, err = json.Marshal(message.GetValues()) if err != nil { log.Errorf("json Marshal error, %s", err.Error()) - return err + // Log writing to the database ignores error + return nil } var l SysOperaLog err = json.Unmarshal(rb, &l) if err != nil { log.Errorf("json Unmarshal error, %s", err.Error()) - return err + // Log writing to the database ignores error + return nil } err = db.Create(&l).Error if err != nil { log.Errorf("db create error, %s", err.Error()) - return err + // Log writing to the database ignores error + return nil } return nil } diff --git a/app/admin/router/sys_router.go b/app/admin/router/sys_router.go index 3af90e73..944f8959 100644 --- a/app/admin/router/sys_router.go +++ b/app/admin/router/sys_router.go @@ -1,6 +1,7 @@ package router import ( + "github.com/go-admin-team/go-admin-core/sdk/config" "go-admin/app/admin/apis" "mime" @@ -21,7 +22,9 @@ func InitSysRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) *gin.Rou // 静态文件 sysStaticFileRouter(g) // swagger;注意:生产环境可以注释掉 - sysSwaggerRouter(g) + if config.ApplicationConfig.Mode != "prod" { + sysSwaggerRouter(g) + } // 需要认证 sysCheckRoleRouterInit(g, authMiddleware) return g @@ -33,7 +36,9 @@ func sysBaseRouter(r *gin.RouterGroup) { go ws.WebsocketManager.SendService() go ws.WebsocketManager.SendAllService() - r.GET("/", apis.HelloWorld) + if config.ApplicationConfig.Mode != "prod" { + r.GET("/", apis.GoAdmin) + } r.GET("/info", handler.Ping) } @@ -43,7 +48,9 @@ func sysStaticFileRouter(r *gin.RouterGroup) { return } r.Static("/static", "./static") - r.Static("/form-generator", "./static/form-generator") + if config.ApplicationConfig.Mode != "prod" { + r.Static("/form-generator", "./static/form-generator") + } } func sysSwaggerRouter(r *gin.RouterGroup) { @@ -51,16 +58,19 @@ func sysSwaggerRouter(r *gin.RouterGroup) { } func sysCheckRoleRouterInit(r *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - r.Group("").Use(authMiddleware.MiddlewareFunc()).GET("/ws/:id/:channel", ws.WebsocketManager.WsClient) - r.Group("").Use(authMiddleware.MiddlewareFunc()).GET("/wslogout/:id/:channel", ws.WebsocketManager.UnWsClient) - v1 := r.Group("/api/v1") + wss:=r.Group("").Use(authMiddleware.MiddlewareFunc()) + { + wss.GET("/ws/:id/:channel", ws.WebsocketManager.WsClient) + wss.GET("/wslogout/:id/:channel", ws.WebsocketManager.UnWsClient) + } - v1.POST("/login", authMiddleware.LoginHandler) - // Refresh time can be longer than token timeout - v1.GET("/refresh_token", authMiddleware.RefreshHandler) - //registerPageRouter(v1, authMiddleware) + v1 := r.Group("/api/v1") + { + v1.POST("/login", authMiddleware.LoginHandler) + // Refresh time can be longer than token timeout + v1.GET("/refresh_token", authMiddleware.RefreshHandler) + } registerBaseRouter(v1, authMiddleware) - //registerDictRouter(v1, authMiddleware) } func registerBaseRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { diff --git a/app/jobs/apis/sys_job.go b/app/jobs/apis/sys_job.go index 2c0789bb..58174002 100644 --- a/app/jobs/apis/sys_job.go +++ b/app/jobs/apis/sys_job.go @@ -33,7 +33,7 @@ func (e SysJob) RemoveJobForService(c *gin.Context) { err = s.RemoveJob(&v) if err != nil { e.Logger.Errorf("RemoveJob error, %s", err.Error()) - e.Error(http.StatusInternalServerError, err, "") + e.Error(500, err, "") return } e.OK(nil, s.Msg) @@ -62,7 +62,7 @@ func (e SysJob) StartJobForService(c *gin.Context) { err = s.StartJob(&v) if err != nil { log.Errorf("GetCrontabKey error, %s", err.Error()) - e.Error(http.StatusInternalServerError, err, "") + e.Error(500, err, "") return } e.OK(nil, s.Msg) diff --git a/app/other/apis/tools/gen.go b/app/other/apis/tools/gen.go index dd13d1a2..4b47a0fc 100644 --- a/app/other/apis/tools/gen.go +++ b/app/other/apis/tools/gen.go @@ -2,9 +2,9 @@ package tools import ( "bytes" + "fmt" "go-admin/app/admin/service" "go-admin/app/admin/service/dto" - "net/http" "strconv" "strings" "text/template" @@ -29,57 +29,57 @@ func (e Gen) Preview(c *gin.Context) { id, err := pkg.StringToInt(c.Param("tableId")) if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("tableId接收失败!错误详情:%s", err.Error())) return } table.TableId = id t1, err := template.ParseFiles("template/v4/model.go.template") if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("model模版读取失败!错误详情:%s", err.Error())) return } t2, err := template.ParseFiles("template/v4/no_actions/apis.go.template") if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("api模版读取失败!错误详情:%s", err.Error())) return } t3, err := template.ParseFiles("template/v4/js.go.template") if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("js模版读取失败!错误详情:%s", err.Error())) return } t4, err := template.ParseFiles("template/v4/vue.go.template") if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("vue模版读取失败!错误详情:%s", err.Error())) return } t5, err := template.ParseFiles("template/v4/no_actions/router_check_role.go.template") if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("路由模版读取失败!错误详情:%s", err.Error())) return } t6, err := template.ParseFiles("template/v4/dto.go.template") if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("dto模版读取失败!错误详情:%s", err.Error())) return } t7, err := template.ParseFiles("template/v4/no_actions/service.go.template") if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("service模版读取失败!错误详情:%s", err.Error())) return } db, err := pkg.GetOrm(c) if err != nil { log.Errorf("get db connection error, %s", err.Error()) - e.Error(http.StatusInternalServerError, err, "数据库连接获取失败") + e.Error(500, err, fmt.Sprintf("数据库链接获取失败!错误详情:%s", err.Error())) return } @@ -117,14 +117,14 @@ func (e Gen) GenCode(c *gin.Context) { id, err := pkg.StringToInt(c.Param("tableId")) if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("tableId参数接收失败!错误详情:%s", err.Error())) return } db, err := pkg.GetOrm(c) if err != nil { log.Errorf("get db connection error, %s", err.Error()) - e.Error(http.StatusInternalServerError, err, "数据库连接获取失败") + e.Error(500, err, fmt.Sprintf("数据库链接获取失败!错误详情:%s", err.Error())) return } @@ -147,14 +147,14 @@ func (e Gen) GenApiToFile(c *gin.Context) { id, err := pkg.StringToInt(c.Param("tableId")) if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("tableId参数获取失败!错误详情:%s", err.Error())) return } db, err := pkg.GetOrm(c) if err != nil { log.Errorf("get db connection error, %s", err.Error()) - e.Error(http.StatusInternalServerError, err, "数据库连接获取失败") + e.Error(500, err, fmt.Sprintf("数据库链接获取失败!错误详情:%s", err.Error())) return } @@ -179,43 +179,43 @@ func (e Gen) NOActionsGen(c *gin.Context, tab tools.SysTables) { t1, err := template.ParseFiles(basePath + "model.go.template") if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("model模版读取失败!错误详情:%s", err.Error())) return } t2, err := template.ParseFiles(basePath + "no_actions/apis.go.template") if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("api模版读取失败!错误详情:%s", err.Error())) return } t3, err := template.ParseFiles(routerFile) if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("路由模版失败!错误详情:%s", err.Error())) return } t4, err := template.ParseFiles(basePath + "js.go.template") if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("js模版解析失败!错误详情:%s", err.Error())) return } t5, err := template.ParseFiles(basePath + "vue.go.template") if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("vue模版解析失败!错误详情:%s", err.Error())) return } t6, err := template.ParseFiles(basePath + "dto.go.template") if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("dto模版解析失败失败!错误详情:%s", err.Error())) return } t7, err := template.ParseFiles(basePath + "no_actions/service.go.template") if err != nil { log.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("service模版失败!错误详情:%s", err.Error())) return } @@ -265,7 +265,7 @@ func (e Gen) genApiToFile(c *gin.Context, tab tools.SysTables) { t1, err := template.ParseFiles(basePath + "api_migrate.template") if err != nil { e.Logger.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("数据迁移模版解析失败!错误详情:%s", err.Error())) return } i := strconv.FormatInt(time.Now().UnixNano()/1e6, 10) @@ -299,31 +299,31 @@ func (e Gen) ActionsGen(c *gin.Context, tab tools.SysTables) { t1, err := template.ParseFiles(basePath + "model.go.template") if err != nil { e.Logger.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("model模版解析失败!错误详情:%s", err.Error())) return } t3, err := template.ParseFiles(routerFile) if err != nil { e.Logger.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("路由模版解析失败!错误详情:%s", err.Error())) return } t4, err := template.ParseFiles(basePath + "js.go.template") if err != nil { e.Logger.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("js模版解析失败!错误详情:%s", err.Error())) return } t5, err := template.ParseFiles(basePath + "vue.go.template") if err != nil { e.Logger.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("vue模版解析失败!错误详情:%s", err.Error())) return } t6, err := template.ParseFiles(basePath + "dto.go.template") if err != nil { e.Logger.Error(err) - e.Error(500, err, "") + e.Error(500, err, fmt.Sprintf("dto模版解析失败!错误详情:%s", err.Error())) return } @@ -352,7 +352,7 @@ func (e Gen) ActionsGen(c *gin.Context, tab tools.SysTables) { } func (e Gen) GenMenuAndApi(c *gin.Context) { - s:=service.SysMenu{} + s := service.SysMenu{} err := e.MakeContext(c). MakeOrm(). MakeService(&s.Service). @@ -365,8 +365,11 @@ func (e Gen) GenMenuAndApi(c *gin.Context) { table := tools.SysTables{} id, err := pkg.StringToInt(c.Param("tableId")) - pkg.HasError(err, "", -1) - + if err != nil{ + e.Logger.Error(err) + e.Error(500,err,fmt.Sprintf("tableId参数解析失败!错误详情:%s", err.Error())) + return + } table.TableId = id tab, _ := table.Get(e.Orm) @@ -472,6 +475,5 @@ func (e Gen) GenMenuAndApi(c *gin.Context) { MDelete.UpdateBy = 1 s.Insert(&MDelete) - e.OK("", "数据生成成功!") } diff --git a/app/other/router/file.go b/app/other/router/file.go index 395d95fa..c3bd3ac2 100644 --- a/app/other/router/file.go +++ b/app/other/router/file.go @@ -2,15 +2,19 @@ package router import ( "github.com/gin-gonic/gin" + jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" "go-admin/app/other/apis" ) func init() { - routerNoCheckRole = append(routerNoCheckRole, registerFileRouter) + routerCheckRole = append(routerCheckRole, registerFileRouter) } // 需认证的路由代码 -func registerFileRouter(v1 *gin.RouterGroup) { +func registerFileRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { var api = apis.File{} - v1.POST("/public/uploadFile", api.UploadFile) + r := v1.Group("").Use(authMiddleware.MiddlewareFunc()) + { + r.POST("/public/uploadFile", api.UploadFile) + } } diff --git a/common/actions/create.go b/common/actions/create.go index 82d08b83..81989e50 100644 --- a/common/actions/create.go +++ b/common/actions/create.go @@ -33,14 +33,14 @@ func CreateAction(control dto.Control) gin.HandlerFunc { var object models.ActiveRecord object, err = req.GenerateM() if err != nil { - response.Error(c, http.StatusInternalServerError, err, "模型生成失败") + response.Error(c, 500, err, "模型生成失败") return } object.SetCreateBy(user.GetUserId(c)) err = db.WithContext(c).Create(object).Error if err != nil { log.Errorf("Create error: %s", err) - response.Error(c, http.StatusInternalServerError, err, "创建失败") + response.Error(c, 500, err, "创建失败") return } response.OK(c, object.GetId(), "创建成功") diff --git a/common/actions/delete.go b/common/actions/delete.go index ff4f35fe..f98e1fb0 100644 --- a/common/actions/delete.go +++ b/common/actions/delete.go @@ -34,7 +34,7 @@ func DeleteAction(control dto.Control) gin.HandlerFunc { var object models.ActiveRecord object, err = req.GenerateM() if err != nil { - response.Error(c, http.StatusInternalServerError, err, "模型生成失败") + response.Error(c, 500, err, "模型生成失败") return } @@ -48,7 +48,7 @@ func DeleteAction(control dto.Control) gin.HandlerFunc { ).Where(req.GetId()).Delete(object) if db.Error != nil { log.Errorf("MsgID[%s] Delete error: %s", msgID, err) - response.Error(c, http.StatusInternalServerError, err, "删除失败") + response.Error(c, 500, err, "删除失败") return } if db.RowsAffected == 0 { diff --git a/common/actions/index.go b/common/actions/index.go index aeafe3f5..44530949 100644 --- a/common/actions/index.go +++ b/common/actions/index.go @@ -49,7 +49,7 @@ func IndexAction(m models.ActiveRecord, d dto.Index, f func() interface{}) gin.H Count(&count).Error if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) { log.Errorf("MsgID[%s] Index error: %s", msgID, err) - response.Error(c, http.StatusInternalServerError, err, "查询失败") + response.Error(c, 500, err, "查询失败") return } response.PageOK(c, list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功") diff --git a/common/actions/permission.go b/common/actions/permission.go index c7a12a74..82532c41 100644 --- a/common/actions/permission.go +++ b/common/actions/permission.go @@ -2,7 +2,6 @@ package actions import ( "errors" - "net/http" "github.com/gin-gonic/gin" log "github.com/go-admin-team/go-admin-core/logger" @@ -34,7 +33,7 @@ func PermissionAction() gin.HandlerFunc { p, err = newDataPermission(db, userId) if err != nil { log.Errorf("MsgID[%s] PermissionAction error: %s", msgID, err) - response.Error(c, http.StatusInternalServerError, err, "权限范围鉴定错误") + response.Error(c, 500, err, "权限范围鉴定错误") c.Abort() return } diff --git a/common/actions/update.go b/common/actions/update.go index 51be20b6..3dd63b1e 100644 --- a/common/actions/update.go +++ b/common/actions/update.go @@ -33,7 +33,7 @@ func UpdateAction(control dto.Control) gin.HandlerFunc { var object models.ActiveRecord object, err = req.GenerateM() if err != nil { - response.Error(c, http.StatusInternalServerError, err, "模型生成失败") + response.Error(c, 500, err, "模型生成失败") return } object.SetUpdateBy(user.GetUserId(c)) @@ -46,7 +46,7 @@ func UpdateAction(control dto.Control) gin.HandlerFunc { ).Where(req.GetId()).Updates(object) if db.Error != nil { log.Errorf("MsgID[%s] Update error: %s", msgID, err) - response.Error(c, http.StatusInternalServerError, err, "更新失败") + response.Error(c, 500, err, "更新失败") return } if db.RowsAffected == 0 { diff --git a/common/actions/view.go b/common/actions/view.go index 9ee3b12b..b134f537 100644 --- a/common/actions/view.go +++ b/common/actions/view.go @@ -34,7 +34,7 @@ func ViewAction(control dto.Control, f func() interface{}) gin.HandlerFunc { var object models.ActiveRecord object, err = req.GenerateM() if err != nil { - response.Error(c, http.StatusInternalServerError, err, "模型生成失败") + response.Error(c, 500, err, "模型生成失败") return } @@ -58,7 +58,7 @@ func ViewAction(control dto.Control, f func() interface{}) gin.HandlerFunc { } if err != nil { log.Errorf("MsgID[%s] View error: %s", msgID, err) - response.Error(c, http.StatusInternalServerError, err, "查看失败") + response.Error(c, 500, err, "查看失败") return } response.OK(c, rsp, "查询成功") diff --git a/common/apis/api.go b/common/apis/api.go index 9f09ec2e..9b542b28 100644 --- a/common/apis/api.go +++ b/common/apis/api.go @@ -3,7 +3,6 @@ package apis import ( "errors" "fmt" - "net/http" "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding" @@ -85,7 +84,7 @@ func (e *Api) Bind(d interface{}, bindings ...binding.Binding) *Api { func (e Api) GetOrm() (*gorm.DB, error) { db, err := pkg.GetOrm(e.Context) if err != nil { - e.Error(http.StatusInternalServerError, err, "数据库连接获取失败") + e.Error(500, err, "数据库连接获取失败") return nil, err } return db, nil @@ -96,13 +95,13 @@ func (e *Api) MakeOrm() *Api { var err error if e.Logger == nil { err = errors.New("at MakeOrm logger is nil") - //e.Logger.Error(http.StatusInternalServerError, err, "at MakeOrm logger is nil") + //e.Logger.Error(500, err, "at MakeOrm logger is nil") e.AddError(err) return e } db, err := pkg.GetOrm(e.Context) if err != nil { - e.Logger.Error(http.StatusInternalServerError, err, "数据库连接获取失败") + e.Logger.Error(500, err, "数据库连接获取失败") e.AddError(err) } e.Orm = db diff --git a/common/middleware/handler/auth.go b/common/middleware/handler/auth.go index 45dbb69a..222bd65d 100644 --- a/common/middleware/handler/auth.go +++ b/common/middleware/handler/auth.go @@ -68,7 +68,7 @@ func Authenticator(c *gin.Context) (interface{}, error) { db, err := pkg.GetOrm(c) if err != nil { log.Errorf("get db error, %s", err.Error()) - response.Error(c, http.StatusInternalServerError, err, "数据库连接获取失败") + response.Error(c, 500, err, "数据库连接获取失败") return nil, jwt.ErrFailedAuthentication }