telco_server/tools/app/return.go

64 lines
1.3 KiB
Go
Raw Normal View History

2025-03-14 10:05:29 +00:00
package app
import (
"encoding/json"
"github.com/google/uuid"
"github.com/spf13/cast"
"net/http"
"github.com/gin-gonic/gin"
)
// Error 失败数据处理
func Error(c *gin.Context, code int, err error, msg string) {
var res Response
if err != nil {
res.Msg = err.Error()
}
if msg != "" {
res.Msg = msg
}
res.RequestId = GenerateMsgIDFromContext(c)
c.JSON(http.StatusOK, res.ReturnError(code))
response, _ := json.Marshal(res)
c.Set("response", string(response))
}
// OK 通常成功数据处理
func OK(c *gin.Context, data interface{}, msg string) {
var res Response
res.Data = data
if msg != "" {
res.Msg = msg
}
res.RequestId = GenerateMsgIDFromContext(c)
c.JSON(http.StatusOK, res.ReturnOK())
response, _ := json.Marshal(res)
c.Set("response", string(response))
}
// PageOK 分页数据处理
func PageOK(c *gin.Context, result interface{}, count int, pageIndex int, pageSize int, msg string) {
var res Page
res.List = result
res.Count = count
res.PageIndex = pageIndex
res.PageSize = pageSize
OK(c, res, msg)
}
// GenerateMsgIDFromContext 生成msgID
func GenerateMsgIDFromContext(c *gin.Context) string {
var msgID string
data, ok := c.Get("msgID")
if !ok {
msgID = uuid.New().String()
c.Set("msgID", msgID)
return msgID
}
msgID = cast.ToString(data)
return msgID
}