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

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

作者: 啃饼小白 | 来源:发表于2019-01-23 07:18 被阅读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("添加商品品类名字失败!");
        }
    

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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/mafacqtx.html