lijian 2 anni fa
parent
commit
16bc72b5e7

+ 7 - 7
app/bll/b_demo.go

@@ -7,16 +7,16 @@ import (
 
 // IDemo demo业务逻辑接口
 type IDemo interface {
-	// 查询数据
+	// Query 查询数据
 	Query(ctx context.Context, params schema.DemoQueryParam, opts ...schema.DemoQueryOptions) (*schema.DemoQueryResult, error)
-	// 查询指定数据
+	// Get 查询指定数据
 	Get(ctx context.Context, recordID string, opts ...schema.DemoQueryOptions) (*schema.Demo, error)
-	// 创建数据
+	// Create 创建数据
 	Create(ctx context.Context, item schema.Demo) (*schema.Demo, error)
-	// 更新数据
+	// Update 更新数据
 	Update(ctx context.Context, recordID string, item schema.Demo) (*schema.Demo, error)
-	// 删除数据
+	// Delete 删除数据
 	Delete(ctx context.Context, recordID string) error
-	// 更新状态
+	// UpdateStatus 更新状态
 	UpdateStatus(ctx context.Context, recordID string, status int) error
-}
+}

+ 1 - 1
app/bll/b_trans.go

@@ -4,6 +4,6 @@ import "context"
 
 // ITrans 事务管理接口
 type ITrans interface {
-	// 执行事务
+	// Exec 执行事务
 	Exec(ctx context.Context, fn func(context.Context) error) error
 }

+ 1 - 1
app/bll/impl/internal/b_demo.go

