Web项目Controller统一返回实体类

  • Post author:
  • Post category:其他


ResponseResult.java

package com.hejjon.bean;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
@ApiModel(value = "统一返回实体类")
public class ResponseResult<T> {

    public static final int OK_CODE = 200;

    public static final int FAIL_CODE = 500;


    @ApiModelProperty("状态码")
    private int code;

    @ApiModelProperty("信息")
    private String message;

    @ApiModelProperty("数据")
    private T data;
    
    
    private ResponseResult(int code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    public static <T> ResponseResult<T> success() {
        return new ResponseResult<>(OK_CODE, "成功", null);
    }

    public static <T> ResponseResult<T> success(T data) {
        return new ResponseResult<T>(OK_CODE, "成功", data);
    }

    public static <T> ResponseResult<T> success(String msg, T data) {
        return new ResponseResult<>(OK_CODE, msg, data);
    }

    public static <T> ResponseResult<T> fail() {
        return new ResponseResult<>(FAIL_CODE, "失败", null);
    }

    public static <T> ResponseResult<T> fail(String msg) {
        return new ResponseResult<T>(FAIL_CODE, msg, null);
    }

    public static <T> ResponseResult<T> fail(String msg, T data) {
        return new ResponseResult<>(FAIL_CODE, msg, data);
    }

}

使用方法

1. 返回单个实体类型

    @GetMapping("/get/{id}")
    @ApiOperation("根据主键获取用户信息")
    public ResponseResult<BaseUser> get(@PathVariable("id") String id) {

        if (StringUtils.isEmpty(id)) {
            return ResponseResult.fail("id不可为空");
        }
        BaseUser user = baseUserService.getById(id);
        return ResponseResult.success(user);
    }

2. 返回实体集合

    @PostMapping("/list")
    @ApiOperation("全部学生列表")
    public ResponseResult<List<BaseStudent>> list() {
        List<BaseStudent> list = baseStudentService.list();
        return ResponseResult.success(list);
    }

3. 返回实体分页对象(Mybatis)

    @ApiOperation("分页列表")
    @PostMapping("/page")
    public ResponseResult<Page<BaseStudent>> page(@RequestBody BaseQueryParam param) {
        Page<BaseStudent> page = new Page<>(param.getPageNum(), param.getPageSize());
        Page<BaseStudent> pagedata = baseStudentService.page(page);
        return ResponseResult.success(pagedata);
    }



版权声明:本文为qq_42026600原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。