package response import ( "base-go-v2/internal/logx" "base-go-v2/internal/router" "base-go-v2/internal/routinex" "base-go-v2/internal/utils/strutil" "net/http" ) type Result struct { Code int `json:"code"` Message string `json:"message"` Data interface{} `json:"data,omitempty"` TrackId string `json:"trackId,omitempty"` } var HttpCode = struct { Success int Unauthorized int Fail int RefreshToken int }{ Success: 200, Unauthorized: 401, Fail: 500, RefreshToken: 402, } type Builder struct { c *router.Context result Result } func Success(c *router.Context) *Builder { return &Builder{ c: c, result: Result{ Code: HttpCode.Success, Message: "请求成功", }, } } func Fail(c *router.Context) *Builder { return &Builder{ c: c, result: Result{ Code: HttpCode.Fail, Message: "请求失败", }, } } func (b *Builder) Code(code int) *Builder { b.result.Code = code return b } func (b *Builder) Message(msg string) *Builder { b.result.Message = msg return b } func (b *Builder) Data(data interface{}) *Builder { b.result.Data = data return b } func (b *Builder) Send() error { if b.result.Data == nil { b.result.Data = "" } if trackId := routinex.Get(logx.TrackID); trackId != nil { b.result.TrackId = strutil.ToString(trackId) } return b.c.JSON(http.StatusOK, b.result) }