This commit is contained in:
zhangwenjian
2020-09-09 22:45:03 +08:00
13 changed files with 269 additions and 68 deletions
+54 -1
View File
@@ -1,5 +1,58 @@
package middleware
import "go-admin/common/middleware"
import (
"database/sql"
"errors"
"go-admin/common/config"
"go-admin/common/global"
"go-admin/tools"
"gorm.io/gorm/schema"
"gorm.io/driver/mysql"
"gorm.io/driver/postgres"
"gorm.io/gorm"
"go-admin/common/middleware"
)
var WithContextDb = middleware.WithContextDb
func getGormFromDb(driver string, db *sql.DB, config *gorm.Config) (*gorm.DB, error) {
switch driver {
case "mysql":
return gorm.Open(mysql.New(mysql.Config{Conn: db}), config)
case "postgres":
return gorm.Open(postgres.New(postgres.Config{Conn: db}), config)
default:
return nil, errors.New("not support this db driver")
}
}
func GetGormFromConfig(cfg config.Conf) map[string]*gorm.DB {
gormDB := make(map[string]*gorm.DB)
if cfg.GetSaas() {
var err error
for k, v := range cfg.GetDbs() {
gormDB[k], err = getGormFromDb(v.Driver, v.DB, &gorm.Config{
NamingStrategy: schema.NamingStrategy{
SingularTable: true,
},
})
if err != nil {
global.Logger.Fatal(tools.Red(k+" connect error :"), err)
}
}
return gormDB
}
c := cfg.GetDb()
db, err := getGormFromDb(c.Driver, c.DB, &gorm.Config{
NamingStrategy: schema.NamingStrategy{
SingularTable: true,
},
})
if err != nil {
global.Logger.Fatal(tools.Red(c.Driver+" connect error :"), err)
}
gormDB["*"] = db
return gormDB
}
+2 -11
View File
@@ -9,22 +9,13 @@ import (
_ "go-admin/pkg/jwtauth"
"go-admin/tools"
config2 "go-admin/tools/config"
"gorm.io/gorm"
)
var authMiddleware = new(jwt.GinJWTMiddleware)
func InitRouter() *gin.Engine {
var r *gin.Engine
if global.GinEngine == nil {
r = gin.New()
} else {
r = global.GinEngine
}
func InitRouter(r *gin.Engine) *gin.Engine {
if config2.SslConfig.Enable {
r.Use(handler.TlsHandler())
}
r.Use(middleware.WithContextDb(map[string]*gorm.DB{"*": global.Eloquent}))
r.Use(middleware.WithContextDb(middleware.GetGormFromConfig(global.Cfg)))
middleware.InitMiddleware(r)
// the jwt middleware
var err error
-6
View File
@@ -1,6 +0,0 @@
package dto
type Pagination struct {
PageIndex int `form:"pageIndex"`
PageSize int `form:"pageSize"`
}
+2 -24
View File
@@ -5,11 +5,10 @@ import (
"go-admin/app/admin/models"
"go-admin/common/dto"
models2 "go-admin/common/models"
"net/http"
)
type SysJobSearch struct {
Pagination `search:"-"`
dto.Pagination `search:"-"`
JobId int `form:"jobId" search:"type:exact;column:job_id;table:sys_job"`
JobName string `form:"jobName" search:"type:icontains;column:job_name;table:sys_job"`
JobGroup string `form:"jobGroup" search:"type:exact;column:job_group;table:sys_job"`
@@ -83,21 +82,7 @@ func (s *SysJobControl) GetId() interface{} {
}
type SysJobById struct {
Id int `uri:"id" validate:"required"`
Ids []int `json:"ids"`
}
func (s *SysJobById) Bind(ctx *gin.Context) error {
if ctx.Request.Method == http.MethodDelete {
err := ctx.Bind(s)
if err != nil {
return err
}
if len(s.Ids) > 0 {
return nil
}
}
return ctx.BindUri(s)
dto.ObjectById
}
func (s *SysJobById) Generate() dto.Control {
@@ -108,10 +93,3 @@ func (s *SysJobById) Generate() dto.Control {
func (s *SysJobById) GenerateM() (models2.ActiveRecord, error) {
return &models.SysJob{}, nil
}
func (s *SysJobById) GetId() interface{} {
if len(s.Ids) > 0 {
return s.Ids
}
return s.Id
}