首页 > 其他分享 >接口统一返回工具类

接口统一返回工具类

时间:2023-05-17 22:35:12浏览次数:32  
标签:返回 setCode return 接口 ResponseMessage msg new 工具 public

一、接口统一返回类

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;
import lombok.Data;
import java.io.Serializable;

@Data
public class ResponseMessage<T> implements Serializable {

    // 返回状态【0-成功,1-业务失败,999-表示系统异常】
    @JSONField(ordinal = 1)
    private int code;
    // 返回信息
    @JSONField(ordinal = 2)
    private String message;
    // 返回数据实体;
    @JSONField(ordinal = 3,serialzeFeatures = {SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty})
    private T data;


    private ResponseMessage(){}


    public static<T> ResponseMessage success(T m){
        ResponseMessage r = new ResponseMessage();
        r.setCode(0);
        r.setMessage("success");
        r.setData(m);
        return r;
    }



    public static<T> ResponseMessage success(){
        ResponseMessage r = new ResponseMessage();
        r.setCode(0);
        r.setMessage("success");
        return r;
    }

    public static<T> ResponseMessage success(String msg){
        ResponseMessage r = new ResponseMessage();
        r.setCode(0);
        r.setMessage("success");
        r.setData(msg);
        return r;
    }

    public static<T> ResponseMessage serviceFail(String msg){
        ResponseMessage r = new ResponseMessage();
        r.setCode(1);
        r.setMessage("error");
        r.setData(msg);
        return r;
    }

    public static<T> ResponseMessage appFail(String msg){
        ResponseMessage r = new ResponseMessage();
        r.setCode(999);
        r.setMessage(msg);

        return r;
    }

    public static<T> ResponseMessage error(int code, String msg){
        ResponseMessage r = new ResponseMessage();
        r.setCode(code);
        r.setMessage(msg);

        return r;
    }

    public static<T> ResponseMessage serviceFail(){
        ResponseMessage r = new ResponseMessage();
        r.setCode(1);
        r.setMessage("error");
        r.setData("系统异常");
        return r;
    }
    
}

二、使用

  @ApiResponses({
            @ApiResponse(code = 200, message = "OK", response = FundConfig.class)
    })
    @ApiOperation(value = "增加基金配置", notes = "", httpMethod = "POST")
    @RequestMapping(value = "/addFundConfig", method = RequestMethod.POST)
    public ResponseMessage addFundConfig(@RequestBody FundConfig fundConfig) throws Exception {
        try {
            //先查询是否存在
            FundConfig fundcode = tFundConfigService.getOne(new QueryWrapper<FundConfig>().eq("fundCode", fundConfig.getFundCode()));
            if (null != fundcode) {
                return ResponseMessage.serviceFail("基金" + fundcode.getFundCode() + "已存在!");
            }
            //基金的排序字段sort不能重复,测试提出的。其实排序字段并列是正常 的
            FundConfig sort = tFundConfigService.getOne(new QueryWrapper<FundConfig>().eq("sort", fundConfig.getSort()));
            if (null != sort) {
                return ResponseMessage.serviceFail("排序" + fundConfig.getSort() + "已存在!");
            }
            tFundConfigService.save(fundConfig);
            redisService.delByprefix("getDirectList");
            return ResponseMessage.success("增加成功!");
        } catch (Exception e) {
            log.error("异常", e);
            return ResponseMessage.serviceFail("接口异常!");
        }
    }

 

标签:返回,setCode,return,接口,ResponseMessage,msg,new,工具,public
From: https://www.cnblogs.com/zeussbook/p/17410533.html

相关文章

  • RapidVideOCR(视频硬字幕提取工具)新增exe版
    引言考虑到提取视频字幕的小伙伴大多不是程序员行当,为了降低使用门槛,特此推出界面版的RapidVideOCRDesktop.RapidVideOCRDesktop需要搭配VideoSubFinder使用。它们两个关系如下图所示:flowchartLRA(VideoSubFinder)--提取字幕关键帧-->B(RapidVideOCR)--OCR-->C......
  • 常见的原型设计工具对比及初体验
    常见的原型设计工具对比及初体验1、市面上常见的原型设计工具1.1AdobeXDAdobeXD是由Adobe公司推出的一款原型设计工具,具有强大的交互设计功能和快速的原型制作能力。它提供了丰富的界面设计工具、交互动画和原型共享功能,适用于设计师和团队进行移动应用和网页的原型设计......
  • 原型设计工具对比以及使用感受
    一、目前常见的原型设计工具名称介绍优点缺点AxureRP 功能全面,适合大型项目可以完成复杂的流程和交互设计支持多种平台适合大型项目学习难度较高价格贵Sketch 在Mac上运行,简单易用,支持插件扩展学习起来较为容易大量插件扩展运行比较流畅不适合......
  • 主流原型设计工具介绍
    原型设计是产品开发过程中的一个重要的环节,它可以帮助产品经理和设计师快速验证产品思路,沟通交互细节,提高产品质量。市面上有很多原型设计工具,每个工具都有自己的特点和优势,本文将介绍几种主流的原型设计工具,并举例说明其使用方法。墨刀墨刀是一款在线一体化产品设计协作平台,集......
  • 原型设计工具
       主流原型设计工具及其优缺点我所查到的主流原型设计工具主要有五款,分别是Axure、BalsamiqMockups、墨刀、Justinmind和iClap。AxureAxureRP是美国AxureSoftwareSolution公司旗舰产品,是一个专业的快速原型设计工具,让负责定义需求和规格、设计功能和界面的专家能够快......
  • Day01 web应用模式与api接口
    1Web应用模式#前后端混合开发 -后端人员,既要写后端,django,又要写前端#前后端分离 -后端人员,只写后端,写一个个的API接口-前端人员,只写前端-最后项目写完,前后端联调2API接口#为了在团队内部形成共识、防止个人习惯差异引起的混乱,我们需要找到一种大家都觉得......
  • 13、接口和抽象类有什么区别?
    (1)接口接口使用interface修饰;接口不能实例化;类可以实现多个接口;①java8之前,接口中的方法都是抽象方法,省略了publicabstract。②java8之后;接口中可以定义静态方法,静态方法必须有方法体,普通方法没有方法体,需要被实现;(2)抽象类抽象类使用abstract修饰;抽象类不能被实例化;抽象类只能......
  • 主流原型设计工具
    AxureR2.P,它是美国AxureSoftwareSolution公司旗舰产品,是一个专业的快速原型设计工具,让负责定义需求和规格、设计功能和界面的专家能够快速创建应用软件或Web网站的线框图、流程图、原型和规格说明文档。作为专门的原型设计工具,它比一般创建静态原型的工具如Visio、Omnigraffle......
  • JVM(四)虚拟机栈(二)栈帧结构:动态链接、方法返回地址与附加信息
    JVM(三)虚拟机栈(二)栈帧结构:动态链接、方法返回地址与附加信息1动态链接技术每一个栈帧,都包含着一个指向运行时常量池中该指针所属方法的引用,即方法区中的方法地址,包含该引用的目的就是为了支持当前方法能够实现动态链接。所以动态链接又称为运行时常量池中的方法引用在java源......
  • JVM(五)本地方法接口
    JVM(五)本地方法接口和本地方法栈1本地方法一个NativeMethod就是一个Java调用非Java代码的接口。在定义本地方法的时候,不提供实现体标识符native能够和除了abstract的java标识符连用publicclassNativeTest{ publicnativevoidmethod1()throwException; .........