Quellcode durchsuchen

增加参数。csv是否包含表头

qdy vor 3 Monaten
Ursprung
Commit
4f29e9ea11
2 geänderte Dateien mit 10 neuen und 14 gelöschten Zeilen
  1. 5
    8
      myhandle/query_handler_bytes.go
  2. 5
    6
      myhandle/query_handler_json.go

myhandle/queryHandlerBytes.go → myhandle/query_handler_bytes.go Datei anzeigen

@@ -3,20 +3,17 @@ package myhandle
3 3
 import (
4 4
 	"encoding/json"
5 5
 	"net/http"
6
-
7
-	"git.x2erp.com/qdy/go-base/types"
8
-	"git.x2erp.com/qdy/go-db/factory/database"
9 6
 )
10 7
 
11 8
 // 最简单的 queryHandler,只处理 []byte 返回
12
-func QueryHandlerBytes(
9
+func QueryHandlerBytes[T any, F any](
13 10
 	w http.ResponseWriter,
14 11
 	r *http.Request,
15
-	dbFactory *database.DBFactory,
16
-	handlerFunc func(*database.DBFactory, types.QueryRequest) []byte,
12
+	factory F,
13
+	handlerFunc func(F, T) []byte,
17 14
 ) {
18 15
 	// 解析请求参数
19
-	var req types.QueryRequest
16
+	var req T
20 17
 	if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
21 18
 		// 返回 CSV 格式的错误信息
22 19
 		errorCSV := "error,Invalid request body\n"
@@ -27,7 +24,7 @@ func QueryHandlerBytes(
27 24
 	}
28 25
 
29 26
 	// 调用业务逻辑函数
30
-	csvData := handlerFunc(dbFactory, req)
27
+	csvData := handlerFunc(factory, req)
31 28
 
32 29
 	// 直接返回 CSV 数据(包含错误信息时也会被正确处理)
33 30
 	w.Header().Set("Content-Type", "text/csv")

myhandle/queryHandlerJson.go → myhandle/query_handler_json.go Datei anzeigen

@@ -6,18 +6,17 @@ import (
6 6
 	"time"
7 7
 
8 8
 	"git.x2erp.com/qdy/go-base/types"
9
-	"git.x2erp.com/qdy/go-db/factory/database"
10 9
 )
11 10
 
12 11
 // queryHandler - 最简单的版本
13
-func QueryHandlerJson(
12
+func QueryHandlerJson[T any, F any](
14 13
 	w http.ResponseWriter,
15 14
 	r *http.Request,
16
-	dbFactory *database.DBFactory,
17
-	handlerFunc func(*database.DBFactory, types.QueryRequest) *types.QueryResult,
15
+	factory F,
16
+	handlerFunc func(F, T) *types.QueryResult,
18 17
 ) {
19 18
 	// 解析请求参数
20
-	var req types.QueryRequest
19
+	var req T
21 20
 	if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
22 21
 		// 如果解析失败,也返回 QueryResult 格式
23 22
 		w.Header().Set("Content-Type", "application/json")
@@ -30,7 +29,7 @@ func QueryHandlerJson(
30 29
 	}
31 30
 
32 31
 	// 执行业务逻辑
33
-	result := handlerFunc(dbFactory, req)
32
+	result := handlerFunc(factory, req)
34 33
 
35 34
 	// 设置头,写入结果
36 35
 	w.Header().Set("Content-Type", "application/json")

Laden…
Abbrechen
Speichern