refactor(backend): 统一返回的数据格式

This commit is contained in:
zhengxinonly
2025-07-08 22:16:12 +08:00
parent 65e41ac9f1
commit fa69175e65
18 changed files with 212 additions and 113 deletions
+49
View File
@@ -0,0 +1,49 @@
from enum import Enum
class ResponseCodeEnum(Enum):
"""状态码枚举类"""
ok = (0, "成功")
error = (400000, "请求错误")
failure = (400000, "请求失败")
image_code_err = (400001, "图形验证码错误")
throttling_err = (400002, "访问过于频繁")
necessary_param_err = (400003, "缺少必传参数")
USER_ERR = (400004, "用户名错误")
PWD_ERR = (400005, "密码错误")
CPWD_ERR = (400006, "密码不一致")
MOBILE_ERR = (400007, "手机号错误")
SMS_CODE_ERR = (400008, "短信验证码有误")
ALLOW_ERR = (400009, "未勾选协议")
SESSION_ERR = (401000, "用户未登录")
forbid = (403000, "权限禁止")
jwt_expired = (403001, "Token 已过期,请重新登录")
unauthorized = (403003, "Token 已失效,请重新登录")
not_found = (404000, "数据未找到")
SERVER_ERR = (500000, "服务器异常")
DB_ERR = (500000, "数据错误")
EMAIL_ERR = (500001, "邮箱错误")
TEL_ERR = (500002, "固定电话错误")
NODATA_ERR = (500003, "无数据")
NEW_PWD_ERR = (500004, "新密码错误")
OPENID_ERR = (500005, "无效的 openid")
PARAM_ERR = (500006, "参数错误")
STOCK_ERR = (500007, "库存不足")
@property
def code(self):
"""获取状态码"""
return self.value[0]
@property
def msg(self):
"""获取状态码信息"""
return self.value[1]
@property
def status_code(self):
return self.value[0] // 1000
+105
View File
@@ -0,0 +1,105 @@
from pear_admin.common.utils.response_code import ResponseCodeEnum
class JsonResponse:
"""
JsonResponse 响应体,统一返回前端的格式
"""
def __init__(self):
self._data = None
self._code = None
self._msg = None
self._status_code = None
self._error_code = 0
self._table_data = {}
def set_body(self, body):
self._data = body
return self
def set_msg(self, msg):
self._msg = msg
return self
def set_status_code(self, status_code):
# 设置响应状态码
self._status_code = status_code
return self
def set_error_code(self, error_code):
# 单独设置响应错误码
self._error_code = error_code
return self
def set_response_code_enum(self, code):
# 设置响应状态码
self._set_code(code)
return self
def set_table(self, pages):
self.set_body([item.json() for item in pages.items])
self._table_data.update(
{
"count": pages.total,
"page": pages.page,
"per_page": pages.per_page,
}
)
return self
def set_table_info(self, pages):
self._table_data.update(
{
"count": pages.total,
"page": pages.page,
"per_page": pages.per_page,
}
)
return self
def ok(self):
self._set_code(ResponseCodeEnum.ok)
return self._res_result()
def not_found(self):
self._set_code(ResponseCodeEnum.not_found)
return self._res_result()
def forbid(self):
self._set_code(ResponseCodeEnum.forbid)
return self._res_result()
def error(self):
self._set_code(ResponseCodeEnum.error)
return self._res_result()
def failure(self):
self._set_code(ResponseCodeEnum.failure)
return self._res_result()
def jwt_expired(self):
self._set_code(ResponseCodeEnum.jwt_expired)
return self._res_result()
def _set_code(self, code):
# 在内部设置状态码
if not self._msg:
self._msg = code.msg
if not self._status_code:
self._status_code = code.status_code
self._error_code = code.code
return self
def _res_result(self):
data = {"code": self._error_code, "msg": self._msg, "data": self._data}
data.update(self._table_data)
return data
def set_code(self, code):
self._set_code(code)
return self._res_result()
if __name__ == "__main__":
print(JsonResponse().set_msg("请求过于频繁").ok())