refactor:
- source 初始化数据 new 实现 - service mysql 与 pgsql 分开实现 - 代码备注优化
This commit is contained in:
@@ -1,5 +1,79 @@
|
||||
package system
|
||||
|
||||
import "github.com/gookit/color"
|
||||
|
||||
type InitDBFunc interface {
|
||||
Init() (err error)
|
||||
}
|
||||
|
||||
const (
|
||||
Mysql = "mysql"
|
||||
Pgsql = "pgsql"
|
||||
InitSuccess = "\n[%v] --> 初始数据成功!\n"
|
||||
AuthorityMenu = "\n[%v] --> %v 视图已存在!\n"
|
||||
InitDataExist = "\n[%v] --> %v 表的初始数据已存在!\n"
|
||||
InitDataFailed = "\n[%v] --> %v 表初始数据失败! \nerr: %+v\n"
|
||||
InitDataSuccess = "\n[%v] --> %v 表初始数据成功!\n"
|
||||
)
|
||||
|
||||
type InitData interface {
|
||||
TableName() string
|
||||
Initialize() error
|
||||
CheckDataExist() bool
|
||||
}
|
||||
|
||||
// MysqlDataInitialize Mysql 初始化接口使用封装
|
||||
// Author [SliverHorn](https://github.com/SliverHorn)
|
||||
func MysqlDataInitialize(inits ...InitData) error {
|
||||
var entity SysMenu
|
||||
for i := 0; i < len(inits); i++ {
|
||||
if inits[i].TableName() == entity.TableName() {
|
||||
if k := inits[i].CheckDataExist(); k {
|
||||
color.Info.Printf(AuthorityMenu, Mysql, inits[i].TableName())
|
||||
continue
|
||||
}
|
||||
} else {
|
||||
if inits[i].CheckDataExist() {
|
||||
color.Info.Printf(InitDataExist, Mysql, inits[i].TableName())
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if err := inits[i].Initialize(); err != nil {
|
||||
color.Info.Printf(InitDataFailed, Mysql, err)
|
||||
continue
|
||||
} else {
|
||||
color.Info.Printf(InitDataSuccess, Mysql, inits[i].TableName())
|
||||
}
|
||||
}
|
||||
color.Info.Printf(InitSuccess, Mysql)
|
||||
return nil
|
||||
}
|
||||
|
||||
// PgsqlDataInitialize Pgsql 初始化接口使用封装
|
||||
// Author [SliverHorn](https://github.com/SliverHorn)
|
||||
func PgsqlDataInitialize(inits ...InitData) error {
|
||||
var entity SysMenu
|
||||
for i := 0; i < len(inits); i++ {
|
||||
if inits[i].TableName() == entity.TableName() {
|
||||
if k := inits[i].CheckDataExist(); k {
|
||||
color.Info.Printf(AuthorityMenu, Pgsql, inits[i].TableName())
|
||||
continue
|
||||
}
|
||||
} else {
|
||||
if inits[i].CheckDataExist() {
|
||||
color.Info.Printf(InitDataExist, Pgsql, inits[i].TableName())
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if err := inits[i].Initialize(); err != nil {
|
||||
color.Info.Printf(InitDataFailed, Pgsql, err)
|
||||
continue
|
||||
} else {
|
||||
color.Info.Printf(InitDataSuccess, Pgsql, inits[i].TableName())
|
||||
}
|
||||
}
|
||||
color.Info.Printf(InitSuccess, Pgsql)
|
||||
return nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user