首页 > 其他分享 >统一返回结果

统一返回结果

时间:2023-04-21 21:15:12浏览次数:20  
标签:返回 return 结果 result ERROR 统一 data public Result

Result类

package com.atguigu.yygh.common.result;

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

/**
 * 全局统一返回结果类
 */
@Data
@ApiModel(value = "全局统一返回结果")
public class Result<T> {

    @ApiModelProperty(value = "返回码")
    private Integer code;

    @ApiModelProperty(value = "返回消息")
    private String message;

    @ApiModelProperty(value = "返回数据")
    private T data;

    public Result(){}

    protected static <T> Result<T> build(T data) {
        Result<T> result = new Result<T>();
        if (data != null)
            result.setData(data);
        return result;
    }

    public static <T> Result<T> build(T body, ResultCodeEnum resultCodeEnum) {
        Result<T> result = build(body);
        result.setCode(resultCodeEnum.getCode());
        result.setMessage(resultCodeEnum.getMessage());
        return result;
    }

    public static <T> Result<T> build(Integer code, String message) {
        Result<T> result = build(null);
        result.setCode(code);
        result.setMessage(message);
        return result;
    }

    public static<T> Result<T> ok(){
        return Result.ok(null);
    }

    /**
     * 操作成功
     * @param data
     * @param <T>
     * @return
     */
    public static<T> Result<T> ok(T data){
        //Result<T> result = build(data);
        return build(data, ResultCodeEnum.SUCCESS);
    }

    public static<T> Result<T> fail(){
        return Result.fail(null);
    }

    /**
     * 操作失败
     * @param data
     * @param <T>
     * @return
     */
    public static<T> Result<T> fail(T data){
        Result<T> result = build(data);
        return build(data, ResultCodeEnum.FAIL);
    }

    public Result<T> message(String msg){
        this.setMessage(msg);
        return this;
    }

    public Result<T> code(Integer code){
        this.setCode(code);
        return this;
    }

    /*public boolean isOk() {
        if(this.getCode().intValue() == ResultCodeEnum.SUCCESS.getCode().intValue()) {
            return true;
        }
        return false;
    }*/
}

 

ResultCodeEnum类

package com.atguigu.yygh.common.result;

import lombok.Getter;

/**
 * 统一返回结果状态信息类
 */
@Getter
public enum ResultCodeEnum {

    SUCCESS(200,"成功"),
    FAIL(201, "失败"),
    PARAM_ERROR( 202, "参数不正确"),
    SERVICE_ERROR(203, "服务异常"),
    DATA_ERROR(204, "数据异常"),
    DATA_UPDATE_ERROR(205, "数据版本异常"),

    LOGIN_AUTH(208, "未登陆"),
    PERMISSION(209, "没有权限"),

    CODE_ERROR(210, "验证码错误"),
//    LOGIN_MOBLE_ERROR(211, "账号不正确"),
    LOGIN_DISABLED_ERROR(212, "改用户已被禁用"),
    REGISTER_MOBLE_ERROR(213, "手机号已被使用"),
    LOGIN_AURH(214, "需要登录"),
    LOGIN_ACL(215, "没有权限"),

    URL_ENCODE_ERROR( 216, "URL编码失败"),
    ILLEGAL_CALLBACK_REQUEST_ERROR( 217, "非法回调请求"),
    FETCH_ACCESSTOKEN_FAILD( 218, "获取accessToken失败"),
    FETCH_USERINFO_ERROR( 219, "获取用户信息失败"),
    //LOGIN_ERROR( 23005, "登录失败"),

    PAY_RUN(220, "支付中"),
    CANCEL_ORDER_FAIL(225, "取消订单失败"),
    CANCEL_ORDER_NO(225, "不能取消预约"),

    HOSCODE_EXIST(230, "医院编号已经存在"),
    NUMBER_NO(240, "可预约号不足"),
    TIME_NO(250, "当前时间不可以预约"),

    SIGN_ERROR(300, "签名错误"),
    HOSPITAL_OPEN(310, "医院未开通,暂时不能访问"),
    HOSPITAL_LOCK(320, "医院被锁定,暂时不能访问"),
    ;

    private Integer code;
    private String message;

    private ResultCodeEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}

 

测试代码

 public Result findAllHospitalSet(){
        List<HospitalSet> list = hospitalSetService.list();
        return Result.ok(list);
    }

 

