package r import ( "fmt" "github.com/loveuer/nf" "strings" ) const ( MSG200 = "请求成功" MSG202 = "请求成功, 请稍后..." MSG400 = "请求参数错误" MSG401 = "登录已过期, 请重新登录" MSG403 = "请求权限不足" MSG404 = "请求资源未找到" MSG429 = "请求过于频繁, 请稍后再试" MSG500 = "服务器开小差了, 请稍后再试" MSG501 = "功能开发中, 尽情期待" ) func handleEmptyMsg(status uint32, msg string) string { if msg == "" { switch status { case 200: msg = MSG200 case 202: msg = MSG202 case 400: msg = MSG400 case 401: msg = MSG401 case 403: msg = MSG403 case 404: msg = MSG404 case 429: msg = MSG429 case 500: msg = MSG500 case 501: msg = MSG501 } } return msg } func Resp(c *nf.Ctx, status uint32, msg string, err string, data any) error { msg = handleEmptyMsg(status, msg) if data == nil { return c.Status(int(status)).JSON(nf.Map{"status": status, "msg": msg, "err": err}) } return c.Status(int(status)).JSON(nf.Map{"status": status, "msg": msg, "err": err, "data": data}) } func Resp200(c *nf.Ctx, data any, msgs ...string) error { msg := MSG200 if len(msgs) > 0 && msgs[0] != "" { msg = fmt.Sprintf("%s: %s", msg, strings.Join(msgs, "; ")) } return Resp(c, 200, msg, "", data) } func Resp202(c *nf.Ctx, data any, msgs ...string) error { msg := MSG202 if len(msgs) > 0 && msgs[0] != "" { msg = fmt.Sprintf("%s: %s", msg, strings.Join(msgs, "; ")) } return Resp(c, 202, msg, "", data) } func Resp400(c *nf.Ctx, data any, msgs ...string) error { msg := MSG400 err := "" if len(msgs) > 0 && msgs[0] != "" { msg = fmt.Sprintf("%s: %s", msg, strings.Join(msgs, "; ")) err = msg } return Resp(c, 400, msg, err, data) } func Resp401(c *nf.Ctx, data any, msgs ...string) error { msg := MSG401 err := "" if len(msgs) > 0 && msgs[0] != "" { msg = fmt.Sprintf("%s: %s", msg, strings.Join(msgs, "; ")) err = msg } return Resp(c, 401, msg, err, data) } func Resp403(c *nf.Ctx, data any, msgs ...string) error { msg := MSG403 err := "" if len(msgs) > 0 && msgs[0] != "" { msg = fmt.Sprintf("%s: %s", msg, strings.Join(msgs, "; ")) err = msg } return Resp(c, 403, msg, err, data) } func Resp429(c *nf.Ctx, data any, msgs ...string) error { msg := MSG429 err := "" if len(msgs) > 0 && msgs[0] != "" { msg = fmt.Sprintf("%s: %s", msg, strings.Join(msgs, "; ")) err = "" } return Resp(c, 429, msg, err, data) } func Resp500(c *nf.Ctx, data any, msgs ...string) error { msg := MSG500 err := "" if len(msgs) > 0 && msgs[0] != "" { msg = fmt.Sprintf("%s: %s", msg, strings.Join(msgs, "; ")) err = msg } return Resp(c, 500, msg, err, data) }