从0开始搭建后台管理系统,这是No15。上一篇我们讲到了:让Mybatis-Plus新增和修改时自动设置时间和修改者。这一节,我们来创建几个类,用于未来http请求时返回数据。
普通返回Result
一般情况下,返回Result
package cn.lovecto.yuen.common.domain;
import java.io.Serial;
import java.io.Serializable;
import cn.lovecto.yuen.common.enums.ErrorCode;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class Result<T> implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**状态码*/
private int code;
/**消息提示*/
private String msg;
/**数据*/
private T data;
public static <T> Result<T> success() {
return toResult(ErrorCode.SUCCESS.getCode(), ErrorCode.SUCCESS.getDefaultMsg(), null);
}
public static <T> Result<T> success(ErrorCode errorCode) {
return toResult(errorCode.getCode(), errorCode.getDefaultMsg(), null);
}
public static <T> Result<T> success(T data) {
return toResult(ErrorCode.SUCCESS.getCode(), ErrorCode.SUCCESS.getDefaultMsg(), data);
}
public static <T> Result<T> success(String msg) {
return toResult(ErrorCode.SUCCESS.getCode(), msg, null);
}
public static <T> Result<T> success(String msg, T data) {
return toResult(ErrorCode.SUCCESS.getCode(), msg, data);
}
public static <T> Result<T> error() {
return toResult(ErrorCode.ERROR.getCode(), ErrorCode.ERROR.getDefaultMsg(), null);
}
public static <T> Result<T> error(ErrorCode errorCode) {
return toResult(errorCode.getCode(), errorCode.getDefaultMsg(), null);
}
public static <T> Result<T> error(String msg) {
return toResult(ErrorCode.ERROR.getCode(), msg, null);
}
public static <T> Result<T> error(T data) {
return toResult(ErrorCode.ERROR.getCode(), ErrorCode.ERROR.getDefaultMsg(), data);
}
public static <T> Result<T> error(String msg, T data) {
return toResult(ErrorCode.ERROR.getCode(), msg, data);
}
public static <T> Result<T> error(int code, String msg) {
return toResult(code, msg, null);
}
private static <T> Result<T> toResult(int code, String msg, T data) {
Result<T> r = new Result<>();
r.setCode(code);
r.setMsg(msg);
r.setData(data);
return r;
}
}
列表查询返回PageDataResult
分页或列表查询时返回PageDataResult
package cn.lovecto.yuen.framework.mybatisplus.page;
import cn.lovecto.yuen.common.enums.ErrorCode;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
@Data
@NoArgsConstructor
public class PageDataResult<T> implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**总条数*/
private long total;
/**数据*/
private List<T> list;
/**状态码*/
private int code;
/**提示信息*/
private String msg;
public PageDataResult(List<T> list, long total) {
this.list = list;
this.total = total;
}
/**
* 根据分页信息生成
* @param <T>
* @param page
* @return
*/
public static <T> PageDataResult<T> build(IPage<T> page) {
PageDataResult<T> rspData = new PageDataResult<>();
rspData.setCode(ErrorCode.SUCCESS.getCode());
rspData.setMsg(ErrorCode.SUCCESS.getDefaultMsg());
rspData.setList(page.getRecords());
rspData.setTotal(page.getTotal());
return rspData;
}
/**
* 根据列表转换
* @param <T>
* @param list
* @return
*/
public static <T> PageDataResult<T> build(List<T> list) {
PageDataResult<T> rspData = new PageDataResult<>();
rspData.setCode(ErrorCode.SUCCESS.getCode());
rspData.setMsg(ErrorCode.SUCCESS.getDefaultMsg());
rspData.setList(list);
rspData.setTotal(list.size());
return rspData;
}
/**
* 构建空数据对象
* @param <T>
* @return
*/
public static <T> PageDataResult<T> build() {
PageDataResult<T> rspData = new PageDataResult<>();
rspData.setCode(ErrorCode.SUCCESS.getCode());
rspData.setMsg("查询成功");
return rspData;
}
}
LoveCTO

