10、【分类模块管理】——添加分类接口开发

分类模块:分类模块是给后台管理员进行操作的,所以我们所有的行为都应该是建立在登录者是管理员的前提下。
controller

    @RequestMapping("add_category.do")
    @ResponseBody
    public ServerResponse addCategory(HttpSession session,String categoryName,@RequestParam(value = "parentId",defaultValue = "0") int parentId){
        //验证用户是否登录
        User user = (User)session.getAttribute(Const.CURRENT_USER);
        if(user==null){
            return ServerResponse.createByErrorCodeMessage(ResponseCode.NEED_LOGIN.getCode(),"用户未登录,请先登录");
        }
        //校验是否是管理员
        if(iUserService.checkAdminRole(user).isSuccess()){
            //是管理员,增加我们处理分类的逻辑
            return iCategoryService.addCategory(categoryName,parentId);

        }else {
            return ServerResponse.createByErrorMessage("无权限操作,需要管理员权限");
        }

    }

1、我们先来看看校验是不是管理员的接口:
server:

//校验是不是管理员
  ServerResponse checkAdminRole(User user);

serverImpl:

 //校验是不是管理员
    public ServerResponse checkAdminRole(User user){
        if(user!=null&&user.getRole().intValue()==Const.Role.ROLE_ADMIN){
            return ServerResponse.createBySuccess();
        }
        return ServerResponse.createByError();
    }

我们来看一下第二行代码,我们先判断用户是否为空,然后再获取当前登录用户在数据库中Role值,我们判断如果Role1则是管理员,普通用户默认为0,当我们获得当前登录用户的Role值与我们在枚举类中设置的值进行对比,如果和枚举中设置管理员对应的值一样,我们则判断当前登录用户为管理员。枚举类的编写在 4、相关工具类的 编写这篇文章中有写Const

2、当判断是管理员之后我们再来进行新增品类操作:
server:

    //添加品类
    ServerResponse addCategory(String categoryName, Integer parentId);

serverImpl:

  //增加分类
    public ServerResponse addCategory(String categoryName,Integer parentId){
        if(parentId==null|| StringUtils.isBlank(categoryName)){
            return ServerResponse.createByErrorMessage("参数错误,增加品类失败");
        }
        Category category=new Category();
        category.setName(categoryName);
        category.setParentId(parentId);
        category.setStatus(true);//true代表分类可用

        int  count= categoryMapper.insert(category);
        if(count>0){
            return ServerResponse.createBySuccessMessage("新增品类成功");
        }
        return ServerResponse.createByErrorMessage("服务器错误,新增品类失败");
    }

调用的是逆向工程生成的MapperMapper.xml
Mapper:

    int insert(Category record);

Mapper.xml:

 <insert id="insert" parameterType="com.mmall.pojo.Category" >
    insert into mmall_category (id, parent_id, name, 
      status, sort_order, create_time, 
      update_time)
    values (#{id,jdbcType=INTEGER}, #{parentId,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, 
      #{status,jdbcType=BIT}, #{sortOrder,jdbcType=INTEGER}, now(),
      now())
  </insert>

接口测试:
Ⅰ、普通用户登陆:


img_113ad930bea2a660235a97d323f78380.png
image.png

Ⅱ、管理员身份登陆:


img_f16ebea4df6a61372148da98968c1525.png
image.png

数据库效果:
img_e65a92ff5392a95eecd75445d19a4431.png
image.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值