up:: SpringBoot电商项目商品分类模块统一校验管理员身份
说明:
(1) 本篇博客的内容比较简单,需要注意的是【删除的处理逻辑】:在删除的时候,我们先根据传的id,去数据库中查,如果查到了有这条记录,再去删;如果没查到,就返回删除失败的信息;
一:【删除目录分类】接口;
1.【删除目录分类】接口文档和接口说明;
说明:
(1) 在删除的时候,我们先根据传的id,去数据库中查,如果查到了有这条记录,再去删;如果没查到,就返回删除失败的信息;
2.在CategoryController中,编写删除分类目录的方法:deleteCategory()方法;
/**
* 删除目录分类
* @param id
* @return
*/
@ApiOperation("后台删除商品分类目录")
@PostMapping("/admin/category/delete")
@ResponseBody
public ApiRestResponse deleteCategory(@RequestParam("id") Integer id) {
categoryService.delete(id);
return ApiRestResponse.success();
}
说明:
(1) 这个方法的url,请求方式,入参,返回值要符合接口文档的要求;
(2) 方法说明;
(3) 因为这儿只有一个参数,所以没有使用JavaBean接受,而是直接用方法参数去接收了;
(4) 具体,Service层的delete()方法,见下一部分;
3.在CategoryServiceImpl实现类中,编写删除分类的方法delete();然后在CategoryService接口中,反向生成方法的声明;
(1)在CategoryServiceImpl实现类中,编写删除分类的方法delete();
/**
* 删除目录分类
* @param id
*/
@Override
public void delete(Integer id) {
//先根据id,尝试去查询有没有这个分类
Category categoryOld = categoryMapper.selectByPrimaryKey(id);
//如果根据id,没有查到记录;那说明数据库没有这个id的记录;那么就抛出删除失败的异常
if (categoryOld == null) {
throw new ImoocMallException(ImoocMallExceptionEnum.DELETE_ERROR);
}
//如果根据id,查到了记录;那么就调用删除方法去删除
int count = categoryMapper.deleteByPrimaryKey(id);
if (count == 0) {//如果返回值为0,就表示删除失败了;抛出删除失败的异常
throw new ImoocMallException(ImoocMallExceptionEnum.DELETE_ERROR);
}
}
说明:
(1) 这个方法很简单,具体看方法注释;
(2) selectByPrimaryKey()方法和delectByPrimaryKey()方法,都是前面我们通过mybatis-gentrator插件自动生成的;