fonchain-fiee/pkg/service/base.go

73 lines
1.1 KiB
Go
Raw Normal View History

2025-02-19 06:24:15 +00:00
package service
import (
2025-02-20 08:24:49 +00:00
"github.com/gin-gonic/gin"
2025-02-19 06:24:15 +00:00
"net/http"
2025-02-20 08:24:49 +00:00
)
2025-02-19 06:24:15 +00:00
2025-02-20 08:24:49 +00:00
const (
Failed = 1
Ok = 0
2025-02-21 13:09:29 +00:00
RetryCode = 2
2025-02-19 06:24:15 +00:00
)
2025-02-20 08:24:49 +00:00
// Response 基础序列化器
type Response struct {
Status int `json:"status"`
Data interface{} `json:"data"`
Msg string `json:"msg"`
Code int `json:"code"`
2025-02-21 13:09:29 +00:00
Error error `json:"error"`
2025-02-20 08:24:49 +00:00
}
// Success Success(c,someMap) datas传结构体中文会有乱码问题
2025-02-19 06:24:15 +00:00
func Success(c *gin.Context, datas ...interface{}) {
2025-02-20 08:24:49 +00:00
var data interface{}
2025-02-19 06:24:15 +00:00
if datas != nil {
data = datas[0]
2025-02-20 08:24:49 +00:00
} else {
data = struct{}{}
2025-02-19 06:24:15 +00:00
}
2025-02-20 08:24:49 +00:00
c.JSON(http.StatusOK, Response{
Status: Ok,
Code: Ok,
2025-02-19 06:24:15 +00:00
Data: data,
2025-02-20 08:24:49 +00:00
Msg: "ok",
2025-02-19 06:24:15 +00:00
})
c.Abort()
}
// Error 统一错误返回
2025-02-20 08:24:49 +00:00
func Error(c *gin.Context, err error) {
2025-02-19 06:24:15 +00:00
2025-02-20 08:24:49 +00:00
errMsg := ""
if err != nil {
errMsg = err.Error()
2025-02-19 06:24:15 +00:00
}
2025-02-20 08:24:49 +00:00
c.JSON(http.StatusOK, Response{
Code: Failed,
Msg: errMsg,
Data: struct{}{},
2025-02-19 06:24:15 +00:00
})
c.Abort()
}
2025-02-21 13:09:29 +00:00
// 重试
func Retry(c *gin.Context, err error) {
errMsg := ""
if err != nil {
errMsg = err.Error()
}
c.JSON(http.StatusOK, Response{
Code: RetryCode,
Msg: errMsg,
Data: struct{}{},
})
c.Abort()
}