qdy преди 3 месеца
родител
ревизия
0dd3d87888
променени са 6 файла, в които са добавени 13 реда и са изтрити 35 реда
  1. 1
    1
      go.mod
  2. 4
    0
      go.sum
  3. 4
    5
      main.go
  4. 2
    27
      routes/heath.go
  5. 1
    1
      routes/query.go
  6. 1
    1
      routes/query_csv.go

+ 1
- 1
go.mod Целия файл

@@ -4,7 +4,7 @@ go 1.25.4
4 4
 
5 5
 require (
6 6
 	git.x2erp.com/qdy/go-base v0.1.9
7
-	git.x2erp.com/qdy/go-db v0.1.11
7
+	git.x2erp.com/qdy/go-db v0.1.13
8 8
 	github.com/gin-gonic/gin v1.11.0
9 9
 )
10 10
 

+ 4
- 0
go.sum Целия файл

@@ -4,6 +4,10 @@ git.x2erp.com/qdy/go-base v0.1.9 h1:SuyYSt3Gp7aXiUQRCBNwhrusJ53wlCnagiTYs5eITlY=
4 4
 git.x2erp.com/qdy/go-base v0.1.9/go.mod h1:Q+YLwpCoU8CVSnzATLdz2LAzVMlz/CEGzo8DePf7cug=
5 5
 git.x2erp.com/qdy/go-db v0.1.11 h1:dT22aYhtfk+Y3q2/jc8UZSuCjsLFC/eBrwwTHDUTOsA=
6 6
 git.x2erp.com/qdy/go-db v0.1.11/go.mod h1:6dICJn/sZRj0WIMf5y8MfsjBC1wWZcG4lczgeIAGBhM=
7
+git.x2erp.com/qdy/go-db v0.1.12 h1:z4VfTbIMNhBbpPmjRRtSjEkXet7nvVRjTd92+IFsGbw=
8
+git.x2erp.com/qdy/go-db v0.1.12/go.mod h1:tcHV7sqEFYWbL/196NZxVnbdHevefRppggMTARVXQtE=
9
+git.x2erp.com/qdy/go-db v0.1.13 h1:gx1Ld+b3QRaO7VvyBm4fipafGkl0Yl+4ERzromAtck4=
10
+git.x2erp.com/qdy/go-db v0.1.13/go.mod h1:tcHV7sqEFYWbL/196NZxVnbdHevefRppggMTARVXQtE=
7 11
 github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U=
8 12
 github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM=
9 13
 github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 h1:B+blDbyVIG3WaikNxPnhPiJ1MThR03b3vKGtER95TP4=

+ 4
- 5
main.go Целия файл

@@ -43,7 +43,7 @@ func initDB() error {
43 43
 
44 44
 	// 测试连接
45 45
 	config := dbFactory.GetConfig()
46
-	if err := routes.TestConnection(db, config.GetDatabase().Type); err != nil {
46
+	if err := factory.TestConnection(db, config.GetDatabase().Type); err != nil {
47 47
 		return fmt.Errorf("database connection test failed: %v", err)
48 48
 	}
49 49
 
@@ -80,16 +80,15 @@ func main() {
80 80
 func startHTTPServer() {
81 81
 	//建立路由
82 82
 	router := gin.Default()
83
+	config := dbFactory.GetConfig()
84
+	serviceConfig := config.GetService()
83 85
 
84 86
 	// 核心路由
85
-	router.GET("/api/health", routes.HealthHandler(db, "oracle"))
87
+	router.GET("/api/health", routes.HealthHandler(db, config.GetDatabase().Type))
86 88
 	router.POST("/api/query", auth.AuthMiddleware(), withQueryRequest(routes.QueryHandler(db)))
87 89
 	router.POST("/api/query/csv", auth.AuthMiddleware(), withQueryRequest(routes.QueryHandlerCSV(db)))
88 90
 	router.GET("/api/info", routes.InfoHandler(dbFactory))
89 91
 
90
-	config := dbFactory.GetConfig()
91
-	serviceConfig := config.GetService()
92
-
93 92
 	// 日志输出配置信息
94 93
 	log.Printf("Service Port: %d", serviceConfig.Port)
95 94
 	log.Printf("Service IdleTimeout: %d", serviceConfig.IdleTimeout)

+ 2
- 27
routes/heath.go Целия файл

@@ -2,19 +2,19 @@ package routes
2 2
 
3 3
 import (
4 4
 	"database/sql"
5
-	"fmt"
6 5
 	"time"
7 6
 
8 7
 	"github.com/gin-gonic/gin"
9 8
 
10 9
 	"git.x2erp.com/qdy/go-base/types"
10
+	"git.x2erp.com/qdy/go-db/factory"
11 11
 )
12 12
 
13 13
 // HealthHandler 返回一个处理函数
14 14
 func HealthHandler(db *sql.DB, dbType string) gin.HandlerFunc {
15 15
 	return func(c *gin.Context) {
16 16
 
17
-		err := TestConnection(db, dbType)
17
+		err := factory.TestConnection(db, dbType)
18 18
 		success := err == nil
19 19
 
20 20
 		status := "DOWN"
@@ -39,28 +39,3 @@ func HealthHandler(db *sql.DB, dbType string) gin.HandlerFunc {
39 39
 		})
40 40
 	}
41 41
 }
42
-
43
-// testConnection 测试数据库连接
44
-func TestConnection(db *sql.DB, dbType string) error {
45
-	var query string
46
-	switch dbType {
47
-	case "mysql", "postgres", "sqlserver":
48
-		query = "SELECT 1"
49
-	case "oracle":
50
-		query = "SELECT 1 FROM DUAL"
51
-	default:
52
-		query = "SELECT 1"
53
-	}
54
-
55
-	var result int
56
-	err := db.QueryRow(query).Scan(&result)
57
-	if err != nil {
58
-		return err
59
-	}
60
-
61
-	if result != 1 {
62
-		return fmt.Errorf("unexpected test result: %d", result)
63
-	}
64
-
65
-	return nil
66
-}

+ 1
- 1
routes/query.go Целия файл

@@ -12,7 +12,7 @@ import (
12 12
 // 创建带 db 的 handler
13 13
 func QueryHandler(db *sql.DB) func(c *gin.Context, req types.QueryRequest) {
14 14
 	return func(c *gin.Context, req types.QueryRequest) {
15
-		result := factory.QuickQueryToJSON(db, req.SQL)
15
+		result := factory.QueryToJSON(db, req.SQL)
16 16
 		c.JSON(200, result)
17 17
 	}
18 18
 }

routes/queryCSV.go → routes/query_csv.go Целия файл

@@ -13,7 +13,7 @@ import (
13 13
 // 创建带 db 的 handler
14 14
 func QueryHandlerCSV(db *sql.DB) func(c *gin.Context, req types.QueryRequest) {
15 15
 	return func(c *gin.Context, req types.QueryRequest) {
16
-		csvData, err := factory.QuickQueryToCSV(db, req.SQL)
16
+		csvData, err := factory.QueryToCSV(db, req.SQL)
17 17
 		if err != nil {
18 18
 			// 错误时也返回CSV格式,而不是JSON
19 19
 			errorCSV := mycsv.CreateStringToCSV(err.Error())

Loading…
Отказ
Запис