|
|
@@ -1,17 +1,19 @@
|
|
1
|
1
|
package main
|
|
2
|
2
|
|
|
3
|
3
|
import (
|
|
|
4
|
+ "log"
|
|
|
5
|
+
|
|
4
|
6
|
"git.x2erp.com/qdy/go-db/factory/database"
|
|
|
7
|
+ "git.x2erp.com/qdy/go-db/sqldef"
|
|
5
|
8
|
|
|
6
|
9
|
"git.x2erp.com/qdy/go-base/config"
|
|
7
|
|
- "git.x2erp.com/qdy/go-base/consul"
|
|
8
|
10
|
"git.x2erp.com/qdy/go-base/container"
|
|
9
|
11
|
"git.x2erp.com/qdy/go-base/graceful"
|
|
10
|
12
|
"git.x2erp.com/qdy/go-base/logger"
|
|
11
|
13
|
|
|
12
|
14
|
"git.x2erp.com/qdy/go-base/webx"
|
|
13
|
|
- "git.x2erp.com/qdy/go-base/webx/health"
|
|
14
|
|
- "git.x2erp.com/qdy/go-base/webx/router"
|
|
|
15
|
+
|
|
|
16
|
+ _ "git.x2erp.com/qdy/go-svc-mercury/internal/tables" // 导入表定义包,触发 init() 函数
|
|
15
|
17
|
)
|
|
16
|
18
|
|
|
17
|
19
|
var (
|
|
|
@@ -19,46 +21,32 @@ var (
|
|
19
|
21
|
appVersion = "1"
|
|
20
|
22
|
)
|
|
21
|
23
|
|
|
22
|
|
-// 定义结构体
|
|
23
|
|
-type CreateUserRequest struct {
|
|
24
|
|
- Name string `json:"name"`
|
|
25
|
|
- Email string `json:"email"`
|
|
26
|
|
- Age int `json:"age"`
|
|
27
|
|
-}
|
|
28
|
|
-
|
|
29
|
|
-type UserResponse struct {
|
|
30
|
|
- ID string `json:"id"`
|
|
31
|
|
- Name string `json:"name"`
|
|
32
|
|
- Email string `json:"email"`
|
|
33
|
|
- Data []map[string]interface{}
|
|
34
|
|
-}
|
|
35
|
|
-
|
|
36
|
24
|
func main() {
|
|
37
|
25
|
|
|
38
|
|
- //0.日志
|
|
39
|
|
- //logger.InitBootLog()
|
|
|
26
|
+ // 0. 初始化日志
|
|
40
|
27
|
logBootFactory := logger.InitBootLog()
|
|
41
|
28
|
|
|
42
|
|
- //1.获取配置文件
|
|
|
29
|
+ // 1. 获取配置文件
|
|
43
|
30
|
cfg := config.GetConfig()
|
|
44
|
31
|
cfg.SetAppName(appName)
|
|
45
|
32
|
cfg.SetAppVersion(appVersion)
|
|
46
|
33
|
|
|
47
|
|
- //2.创建关闭容器
|
|
|
34
|
+ // 2. 创建关闭容器
|
|
48
|
35
|
ctr := container.NewContainer(cfg)
|
|
49
|
36
|
|
|
50
|
|
- //注册日志,实现自动关闭
|
|
|
37
|
+ // 注册日志,实现自动关闭
|
|
51
|
38
|
container.Reg(ctr, logBootFactory)
|
|
52
|
39
|
|
|
53
|
|
- //3.创建数据库工厂--如果需求
|
|
|
40
|
+ // 3. 创建数据库工厂
|
|
54
|
41
|
dbFactory := container.Create(ctr, database.CreateDBFactory)
|
|
55
|
|
-
|
|
56
|
|
- // 赋值认证中间件参数
|
|
57
|
|
- //middleware.JWTAuthMiddlewareInit(cfg)
|
|
58
|
|
-
|
|
59
|
|
- //测试数据库连接
|
|
60
|
42
|
dbFactory.TestConnection()
|
|
|
43
|
+ // 创建表
|
|
|
44
|
+ creteTabel(dbFactory)
|
|
|
45
|
+
|
|
|
46
|
+ //启用运行日志
|
|
|
47
|
+ container.Create(ctr, logger.InitRuntimeLogger)
|
|
61
|
48
|
|
|
|
49
|
+ //建立httpservice
|
|
62
|
50
|
//得到webservice服务工厂
|
|
63
|
51
|
webxFactory := webx.GetWebServiceFactory()
|
|
64
|
52
|
|
|
|
@@ -66,29 +54,38 @@ func main() {
|
|
66
|
54
|
webServcie, _ := webxFactory.CreateService(cfg.GetServiceConfig())
|
|
67
|
55
|
|
|
68
|
56
|
//建立路由-api
|
|
69
|
|
- routerService := router.NewWebService(webServcie.GetRouter())
|
|
70
|
|
-
|
|
|
57
|
+ //routerService := router.NewWebService(webServcie.GetRouter())
|
|
71
|
58
|
//注册路由--api
|
|
72
|
|
- //registerDorisRouter(routerService, dbFactory)
|
|
|
59
|
+ //registerRoutes(routerService, dbFactory)
|
|
73
|
60
|
|
|
74
|
|
- // 注册健康检查-api
|
|
75
|
|
- health.RegisterConsulHealthCheck(routerService)
|
|
|
61
|
+ // 注册前端静态文件服务
|
|
|
62
|
+ //frontendHandler := ServeFrontend()
|
|
|
63
|
+ //webServcie.GetRouter().Handle("/", frontendHandler)
|
|
76
|
64
|
|
|
77
|
65
|
//启动服务
|
|
78
|
66
|
webServcie.Run()
|
|
79
|
67
|
|
|
80
|
|
- //启用运行日志
|
|
81
|
|
- container.Create(ctr, logger.InitRuntimeLogger)
|
|
82
|
|
-
|
|
83
|
|
- //注册到注册中心
|
|
84
|
|
- container.Create(ctr, consul.Register)
|
|
85
|
68
|
//等待关闭
|
|
86
|
|
- //webServcie.WaitForServiceShutdown(ctr)
|
|
|
69
|
+ graceful.WaitForShutdown(cfg.GetServiceConfig().ServiceName, ctr, webServcie.GetServer())
|
|
87
|
70
|
|
|
88
|
|
- //启动服务
|
|
89
|
|
- webServcie.Run()
|
|
|
71
|
+}
|
|
90
|
72
|
|
|
91
|
|
- //等待关闭
|
|
92
|
|
- graceful.WaitForShutdown(cfg.GetServiceConfig().ServiceName, ctr, webServcie.GetServer())
|
|
|
73
|
+func creteTabel(factory *database.DBFactory) {
|
|
|
74
|
+
|
|
|
75
|
+ // 获取数据库连接和类型
|
|
|
76
|
+ db := factory.GetDB()
|
|
|
77
|
+ dbType := factory.GetDBType()
|
|
|
78
|
+
|
|
|
79
|
+ // 创建表同步器
|
|
|
80
|
+ syncer, err := sqldef.NewTableSyncer(db, dbType)
|
|
|
81
|
+ if err != nil {
|
|
|
82
|
+ log.Printf("创建 - 建立器失败: %v", err)
|
|
|
83
|
+ }
|
|
|
84
|
+
|
|
|
85
|
+ // 创建表
|
|
|
86
|
+ if err := syncer.CreateTables(); err != nil {
|
|
|
87
|
+ log.Printf("建表失败: %v", err)
|
|
|
88
|
+ }
|
|
93
|
89
|
|
|
|
90
|
+ log.Println("数据库表建立完成!")
|
|
94
|
91
|
}
|