美文网首页
前后端分离数据响应实体

前后端分离数据响应实体

作者: 蜻蜓队长家长 | 来源:发表于2019-07-09 16:53 被阅读0次

    一、创建响应通用实体类com.zhg.common.responseResult.ResponseResult

    package com.zhg.common.responseResult;
    
    import java.io.Serializable;
    
    public class ResponseResult implements Serializable {
    
        private static final long serialVersionUID = 1L;
    
        //默认成功状态码 msgCode
        public Integer msgCode;
        
        //默认成功message
        public String message;
        
        //数据体
        public Object data;
        
        public Integer getMsgCode() {
            return msgCode;
        }
    
        public void setMsgCode(Integer msgCode) {
            this.msgCode = msgCode;
        }
    
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    
        public Object getData() {
            return data;
        }
    
        public void setData(Object data) {
            this.data = data;
        }
    
        public ResponseResult() {}
    
        public ResponseResult(Integer msgCode, String message) {
            this.msgCode = msgCode;
            this.message = message;
    //        this.data = data;
        }
    
        /**
         * 
         * success:(执行成功,无数据返回).
         * date: 2018年5月16日 下午3:24:34
         * @return
         */
        public static  ResponseResult success() {
            ResponseResult result = new ResponseResult();
            result.setResultCode(ResultCode.SUCCESS);
            return result;
        }
        
        /**
         * 
         * success:(执行成功,有数据返回).
         * date: 2018年5月16日 下午3:25:05
         * @param data
         * @return 
         */
        public static ResponseResult success(Object data) {
            ResponseResult result = new ResponseResult();
            result.setResultCode(ResultCode.SUCCESS);
            result.setData(data);
            return result;
        }
    
        /**
         * 
         * failure:(执行失败,无数据返回,返回错误信息).
         * date: 2018年5月16日 下午3:25:31
         * @param resultCode
         * @return
         */
        public static  ResponseResult failure(ResultCode resultCode) {
            ResponseResult result = new ResponseResult();
            result.setResultCode(resultCode);
            return result;
        }
    
        /**
         * 
         * failure:(执行失败,有数据返回,返回错误信息).
         * date: 2018年5月16日 下午3:26:16
         * @param resultCode
         * @param data
         * @return
         */
        public static  ResponseResult failure(ResultCode resultCode, Object data) {
            ResponseResult result = new ResponseResult();
            result.setResultCode(resultCode);
            result.setData(data);
            return result;
        }
        
        /**
         * 
         * failure:(系统运行时异常错误).
         * date: 2018年5月17日 下午1:43:50
         * @param msgCode
         * @param data
         * @return
         */
        public static  ResponseResult failure(Integer msgCode,String message, Object data) {
            ResponseResult result = new ResponseResult();
            result.setMsgCode(msgCode);
            result.setMessage(message);
            result.setData(data);
            return result;
        }
        
        /**
         * 
         * failure:(自定义异常).
         * date: 2018年7月13日 下午2:25:15
         * @param message 自定义异常信息
         * @return
         */
        public static  ResponseResult failure(String message) {
            ResponseResult result = new ResponseResult();
            result.setMsgCode(-1);
            result.setMessage(message);
            return result;
        }
        
        /**
         * 
         * setResultCode:(解析参数ResultCode).
         * date: 2018年5月16日 下午3:26:34
         * @param code
         */
        public void setResultCode(ResultCode code) {
            this.msgCode = code.msgCode();
            this.message = code.message();
        }
        
        /**
         * 
         * SysErrorCode:(解析参数SysErrorCode).
         * date: 2018年5月16日 下午3:26:34
         * @param code
         */
        public void setSysErrorCode(SysErrorCode code) {
            this.msgCode = code.msgCode();
            this.message = code.message();
        }
        
    }
    

    二、创建统一返回状态类com.zhg.common.responseResult.ResultCode

    package com.zhg.common.responseResult;
    
    public enum ResultCode {
    
        /* 成功状态码 */
        SUCCESS(1, "成功"),
    
        /* 参数错误:10001-19999 */
        /**
         * 10001, "参数无效"
         */
        PARAM_IS_INVALID(10001, "参数无效"),
        PARAM_IS_BLANK(10002, "参数为空"),
        PARAM_TYPE_BIND_ERROR(10003, "参数类型错误"),
        PARAM_NOT_COMPLETE(10004, "参数缺失"),
        PARAM_INCORRECT_REQUEST(10005, "请求参数类型有误")
    
        ;
    
        /**
         * 初始化构造
         */
        private Integer msgCode;
    
        private String message;
    
        ResultCode(Integer msgCode, String message) {
            this.msgCode = msgCode;
            this.message = message;
        }
    
        public Integer msgCode() {
            return this.msgCode;
        }
    
        public String message() {
            return this.message;
        }
    
        public static String getMessage(String name) {
            for (ResultCode item : ResultCode.values()) {
                if (item.name().equals(name)) {
                    return item.message;
                }
            }
            return name;
        }
    
        public static Integer getCode(String name) {
            for (ResultCode item : ResultCode.values()) {
                if (item.name().equals(name)) {
                    return item.msgCode;
                }
            }
            return null;
        }
        
        public Integer isSuccess() {
            
            return SUCCESS.msgCode;
        }
    
        @Override
        public String toString() {
            return this.name();
        }
        
    }
    
    #三、全局异常统一响应状态com.zhg.common.responseResult.SysErrorCode
    
    ```java
    package com.zhg.common.responseResult;
    
    public enum SysErrorCode {
    
        /**
         * 系统运行时异常
         */
        SYSTEM_ERROR(-1, "系统异常,请稍候再试"),
        /**
         * 成功状态码 
         */
        HTTPSTATUS_SUCCESS(200, "成功"),
        /**
         * 400  请求出现语法错误(注意是否参数类型有误)
         */
        HTTPSTATUS_400(400, "请求出现语法错误(注意是否参数类型有误)"),
        /**
         * 403  禁止/服务器拒绝请求
         */
        HTTPSTATUS_403(403, "禁止/服务器拒绝请求"),
        
        ;
        
    
        /**
         * 初始化构造
         */
        private Integer msgCode;
    
        private String message;
    
        SysErrorCode(Integer msgCode, String message) {
            this.msgCode = msgCode;
            this.message = message;
        }
    
        public Integer msgCode() {
            return this.msgCode;
        }
    
        public String message() {
            return this.message;
        }
    
        public static String getMessage(String name) {
            for (SysErrorCode item : SysErrorCode.values()) {
                if (item.name().equals(name)) {
                    return item.message;
                }
            }
            return name;
        }
    
        public static Integer getCode(String name) {
            for (SysErrorCode item : SysErrorCode.values()) {
                if (item.name().equals(name)) {
                    return item.msgCode;
                }
            }
            return null;
        }
    
        @Override
        public String toString() {
            return this.name();
        }    
    }
    

    三、全局自定义系统错误--HttpStatuscom.zhg.common.responseResult.SysResponseResult

    /**
     * Project Name:cloudplatform-common
     * File Name:SysRe.java
     * Package Name:org.cloudplatform.common.responseResult
     * Date:2018年5月16日下午6:50:30
     * Copyright (c) 2018, chenzhou1025@126.com All Rights Reserved.
     *
    */
    
    package com.zhg.common.responseResult;
    /**
     * 
     * ClassName: SysResponseResult
     * (全局自定义系统错误--HttpStatus).
     * date: 2018年5月16日 下午6:47:27
     * @author TANCHAO
     * @version
     */
    public class SysResponseResult{
        
        /**
         * 
         * failure:(执行失败,无数据返回,返回错误信息).
         * date: 2018年5月16日 下午3:26:16
         * @param resultCode
         * @param data
         * @return
         */
        public static  ResponseResult failure(SysErrorCode SysErrorCode) {
            ResponseResult result = new ResponseResult();
            result.setSysErrorCode(SysErrorCode);
            return result;
        }
        
        /**
         * 
         * failure:(执行失败,有数据返回,返回错误信息).
         * date: 2018年5月16日 下午3:26:16
         * @param resultCode
         * @param data
         * @return
         */
        public static  ResponseResult failure(SysErrorCode SysErrorCode, Object data) {
            ResponseResult result = new ResponseResult();
            result.setSysErrorCode(SysErrorCode);
            result.setData(data);
            return result;
        }
        
    }
    

    四、使用并查看结果

    package com.zhg.demo.service.impl;
    
    import com.zhg.demo.common.responseResult.ResponseResult;
    import com.zhg.demo.dao.UserDao;
    import com.zhg.demo.pojo.User;
    import com.zhg.demo.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    @Service("userService")
    public class UserServiceImpl implements UserService {
    
        @Autowired
        private UserDao userDao;
    
        @Override
        public ResponseResult findUserByName(String name) {
            try {
                User user = userDao.findByName(name).orElse(null);
                return ResponseResult.success(user);
            }catch (Exception e){
                return ResponseResult.failure(e.getMessage());
            }
        }
    }
    

    -前端反馈结果


    ResponseResult 响应结构

    相关文章

      网友评论

          本文标题:前后端分离数据响应实体

          本文链接:https://www.haomeiwen.com/subject/ahqfkctx.html