枚举在restful接口风范中返回状态码的应用

1.定义枚举类

public enum ResultCode {
    成功("0000"),
    请求参数有误("0001"),
    签名异常("0002"),
    用户已存在("0003"),
    用户不存在("0019"),
    用户注册失败("0004"),
    短信验证码失效("0005"),
    会员不存在("0006"),
    短信验证码错误("0007"),
    优惠券同步失败("0008"),
    短信验证码发送过于频繁("0009"),
    无此优惠券("0010"),
    优惠券已使用("0011"),
    优惠券已失效("0012"),
    优惠券已过期("0013"),
    无效的优惠券类型("0014"),
    优惠券未满足指定金额("0015"),
    消券频率过高请稍后再试("0016"),
    短信验证码发送失败("0017"),
    无效的满减券类型("0018"),
    接口异常("9999"),
    系统异常("9999"),
    支付失败("8888"),
    重复支付("6666"),
    验签失败("6000"),
    未创建用户("0018"),
    已创建用户("0019"),
    创建用户成功("0020"),
    核销券通知失败("0021"),
    微信未授权("0088"),
    此优惠券无法购买("0022")
    ;
    //状态码
    private String code;
    //有参构造
    ResultCode(String code) {
        this.code = code;
    }
    //get set 方法
    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }
}

2.定义结果实体类

public class ResultEntity {

    private String return_code;  //返回状态码

    private String return_message; //返回信息

    private Object data;  //返回数据

    public ResultEntity(){}  //无参构造

    //有参构造
    public ResultEntity(String return_code,String return_message,Object data ){
        this.return_code=return_code;
        this.return_message=return_message;
        this.data=data;

    }


    //get set 方法
    public String getReturn_code() {
        return return_code;
    }

    public void setReturn_code(String return_code) {
        this.return_code = return_code;
    }

    public String getReturn_message() {
        return return_message;
    }

    public void setReturn_message(String return_message) {
        this.return_message = return_message;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }
}

3.定义一个工具类将两者联系起来

public class MsgUtil {

    public static ResponseEntity<ResultEntity> retMsg(ResultCode e){
        return ResponseEntity.ok( new ResultEntity(
                e.getCode(),
                e.name(),
                null));

    }


    public static ResponseEntity<ResultEntity> retMsg(ResultCode e,String msg){
        return ResponseEntity.ok( new ResultEntity(
                e.getCode(),
                msg,
                null));

    }


    public static ResponseEntity<ResultEntity> retMsg(ResultCode e,Object obj){
        return ResponseEntity.ok( new ResultEntity(
                e.getCode(),
                e.name(),
                obj));

    }
}

4.使用

/**
    ajax验证用户名是否已经注册
*/
@ResponseBody
    @RequestMapping("/valid")
    public Object exist(String phone){
       if(StringUtils.isEmpty(phone)){
           return MsgUtil.retMsg(ResultCode.请求参数有误);
       }

        //验证用户是否存在
        O2oMember member=iO2oMemberService.selectOne(new EntityWrapper<O2oMember>()
                .where(" mobile={0}",
                        phone));
        if(member!=null){
            return MsgUtil.retMsg(ResultCode.用户已存在);
        }
        return MsgUtil.retMsg(ResultCode.成功);
    }

 


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