You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.1 KiB
86 lines
2.1 KiB
package response |
|
|
|
import ( |
|
"github.com/gogf/gf/v2/net/ghttp" |
|
"github.com/gogf/gf/v2/os/gmutex" |
|
) |
|
|
|
const ( |
|
SuccessCode int = 1000 |
|
ErrorCode int = -1 |
|
) |
|
|
|
type Response struct { |
|
// 代码 |
|
Code int `json:"code" example:"200"` |
|
// 数据集 |
|
Data interface{} `json:"data"` |
|
// 消息 |
|
Message string `json:"message"` |
|
} |
|
|
|
var ( |
|
response = new(Response) |
|
mu = gmutex.New() |
|
) |
|
|
|
|
|
func RJson(r *ghttp.Request, code int, message string, data ...interface{}) { |
|
response.RJson(r, code, message, data...) |
|
} |
|
|
|
func SusJson(isExit bool, r *ghttp.Request, message string, data ...interface{}) { |
|
// message = lang.ToKey(r.GetCtx(), message) |
|
response.SusJson(isExit, r, message, data...) |
|
} |
|
|
|
func FailJson(isExit bool, r *ghttp.Request, message string, data ...interface{}) { |
|
// message = lang.ToKey(r.GetCtx(), message) |
|
response.FailJson(isExit, r, message, data...) |
|
} |
|
|
|
|
|
|
|
// 返回JSON数据并退出当前HTTP执行函数。 |
|
func (res *Response) JsonExit(r *ghttp.Request, code int, message string, data ...interface{}) { |
|
res.RJson(r, code, message, data...) |
|
r.Exit() |
|
} |
|
|
|
|
|
// 标准返回结果数据结构封装。 |
|
// 返回固定数据结构的JSON: |
|
// code: 状态码(200:成功,302跳转,和http请求状态码一至); |
|
// message: 请求结果信息; |
|
// data: 请求结果,根据不同接口返回结果的数据结构不同; |
|
func (res *Response) RJson(r *ghttp.Request, code int, message string, data ...interface{}) { |
|
responseData := interface{}(nil) |
|
if len(data) > 0 { |
|
responseData = data[0] |
|
} |
|
response = &Response{ |
|
Code: code, |
|
Message: message, |
|
Data: responseData, |
|
} |
|
r.SetParam("apiReturnRes", response) |
|
r.Response.WriteJson(response) |
|
} |
|
|
|
// 成功返回JSON |
|
func (res *Response) SusJson(isExit bool, r *ghttp.Request, message string, data ...interface{}) { |
|
if isExit { |
|
res.JsonExit(r, SuccessCode, message, data...) |
|
} |
|
res.RJson(r, SuccessCode, message, data...) |
|
} |
|
|
|
// 失败返回JSON |
|
func (res *Response) FailJson(isExit bool, r *ghttp.Request, message string, data ...interface{}) { |
|
if isExit { |
|
res.JsonExit(r, ErrorCode, message, data...) |
|
} |
|
res.RJson(r, ErrorCode, message, data...) |
|
} |
|
|
|
|
|
|