| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package myservice
-
- import (
- "time"
-
- "git.x2erp.com/qdy/go-base/ctx"
- "git.x2erp.com/qdy/go-base/logger"
- "git.x2erp.com/qdy/go-base/types"
- )
-
- // CreateErrorResult 创建错误结果的泛型辅助函数
- //
- // T 是 QueryResult 中 Data 字段的类型
- func CreateErrorResult[T any](errorMsg string, startTime time.Time, reqCtx *ctx.RequestContext) *types.QueryResult[T] {
- // 使用 *new(T) 获取 T 类型的零值指针
- var zeroValue T
- return createResult(zeroValue, false, errorMsg, startTime, reqCtx)
- }
-
- // CreateSuccessResult 建立返回成功对象
- //
- // T 是 QueryResult 中 Data 字段的类型
- func CreateSuccessResultData[T any](data T, startTime time.Time, reqCtx *ctx.RequestContext) *types.QueryResult[T] {
- return createResult(data, true, "", startTime, reqCtx)
- }
-
- func CreateSuccessResult[T any](startTime time.Time, reqCtx *ctx.RequestContext) *types.QueryResult[T] {
- var zeroValue T
- return createResult(zeroValue, true, "", startTime, reqCtx)
- }
-
- func createResult[T any](data T, success bool, msg string, startTime time.Time, reqCtx *ctx.RequestContext) *types.QueryResult[T] {
- if success {
- logger.DebugC(reqCtx, msg)
- } else {
- logger.ErrorC(reqCtx, msg)
- }
-
- return &types.QueryResult[T]{
- Success: success,
- Error: msg,
- Time: time.Since(startTime).String(),
- Metadata: reqCtx,
- Data: data,
- }
- }
|