Skip to content

Commit 517e057

Browse files
author
pixel
committed
cmd剔除 初始数据结构转移 修复初始携带apibug
1 parent 18ef727 commit 517e057

18 files changed

+117
-21
lines changed

server/api/v1/sys_initdb.go

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
// @Produce application/json
1717
// @Param data body request.InitDB true "初始化数据库参数"
1818
// @Success 200 {string} string "{"code":0,"data":{},"msg":"自动创建数据库成功"}"
19-
// @Router /initdb [post]
19+
// @Router /init/initdb [post]
2020
func InitDB(c *gin.Context) {
2121
if global.GVA_DB != nil {
2222
global.GVA_LOG.Error("非法访问")
@@ -36,3 +36,24 @@ func InitDB(c *gin.Context) {
3636
}
3737
response.OkWithData("自动创建数据库成功", c)
3838
}
39+
40+
// @Tags CheckDB
41+
// @Summary 初始化用户数据库
42+
// @Produce application/json
43+
// @Success 200 {string} string "{"code":0,"data":{},"msg":"探测完成"}"
44+
// @Router /init/checkdb [post]
45+
func CheckDB(c *gin.Context) {
46+
if global.GVA_DB == nil {
47+
global.GVA_LOG.Info("数据库无需初始化")
48+
response.OkWithDetailed(gin.H{
49+
"needInit":false,
50+
},"数据库无需初始化", c)
51+
return
52+
}else{
53+
global.GVA_LOG.Info("前往初始化数据库")
54+
response.OkWithDetailed(gin.H{
55+
"needInit":true,
56+
},"前往初始化数据库", c)
57+
return
58+
}
59+
}

server/initialize/router.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package initialize
22

33
import (
4-
v1 "gin-vue-admin/api/v1"
54
_ "gin-vue-admin/docs"
65
"gin-vue-admin/global"
76
"gin-vue-admin/middleware"
@@ -17,19 +16,19 @@ import (
1716

1817
func Routers() *gin.Engine {
1918
var Router = gin.Default()
20-
Router.POST("initdb", v1.InitDB)
2119
Router.StaticFS(global.GVA_CONFIG.Local.Path, http.Dir(global.GVA_CONFIG.Local.Path)) // 为用户头像和文件提供静态地址
2220
// Router.Use(middleware.LoadTls()) // 打开就能玩https了
2321
global.GVA_LOG.Info("use middleware logger")
2422
// 跨域
25-
Router.Use(middleware.Cors())
23+
//Router.Use(middleware.Cors()) // 如需跨域可以打开
2624
global.GVA_LOG.Info("use middleware cors")
2725
Router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
2826
global.GVA_LOG.Info("register swagger handler")
2927
// 方便统一添加路由组前缀 多服务器上线使用
3028
PublicGroup := Router.Group("")
3129
{
3230
router.InitBaseRouter(PublicGroup) // 注册基础功能路由 不做鉴权
31+
router.InitInitRouter(PublicGroup) // 自动初始化相关
3332
}
3433
PrivateGroup := Router.Group("")
3534
PrivateGroup.Use(middleware.JWTAuth()).Use(middleware.CasbinHandler())

server/model/sys_initdb.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
11
package model
2+
3+
type InitDBFunc interface {
4+
Init() (err error)
5+
}

server/router/sys_init.go

Lines changed: 0 additions & 1 deletion
This file was deleted.

server/router/sys_initdb.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package router
2+
3+
import (
4+
"gin-vue-admin/api/v1"
5+
"github.com/gin-gonic/gin"
6+
)
7+
8+
func InitInitRouter(Router *gin.RouterGroup) {
9+
ApiRouter := Router.Group("init")
10+
{
11+
ApiRouter.POST("initbd", v1.InitDB) // 创建Api
12+
ApiRouter.POST("checkdb", v1.CheckDB) // 创建Api
13+
}
14+
}

server/service/sys_initdb.go

Lines changed: 63 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,57 @@
11
package service
22

33
import (
4+
"database/sql"
45
"fmt"
5-
"gin-vue-admin/cmd/source"
66
"gin-vue-admin/global"
7+
"gin-vue-admin/model"
78
"gin-vue-admin/model/request"
9+
"gin-vue-admin/source"
10+
"github.com/spf13/viper"
811
)
912

13+
//@author: [songzhibin97](https://github.com/songzhibin97)
14+
//@function: writeConfig
15+
//@description: 回写配置
16+
//@param:
17+
//@return: error
18+
19+
func writeConfig(viper *viper.Viper, conf map[string]interface{}) error {
20+
for k, v := range conf {
21+
viper.Set(k, v)
22+
}
23+
return viper.WriteConfig()
24+
}
25+
26+
//@author: [songzhibin97](https://github.com/songzhibin97)
27+
//@function: createTable
28+
//@description: 创建数据库(mysql)
29+
//@param: dsn string, driver string, createSql
30+
//@return: error
31+
32+
func createTable(dsn string, driver string, createSql string) error {
33+
db, err := sql.Open(driver, dsn)
34+
if err != nil {
35+
return err
36+
}
37+
defer db.Close()
38+
if err = db.Ping(); err != nil {
39+
return err
40+
}
41+
_, err = db.Exec(createSql)
42+
return err
43+
}
44+
45+
func initDB(InitDBFunctions ...model.InitDBFunc) (err error) {
46+
for _, v := range InitDBFunctions {
47+
err = v.Init()
48+
if err != nil {
49+
return err
50+
}
51+
}
52+
return nil
53+
}
54+
1055
//@author: [songzhibin97](https://github.com/songzhibin97)
1156
//@function: InitDB
1257
//@description: 创建数据库并初始化
@@ -23,7 +68,7 @@ func InitDB(conf request.InitDB) error {
2368
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/", conf.UserName, conf.Password, conf.Host, conf.Port)
2469
fmt.Println(dsn)
2570
createSql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;", conf.DBName)
26-
if err := source.CreateTable(dsn, "mysql", createSql); err != nil {
71+
if err := createTable(dsn, "mysql", createSql); err != nil {
2772
return err
2873
}
2974
setting := map[string]interface{}{
@@ -32,9 +77,23 @@ func InitDB(conf request.InitDB) error {
3277
"mysql.username": conf.UserName,
3378
"mysql.password": conf.Password,
3479
}
35-
if err := source.WriteConfig(global.GVA_VP, setting); err != nil {
80+
if err := writeConfig(global.GVA_VP, setting); err != nil {
81+
return err
82+
}
83+
err := initDB(source.Admin,
84+
source.Api,
85+
source.AuthorityMenu,
86+
source.Authority,
87+
source.AuthoritiesMenus,
88+
source.Casbin,
89+
source.DataAuthorities,
90+
source.Dictionary,
91+
source.DictionaryDetail,
92+
source.File,
93+
source.BaseMenu,
94+
source.Workflow)
95+
if err!=nil {
3696
return err
3797
}
38-
source.InitDB()
3998
return nil
4099
}

server/source/admin.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package information
1+
package source
22

33
import (
44
"gin-vue-admin/global"

server/source/api.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package information
1+
package source
22

33
import (
44
"gin-vue-admin/global"

server/source/authorities_menus.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package information
1+
package source
22

33
import (
44
"gin-vue-admin/global"

server/source/authority.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package information
1+
package source
22

33
import (
44
"gin-vue-admin/global"

server/source/authority_menu.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package information
1+
package source
22

33
import (
44
"gin-vue-admin/global"

server/source/casbin.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package information
1+
package source
22

33
import (
44
"gin-vue-admin/global"

server/source/data_authorities.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package information
1+
package source
22

33
import (
44
"gin-vue-admin/global"

server/source/dictionary.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package information
1+
package source
22

33
import (
44
"gin-vue-admin/global"

server/source/dictionary_details.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package information
1+
package source
22

33
import (
44
"gin-vue-admin/global"

server/source/file.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package information
1+
package source
22

33
import (
44
"gin-vue-admin/global"

server/source/menu.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package information
1+
package source
22

33
import (
44
"gin-vue-admin/global"

server/source/workflow.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package information
1+
package source
22

33
import (
44
"gin-vue-admin/global"

0 commit comments

Comments
 (0)