6. 尚融宝添加统一返回处理结果

一、定义统一返回结果

1、数据格式的定义

项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一, 使前端对数据的操作更一致、轻松。

一般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数据就可以。但是一般会包含状态码、返回消息、数据这几部分内容

例如,我们的系统要求返回的基本数据格式如下:

成功:

    {
      "code": 0,
      "message": "成功",
      "data": 数据
    }

失败:

{
  "code": -1,
  "message": "失败",
  "data": null
}

因此,我们定义统一结果

{
  "code": 数字, //业务响应码
  "message": 字符串, //返回消息
  "data": 对象 //返回数据
}

2、创建枚举

indi-common模块的com.indi.common.result包下

创建ResponseEnum.java

@Getter
@AllArgsConstructor
@ToString
public enum ResponseEnum {
    SUCCESS(0, "成功"),
    ERROR(-1, "服务器内部错误"),//-1xx 服务器错误
    BAD_SQL_GRAMMAR_ERROR(-101, "sql语法错误"),
    SERVLET_ERROR(-102, "servlet请求异常"), //-2xx 参数校验
    UPLOAD_ERROR(-103, "文件上传错误"),
    EXPORT_DATA_ERROR(104, "数据导出失败"),


    //-2xx 参数校验
    BORROW_AMOUNT_NULL_ERROR(-201, "借款额度不能为空"),
    MOBILE_NULL_ERROR(-202, "手机号码不能为空"),
    MOBILE_ERROR(-203, "手机号码不正确"),
    PASSWORD_NULL_ERROR(204, "密码不能为空"),
    CODE_NULL_ERROR(205, "验证码不能为空"),
    CODE_ERROR(206, "验证码错误"),
    MOBILE_EXIST_ERROR(207, "手机号已被注册"),
    LOGIN_MOBILE_ERROR(208, "用户不存在"),
    LOGIN_PASSWORD_ERROR(209, "密码错误"),
    LOGIN_LOKED_ERROR(210, "用户被锁定"),
    LOGIN_AUTH_ERROR(-211, "未登录"),


    USER_BIND_IDCARD_EXIST_ERROR(-301, "身份证号码已绑定"),
    USER_NO_BIND_ERROR(302, "用户未绑定"),
    USER_NO_AMOUNT_ERROR(303, "用户信息未审核"),
    USER_AMOUNT_LESS_ERROR(304, "您的借款额度不足"),
    LEND_INVEST_ERROR(305, "当前状态无法投标"),
    LEND_FULL_SCALE_ERROR(306, "已满标,无法投标"),
    NOT_SUFFICIENT_FUNDS_ERROR(307, "余额不足,请充值"),

    PAY_UNIFIEDORDER_ERROR(401, "统一下单错误"),

    ALIYUN_SMS_LIMIT_CONTROL_ERROR(-502, "短信发送过于频繁"),//业务限流
    ALIYUN_SMS_ERROR(-503, "短信发送失败"),//其他失败

    WEIXIN_CALLBACK_PARAM_ERROR(-601, "回调参数不正确"),
    WEIXIN_FETCH_ACCESSTOKEN_ERROR(-602, "获取access_token失败"),
    WEIXIN_FETCH_USERINFO_ERROR(-603, "获取用户信息失败");


    // 响应状态码
    private Integer code;
    // 响应信息
    private String message;
}

3、定义统一结果类

创建R.java

@Accessors(chain = true)    // 小技巧:使set方法直接返回对象
@Data
public class R {
    private Integer code;
    private String message;
    private Map<String,Object> data = new HashMap<>();

    /**
     * 私有化构造函数,不让其它类直接访问
     */
    private R(){}

    /**
     * 返回成功结果
     * @return
     */
    public static R ok(){
        R r = new R();
        r.setCode(ResponseEnum.SUCCESS.getCode());
        r.setMessage(ResponseEnum.SUCCESS.getMessage());
        return r;
    }

    /**
     * 返回失败结果
     * @return
     */
    public static R error(){
        R r = new R();
        r.setCode(ResponseEnum.ERROR.getCode());
        r.setMessage(ResponseEnum.ERROR.getMessage());
        return r;
    }

    /**
     * 自定义返回结果
     * @param responseEnum
     * @return
     */
    public static R setResult(ResponseEnum responseEnum){
        R r = new R();
        r.setCode(responseEnum.getCode());
        r.setMessage(responseEnum.getMessage());
        return r;
    }

    /**
     * 自定义为data赋值
     * @param value
     * @param o
     * @return
     */
    public R setData(String value, Object o){
        this.data.put(value,o);
        return this;
    }
}

二、使用统一返回结果

1、修改listAll

修改service-core模块

AdminIntegralGradeController.java

        List<IntegralGrade> list = integralGradeService.list();
        return R.ok().setData("list",list).setMessage("获取成功");

在这里插入图片描述

2、修改removeById

        if (result) {
            return R.ok().setMessage("删除成功");
        }else {
            return R.error().setMessage("删除失败");
        }

在这里插入图片描述

3、新增数据

    @ApiOperation("新增积分等级")
    @PostMapping("/save")
    public R save(
            @ApiParam(value = "积分等级对象", required = true)
            @RequestBody IntegralGrade integralGrade) {
        boolean result = integralGradeService.save(integralGrade);
        if (result) {
            return R.ok().setMessage("添加成功");
        } else {
            return R.error().setMessage("添加失败");
        }
    }

测试

添加只需要这3个参数即可

在这里插入图片描述
在这里插入图片描述

4、根据id查询

    @ApiOperation("根据id获取积分等级")
    @GetMapping("/get/{id}")
    public R getById(
            @ApiParam(value = "数据id", required = true)
            @PathVariable Long id) {
        IntegralGrade integralGrade = integralGradeService.getById(id);
        if (integralGrade != null) {
            return R.ok().setData("record", integralGrade);
        } else {
            return R.error().setMessage("数据获取失败");
        }
    }

测试

根据id查询数据
在这里插入图片描述

在这里插入图片描述

5、根据id修改

    @ApiOperation("修改积分等级")
    @PutMapping("/update")
    public R updateById(
            @ApiParam(value = "积分等级对象", required = true)
            @RequestBody IntegralGrade integralGrade) {
        boolean result = integralGradeService.updateById(integralGrade);
        if (result) {
            return R.ok().setMessage("更新成功");
        } else {
            return R.error().setMessage("更新失败");
        }
    }

测试

修改则是选择你要修改的参数
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QueryWrapper是MyBatis-Plus框架中的一个查询条件封装类,用于构建复杂的查询条件。它可以方便地通过链式调用的方式添加多个条件。根据给出的引用内容,QueryWrapper可以通过in、le、orderByDesc、orderByAsc等方法来实现多条件查询。 比如,可以使用queryWrapper.in("id", 1, 2, 3)方法来查询id为1、2、3的记录;使用queryWrapper.le("id", 3)方法来查询id小于等于3的记录。 此外,QueryWrapper还可以实现多条件的排序。比如,可以使用queryWrapper.orderByDesc("age").orderByAsc("id")方法来按照年龄降序排序,如果年龄相同则按照id升序排序。 综上所述,QueryWrapper可以通过多个方法的组合来实现多条件查询,包括in、le、orderByDesc、orderByAsc等方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [尚融宝04-mybatis-plus插件和条件构造器](https://blog.csdn.net/m0_62946761/article/details/129614633)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Mybatis-plus条件构造器各种用法(三)](https://blog.csdn.net/slxysyka/article/details/122569373)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值