微信后端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

204 lines
5.2 KiB

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 <T> Result success(List<T> data, int total) {
Map<String, Object> map = new HashMap<>();
map.put("total", total);
map.put("list", data == null ? new ArrayList<T>() : 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;
}
}