From f913510d3c5bb96609a91744c06a81e5ba6f57ae Mon Sep 17 00:00:00 2001
From: "meilin.huang" <954537473@qq.com>
Date: Wed, 10 Aug 2022 19:46:17 +0800
Subject: [PATCH] refactor: code review
---
mayfly_go_web/src/views/ops/db/DbEdit.vue | 37 ++--
.../src/views/ops/redis/HashValue.vue | 2 +-
.../src/views/ops/redis/SetValue.vue | 2 +-
server/config.yml | 4 -
server/internal/devops/api/db.go | 20 +-
server/internal/devops/application/db_app.go | 200 ++++++++++++------
.../devops/application/db_sql_exec_app.go | 3 +-
server/main.go | 2 -
server/pkg/config/app.go | 12 +-
server/pkg/config/config.go | 8 +-
server/pkg/ctx/token.go | 12 +-
server/pkg/logger/logger.go | 2 +-
server/pkg/starter/banner.go | 19 +-
server/pkg/starter/gorm.go | 6 +-
server/pkg/starter/run.go | 23 ++
server/pkg/starter/web-server.go | 8 +-
16 files changed, 232 insertions(+), 128 deletions(-)
create mode 100644 server/pkg/starter/run.go
diff --git a/mayfly_go_web/src/views/ops/db/DbEdit.vue b/mayfly_go_web/src/views/ops/db/DbEdit.vue
index bbf63b29..f7d28588 100644
--- a/mayfly_go_web/src/views/ops/db/DbEdit.vue
+++ b/mayfly_go_web/src/views/ops/db/DbEdit.vue
@@ -55,20 +55,25 @@
-
-
-
+
+
+
+
+
+
+
+ 获取库名
+
@@ -264,12 +269,10 @@ export default defineComponent({
};
const getAllDatabase = async () => {
- if (state.allDatabases.length != 0) {
- return;
- }
const reqForm = { ...state.form };
reqForm.password = await RsaEncrypt(reqForm.password);
state.allDatabases = await dbApi.getAllDatabase.request(reqForm);
+ ElMessage.success('获取成功, 请选择需要管理操作的数据库')
};
const getDbPwd = async () => {
diff --git a/mayfly_go_web/src/views/ops/redis/HashValue.vue b/mayfly_go_web/src/views/ops/redis/HashValue.vue
index 5ba5259a..17079d2c 100644
--- a/mayfly_go_web/src/views/ops/redis/HashValue.vue
+++ b/mayfly_go_web/src/views/ops/redis/HashValue.vue
@@ -209,7 +209,7 @@ export default defineComponent({
};
const onAddHashValue = () => {
- state.hashValues.push({ field: '', value: '' });
+ state.hashValues.unshift({ field: '', value: '' });
};
const saveValue = async () => {
diff --git a/mayfly_go_web/src/views/ops/redis/SetValue.vue b/mayfly_go_web/src/views/ops/redis/SetValue.vue
index 31d7292f..8aef6314 100644
--- a/mayfly_go_web/src/views/ops/redis/SetValue.vue
+++ b/mayfly_go_web/src/views/ops/redis/SetValue.vue
@@ -128,7 +128,7 @@ export default defineComponent({
};
const onAddSetValue = () => {
- state.value.push({ value: '' });
+ state.value.unshift({ value: '' });
};
return {
diff --git a/server/config.yml b/server/config.yml
index df56d8cd..19cdb121 100644
--- a/server/config.yml
+++ b/server/config.yml
@@ -1,7 +1,3 @@
-app:
- name: mayfly-go
- version: 1.2.3
-
server:
# debug release test
model: release
diff --git a/server/internal/devops/api/db.go b/server/internal/devops/api/db.go
index 24c35248..83998c6a 100644
--- a/server/internal/devops/api/db.go
+++ b/server/internal/devops/api/db.go
@@ -97,19 +97,19 @@ func (d *Db) DeleteDb(rc *ctx.ReqCtx) {
}
func (d *Db) TableInfos(rc *ctx.ReqCtx) {
- rc.ResData = d.DbApp.GetDbInstance(GetIdAndDb(rc.GinCtx)).GetTableInfos()
+ rc.ResData = d.DbApp.GetDbInstance(GetIdAndDb(rc.GinCtx)).GetMeta().GetTableInfos()
}
func (d *Db) TableIndex(rc *ctx.ReqCtx) {
tn := rc.GinCtx.Query("tableName")
biz.NotEmpty(tn, "tableName不能为空")
- rc.ResData = d.DbApp.GetDbInstance(GetIdAndDb(rc.GinCtx)).GetTableIndex(tn)
+ rc.ResData = d.DbApp.GetDbInstance(GetIdAndDb(rc.GinCtx)).GetMeta().GetTableIndex(tn)
}
func (d *Db) GetCreateTableDdl(rc *ctx.ReqCtx) {
tn := rc.GinCtx.Query("tableName")
biz.NotEmpty(tn, "tableName不能为空")
- rc.ResData = d.DbApp.GetDbInstance(GetIdAndDb(rc.GinCtx)).GetCreateTableDdl(tn)
+ rc.ResData = d.DbApp.GetDbInstance(GetIdAndDb(rc.GinCtx)).GetMeta().GetCreateTableDdl(tn)
}
func (d *Db) ExecSql(rc *ctx.ReqCtx) {
@@ -237,11 +237,12 @@ func (d *Db) DumpSql(rc *ctx.ReqCtx) {
writer.WriteString(fmt.Sprintf("\n-- 导出数据库: %s ", db))
writer.WriteString("\n-- ----------------------------\n")
+ dbmeta := d.DbApp.GetDbInstance(GetIdAndDb(rc.GinCtx)).GetMeta()
for _, table := range tables {
if needStruct {
writer.WriteString(fmt.Sprintf("\n-- ----------------------------\n-- 表结构: %s \n-- ----------------------------\n", table))
writer.WriteString(fmt.Sprintf("DROP TABLE IF EXISTS `%s`;\n", table))
- writer.WriteString(dbInstance.GetCreateTableDdl(table)[0]["Create Table"].(string) + ";\n")
+ writer.WriteString(dbmeta.GetCreateTableDdl(table)[0]["Create Table"].(string) + ";\n")
}
if !needData {
@@ -303,7 +304,7 @@ func (d *Db) DumpSql(rc *ctx.ReqCtx) {
func (d *Db) TableMA(rc *ctx.ReqCtx) {
dbi := d.DbApp.GetDbInstance(GetIdAndDb(rc.GinCtx))
biz.ErrIsNilAppendErr(d.ProjectApp.CanAccess(rc.LoginAccount.Id, dbi.ProjectId), "%s")
- rc.ResData = dbi.GetTableMetedatas()
+ rc.ResData = dbi.GetMeta().GetTables()
}
// @router /api/db/:dbId/c-metadata [get]
@@ -314,16 +315,17 @@ func (d *Db) ColumnMA(rc *ctx.ReqCtx) {
dbi := d.DbApp.GetDbInstance(GetIdAndDb(rc.GinCtx))
biz.ErrIsNilAppendErr(d.ProjectApp.CanAccess(rc.LoginAccount.Id, dbi.ProjectId), "%s")
- rc.ResData = dbi.GetColumnMetadatas(tn)
+ rc.ResData = dbi.GetMeta().GetColumns(tn)
}
// @router /api/db/:dbId/hint-tables [get]
func (d *Db) HintTables(rc *ctx.ReqCtx) {
dbi := d.DbApp.GetDbInstance(GetIdAndDb(rc.GinCtx))
biz.ErrIsNilAppendErr(d.ProjectApp.CanAccess(rc.LoginAccount.Id, dbi.ProjectId), "%s")
- // 获取所有表
- tables := dbi.GetTableMetedatas()
+ dm := dbi.GetMeta()
+ // 获取所有表
+ tables := dm.GetTables()
tableNames := make([]string, 0)
for _, v := range tables {
tableNames = append(tableNames, v["tableName"].(string))
@@ -338,7 +340,7 @@ func (d *Db) HintTables(rc *ctx.ReqCtx) {
}
// 获取所有表下的所有列信息
- columnMds := dbi.GetColumnMetadatas(tableNames...)
+ columnMds := dm.GetColumns(tableNames...)
for _, v := range columnMds {
tName := v["tableName"].(string)
if res[tName] == nil {
diff --git a/server/internal/devops/application/db_app.go b/server/internal/devops/application/db_app.go
index b8054e54..cff49f1f 100644
--- a/server/internal/devops/application/db_app.go
+++ b/server/internal/devops/application/db_app.go
@@ -147,6 +147,7 @@ func (d *dbAppImpl) Delete(id uint64) {
}
func (d *dbAppImpl) GetDatabases(ed *entity.Db) []string {
+ ed.Network = ed.GetNetwork()
databases := make([]string, 0)
var dbConn *sql.DB
var metaDb string
@@ -422,6 +423,18 @@ func (d *DbInstance) Exec(sql string) (int64, error) {
return res.RowsAffected()
}
+// 获取数据库元信息实现接口
+func (di *DbInstance) GetMeta() DbMetadata {
+ dbType := di.Type
+ if dbType == entity.DbTypeMysql {
+ return &MysqlMetadata{di: di}
+ }
+ if dbType == entity.DbTypePostgres {
+ return &PgsqlMetadata{di: di}
+ }
+ return nil
+}
+
// 关闭连接
func (d *DbInstance) Close() {
if d.db != nil {
@@ -458,8 +471,32 @@ func CloseDb(dbId uint64, db string) {
dbCache.Delete(GetDbCacheKey(dbId, db))
}
-//-----------------------------------元数据-------------------------------------------
+// -----------------------------------元数据-------------------------------------------
+// 数据库元信息接口(表、列等元信息)
+type DbMetadata interface {
+ // 获取表基础元信息, 如表名等
+ GetTables() []map[string]interface{}
+ // 获取列元信息, 如列名等
+ GetColumns(tableNames ...string) []map[string]interface{}
+
+ // 获取表主键字段名,默认第一个字段
+ GetPrimaryKey(tablename string) string
+
+ // 获取表信息,比GetTables获取更详细的表信息
+ GetTableInfos() []map[string]interface{}
+
+ // 获取表索引信息
+ GetTableIndex(tableName string) []map[string]interface{}
+
+ // 获取建表ddl
+ GetCreateTableDdl(tableName string) []map[string]interface{}
+}
+
+// 默认每次查询列元信息数量
+const DEFAULT_COLUMN_SIZE = 2000
+
+// ---------------------------------- mysql元数据 -----------------------------------
const (
// mysql 表信息元数据
MYSQL_TABLE_MA = `SELECT table_name tableName, engine, table_comment tableComment,
@@ -478,9 +515,6 @@ const (
FROM information_schema.STATISTICS
WHERE table_schema = (SELECT database()) AND table_name = '%s' LIMIT 500`
- // 默认每次查询列元信息数量
- DEFAULT_COLUMN_SIZE = 2000
-
// mysql 列信息元数据
MYSQL_COLUMN_MA = `SELECT table_name tableName, column_name columnName, column_type columnType,
column_comment columnComment, column_key columnKey, extra, is_nullable nullable from information_schema.columns
@@ -491,6 +525,74 @@ const (
WHERE table_name in (%s) AND table_schema = (SELECT database())`
)
+type MysqlMetadata struct {
+ di *DbInstance
+}
+
+// 获取表基础元信息, 如表名等
+func (mm *MysqlMetadata) GetTables() []map[string]interface{} {
+ _, res, _ := mm.di.SelectData(MYSQL_TABLE_MA)
+ return res
+}
+
+// 获取列元信息, 如列名等
+func (mm *MysqlMetadata) GetColumns(tableNames ...string) []map[string]interface{} {
+ var sql, tableName string
+ for i := 0; i < len(tableNames); i++ {
+ if i != 0 {
+ tableName = tableName + ", "
+ }
+ tableName = tableName + "'" + tableNames[i] + "'"
+ }
+
+ pageNum := 1
+ // 如果大于一个表,则统计列数并分页获取
+ if len(tableNames) > 1 {
+ countSql := fmt.Sprintf(MYSQL_COLOUMN_MA_COUNT, tableName)
+ _, countRes, _ := mm.di.SelectData(countSql)
+ // 查询出所有列信息总数,手动分页获取所有数据
+ maCount := int(countRes[0]["maNum"].(int64))
+ // 计算需要查询的页数
+ pageNum = maCount / DEFAULT_COLUMN_SIZE
+ if maCount%DEFAULT_COLUMN_SIZE > 0 {
+ pageNum++
+ }
+ }
+
+ res := make([]map[string]interface{}, 0)
+ for index := 0; index < pageNum; index++ {
+ sql = fmt.Sprintf(MYSQL_COLUMN_MA, tableName, index*DEFAULT_COLUMN_SIZE, DEFAULT_COLUMN_SIZE)
+ _, result, err := mm.di.SelectData(sql)
+ biz.ErrIsNilAppendErr(err, "获取数据库列信息失败: %s")
+ res = append(res, result...)
+ }
+ return res
+}
+
+// 获取表主键字段名,默认第一个字段
+func (mm *MysqlMetadata) GetPrimaryKey(tablename string) string {
+ return mm.GetColumns(tablename)[0]["columnName"].(string)
+}
+
+// 获取表信息,比GetTableMetedatas获取更详细的表信息
+func (mm *MysqlMetadata) GetTableInfos() []map[string]interface{} {
+ _, res, _ := mm.di.SelectData(MYSQL_TABLE_INFO)
+ return res
+}
+
+// 获取表索引信息
+func (mm *MysqlMetadata) GetTableIndex(tableName string) []map[string]interface{} {
+ _, res, _ := mm.di.SelectData(MYSQL_INDEX_INFO)
+ return res
+}
+
+// 获取建表ddl
+func (mm *MysqlMetadata) GetCreateTableDdl(tableName string) []map[string]interface{} {
+ _, res, _ := mm.di.SelectData(fmt.Sprintf("show create table %s ", tableName))
+ return res
+}
+
+// ---------------------------------- pgsql元数据 -----------------------------------
const (
// postgres 表信息元数据
PGSQL_TABLE_MA = `SELECT obj_description(c.oid) AS "tableComment", c.relname AS "tableName" FROM pg_class c
@@ -537,18 +639,18 @@ const (
`
)
-func (d *DbInstance) GetTableMetedatas() []map[string]interface{} {
- var sql string
- if d.Type == entity.DbTypeMysql {
- sql = MYSQL_TABLE_MA
- } else if d.Type == "postgres" {
- sql = PGSQL_TABLE_MA
- }
- _, res, _ := d.SelectData(sql)
+type PgsqlMetadata struct {
+ di *DbInstance
+}
+
+// 获取表基础元信息, 如表名等
+func (pm *PgsqlMetadata) GetTables() []map[string]interface{} {
+ _, res, _ := pm.di.SelectData(PGSQL_TABLE_MA)
return res
}
-func (d *DbInstance) GetColumnMetadatas(tableNames ...string) []map[string]interface{} {
+// 获取列元信息, 如列名等
+func (pm *PgsqlMetadata) GetColumns(tableNames ...string) []map[string]interface{} {
var sql, tableName string
for i := 0; i < len(tableNames); i++ {
if i != 0 {
@@ -557,68 +659,48 @@ func (d *DbInstance) GetColumnMetadatas(tableNames ...string) []map[string]inter
tableName = tableName + "'" + tableNames[i] + "'"
}
- var countSqlTmp string
- var sqlTmp string
- if d.Type == entity.DbTypeMysql {
- countSqlTmp = MYSQL_COLOUMN_MA_COUNT
- sqlTmp = MYSQL_COLUMN_MA
- } else if d.Type == entity.DbTypePostgres {
- countSqlTmp = PGSQL_COLUMN_MA_COUNT
- sqlTmp = PGSQL_COLUMN_MA
- }
-
- countSql := fmt.Sprintf(countSqlTmp, tableName)
- _, countRes, _ := d.SelectData(countSql)
- // 查询出所有列信息总数,手动分页获取所有数据
- maCount := int(countRes[0]["maNum"].(int64))
- // 计算需要查询的页数
- pageNum := maCount / DEFAULT_COLUMN_SIZE
- if maCount%DEFAULT_COLUMN_SIZE > 0 {
- pageNum++
+ pageNum := 1
+ // 如果大于一个表,则统计列数并分页获取
+ if len(tableNames) > 1 {
+ countSql := fmt.Sprintf(PGSQL_COLUMN_MA_COUNT, tableName)
+ _, countRes, _ := pm.di.SelectData(countSql)
+ // 查询出所有列信息总数,手动分页获取所有数据
+ maCount := int(countRes[0]["maNum"].(int64))
+ // 计算需要查询的页数
+ pageNum = maCount / DEFAULT_COLUMN_SIZE
+ if maCount%DEFAULT_COLUMN_SIZE > 0 {
+ pageNum++
+ }
}
res := make([]map[string]interface{}, 0)
for index := 0; index < pageNum; index++ {
- sql = fmt.Sprintf(sqlTmp, tableName, index*DEFAULT_COLUMN_SIZE, DEFAULT_COLUMN_SIZE)
- _, result, err := d.SelectData(sql)
+ sql = fmt.Sprintf(PGSQL_COLUMN_MA, tableName, index*DEFAULT_COLUMN_SIZE, DEFAULT_COLUMN_SIZE)
+ _, result, err := pm.di.SelectData(sql)
biz.ErrIsNilAppendErr(err, "获取数据库列信息失败: %s")
res = append(res, result...)
}
return res
}
-// 获取表的主键,目前默认第一列为主键
-func (d *DbInstance) GetPrimaryKey(tablename string) string {
- return d.GetColumnMetadatas(tablename)[0]["columnName"].(string)
+// 获取表主键字段名,默认第一个字段
+func (pm *PgsqlMetadata) GetPrimaryKey(tablename string) string {
+ return pm.GetColumns(tablename)[0]["columnName"].(string)
}
-func (d *DbInstance) GetTableInfos() []map[string]interface{} {
- var sql string
- if d.Type == entity.DbTypeMysql {
- sql = MYSQL_TABLE_INFO
- } else if d.Type == entity.DbTypePostgres {
- sql = PGSQL_TABLE_INFO
- }
- _, res, _ := d.SelectData(sql)
+// 获取表信息,比GetTables获取更详细的表信息
+func (pm *PgsqlMetadata) GetTableInfos() []map[string]interface{} {
+ _, res, _ := pm.di.SelectData(PGSQL_TABLE_INFO)
return res
}
-func (d *DbInstance) GetTableIndex(tableName string) []map[string]interface{} {
- var sql string
- if d.Type == entity.DbTypeMysql {
- sql = fmt.Sprintf(MYSQL_INDEX_INFO, tableName)
- } else if d.Type == entity.DbTypePostgres {
- sql = fmt.Sprintf(PGSQL_INDEX_INFO, tableName)
- }
- _, res, _ := d.SelectData(sql)
+// 获取表索引信息
+func (pm *PgsqlMetadata) GetTableIndex(tableName string) []map[string]interface{} {
+ _, res, _ := pm.di.SelectData(PGSQL_INDEX_INFO)
return res
}
-func (d *DbInstance) GetCreateTableDdl(tableName string) []map[string]interface{} {
- var sql string
- if d.Type == entity.DbTypeMysql {
- sql = fmt.Sprintf("show create table %s ", tableName)
- }
- _, res, _ := d.SelectData(sql)
- return res
+// 获取建表ddl
+func (mm *PgsqlMetadata) GetCreateTableDdl(tableName string) []map[string]interface{} {
+ return nil
}
diff --git a/server/internal/devops/application/db_sql_exec_app.go b/server/internal/devops/application/db_sql_exec_app.go
index ead7c8e8..4abf8736 100644
--- a/server/internal/devops/application/db_sql_exec_app.go
+++ b/server/internal/devops/application/db_sql_exec_app.go
@@ -3,6 +3,7 @@ package application
import (
"encoding/json"
"fmt"
+
"mayfly-go/internal/devops/domain/entity"
"mayfly-go/internal/devops/domain/repository"
"mayfly-go/internal/devops/infrastructure/persistence"
@@ -89,7 +90,7 @@ func doUpdate(update *sqlparser.Update, dbInstance *DbInstance, dbSqlExec *entit
}
// 获取表主键列名,排除使用别名
- primaryKey := dbInstance.GetPrimaryKey(tableName)
+ primaryKey := dbInstance.GetMeta().GetPrimaryKey(tableName)
updateColumnsAndPrimaryKey := strings.Join(updateColumns, ",") + "," + primaryKey
// 查询要更新字段数据的旧值,以及主键值
diff --git a/server/main.go b/server/main.go
index 2db989fd..4c92a0d0 100644
--- a/server/main.go
+++ b/server/main.go
@@ -5,7 +5,5 @@ import (
)
func main() {
- starter.PrintBanner()
- starter.InitDb()
starter.RunWebServer()
}
diff --git a/server/pkg/config/app.go b/server/pkg/config/app.go
index bef8b380..3bc60c59 100644
--- a/server/pkg/config/app.go
+++ b/server/pkg/config/app.go
@@ -2,11 +2,11 @@ package config
import "fmt"
-type App struct {
- Name string `yaml:"name"`
- Version string `yaml:"version"`
-}
+const (
+ AppName = "mayfly-go"
+ Version = "v1.2.5"
+)
-func (a *App) GetAppInfo() string {
- return fmt.Sprintf("[%s:%s]", a.Name, a.Version)
+func GetAppInfo() string {
+ return fmt.Sprintf("[%s:%s]", AppName, Version)
}
diff --git a/server/pkg/config/config.go b/server/pkg/config/config.go
index 8ec7d6ad..62a1879b 100644
--- a/server/pkg/config/config.go
+++ b/server/pkg/config/config.go
@@ -11,12 +11,12 @@ import (
// 配置文件映射对象
var Conf *Config
-func init() {
+func Init() {
configFilePath := flag.String("e", "./config.yml", "配置文件路径,默认为可执行文件目录")
flag.Parse()
// 获取启动参数中,配置文件的绝对路径
path, _ := filepath.Abs(*configFilePath)
- startConfigParam = &CmdConfigParam{ConfigFilePath: path}
+ startConfigParam := &CmdConfigParam{ConfigFilePath: path}
// 读取配置文件信息
yc := &Config{}
if err := utils.LoadYml(startConfigParam.ConfigFilePath, yc); err != nil {
@@ -32,12 +32,8 @@ type CmdConfigParam struct {
ConfigFilePath string // -e 配置文件路径
}
-// 启动可执行文件时的参数
-var startConfigParam *CmdConfigParam
-
// yaml配置文件映射对象
type Config struct {
- App *App `yaml:"app"`
Server *Server `yaml:"server"`
Jwt *Jwt `yaml:"jwt"`
Aes *Aes `yaml:"aes"`
diff --git a/server/pkg/ctx/token.go b/server/pkg/ctx/token.go
index 46e92d3a..9d3a7a66 100644
--- a/server/pkg/ctx/token.go
+++ b/server/pkg/ctx/token.go
@@ -13,9 +13,14 @@ import (
"github.com/golang-jwt/jwt/v4"
)
-var (
- JwtKey = config.Conf.Jwt.Key
+func InitTokenConfig() {
+ JwtKey = config.Conf.Jwt.Key
ExpTime = config.Conf.Jwt.ExpireTime
+}
+
+var (
+ JwtKey string
+ ExpTime uint64
)
// 创建用户token
@@ -27,7 +32,8 @@ func CreateToken(userId uint64, username string) string {
"username": username,
"exp": time.Now().Add(time.Minute * time.Duration(ExpTime)).Unix(),
})
- // 如果jwt key为空,则随机生成字符串
+
+ // 如果配置文件中的jwt key为空,则随机生成字符串
if JwtKey == "" {
JwtKey = utils.RandString(32)
global.Log.Infof("config.yml未配置jwt.key, 随机生成key为: %s", JwtKey)
diff --git a/server/pkg/logger/logger.go b/server/pkg/logger/logger.go
index 5f5730ff..5e07f23e 100644
--- a/server/pkg/logger/logger.go
+++ b/server/pkg/logger/logger.go
@@ -13,7 +13,7 @@ import (
var Log = logrus.New()
-func init() {
+func Init() {
Log.SetFormatter(new(LogFormatter))
Log.SetReportCaller(true)
diff --git a/server/pkg/starter/banner.go b/server/pkg/starter/banner.go
index c5cfae21..14839bfa 100644
--- a/server/pkg/starter/banner.go
+++ b/server/pkg/starter/banner.go
@@ -1,16 +1,17 @@
package starter
import (
+ "fmt"
+ "mayfly-go/pkg/config"
"mayfly-go/pkg/global"
)
-func PrintBanner() {
- global.Log.Print(`
- __ _
- _ __ ___ __ _ _ _ / _| |_ _ __ _ ___
- | '_ ' _ \ / _' | | | | |_| | | | |_____ / _' |/ _ \
- | | | | | | (_| | |_| | _| | |_| |_____| (_| | (_) |
- |_| |_| |_|\__,_|\__, |_| |_|\__, | \__, |\___/
- |___/ |___/ |___/
- `)
+func printBanner() {
+ global.Log.Print(fmt.Sprintf(`
+ __ _
+ _ __ ___ __ _ _ _ / _| |_ _ __ _ ___
+| '_ ' _ \ / _' | | | | |_| | | | |_____ / _' |/ _ \
+| | | | | | (_| | |_| | _| | |_| |_____| (_| | (_) | version: %s
+|_| |_| |_|\__,_|\__, |_| |_|\__, | \__, |\___/
+ |___/ |___/ |___/ `, config.Version))
}
diff --git a/server/pkg/starter/gorm.go b/server/pkg/starter/gorm.go
index e2be4d19..cbbeca9c 100644
--- a/server/pkg/starter/gorm.go
+++ b/server/pkg/starter/gorm.go
@@ -10,11 +10,11 @@ import (
"gorm.io/gorm/schema"
)
-func InitDb() {
- global.Db = GormMysql()
+func initDb() {
+ global.Db = gormMysql()
}
-func GormMysql() *gorm.DB {
+func gormMysql() *gorm.DB {
m := config.Conf.Mysql
if m == nil || m.Dbname == "" {
global.Log.Panic("未找到数据库配置信息")
diff --git a/server/pkg/starter/run.go b/server/pkg/starter/run.go
new file mode 100644
index 00000000..d161de34
--- /dev/null
+++ b/server/pkg/starter/run.go
@@ -0,0 +1,23 @@
+package starter
+
+import (
+ "mayfly-go/pkg/config"
+ "mayfly-go/pkg/ctx"
+ "mayfly-go/pkg/logger"
+)
+
+func RunWebServer() {
+ // 初始化config.yml配置文件映射信息
+ config.Init()
+ // 初始化日志配置信息
+ logger.Init()
+ // 初始化jwt key与expire time等
+ ctx.InitTokenConfig()
+
+ // 打印banner
+ printBanner()
+ // 初始化并赋值数据库全局变量
+ initDb()
+ // 运行web服务
+ runWebServer()
+}
diff --git a/server/pkg/starter/web-server.go b/server/pkg/starter/web-server.go
index 79630d6f..6c317abb 100644
--- a/server/pkg/starter/web-server.go
+++ b/server/pkg/starter/web-server.go
@@ -8,7 +8,7 @@ import (
"mayfly-go/pkg/global"
)
-func RunWebServer() {
+func runWebServer() {
// 权限处理器
ctx.UseBeforeHandlerInterceptor(ctx.PermissionHandler)
// 日志处理器
@@ -21,11 +21,7 @@ func RunWebServer() {
server := config.Conf.Server
port := server.GetPort()
- if app := config.Conf.App; app != nil {
- global.Log.Infof("%s- Listening and serving HTTP on %s", app.GetAppInfo(), port)
- } else {
- global.Log.Infof("Listening and serving HTTP on %s", port)
- }
+ global.Log.Infof("Listening and serving HTTP on %s", port)
var err error
if server.Tls != nil && server.Tls.Enable {