package cn.flightfeather.supervision.lightshare.vo
|
|
import com.fasterxml.jackson.annotation.JsonInclude
|
import io.swagger.annotations.ApiModel
|
import io.swagger.annotations.ApiModelProperty
|
|
/**
|
* @author riku
|
* Date: 2020/8/4
|
* 网络请求返回数据基类
|
*/
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
@ApiModel("请求返回基本结构")
|
data class BaseResponse<T>(
|
@ApiModelProperty("请求是否成功")
|
var success: Boolean,
|
@ApiModelProperty("请求返回状态码")
|
var code: String = "200",
|
@ApiModelProperty("请求返回消息")
|
var message: String = "",
|
@ApiModelProperty("请求返回数据头")
|
val head: DataHead? = null,
|
@ApiModelProperty("请求返回数据")
|
val data: T? = null,
|
@ApiModelProperty("请求返回异常栈信息")
|
var stackTrace: String = "",
|
) {
|
init {
|
if (message.isBlank()) {
|
message = if (success) {
|
"请求成功"
|
} else {
|
"请求失败"
|
}
|
}
|
}
|
|
companion object {
|
fun success(res: Any?): BaseResponse<Any> {
|
return if (res is Pair<*, *>) {
|
val head = res.first
|
if (head is DataHead) {
|
BaseResponse(true, head = head, data = res.second)
|
} else {
|
BaseResponse(true, data = res)
|
}
|
} else {
|
BaseResponse(true, data = res)
|
}
|
}
|
|
fun <T> fail(code: String = "500", message: String = "请求失败"): BaseResponse<T> {
|
return BaseResponse(false, code, message)
|
}
|
|
fun <T> fail(code: String = "500", e: Exception): BaseResponse<T> {
|
return BaseResponse(false, code, e.message ?: "", stackTrace = e.stackTraceToString())
|
}
|
}
|
}
|