package com.ynxbd.common.result; import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonIgnore; import com.ynxbd.common.result.struts2.BaseResult; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Slf4j public class Result extends BaseResult { private static final long serialVersionUID = -1005L; // private Integer code; private String message; private Object data; /** * 判断是否成功 */ @JsonIgnore @JSONField(serialize = false) public boolean isSuccess() { return ResultEnum.SUCCESS.status.equals(this.code); } /** * 判断数据操作是否成功 */ public static Result change(Boolean flag) { return flag ? Result.success() : Result.error(); } /** * 请求成功-不携带数据 */ public static Result success() { return new Result(ResultEnum.SUCCESS.status, ResultEnum.SUCCESS.message, null); } /** * 请求成功-携带data * * @param data 返回数据 */ public static Result success(Object data) { return new Result(ResultEnum.SUCCESS.status, ResultEnum.SUCCESS.message, data); } /** * 请求成功-自定义成功枚举 * * @param data 返回数据 */ public static Result success(ResultEnum resultEnum, Object data) { return new Result(resultEnum.status, resultEnum.message, data); } /** * 请求成功-携带分页数据 * * @param total 数据总数量 * @param data 分页数据 * @return 返回分页数据 */ public static Result success(List data, int total) { Map map = new HashMap<>(); map.put("total", total); map.put("list", data == null ? new ArrayList() : data); return new Result(ResultEnum.SUCCESS.status, ResultEnum.SUCCESS.message, map); } /** * 请求失败-默认提示信息 */ public static Result error() { return new Result(ResultEnum.ERROR.status, ResultEnum.ERROR.message); } /** * 失败返回,响应码保留,message可变 */ public static Result error(ResultEnum resultEnum, Object data, String message) { return new Result(resultEnum.status, message, data); } /** * 请求失败-自定义失败原因 */ public static Result error(ResultEnum resultEnum, Object data) { return new Result(resultEnum.status, resultEnum.message, data); } // // /** // * 请求失败-自定义失败原因 // */ // public static Result error(ResultEnum resultEnum, String message, Object data) { // message = message == null ? "" : message + "s"; // return new Result(resultEnum.status, resultEnum.message + message, data); // } /** * 请求失败-自定义失败原因 * * @param message 失败原因 */ public static Result error(String message) { log.info(message); return new Result(ResultEnum.ERROR.status, message); } /** * 请求异常 * * @param e 异常 */ public static Result error(Exception e) { Integer status = ResultEnum.SYSTEM_ERROR.status; String message = ResultEnum.SYSTEM_ERROR.message; if (e != null && e.getClass() == ServiceException.class) { ServiceException serviceException = (ServiceException) e; if (serviceException.getMessage() != null) { message = serviceException.getMessage(); log.error(e.getMessage()); } if (serviceException.getResultEnum() != null) { status = serviceException.getResultEnum().status; } } return new Result(status, message); } /** * 请求失败-枚举 * * @param resultEnum 枚举值 * @return 响应枚举对应的信息 */ public static Result error(ResultEnum resultEnum) { return new Result(resultEnum.status, resultEnum.message); } public Result() { } private Result(Integer code, String message) { this.code = code; this.message = message; } public Result(Integer code, String message, Object data) { this.code = code; this.message = message; this.data = data; } @Override public String toString() { return "Result{" + "code=" + code + ", message='" + message + '\'' + ", data=" + data + '}'; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } }