| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 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,
- }
- }
|