Keine Beschreibung
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

create_response_result.go 1.2KB

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