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("添加商品品类名字失败!");
}
这样我们本篇关于如何添加和更新分类的的介绍就到此为止了,感谢你的赏阅!!!