Преглед изворни кода

初始化配置测试通过

qdy пре 2 месеци
родитељ
комит
9e94c42d04
1 измењених фајлова са 46 додато и 0 уклоњено
  1. 46
    0
      myservice/create_error_result.go

+ 46
- 0
myservice/create_error_result.go Прегледај датотеку

@@ -0,0 +1,46 @@
1
+package myservice
2
+
3
+import (
4
+	"time"
5
+
6
+	"git.x2erp.com/qdy/go-base/ctx"
7
+	"git.x2erp.com/qdy/go-base/logger"
8
+	"git.x2erp.com/qdy/go-base/types"
9
+)
10
+
11
+//	CreateErrorResult 创建错误结果的泛型辅助函数
12
+//
13
+// T 是 QueryResult 中 Data 字段的类型
14
+func CreateErrorResult[T any](errorMsg string, startTime time.Time, reqCtx *ctx.RequestContext) *types.QueryResult[T] {
15
+	// 使用 *new(T) 获取 T 类型的零值指针
16
+	var zeroValue T
17
+	return createResult(zeroValue, false, errorMsg, startTime, reqCtx)
18
+}
19
+
20
+// CreateSuccessResult 建立返回成功对象
21
+//
22
+//	T 是 QueryResult 中 Data 字段的类型
23
+func CreateSuccessResultData[T any](data T, startTime time.Time, reqCtx *ctx.RequestContext) *types.QueryResult[T] {
24
+	return createResult(data, true, "", startTime, reqCtx)
25
+}
26
+
27
+func CreateSuccessResult[T any](startTime time.Time, reqCtx *ctx.RequestContext) *types.QueryResult[T] {
28
+	var zeroValue T
29
+	return createResult(zeroValue, true, "", startTime, reqCtx)
30
+}
31
+
32
+func createResult[T any](data T, success bool, msg string, startTime time.Time, reqCtx *ctx.RequestContext) *types.QueryResult[T] {
33
+	if success {
34
+		logger.DebugC(reqCtx, msg)
35
+	} else {
36
+		logger.ErrorC(reqCtx, msg)
37
+	}
38
+
39
+	return &types.QueryResult[T]{
40
+		Success:  success,
41
+		Error:    msg,
42
+		Time:     time.Since(startTime).String(),
43
+		Metadata: reqCtx,
44
+		Data:     data,
45
+	}
46
+}

Loading…
Откажи
Сачувај