Merge branch 'dev' of github.com:go-admin-team/go-admin into dev

This commit is contained in:
wenjianzhang
2021-05-20 23:00:49 +08:00
6 changed files with 177 additions and 6 deletions
+3 -2
View File
@@ -6,10 +6,11 @@ import (
"github.com/go-admin-team/go-admin-core/sdk/pkg"
"gorm.io/gorm"
"github.com/go-admin-team/go-admin-core/sdk/service"
"go-admin/app/admin/models"
"go-admin/app/admin/service/dto"
cDto "go-admin/common/dto"
"github.com/go-admin-team/go-admin-core/sdk/service"
)
type SysMenu struct {
@@ -312,4 +313,4 @@ func (e *SysMenu) getByRoleName(roleName string) ([]models.SysMenu, error) {
e.Log.Errorf("db error:%s", err)
}
return MenuList, err
}
}
+138
View File
@@ -0,0 +1,138 @@
package apis
import (
"errors"
"fmt"
"net/http"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
"github.com/go-admin-team/go-admin-core/logger"
"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/response"
"gorm.io/gorm"
"go-admin/common/service"
)
type Api struct {
Context *gin.Context
Logger *logger.Helper
Orm *gorm.DB
Errors error
}
func (e *Api) AddError(err error) {
if e.Errors == nil {
e.Errors = err
} else if err != nil {
e.Logger.Error(err)
e.Errors = fmt.Errorf("%v; %w", e.Error, err)
}
}
// MakeContext 设置http上下文
func (e *Api) MakeContext(c *gin.Context) *Api {
fmt.Println(&c)
e.Context = c
e.Logger = api.GetRequestLogger(c)
fmt.Println(&e.Context)
return e
}
// GetLogger 获取上下文提供的日志
func (e Api) GetLogger() *logger.Helper {
return api.GetRequestLogger(e.Context)
}
func (e *Api) Bind(d interface{}, bindings ...binding.Binding) *Api {
var err error
if len(bindings) == 0 {
bindings = append(bindings, binding.JSON, nil)
}
for i := range bindings {
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)
}
if err != nil {
e.AddError(err)
}
}
return e
}
// GetOrm 获取Orm DB
func (e Api) GetOrm() (*gorm.DB, error) {
db, err := pkg.GetOrm(e.Context)
if err != nil {
e.Error(http.StatusInternalServerError, err, "数据库连接获取失败")
return nil, err
}
return db, nil
}
// MakeOrm 设置Orm DB
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.AddError(err)
return e
}
db, err := pkg.GetOrm(e.Context)
if err != nil {
e.Logger.Error(http.StatusInternalServerError, err, "数据库连接获取失败")
e.AddError(err)
}
e.Orm = db
return e
}
func (e *Api) MakeService(c *service.Service) *Api {
c.Log = e.Logger
c.Orm = e.Orm
return e
}
// Error 通常错误数据处理
func (e Api) Error(code int, err error, msg string) {
response.Error(e.Context, code, err, msg)
}
// OK 通常成功数据处理
func (e Api) OK(data interface{}, msg string) {
response.OK(e.Context, data, msg)
}
// PageOK 分页数据处理
func (e Api) PageOK(result interface{}, count int, pageIndex int, pageSize int, msg string) {
response.PageOK(e.Context, result, count, pageIndex, pageSize, msg)
}
// Custom 兼容函数
func (e Api) Custom(data gin.H) {
response.Custum(e.Context, data)
}
+1 -1
View File
@@ -76,7 +76,7 @@ func LoggerToFile() gin.HandlerFunc {
"method": reqMethod,
"uri": reqUri,
}
log.Info(logData)
log.WithFields(logData).Info()
//l := logger.Logger{Logger: log.Fields(logData)}
//l.Info(logData)
if c.Request.Method != "GET" && c.Request.Method != "OPTIONS" && config.LoggerConfig.EnabledDB {
+7
View File
@@ -1,6 +1,8 @@
package middleware
import (
"github.com/go-admin-team/go-admin-core/logger"
"github.com/go-admin-team/go-admin-core/sdk/pkg"
"net/http"
"strings"
@@ -24,6 +26,11 @@ func RequestId(trafficKey string) gin.HandlerFunc {
}
c.Request.Header.Set(trafficKey, requestId)
c.Set(trafficKey, requestId)
c.Set(pkg.LoggerKey,
logger.NewHelper(logger.DefaultLogger).
WithFields(map[string]interface{}{
trafficKey: requestId,
}))
c.Next()
}
}
+25
View File
@@ -0,0 +1,25 @@
package service
import (
"fmt"
"github.com/go-admin-team/go-admin-core/logger"
"gorm.io/gorm"
)
type Service struct {
Orm *gorm.DB
Msg string
MsgID string
Log *logger.Helper
Error error
}
func (db *Service) AddError(err error) error {
if db.Error == nil {
db.Error = err
} else if err != nil {
db.Error = fmt.Errorf("%v; %w", db.Error, err)
}
return db.Error
}
+3 -3
View File
@@ -9,8 +9,8 @@ require (
github.com/bytedance/go-tagexpr/v2 v2.7.10
github.com/casbin/casbin/v2 v2.25.1
github.com/gin-gonic/gin v1.7.1
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/go-admin-team/go-admin-core v1.3.5-rc.0
github.com/go-admin-team/go-admin-core/sdk v1.3.0-rc.3.0.20210519112810-242d8766f4b9
github.com/google/uuid v1.2.0
github.com/mssola/user_agent v0.5.2
github.com/opentracing/opentracing-go v1.1.0
@@ -28,4 +28,4 @@ require (
gorm.io/driver/postgres v1.0.6-0.20201208020313-1ed927cfab53
gorm.io/driver/sqlite v1.1.5-0.20201206014648-c84401fbe3ba
gorm.io/gorm v1.21.6
)
)