热爱技术,追求卓越
不断求索,精益求精

【15】创建接口将要接收的数据结构

从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;
    }

}
赞(0)
未经允许不得转载:LoveCTO » 【15】创建接口将要接收的数据结构

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

热爱技术 追求卓越 精益求精