SSM搭建二手市场交易平台网站

SSM搭建二手市场交易平台(十一):添加和更新分类名称

2019-01-23  本文已影响1人  啃饼小白

写在前面

本篇,我们来介绍如何添加和更新分类的名称。里面的内容很多,希望大家对此有一个提前的认识。

分类管理模块开发

我们在分类管理模块开发主要介绍以下内容:获取节点;增加加点;修改名字;获取分类 ID;递归子节点 ID这些功能的实现相对来说比较有意思。在此过程中我们会介绍如何设计及封装无限层级的树状数据结构;递归算法的设计思想;如何处理复杂对象排重以及重写hashcode 和equal时应当注意的事项。

添加商品分类

因为商品分类都是在后台进行的,因此都在backend这个包里面。我们打开controller包下面的backend 包,在里面新建CategoryManageController.java文件,在里面新增以下代码:

package top.store.controller.backend;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import top.store.common.Const;
import top.store.common.ResponseCode;
import top.store.common.ServerResponse;
import top.store.pojo.User;
import top.store.service.ICategoryService;
import top.store.service.IUserService;

import javax.servlet.http.HttpSession;

@Controller
@RequestMapping("/manage/category")
public class CategoryManageController {

    @Autowired
    private IUserService iUserService;

    @Autowired
    private ICategoryService iCategoryService;


    /**
     * 后台管理员添加商品品类
     * */
    @RequestMapping(value = "add_category.do")
    @ResponseBody   //自动序列化json功能
    public ServerResponse addCategory(HttpSession session,String categoryName,@RequestParam(value = "parentId", defaultValue = "0") int parentId){
        //注意一下上面我们需要给parentId一个默认的值0,它是我们分类的根节点,否则就会出错

        //判断一下登录情况
        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("无权限操作,需要管理员权限");
        }
    }
}

接着在service里面新建一个ICategoryService.java文件,用于接口的声明:

package top.store.service;

import top.store.common.ServerResponse;

public interface ICategoryService {
    ServerResponse addCategory(String categoryName, Integer parentId);  //管理员后台添加商品品类
}

然后在impl文件夹下新建CategoryServiceImpl.java文件,里面的代码如下:

package top.store.service.impl;


import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import top.store.common.ServerResponse;
import top.store.dao.CategoryMapper;
import top.store.pojo.Category;
import top.store.service.ICategoryService;


@Service("iCategoryService")
public class CategoryServiceImpl implements ICategoryService {


    @Autowired
    private CategoryMapper categoryMapper;


    /**
     * 管理员后台添加商品品类
     * */
    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);   //设置父类id
        category.setStatus(true);   //设置这个分类是可以使用的状态


        int rowCount =categoryMapper.insert(category);
        if(rowCount>0){
            return ServerResponse.createBySuccess("添加商品品类成功!");
        }
        return ServerResponse.createByErrorMessage("添加商品品类失败!");
    }
}

这样就完成了我们后台管理员添加商品分类的功能,你可能要问了我们还没在dao层的CategoryMapper里面定义方法呢,那是因为我们这里只是单纯的增删改查,里面已经给我们提供了它的实现,我们直接使用就可以,后面复杂的就可能需要自己定义方法和书写sql语句了。

商品品类名称修改

这个和上面的差不多,就是功能实现不同而已。我们打开CategoryManageController.java文件,在里面新增以下代码:


    /**
     * 后台管理员更新商品品类名称
     * */
    @RequestMapping(value = "set_category_name.do")
    @ResponseBody   //自动序列化json功能
    public ServerResponse setCategoryName(HttpSession session,Integer categoryId,String categoryName){
        //判断一下登录情况
        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.setCategoryName(categoryId,categoryName);
        }else {
            return  ServerResponse.createByErrorMessage("无权限操作,需要管理员权限");
        }
    }

接着打开ICategoryService.java文件,里面新增代码:

 ServerResponse setCategoryName(Integer categoryId,String categoryName);   //后台管理员更新商品品类名称

最后打开CategoryServiceImpl.java文件,新增代码如下:

 /**
     * 管理员后台更新商品品类名称
     * */
    public ServerResponse setCategoryName(Integer categoryId,String categoryName){
        //校验一下两者是否为空
        if(categoryId ==null || StringUtils.isBlank(categoryName)){
            return ServerResponse.createByErrorMessage("添加商品品类错误");
        }

        Category category =new Category();  //实例化一个分类对象
        category.setId(categoryId);  //传入id
        category.setName(categoryName);   //设置新的品类名称


        int rowCount =categoryMapper.updateByPrimaryKeySelective(category); //使用有选择性的更新,根据商品的id来进行更新
        if(rowCount >0){
            return ServerResponse.createBySuccess("修改商品品类名字成功!");
        }
        return ServerResponse.createByErrorMessage("添加商品品类名字失败!");
    }

这样我们本篇关于如何添加和更新分类的的介绍就到此为止了,感谢你的赏阅!!!

上一篇下一篇

猜你喜欢

热点阅读