64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
|
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
|
||
|
}
|