Add exception handler

This commit is contained in:
2023-10-05 21:10:05 +08:00
parent 6a9ad8d490
commit 78de04713f
7 changed files with 135 additions and 3 deletions

View File

@@ -0,0 +1,6 @@
package top.fatweb.api.entity.common
enum class BusinessCode(val code: Int) {
SYSTEM(100),
DATABASE(200)
}

View File

@@ -0,0 +1,22 @@
package top.fatweb.api.entity.common
enum class ResponseCode(val code: Int) {
SYSTEM_OK(BusinessCode.SYSTEM, 0),
SYSTEM_LOGIN_SUCCESS(BusinessCode.SYSTEM, 20),
SYSTEM_PASSWORD_CHANGE_SUCCESS(BusinessCode.SYSTEM, 21),
SYSTEM_LOGOUT_SUCCESS(BusinessCode.SYSTEM, 22),
SYSTEM_TOKEN_RENEW_SUCCESS(BusinessCode.SYSTEM, 23),
SYSTEM_UNAUTHORIZED(BusinessCode.SYSTEM, 30),
SYSTEM_ACCESS_DENIED(BusinessCode.SYSTEM, 31),
SYSTEM_USER_DISABLE(BusinessCode.SYSTEM, 32),
SYSTEM_LOGIN_USERNAME_PASSWORD_ERROR(BusinessCode.SYSTEM, 33),
SYSTEM_OLD_PASSWORD_NOT_MATCH(BusinessCode.SYSTEM, 34),
SYSTEM_LOGOUT_FAILED(BusinessCode.SYSTEM, 35),
SYSTEM_TOKEN_ILLEGAL(BusinessCode.SYSTEM, 36),
SYSTEM_TOKEN_HAS_EXPIRED(BusinessCode.SYSTEM, 37),
SYSTEM_REQUEST_ILLEGAL(BusinessCode.SYSTEM, 40),
SYSTEM_ERROR(BusinessCode.SYSTEM, 50),
SYSTEM_TIMEOUT(BusinessCode.SYSTEM, 51);
constructor(businessCode: BusinessCode, code: Int) : this(businessCode.code * 100 + code)
}

View File

@@ -0,0 +1,29 @@
package top.fatweb.api.entity.common
import io.swagger.v3.oas.annotations.media.Schema
import java.io.Serializable
class ResponseResult<T> private constructor(
@Schema(description = "响应码", defaultValue = "200")
val code: Int,
@Schema(description = "是否调用成功")
val success: Boolean,
@Schema(description = "信息")
val msg: String,
@Schema(description = "数据")
val data: T?
) : Serializable {
companion object {
fun <T> build(code: ResponseCode, success: Boolean, msg: String, data: T?) =
ResponseResult(code.code, success, msg, data)
fun <T> success(code: ResponseCode = ResponseCode.SYSTEM_OK, msg: String = "success", data: T? = null) =
build(code, true, msg, data)
fun <T> fail(code: ResponseCode = ResponseCode.SYSTEM_ERROR, msg: String = "fail", data: T? = null) =
build(code, false, msg, data)
}
}