// Package resp 统一结果响应:{code, message, data}。 // code = 0 表示成功,非 0 为业务错误码。 package resp import ( "net/http" "github.com/gin-gonic/gin" ) const ( CodeOK = 0 CodeBadRequest = 40000 CodeUnauthorized = 40100 CodeNotFound = 40400 CodeServerError = 50000 ) type Body struct { Code int `json:"code"` Message string `json:"message"` Data any `json:"data,omitempty"` } // PageResult 分页数据统一结构。 type PageResult struct { List any `json:"list"` Total int64 `json:"total"` Page int `json:"page"` PageSize int `json:"page_size"` } func OK(c *gin.Context, data any) { c.JSON(http.StatusOK, Body{Code: CodeOK, Message: "ok", Data: data}) } func Page(c *gin.Context, list any, total int64, page, pageSize int) { OK(c, PageResult{List: list, Total: total, Page: page, PageSize: pageSize}) } func BadRequest(c *gin.Context, message string) { c.JSON(http.StatusBadRequest, Body{Code: CodeBadRequest, Message: message}) } func Unauthorized(c *gin.Context, message string) { c.AbortWithStatusJSON(http.StatusUnauthorized, Body{Code: CodeUnauthorized, Message: message}) } func NotFound(c *gin.Context, message string) { c.JSON(http.StatusNotFound, Body{Code: CodeNotFound, Message: message}) } func ServerError(c *gin.Context, message string) { c.JSON(http.StatusInternalServerError, Body{Code: CodeServerError, Message: message}) }