@@ -2,7 +2,7 @@ package internal
 
 import (
 	"context"
-	"github.com/gogf/gf/util/guid"
+	"github.com/gogf/gf/v2/util/guid"
 	"gxt-api-frame/app/errors"
 	"gxt-api-frame/app/model"
 	"gxt-api-frame/app/schema"

+ 2 - 2
app/errors/error.go

@@ -1,6 +1,6 @@
 package errors
 
-import "github.com/gogf/gf/errors/gerror"
+import "github.com/gogf/gf/v2/errors/gerror"
 
 // 定义别名
 var (
@@ -11,7 +11,7 @@ var (
 )
 
 var (
-	ErrBadRequest              = New400Response("请求发生错误")
+	ErrBadRequest = New400Response("请求发生错误")
 
 	ErrNoPerm                = NewResponse(401, "无访问权限", 401)
 	ErrInvalidToken          = NewResponse(9999, "令牌失效", 401)

+ 3 - 4
app/errors/response.go

@@ -1,6 +1,6 @@
 package errors
 
-import "github.com/gogf/gf/net/ghttp"
+import "github.com/gogf/gf/v2/net/ghttp"
 
 // ResponseError 响应错误
 type ResponseError struct {
@@ -78,16 +78,15 @@ func New500Response(msg string) error {
 	return NewResponse(500, msg, 500)
 }
 
-
 func Json(r *ghttp.Request, code int, v interface{}) {
 	if code == 500 || code == 401 {
 		r.Response.WriteStatus(code)
 		r.Response.ClearBuffer()
 	}
-	_ = r.Response.WriteJson(v)
+	r.Response.WriteJson(v)
 }
 
-// 返回JSON数据并退出当前HTTP执行函数。
+// JsonExit 返回JSON数据并退出当前HTTP执行函数。
 func JsonExit(r *ghttp.Request, err int, data interface{}) {
 	Json(r, err, data)
 	r.Exit()

+ 6 - 6
app/model/m_demo.go

@@ -7,16 +7,16 @@ import (
 
 // IDemo demo存储接口
 type IDemo interface {
-	// 查询数据
+	// Query 查询数据
 	Query(ctx context.Context, params schema.DemoQueryParam, opts ...schema.DemoQueryOptions) (*schema.DemoQueryResult, error)
-	// 查询指定数据
+	// Get 查询指定数据
 	Get(ctx context.Context, recordID string, opts ...schema.DemoQueryOptions) (*schema.Demo, error)
-	// 创建数据
+	// Create 创建数据
 	Create(ctx context.Context, item schema.Demo) error
-	// 更新数据
+	// Update 更新数据
 	Update(ctx context.Context, recordID string, item schema.Demo) error
-	// 删除数据
+	// Delete 删除数据
 	Delete(ctx context.Context, recordID string) error
-	// 更新状态
+	// UpdateStatus 更新状态
 	UpdateStatus(ctx context.Context, recordID string, status int) error
 }

+ 4 - 4
app/model/m_trans.go

@@ -4,10 +4,10 @@ import "context"
 
 // ITrans 事务管理接口
 type ITrans interface {
-	// 开始事务
+	// Begin 开始事务
 	Begin(ctx context.Context) (interface{}, error)
-	// 提交事务
+	// Commit 提交事务
 	Commit(ctx context.Context, trans interface{}) error
-	// 回滚事务
+	// Rollback 回滚事务
 	Rollback(ctx context.Context, trans interface{}) error
-}
+}

+ 17 - 17
boot/boot.go

@@ -4,8 +4,8 @@ import (
 	"context"
 	"github.com/dgrijalva/jwt-go"
 	redisLib "github.com/go-redis/redis/v8"
-	"github.com/gogf/gf/frame/g"
-	"github.com/gogf/gf/net/ghttp"
+	"github.com/gogf/gf/v2/frame/g"
+	"github.com/gogf/gf/v2/net/ghttp"
 	"go.uber.org/dig"
 	"gorm.io/gorm"
 	"gxt-api-frame/app/bll/impl"
@@ -25,24 +25,24 @@ const VERSION = "1.0.0"
 
 func init() {
 	// 初始化logger
-	logger.Init(g.Cfg().GetString("common.run_mode"))
+	logger.Init(utils.GetConfig("common.run_mode").String())
 	logger.SetVersion(VERSION)
 	logger.SetTraceIdFunc(utils.NewTraceID)
 	ctx := logger.NewTraceIDContext(context.Background(), utils.NewTraceID())
 	Init(ctx)
 }
 
-// 初始化App,
+// Init 初始化App,
 // TODO: 返回释放回调,暂时没调用
 func Init(ctx context.Context) func() {
-	logger.Printf(ctx, "服务启动,运行模式:%s,版本号:%s,进程号:%d", g.Cfg().Get("common.run_mode"), VERSION, os.Getpid())
+	logger.Printf(ctx, "服务启动,运行模式:%s,版本号:%s,进程号:%d", utils.GetConfig("common.run_mode").String(), VERSION, os.Getpid())
 	// 初始化依赖注入容器
 	container, call := buildContainer(ctx)
 	// 初始化路由注册
 	s := g.Server()
 	// 每个请求生成新的追踪Id,如果上下文件中没有trace-id
 	s.Use(middleware.TraceIdMiddleware())
-	if g.Cfg().GetBool("prometheus.enable") {
+	if utils.GetConfig("prometheus.enable").Bool() {
 		p := middleware.NewPrometheus("ghttp")
 		p.Use(s)
 	}
@@ -66,16 +66,16 @@ func Init(ctx context.Context) func() {
 // 初始化jwt认证,可以把相关配置放到config.toml中
 func initJwtAuth(ctx context.Context, container *dig.Container) error {
 	var opts []auth.Option
-	opts = append(opts, auth.SetExpired(g.Cfg().GetInt("jwt.expired")))
-	opts = append(opts, auth.SetSigningKey([]byte(g.Cfg().GetString("jwt.signing_key"))))
+	opts = append(opts, auth.SetExpired(utils.GetConfig("jwt.expired").Int()))
+	opts = append(opts, auth.SetSigningKey([]byte(utils.GetConfig("jwt.signing_key").String())))
 	opts = append(opts, auth.SetKeyfunc(func(t *jwt.Token) (interface{}, error) {
 		if _, ok := t.Method.(*jwt.SigningMethodHMAC); !ok {
 			return nil, errors.ErrInvalidToken
 		}
-		return []byte(g.Cfg().GetString("jwt.signing_key")), nil
+		return []byte(utils.GetConfig("jwt.signing_key").String()), nil
 	}))
 
-	switch g.Cfg().GetString("jwt.signing_method") {
+	switch utils.GetConfig("jwt.signing_method").String() {
 	case "HS256":
 		opts = append(opts, auth.SetSigningMethod(jwt.SigningMethodHS256))
 	case "HS384":
@@ -88,9 +88,9 @@ func initJwtAuth(ctx context.Context, container *dig.Container) error {
 
 // 初始化redis
 func initRedis(ctx context.Context, container *dig.Container) func() {
-	addr := g.Cfg().GetString("redis.addr")
-	password := g.Cfg().GetString("redis.password")
-	db := g.Cfg().GetInt("redis.db")
+	addr := utils.GetConfig("redis.addr").String()
+	password := utils.GetConfig("redis.password").String()
+	db := utils.GetConfig("redis.db").Int()
 	redisCli := redis.Init(ctx, addr, password, db)
 	logger.Printf(ctx, "REDIS初始化成功,当前服务器[%s]", addr)
 	// 注入redis client
@@ -110,7 +110,7 @@ func initStore(ctx context.Context, container *dig.Container) (func(), error) {
 		return storeCall, err
 	}
 	// 如果自动映射数据表
-	if g.Cfg().GetBool("gorm.enable_auto_migrate") {
+	if utils.GetConfig("gorm.enable_auto_migrate").Bool() {
 		err = autoMigrate(db)
 		if err != nil {
 			return storeCall, err
@@ -125,8 +125,8 @@ func initStore(ctx context.Context, container *dig.Container) (func(), error) {
 		_ = sqlDb.Close()
 	}
 	logger.Printf(ctx, "MYSQL初始化成功, 服务器[%s], 数据库[%s]",
-		g.Cfg().GetString("mysql.host"),
-		g.Cfg().GetString("mysql.db_name"))
+		utils.GetConfig("mysql.host").String(),
+		utils.GetConfig("mysql.db_name").String())
 	return storeCall, nil
 }
 
@@ -140,7 +140,7 @@ func buildContainer(ctx context.Context) (*dig.Container, func()) {
 	}
 	// 初始化redis模块
 	var redisCall func()
-	if g.Cfg().GetBool("redis.enable") {
+	if utils.GetConfig("redis.enable").Bool() {
 		redisCall = initRedis(ctx, container)
 	}
 	// 注入bll

+ 12 - 13
boot/gorm.go

@@ -6,9 +6,9 @@ import (
 	"gxt-api-frame/app/model/entity"
 	iModel "gxt-api-frame/app/model/impl/model"
 	"gxt-api-frame/library/logger"
+	"gxt-api-frame/library/utils"
 	"time"
 
-	"github.com/gogf/gf/frame/g"
 	"go.uber.org/dig"
 	"gorm.io/driver/mysql"
 	"gorm.io/gorm"
@@ -18,17 +18,17 @@ import (
 // 初始化gorm
 func initGorm() (*gorm.DB, error) {
 	dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?%s",
-		g.Cfg().GetString("mysql.user"),
-		g.Cfg().GetString("mysql.password"),
-		g.Cfg().GetString("mysql.host"),
-		g.Cfg().GetInt("mysql.port"),
-		g.Cfg().GetString("mysql.db_name"),
-		g.Cfg().GetString("mysql.parameters"))
+		utils.GetConfig("mysql.user").String(),
+		utils.GetConfig("mysql.password").String(),
+		utils.GetConfig("mysql.host").String(),
+		utils.GetConfig("mysql.port").Int(),
+		utils.GetConfig("mysql.db_name").String(),
+		utils.GetConfig("mysql.parameters").String())
 
 	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
 		SkipDefaultTransaction: true, // 跳过默认事务
 		NamingStrategy: schema.NamingStrategy{
-			TablePrefix:   g.Cfg().GetString("gorm.table_prefix"),
+			TablePrefix:   utils.GetConfig("gorm.table_prefix").String(),
 			SingularTable: true, // 使用单数表名
 		},
 	})
@@ -36,7 +36,7 @@ func initGorm() (*gorm.DB, error) {
 		return nil, err
 	}
 	db.Logger = logger.NewEntry(logger.GetLogger())
-	if g.Cfg().GetString("common.run_mode") == "debug" {
+	if utils.GetConfig("common.run_mode").String() == "debug" {
 		db.Debug()
 	}
 
@@ -44,9 +44,9 @@ func initGorm() (*gorm.DB, error) {
 	if err != nil {
 		return nil, err
 	}
-	sqlDb.SetMaxIdleConns(g.Cfg().GetInt("gorm.max_idle_conns"))
-	sqlDb.SetMaxOpenConns(g.Cfg().GetInt("gorm.max_open_conns"))
-	sqlDb.SetConnMaxLifetime(time.Duration(g.Cfg().GetInt("gorm.max_open_conns")) * time.Second)
+	sqlDb.SetMaxIdleConns(utils.GetConfig("gorm.max_idle_conns").Int())
+	sqlDb.SetMaxOpenConns(utils.GetConfig("gorm.max_open_conns").Int())
+	sqlDb.SetConnMaxLifetime(time.Duration(utils.GetConfig("gorm.max_open_conns").Int()) * time.Second)
 	return db, nil
 }
 
@@ -57,7 +57,6 @@ func autoMigrate(db *gorm.DB) error {
 	)
 }
 
-// InjectModel
 func InjectModel(container *dig.Container) error {
 	_ = container.Provide(iModel.NewTrans)
 	_ = container.Provide(func(m *iModel.Trans) model.ITrans { return m })

+ 1 - 7
go.mod

@@ -1,18 +1,12 @@
 module gxt-api-frame
 
 require (
-	github.com/BurntSushi/toml v1.1.0 // indirect
 	github.com/dgrijalva/jwt-go v3.2.0+incompatible
-	github.com/fatih/color v1.13.0 // indirect
-	github.com/fsnotify/fsnotify v1.5.4 // indirect
 	github.com/go-redis/redis/v8 v8.11.5
 	github.com/go-redis/redis_rate/v9 v9.0.2
-	github.com/gogf/gf v1.16.9
-	github.com/gorilla/websocket v1.5.0 // indirect
+	github.com/gogf/gf/v2 v2.2.2
 	github.com/prometheus/client_golang v1.13.0
-	go.opentelemetry.io/otel v1.7.0 // indirect
 	go.uber.org/dig v1.10.0
-	golang.org/x/text v0.3.8-0.20211105212822-18b340fc7af2 // indirect
 	gorm.io/driver/mysql v1.0.3
 	gorm.io/gorm v1.20.6
 )

+ 8 - 7
library/auth/jwt_auth.go

@@ -9,13 +9,13 @@ import (
 
 // TokenInfo 令牌信息
 type TokenInfo interface {
-	// 获取访问令牌
+	// GetAccessToken 获取访问令牌
 	GetAccessToken() string
-	// 获取令牌类型
+	// GetTokenType 获取令牌类型
 	GetTokenType() string
-	// 获取令牌到期时间戳
+	// GetExpiresAt 获取令牌到期时间戳
 	GetExpiresAt() int64
-	// JSON编码
+	// EncodeToJSON JSON编码
 	EncodeToJSON() ([]byte, error)
 }
 
@@ -150,19 +150,20 @@ func (a *JWTAuth) ParseUserID(tokenString string) (string, error) {
 
 	return claims.Subject, nil
 }
+
 // Auther 认证接口
 type Auther interface {
-	// 生成令牌
+	// GenerateToken 生成令牌
 	GenerateToken(userID string) (TokenInfo, error)
 
 	// 销毁令牌
 	//DestroyToken(accessToken string) error
 
-	// 解析用户ID
+	// ParseUserID 解析用户ID
 	ParseUserID(accessToken string) (string, error)
 
 	// 释放资源
 	//Release() error
 
 	//GenerateApiToken(userID string) (TokenInfo, error)
-}
+}

+ 4 - 5
library/gplus/gplus.go

@@ -2,8 +2,7 @@ package gplus
 
 import (
 	"context"
-	"github.com/gogf/gf/frame/g"
-	"github.com/gogf/gf/net/ghttp"
+	"github.com/gogf/gf/v2/net/ghttp"
 	iContext "gxt-api-frame/app/context"
 	"gxt-api-frame/app/errors"
 	"gxt-api-frame/app/schema"
@@ -30,7 +29,7 @@ const (
 func ParseJson(r *ghttp.Request, out interface{}) error {
 	if err := r.Parse(out); err != nil {
 		m := "解析请求参数发生错误"
-		if g.Cfg().GetString("common.run_mode") == "debug" {
+		if utils.GetConfig("common.run_mode").String() == "debug" {
 			m += "[" + err.Error() + "]"
 		}
 		return errors.Wrap400Response(err, m)
@@ -41,7 +40,7 @@ func ParseJson(r *ghttp.Request, out interface{}) error {
 // GetPageIndex 获取当前页
 func GetPageIndex(r *ghttp.Request) int {
 	defaultVal := 1
-	if v := r.GetQueryInt("current"); v > 0 {
+	if v := r.GetQuery("current").Int(); v > 0 {
 		return v
 	}
 	return defaultVal
@@ -50,7 +49,7 @@ func GetPageIndex(r *ghttp.Request) int {
 // GetPageSize 获取分页的页大小(最大50)
 func GetPageSize(r *ghttp.Request) int {
 	defaultVal := 10
-	if v := r.GetQueryInt("pageSize"); v > 0 {
+	if v := r.GetQuery("pageSize").Int(); v > 0 {
 		if v > 50 {
 			v = 50
 		}

+ 10 - 10
library/logger/gorm_log.go

@@ -3,10 +3,10 @@ package logger
 import (
 	"context"
 	"fmt"
-	"github.com/gogf/gf/frame/g"
-	"github.com/gogf/gf/os/glog"
+	"github.com/gogf/gf/v2/os/glog"
 	"gorm.io/gorm/logger"
 	"gorm.io/gorm/utils"
+	mUtils "gxt-api-frame/library/utils"
 	"time"
 )
 
@@ -23,19 +23,19 @@ func (e *Entry) LogMode(lv logger.LogLevel) logger.Interface {
 }
 
 func (e *Entry) Info(ctx context.Context, format string, args ...interface{}) {
-	e.entry.Ctx(ctx).Infof(format, args...)
+	e.entry.SetCtxKeys()
 }
 
 func (e *Entry) Warn(ctx context.Context, format string, args ...interface{}) {
-	e.entry.Ctx(ctx).Warningf(format, args...)
+	e.entry.Warningf(ctx, format, args...)
 }
 
 func (e *Entry) Error(ctx context.Context, format string, args ...interface{}) {
-	e.entry.Ctx(ctx).Errorf(format, args...)
+	e.entry.Errorf(ctx, format, args...)
 }
 
 func (e *Entry) Trace(ctx context.Context, begin time.Time, fc func() (string, int64), err error) {
-	limit := g.Cfg().GetInt("gorm.slow_sql_limit")
+	limit := mUtils.GetConfig("gorm.slow_sql_limit").Int()
 	if e.entry.GetLevel() > 0 {
 		elapsed := time.Since(begin)
 		switch {
@@ -48,16 +48,16 @@ func (e *Entry) Trace(ctx context.Context, begin time.Time, fc func() (string, i
 			sql, rows := fc()
 			slowLog := fmt.Sprintf("执行时间 %v", elapsed)
 			if rows == -1 {
-				e.Warnf("%s\n慢查询SQL:%s\n%s \n影响行数:[%s]", utils.FileWithLineNum(), sql, slowLog, "-")
+				e.Warnf(ctx, "%s\n慢查询SQL:%s\n%s \n影响行数:[%s]", utils.FileWithLineNum(), sql, slowLog, "-")
 			} else {
-				e.Warnf("%s\n慢查询SQL:%s\n%s\n影响行数:[%d]", utils.FileWithLineNum(), sql, slowLog, rows)
+				e.Warnf(ctx, "%s\n慢查询SQL:%s\n%s\n影响行数:[%d]", utils.FileWithLineNum(), sql, slowLog, rows)
 			}
 		case e.entry.GetLevel() >= glog.LEVEL_INFO:
 			sql, rows := fc()
 			if rows == -1 {
-				e.Infof("执行SQL:[%s],影响行数:[%s]", sql, "-")
+				e.Infof(ctx, "执行SQL:[%s],影响行数:[%s]", sql, "-")
 			} else {
-				e.Infof("执行SQL:[%s], 影响行数:[%d]", sql, rows)
+				e.Infof(ctx, "执行SQL:[%s], 影响行数:[%d]", sql, rows)
 			}
 		}
 	}

+ 17 - 17
library/logger/logger.go

@@ -3,8 +3,8 @@ package logger
 import (
 	"context"
 	"errors"
-	"github.com/gogf/gf/frame/g"
-	"github.com/gogf/gf/os/glog"
+	"github.com/gogf/gf/v2/frame/g"
+	"github.com/gogf/gf/v2/os/glog"
 )
 
 // 定义键名
@@ -150,50 +150,50 @@ func NewEntry(entry *glog.Logger) *Entry {
 
 // Debugf 写入调试日志
 func Debugf(ctx context.Context, format string, args ...interface{}) {
-	StartSpan(ctx).entry.Ctx(ctx).Debugf(format, args)
+	StartSpan(ctx).entry.Debugf(ctx, format, args)
 }
 
 // Printf 写入消息日志
 func Printf(ctx context.Context, format string, args ...interface{}) {
-	StartSpan(ctx).entry.Ctx(ctx).Printf(format, args...)
+	StartSpan(ctx).entry.Printf(ctx, format, args...)
 }
 
 // Warnf 写入警告日志
 func Warnf(ctx context.Context, format string, args ...interface{}) {
-	StartSpan(ctx).entry.Ctx(ctx).Warningf(format, args...)
+	StartSpan(ctx).entry.Warningf(ctx, format, args...)
 }
 
 // Fatalf 写入重大错误日志
 func Fatalf(ctx context.Context, format string, args ...interface{}) {
-	StartSpan(ctx).entry.Ctx(ctx).Fatalf(format, args...)
+	StartSpan(ctx).entry.Fatalf(ctx, format, args...)
 }
 
 // Errorf 错误日志
 func Errorf(ctx context.Context, format string, args ...interface{}) {
-	StartSpan(ctx).entry.Ctx(ctx).Errorf(format, args...)
+	StartSpan(ctx).entry.Errorf(ctx, format, args...)
 }
 
 // Errorf 错误日志
-func (e *Entry) Errorf(format string, args ...interface{}) {
-	e.entry.Errorf(format, args...)
+func (e *Entry) Errorf(ctx context.Context, format string, args ...interface{}) {
+	e.entry.Errorf(ctx, format, args...)
 }
 
 // Warnf 警告日志
-func (e *Entry) Warnf(format string, args ...interface{}) {
-	e.entry.Warningf(format, args...)
+func (e *Entry) Warnf(ctx context.Context, format string, args ...interface{}) {
+	e.entry.Warningf(ctx, format, args...)
 }
 
 // Infof 消息日志
-func (e *Entry) Infof(format string, args ...interface{}) {
-	e.entry.Infof(format, args...)
+func (e *Entry) Infof(ctx context.Context, format string, args ...interface{}) {
+	e.entry.Infof(ctx, format, args...)
 }
 
 // Printf 消息日志
-func (e *Entry) Printf(format string, args ...interface{}) {
-	e.entry.Printf(format, args...)
+func (e *Entry) Printf(ctx context.Context, format string, args ...interface{}) {
+	e.entry.Printf(ctx, format, args...)
 }
 
 // Debugf 写入调试日志
-func (e *Entry) Debugf(format string, args ...interface{}) {
-	e.entry.Debugf(format, args...)
+func (e *Entry) Debugf(ctx context.Context, format string, args ...interface{}) {
+	e.entry.Debugf(ctx, format, args...)
 }

+ 4 - 3
library/middleware/middleware.go

@@ -1,6 +1,6 @@
 package middleware
 
-import "github.com/gogf/gf/net/ghttp"
+import "github.com/gogf/gf/v2/net/ghttp"
 
 // EmptyMiddleware 不执行业务处理的中间件
 func EmptyMiddleware(r *ghttp.Request) {
@@ -8,13 +8,14 @@ func EmptyMiddleware(r *ghttp.Request) {
 }
 
 type SkipperFunc func(request *ghttp.Request) bool
+
 // AllowPathPrefixSkipper 检查请求路径是否包含指定的前缀,如果包含则跳过
 func AllowPathPrefixSkipper(prefixes ...string) SkipperFunc {
 	return func(request *ghttp.Request) bool {
 		path := request.URL.Path
 		pathLen := len(path)
 		for _, p := range prefixes {
-			if pl := len(p);pathLen >=pl && path[:pl] == p {
+			if pl := len(p); pathLen >= pl && path[:pl] == p {
 				return true
 			}
 		}
@@ -45,4 +46,4 @@ func SkipHandler(r *ghttp.Request, skippers ...SkipperFunc) bool {
 		}
 	}
 	return false
-}
+}

+ 6 - 6
library/middleware/mw_auth.go

@@ -1,17 +1,17 @@
 package middleware
 
 import (
-	"github.com/gogf/gf/frame/g"
-	"github.com/gogf/gf/net/ghttp"
+	"github.com/gogf/gf/v2/net/ghttp"
 	"gxt-api-frame/app/errors"
 	"gxt-api-frame/library/auth"
 	"gxt-api-frame/library/gplus"
+	"gxt-api-frame/library/utils"
 )
 
 func UserAuthMiddleware(skippers ...SkipperFunc) ghttp.HandlerFunc {
 	jwt := auth.New()
 	return func(r *ghttp.Request) {
-		if len(skippers) >0 && skippers[0](r) {
+		if len(skippers) > 0 && skippers[0](r) {
 			r.Middleware.Next()
 			return
 		}
@@ -27,8 +27,8 @@ func UserAuthMiddleware(skippers ...SkipperFunc) ghttp.HandlerFunc {
 			gplus.SetUserId(r, userId)
 		}
 		if userId == "" {
-			if g.Cfg().GetString("common.RunMode") == "debug" {
-				gplus.SetUserId(r, g.Cfg().GetString("root.user_name"))
+			if utils.GetConfig("common.RunMode").String() == "debug" {
+				gplus.SetUserId(r, utils.GetConfig("root.user_name").String())
 				r.Middleware.Next()
 				return
 			}
@@ -36,4 +36,4 @@ func UserAuthMiddleware(skippers ...SkipperFunc) ghttp.HandlerFunc {
 		}
 		r.Middleware.Next()
 	}
-}
+}

+ 8 - 8
library/middleware/mw_rate_limiter.go

@@ -3,21 +3,21 @@ package middleware
 import (
 	"github.com/go-redis/redis/v8"
 	"github.com/go-redis/redis_rate/v9"
-	"github.com/gogf/gf/frame/g"
-	"github.com/gogf/gf/net/ghttp"
+	"github.com/gogf/gf/v2/net/ghttp"
 	"gxt-api-frame/app/errors"
 	"gxt-api-frame/library/gplus"
 	"gxt-api-frame/library/logger"
+	"gxt-api-frame/library/utils"
 	"strconv"
 )
 
 // RateLimiterMiddleware 请求频率限制中间件
 func RateLimiterMiddleware(skippers ...SkipperFunc) ghttp.HandlerFunc {
-	if !g.Cfg().GetBool("rate_limiter.enable") {
+	if !utils.GetConfig("rate_limiter.enable").Bool() {
 		return EmptyMiddleware
 	}
 	// check enable redis
-	if !g.Cfg().GetBool("redis.enable") {
+	if !utils.GetConfig("redis.enable").Bool() {
 		return func(r *ghttp.Request) {
 			logger.Warnf(gplus.NewContext(r), "限流中间件无法正常使用,请启用redis配置[redis.enable]")
 			r.Middleware.Next()
@@ -25,9 +25,9 @@ func RateLimiterMiddleware(skippers ...SkipperFunc) ghttp.HandlerFunc {
 		}
 	}
 
-	addr := g.Cfg().GetString("redis.addr")
-	password := g.Cfg().GetString("redis.password")
-	db := g.Cfg().GetInt("redis.db")
+	addr := utils.GetConfig("redis.addr").String()
+	password := utils.GetConfig("redis.password").String()
+	db := utils.GetConfig("redis.db").Int()
 	ring := redis.NewRing(&redis.RingOptions{
 		Addrs: map[string]string{
 			"server1": addr,
@@ -50,7 +50,7 @@ func RateLimiterMiddleware(skippers ...SkipperFunc) ghttp.HandlerFunc {
 			return
 		}
 		ctx := gplus.NewContext(r)
-		limit := g.Cfg().GetInt("rate_limiter.count")
+		limit := utils.GetConfig("rate_limiter.count").Int()
 		result, err := limiter.Allow(ctx,
 			userID, redis_rate.PerMinute(limit))
 		if err != nil {

+ 1 - 1
library/middleware/mw_trace.go

@@ -1,7 +1,7 @@
 package middleware
 
 import (
-	"github.com/gogf/gf/net/ghttp"
+	"github.com/gogf/gf/v2/net/ghttp"
 	"gxt-api-frame/library/gplus"
 	"gxt-api-frame/library/utils"
 )

+ 2 - 2
library/middleware/prometheus.go

@@ -2,7 +2,7 @@ package middleware
 
 import (
 	"context"
-	"github.com/gogf/gf/net/ghttp"
+	"github.com/gogf/gf/v2/net/ghttp"
 	"github.com/prometheus/client_golang/prometheus"
 	"github.com/prometheus/client_golang/prometheus/promhttp"
 	"gxt-api-frame/library/logger"
@@ -250,7 +250,7 @@ func (p *Prometheus) HandlerFunc() ghttp.HandlerFunc {
 		url := p.ReqCntURLLabelMappingFn(c)
 		if len(p.URLLabelFromContext) > 0 {
 			u := c.Get(p.URLLabelFromContext)
-			url = u.(string)
+			url = u.String()
 		}
 		p.reqDur.WithLabelValues(status, c.Request.Method, url).Observe(elapsed)
 		p.reqCnt.WithLabelValues(status, c.Request.Method, c.Request.Host, url).Inc()

+ 11 - 0
library/utils/util.go

@@ -1,7 +1,10 @@
 package utils
 
 import (
+	"context"
 	"fmt"
+	"github.com/gogf/gf/v2/container/gvar"
+	"github.com/gogf/gf/v2/frame/g"
 	"os"
 	"regexp"
 	"runtime"
@@ -37,3 +40,11 @@ func FileWithLineNum() string {
 	}
 	return ""
 }
+
+func GetConfig(key string) *gvar.Var {
+	ret, err := g.Cfg().Get(context.Background(), key)
+	if err != nil {
+
+	}
+	return ret
+}

+ 1 - 1
main.go

@@ -1,7 +1,7 @@
 package main
 
 import (
-	"github.com/gogf/gf/frame/g"
+	"github.com/gogf/gf/v2/frame/g"
 	_ "gxt-api-frame/boot"
 	_ "gxt-api-frame/router"
 )

+ 1 - 1
router/api/api.go

@@ -1,7 +1,7 @@
 package api
 
 import (
-	"github.com/gogf/gf/net/ghttp"
+	"github.com/gogf/gf/v2/net/ghttp"
 	"go.uber.org/dig"
 	"gxt-api-frame/library/middleware"
 	"gxt-api-frame/router/api/controllers"

+ 1 - 1
router/api/controllers/c_demo.go

@@ -1,7 +1,7 @@
 package controllers
 
 import (
-	"github.com/gogf/gf/net/ghttp"
+	"github.com/gogf/gf/v2/net/ghttp"
 	"gxt-api-frame/app/bll"
 	"gxt-api-frame/app/schema"
 	"gxt-api-frame/library/gplus"

+ 1 - 1
router/api/controllers/ctl.go

@@ -2,7 +2,7 @@ package controllers
 
 import "go.uber.org/dig"
 
-// 注入 controllers
+// Inject 注入 controllers
 func Inject(container *dig.Container) {
 	_ = container.Provide(NewDemo)
 }

+ 2 - 1
router/router.go

@@ -1,10 +1,11 @@
 package router
 
 import (
-	"github.com/gogf/gf/net/ghttp"
+	"github.com/gogf/gf/v2/net/ghttp"
 	"go.uber.org/dig"
 	"gxt-api-frame/router/api"
 )
+
 // InitRouters 初始化路由注册
 func InitRouters(s *ghttp.Server, container *dig.Container) {
 	// 注册api路由组