Explorar el Código

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

qdy hace 3 meses
padre
commit
4f29e9ea11
Se han modificado 2 ficheros con 10 adiciones y 14 borrados
  1. 5
    8
      myhandle/query_handler_bytes.go
  2. 5
    6
      myhandle/query_handler_json.go

myhandle/queryHandlerBytes.go → myhandle/query_handler_bytes.go Ver fichero

3
 import (
3
 import (
4
 	"encoding/json"
4
 	"encoding/json"
5
 	"net/http"
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
 // 最简单的 queryHandler,只处理 []byte 返回
8
 // 最简单的 queryHandler,只处理 []byte 返回
12
-func QueryHandlerBytes(
9
+func QueryHandlerBytes[T any, F any](
13
 	w http.ResponseWriter,
10
 	w http.ResponseWriter,
14
 	r *http.Request,
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
 	if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
17
 	if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
21
 		// 返回 CSV 格式的错误信息
18
 		// 返回 CSV 格式的错误信息
22
 		errorCSV := "error,Invalid request body\n"
19
 		errorCSV := "error,Invalid request body\n"
27
 	}
24
 	}
28
 
25
 
29
 	// 调用业务逻辑函数
26
 	// 调用业务逻辑函数
30
-	csvData := handlerFunc(dbFactory, req)
27
+	csvData := handlerFunc(factory, req)
31
 
28
 
32
 	// 直接返回 CSV 数据(包含错误信息时也会被正确处理)
29
 	// 直接返回 CSV 数据(包含错误信息时也会被正确处理)
33
 	w.Header().Set("Content-Type", "text/csv")
30
 	w.Header().Set("Content-Type", "text/csv")

myhandle/queryHandlerJson.go → myhandle/query_handler_json.go Ver fichero

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

Loading…
Cancelar
Guardar