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插件自动生成的;


(2)然后在CategoryService接口中,反向生成方法的声明;

4.启动项目,测试接口;