//package com.zsc.edu.gateway.framework.response;
//
//import lombok.AllArgsConstructor;
//import lombok.Data;
//import lombok.NoArgsConstructor;
//
///**
// * 返回结果集
// *
// * @author javadog
// **/
//@Data
//@AllArgsConstructor
//@NoArgsConstructor
//public class ResponseResult<T> {
//
//    /**
//     * 状态码
//     */
//    private Integer code;
//
//    /**
//     * 状态信息
//     */
//    private Boolean status;
//
//    /**
//     * 返回信息
//     */
//    private String message;
//
//    /**
//     * 数据
//     */
//    private T data;
//
//    /**
//     * 全参数方法
//     *
//     * @param code    状态码
//     * @param status  状态
//     * @param message 返回信息
//     * @param data    返回数据
//     * @param <T>     泛型
//     * @return {@link ResponseResult<T>}
//     */
//    private static <T> ResponseResult<T> response(Integer code, Boolean status, String message, T data) {
//
//
//        ResponseResult<T> responseResult = new ResponseResult<>();
//        responseResult.setCode(code);
//        responseResult.setStatus(status);
//        responseResult.setMessage(message);
//        responseResult.setData(data);
//        return responseResult;
//    }
//
//    /**
//     * 全参数方法
//     *
//     * @param code    状态码
//     * @param status  状态
//     * @param message 返回信息
//     * @param <T>     泛型
//     * @return {@link ResponseResult<T>}
//     */
//    private static <T> ResponseResult<T> response(Integer code, Boolean status, String message) {
//
//
//        ResponseResult<T> responseResult = new ResponseResult<>();
//        responseResult.setCode(code);
//        responseResult.setStatus(status);
//        responseResult.setMessage(message);
//        return responseResult;
//    }
//
//    /**
//     * 成功返回（无参）
//     *
//     * @param <T> 泛型
//     * @return {@link ResponseResult<T>}
//     */
//    public static <T> ResponseResult<T> success() {
//
////        return response(HttpStatus.OK.value(), true, HttpStatus.OK.getReasonPhrase(), null);
//        return response(HttpStatusEnum.SUCCESS.getCode(), true, HttpStatusEnum.SUCCESS.getMessage(), null);
//    }
//
//    /**
//     * 成功返回（枚举参数）
//     *
//     * @param httpResponseEnum 枚举参数
//     * @param <T>              泛型
//     * @return {@link ResponseResult<T>}
//     */
//    public static <T> ResponseResult<T> success(HttpStatusEnum httpResponseEnum) {
//
//
//        return response(httpResponseEnum.getCode(), true, httpResponseEnum.getMessage());
//    }
//
//    /**
//     * 成功返回（状态码+返回信息）
//     *
//     * @param code    状态码
//     * @param message 返回信息
//     * @param <T>     泛型
//     * @return {@link ResponseResult<T>}
//     */
//    public static <T> ResponseResult<T> success(Integer code, String message) {
//
//
//        return response(code, true, message);
//    }
//
//    /**
//     * 成功返回（返回信息 + 数据）
//     *
//     * @param message 返回信息
//     * @param data    数据
//     * @param <T>     泛型
//     * @return {@link ResponseResult<T>}
//     */
//    public static <T> ResponseResult<T> success(String message, T data) {
//
//
//        return response(HttpStatusEnum.SUCCESS.getCode(), true, message, data);
//    }
//
//    /**
//     * 成功返回（状态码+返回信息+数据）
//     *
//     * @param code    状态码
//     * @param message 返回信息
//     * @param data    数据
//     * @param <T>     泛型
//     * @return {@link ResponseResult<T>}
//     */
//    public static <T> ResponseResult<T> success(Integer code, String message, T data) {
//
//
//        return response(code, true, message, data);
//    }
//
//    /**
//     * 成功返回（数据）
//     *
//     * @param data 数据
//     * @param <T>  泛型
//     * @return {@link ResponseResult<T>}
//     */
//    public static <T> ResponseResult<T> success(T data) {
//
//
//        return response(HttpStatusEnum.SUCCESS.getCode(), true, HttpStatusEnum.SUCCESS.getMessage(), data);
//    }
//
//    /**
//     * 成功返回（返回信息）
//     *
//     * @param message 返回信息
//     * @param <T>     泛型
//     * @return {@link ResponseResult<T>}
//     */
//    public static <T> ResponseResult<T> success(String message) {
//
//
//        return response(HttpStatusEnum.SUCCESS.getCode(), true, message, null);
//    }
//
//    /**
//     * 失败返回（无参）
//     *
//     * @param <T> 泛型
//     * @return {@link ResponseResult<T>}
//     */
//    public static <T> ResponseResult<T> fail() {
//
//
//        return response(HttpStatusEnum.ERROR.getCode(), false, HttpStatusEnum.ERROR.getMessage(), null);
//    }
//
//    /**
//     * 失败返回（枚举）
//     *
//     * @param httpResponseEnum 枚举
//     * @param <T>              泛型
//     * @return {@link ResponseResult<T>}
//     */
//    public static <T> ResponseResult<T> fail(HttpStatusEnum httpResponseEnum) {
//
//
//        return response(httpResponseEnum.getCode(), false, httpResponseEnum.getMessage());
//    }
//
//    /**
//     * 失败返回（状态码+返回信息）
//     *
//     * @param code    状态码
//     * @param message 返回信息
//     * @param <T>     泛型
//     * @return {@link ResponseResult<T>}
//     */
//    public static <T> ResponseResult<T> fail(Integer code, String message) {
//
//
//        return response(code, false, message);
//    }
//
//    /**
//     * 失败返回（返回信息+数据）
//     *
//     * @param message 返回信息
//     * @param data    数据
//     * @param <T>     泛型
//     * @return {@link ResponseResult<T>}
//     */
//    public static <T> ResponseResult<T> fail(String message, T data) {
//
//
//        return response(HttpStatusEnum.ERROR.getCode(), false, message, data);
//    }
//
//    /**
//     * 失败返回（状态码+返回信息+数据）
//     *
//     * @param code    状态码
//     * @param message 返回消息
//     * @param data    数据
//     * @param <T>     泛型
//     * @return {@link ResponseResult<T>}
//     */
//    public static <T> ResponseResult<T> fail(Integer code, String message, T data) {
//
//
//        return response(code, false, message, data);
//    }
//
//    /**
//     * 失败返回（数据）
//     *
//     * @param data 数据
//     * @param <T>  泛型
//     * @return {@link ResponseResult<T>}
//     */
//    public static <T> ResponseResult<T> fail(T data) {
//
//
//        return response(HttpStatusEnum.ERROR.getCode(), false, HttpStatusEnum.ERROR.getMessage(), data);
//    }
//
//    /**
//     * 失败返回（返回信息）
//     *
//     * @param message 返回信息
//     * @param <T>     泛型
//     * @return {@link ResponseResult<T>}
//     */
//    public static <T> ResponseResult<T> fail(String message) {
//
//
//        return response(HttpStatusEnum.ERROR.getCode(), false, message, null);
//    }
//}
