/** * 更新新菜品分类 * * @param categoryVO 菜品分类值对象,包含需要更新的数据 * @return 更新后的菜品分类值对象 * @throws DuplicateNameException 菜品分类命名重复异常 * @throws CategoryNotFoundException 菜品分类不存在异常 */ @Transactional( propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = Exception.class) public Category updateCategory(CategoryVO categoryVO) throws DuplicateNameException, CategoryNotFoundException { // 1. 检查需要更新的菜品分类是否存在 Category category = this.getCategoryById(categoryVO.getId()); Category checkedCategory = categoryDao.getCategoryByName(categoryVO.getName()); // 2. 检查是否有同名菜品分类 if (checkedCategory != null && checkedCategory.getId() != categoryVO.getId()) { throw new DuplicateNameException( MessageUtil.getMessage("category_name_msg", categoryVO.getName())); } else { // 3. 更新菜品分类 category.setName(categoryVO.getName()); category.setPicPath(categoryVO.getPicPath()); category.setUpdateDate(new Date()); categoryDao.update(category); } return category; }
/** * 添加新菜品分类 * * @param categoryVO 菜品分类值对象 * @return 新创建的菜品分类对象 * @throws DuplicateNameException 菜品分类命名重复异常 */ @Transactional( propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = Exception.class) public Category addCategory(CategoryVO categoryVO) throws DuplicateNameException { Category category = null; // 1. 检查是否有同名菜品分类 if (null == categoryDao.getCategoryByName(categoryVO.getName())) { category = new Category(); category.setName(categoryVO.getName()); category.setPicPath(categoryVO.getPicPath()); category.setCreateDate(new Date()); Long categoryId = categoryDao.save(category); category = categoryDao.get(categoryId); } else { throw new DuplicateNameException( MessageUtil.getMessage("category_name_msg", categoryVO.getName())); } return category; }