{
  "code": 200,
  "message": "成功",
  "data": [
    {
      "id": 1,
      "createTime": "2023-04-18 21:37:49",
      "updateTime": "2023-04-20 21:33:55",
      "isDeleted": 0,
      "param": {},
      "hosname": "北京协和医院",
      "hoscode": "1000_0",
      "apiUrl": "http://localhost:8201",
      "signKey": "674c4139707728439a6510eae12deea9",
      "contactsName": "22",
      "contactsPhone": "22",
      "status": 1
    }
  ]
}

 

标签:返回,return,结果,result,ERROR,统一,data,public,Result
From: https://www.cnblogs.com/ixtao/p/17341797.html

相关文章

  • 用C#写一个上传下载文件至OSS后返回文件路径用DES加密解密
    废话不多说,直接上代码:usingAliyun.OSS;//引入阿里云OSSSDKusingSystem;usingSystem.IO;usingSystem.Security.Cryptography;//引入.NETFramework中的加密库usingSystem.Text;publicclassOSSHelper{///<summary>///将文件上传至OSS,并使用D......
  • drf之定制返回样式SerializerMethodField与在表模型中定制
    SerializerMethodField定制返回的样式为person:{name:xxx,age:xxx}或person:[{name:xxx,age:xxx},{name:yyy,age:yyy}...]等,就可以使用到SerializerMethodField语法在序列化类中进行定义序列化字段名=serializers.SerializerMethodField()defget_序列化字段名(self......
  • CentOS网卡无法启动返回'Failed to start LSB:Bring up/down networking.'
    装了一台虚机,配置docker服务的时候发现忘了开CPU虚拟化,关机开启后再登录,发现网卡down了,重启网卡报错。1.journalctl-ex  #查看日志,发现返回错误'FailedtostartLSB:Bringup/downnetworking.';2.vi/var/long/messages  #再查看系统日志,发现有关于NetworkManager的信......
  • 多个基因集富集结果泡泡图绘制展示
    多个基因集富集结果展示通常我们会同时对多个基因集分别进行富集分析,结果放在一起展示。这时我们需要在富集结果后面加一列,标记该结果是哪个基因集的富集,在Excel中可以很方便地操作。如下面动图所示,分组的名字自己根据实际取名即可。有了这个多组基因富集后整合起来的数据,就可以用B......
  • R中6种读入表格数据的方式哪个最快?结果出人意料!
    R怎么读入表格数据最快?R中有6个常用数据读取函数:utils::read.csv:默认使用的读入方式(read.table)readr::read_csv:readr包中的读入函数(RStudio中默认也包含了这一方式)data.table::fread:来自data.table包base::load:加载rda文件base::readRDS:读取二进制数据feather::rea......
  • 画一个带统计检验的PCoA分析结果
    前情回顾方差分析基本概念:方差分析中的“元”和“因素”是什么?PERMANOVA原理解释:这个统计检验可用于判断PCA/PCoA等的分群效果是否显著!经过前面的铺垫,下面来实战一下,理论应用于实际看看会出现什么问题?PERMANOVA实战(一)采用vegan包自带的一套数据(也解释了如何自己准备数据)看下PER......
  • ZLMediaKit实现按需拉流时rtsp流地址不对addStreamProxy返回0,接口流id参数踩坑记录
    场景开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130136245基于上面实现拉取视频流预览时,发现当调用api传参时如果更换了rtsp视频流地址,但是没有更改......
  • js find 方法,查找到所需数值,立即返回,不会再继续循环
    注意和filter区别......
  • 速卖通网站使用群体分析及常用接口数据返回展示
    用户群体分析随着电子商务的快速发展,速卖通已经成为全球最大的跨境电商平台之一。作为一个面向全球消费者的在线市场,速卖通网站的使用群体是非常广泛的,因此对于速卖通网站的使用群体分析是非常必要的。本文将从以下几个方面对速卖通网站的使用群体进行分析。一、用户画像  年龄......
  • 我问ChatGPT要了个写计算器的代码,结果翻车了
    大家好,我是皮皮。一、前言ChatGPT最近非常火爆,很多人都在玩。前几天在Python最强王者交流群【孤独】找ChatGPT要了一个用Python实现计算器的代码,这里拿出来给大家分享下。下面的代码是ChatGPT给出的:#导入PyQt5模块fromPyQt5.QtWidgetsimportQApplication,QWidget,QGridLayou......