编辑
2024-07-16
后端
00
请注意,本文编写于 298 天前,最后修改于 298 天前,其中某些信息可能已经过时。

ApiResult

kotlin
package com.example.demokt.core.entity import java.time.LocalDateTime import java.time.format.DateTimeFormatter data class ApiResult<T>( val code: Int, val message: String, val data: T?, val timestamp: String ) { companion object { // 创建成功的响应 fun <T> success(data: T?): ApiResult<T> { return ApiResult(ResultCode.SUCCESS.code, ResultCode.SUCCESS.message, data, getCurrentTimestamp()) } // 创建成功的响应,并自定义消息 fun <T> success(message: String, data: T?): ApiResult<T> { return ApiResult(ResultCode.SUCCESS.code, message, data, getCurrentTimestamp()) } // 创建自定义状态码的响应 fun <T> of(resultCode: ResultCode, data: T?): ApiResult<T> { return ApiResult(resultCode.code, resultCode.message, data, getCurrentTimestamp()) } // 创建失败的响应 fun <T> error(code: Int, message: String): ApiResult<T> { return ApiResult(code, message, null, getCurrentTimestamp()) } // 创建失败的响应,并包含数据 fun <T> error(code: Int, message: String, data: T?): ApiResult<T> { return ApiResult(code, message, data, getCurrentTimestamp()) } // 获取当前时间戳 private fun getCurrentTimestamp(): String { val now = LocalDateTime.now() val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") return now.format(formatter) } } }

ResultCode

kotlin
package com.example.demokt.core.entity enum class ResultCode(val code: Int, val message: String) { SUCCESS(200, "Success"), ADD_USER_SUCCESS(1001, "添加用户成功"), USER_NOT_EXISTS(1002, "用户不存在"), USER_ALREADY_EXISTS(1003, "用户已存在"), INVALID_CREDENTIALS(1004, "无效的凭证"), LOGIN_SUCCESS(1005, "登录成功"), LOGIN_FAILED(1006, "登录失败"), LOGOUT_SUCCESS(1007, "登出成功"), PERMISSION_DENIED(1008, "权限不足"), RESOURCE_NOT_FOUND(1009, "资源未找到"), RESOURCE_ALREADY_EXISTS(1010, "资源已存在"), INVALID_PARAMETERS(1011, "无效的参数"), OPERATION_SUCCESS(1012, "操作成功"), OPERATION_FAILED(1013, "操作失败"), // 用户操作 USER_ALREADY_BLOCKED(1014, "用户已被封禁"), USER_ALREADY_VERIFIED(1015, "用户已验证"), USER_VERIFICATION_FAILED(1016, "用户验证失败"), SERVER_ERROR(500, "服务器错误"), UNKNOWN_ERROR(501, "未知错误"), // 注册相关 REGISTER_SUCCESS(2001, "注册成功"), REGISTER_FAILED(2002, "注册失败"), EMAIL_ALREADY_EXISTS(2003, "邮箱已存在"), USERNAME_ALREADY_EXISTS(2004, "用户名已存在"), // 登录/注册 INVALID_VERIFICATION_CODE(2005, "验证码错误"), REGISTRATION_CODE_EXPIRED(2006, "注册码已过期"), INVALID_LOGIN_ATTEMPTS(1017, "登录尝试过多,请稍后再试"), // 支付相关 PAYMENT_SUCCESS(3001, "支付成功"), PAYMENT_FAILED(3002, "支付失败"), INSUFFICIENT_FUNDS(3003, "余额不足"), PAYMENT_CANCELED(3004, "支付已取消"), // 支付 PAYMENT_AMOUNT_EXCEEDS_LIMIT(3005, "支付金额超出限制"), PAYMENT_METHOD_NOT_SUPPORTED(3006, "不支持的支付方式"), PAYMENT_AUTHENTICATION_REQUIRED(3007, "需要支付认证"), // 数据库相关 DATABASE_CONNECTION_SUCCESS(4001, "数据库连接成功"), DATABASE_CONNECTION_FAILED(4002, "数据库连接失败"), DATABASE_OPERATION_SUCCESS(4003, "数据库操作成功"), DATABASE_OPERATION_FAILED(4004, "数据库操作失败"), // 数据库操作 DATABASE_QUERY_FAILED(4005, "数据库查询失败"), DATABASE_UPDATE_FAILED(4006, "数据库更新失败"), DATABASE_DELETE_FAILED(4007, "数据库删除失败"), // 超时相关 REQUEST_TIMEOUT(5001, "请求超时"), SESSION_TIMEOUT(5002, "会话超时"), // 超时 API_TIMEOUT(5003, "API调用超时"), IMAGE_UPLOAD_TIMEOUT(5004, "图片上传超时"), // 限流相关 RATE_LIMIT_EXCEEDED(6001, "请求过于频繁,请稍后再试"), // 限流 RATE_LIMIT_EXCEEDED_PER_USER(6002, "用户请求过于频繁,请稍后再试"), RATE_LIMIT_EXCEEDED_PER_IP(6003, "IP请求过于频繁,请稍后再试"), // 其他 SERVICE_UNAVAILABLE(7001, "服务不可用"), GATEWAY_TIMEOUT(7002, "网关超时"), // 其他 INTERNAL_SERVER_ERROR(7003, "内部服务器错误"), CONFIGURATION_ERROR(7004, "配置错误"), DEPENDENCY_SERVICE_UNAVAILABLE(7005, "依赖服务不可用"), // 文件操作 FILE_NOT_FOUND(8001, "文件未找到"), FILE_UPLOAD_FAILED(8002, "文件上传失败"), FILE_DOWNLOAD_FAILED(8003, "文件下载失败"), // 网络问题 CONNECTION_TIMEOUT(9001, "连接超时"), REQUEST_FAILED(9002, "请求失败"), HOST_UNAVAILABLE(9003, "主机不可用"), // 安全问题 SECURITY_VIOLATION(10001, "安全违规"), ENCRYPTION_FAILED(10002, "加密失败"), DECRYPTION_FAILED(10003, "解密失败"); companion object { fun fromCode(code: Int): ResultCode { return values().find { it.code == code } ?: UNKNOWN_ERROR } } }

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!