常用CRUD及基本流程

      基本流程 mapper.xml => mapper => serviceImpl => service => controller => 前端
    

CRUD使用

mapper,mapper.xml及基本的service层由MybatisX生成,基本使用直接在controller层调用即可,如下

         @GetMapping("/")
    public Website listConfig() {
        QueryWrapper<Website> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("config");
        return websiteService.getOne(queryWrapper);
    }
    

也可在service层自定义接口,serviceImpl层写具体逻辑,controller层调用

       // service层
boolean userLogin(String userAccount, String userPassword);

// serviceImpl层
 @Override
public boolean userLogin(String userAccount, String userPassword) {

    //密码字段加密
    String encryptPassword = DigestUtils.md5DigestAsHex((SALT + userPassword).getBytes());

    User user = new User();
    user.setUserAccount(userAccount);
    user.setUserPassword(encryptPassword);
    return this.save(user);
}

//controller层调用
    @PostMapping("/add")
    public Result<String> add(@Validated @RequestBody UserQueryRequest userQueryRequest) {
       String userAccount = userQueryRequest.getUserAccount();
       String password = userQueryRequest.getUserPassword();

        QueryWrapper wrapper = new QueryWrapper<>();
        wrapper.eq("userAccount",userAccount);
        Long count = userService.count(wrapper);
        if(count > 0){
            return Result.handle(ErrorCode.OPERATION_ERROR.getCode(),ErrorCode.OPERATION_ERROR.getMessage(), Collections.singletonList("账户已存在"));
        }

       boolean result = userService.userLogin(userAccount,password);
       if (result) {
          return Result.success("保存成功");
       } else {
          return Result.failure(ErrorCode.SYSTEM_ERROR);
       }
   }
    

自定义错误码及错误封装

1.2.1 自定义错误码

      // 自定义错误码
public enum ErrorCode {

    //错误代码
    PARAMS_ERROR(40000, "请求参数错误",""),
    NOT_LOGIN_ERROR(40100, "未登录", ""),
    NO_AUTH_ERROR(40101, "权限不足,请用管理员账号登录", ""),
    NOT_FOUND_ERROR(40400, "请求数据不存在", ""),
    FORBIDDEN_ERROR(40300, "禁止访问", ""),
    SYSTEM_ERROR(50000, "系统错误", ""),
    NOT_EQUALS(66666,"两次密码不一致",""),
    OPERATION_ERROR(50001, "操作失败", "");


    /**
     * 状态码
     */
    private final int code;

    /**
     * 信息
     */
    private final String message;

    /**
     * 数据
     */
    private final String data;

    // 构造函数,该构造函数需要传入一个整数代码、消息和数据字符串。
    ErrorCode(int code, String message, String data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    public String getData() {
        return data;
    }
}
    

1.2.2 自定义返回类

加载中...

声明

作者: liyao

版权:本博客所有文章除特别声明外,均采用CCBY-NC-SA4.O许可协议。转载请注明!