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