/** * 响应添加会员等级按钮的Action * * @return */ public String add() { // 刷新系统菜单 refreshPageData(); category = new CategoryVO(); if (null == category.getPicPath() || "".equals(category.getPicPath())) { category.setPicPath(Constants.DEFAULT_DISH_PIC); } return SUCCESS; }
/** * 更新功能 * * @return */ public String update() { try { // 1. 检查传入的会员等级属性是否合法 if (!checkCategoryVO()) { return ERROR; } else { // 2. 更新新的会员等级 categoryService.updateCategory(category); setMessage(MessageUtil.getMessage("category_update_success", category.getName())); category = new CategoryVO(); } } catch (DuplicateNameException e) { this.setMessage(e.getMessage()); return ERROR; } catch (CategoryNotFoundException e) { this.setMessage(e.getMessage()); return ERROR; } catch (NumberFormatException e) { this.setMessage(e.getMessage()); return ERROR; } finally { getCategoryList(); refreshPageData(); } return SUCCESS; }
/** * 更新新菜品分类 * * @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; }
/** * 加载单个功能信息 * * @return */ public String edit() { // 刷新系统菜单 refreshPageData(); category = new CategoryVO(); try { if (null != id && !"".equals(id.trim())) { Category categoryDB = categoryService.getCategoryById(Long.parseLong(id)); category.setId(categoryDB.getId()); category.setName(categoryDB.getName()); category.setPicPath(categoryDB.getPicPath()); category.setName(categoryDB.getName()); } else { this.setMessage("ERROR"); return ERROR; } } catch (CategoryNotFoundException e) { this.setMessage(e.getMessage()); return ERROR; } return SUCCESS; }
/** 检查一个菜品的设定是否合法 */ private boolean checkCategoryVO() { boolean isValidVO = true; if (null == category) { isValidVO = false; addFieldError("category.categoryvo", MessageUtil.getMessage("category_invalid_vo")); return isValidVO; } if (StringUtil.isEmpty(category.getName())) { isValidVO = false; addFieldError("category.name", MessageUtil.getMessage("category_name_rule")); } else { category.setName(category.getName()); } if (StringUtil.isEmpty(category.getPicPath())) { isValidVO = false; addFieldError("category.pic.path", MessageUtil.getMessage("pic_path_rule")); } return isValidVO; }
/** * 添加新会员等级Action * * @return */ public String save() { logger.debug(category); try { // 1. 检查传入的会员等级属性是否合法 if (!checkCategoryVO()) { return ERROR; } else { // 2. 创建新的会员等级 categoryService.addCategory(category); setMessage(MessageUtil.getMessage("category_save_success", category.getName())); category = new CategoryVO(); } } catch (DuplicateNameException e) { logger.error(e.getMessage()); this.setMessage(e.getMessage()); return ERROR; } finally { getCategoryList(); refreshPageData(); } return SUCCESS; }
/** * 上传图片 * * @return * @throws Exception */ public String uploadImage() { // 得到当前时间自1970年1月1日0时0分0秒开始流逝的毫秒数,将这个毫秒数作为上传文件新的文件名。 long now = new Date().getTime(); // 得到保存上传文件的目录的真实路径 String path = ServletActionContext.getServletContext().getRealPath(uploadDir); File dir = new File(path); // 如果这个目录不存在,则创建它。 if (!dir.exists()) { dir.mkdir(); } if (null != fileFileName && !"".equals(fileFileName.trim())) { int index = fileFileName.lastIndexOf('.'); // 判断上传文件名是否有扩展名 if (index != -1) { newFileName = now + fileFileName.substring(index); } else { newFileName = Long.toString(now); } this.setNewFileName(newFileName); BufferedOutputStream bos = null; BufferedInputStream bis = null; // 读取保存在临时目录下的上传文件,写入到新的文件中。 try { FileInputStream fis = new FileInputStream(file); bis = new BufferedInputStream(fis); FileOutputStream fos = new FileOutputStream(new File(dir, newFileName)); bos = new BufferedOutputStream(fos); byte[] buf = new byte[4096]; int len = -1; while ((len = bis.read(buf)) != -1) { bos.write(buf, 0, len); } } catch (FileNotFoundException e) { this.setMessage(MessageUtil.getMessage("file_not_found_fxception", fileFileName)); return INPUT; } catch (IOException e) { this.setMessage(MessageUtil.getMessage("io_exception", newFileName)); return INPUT; } finally { refreshPageData(); try { if (null != bis) { bis.close(); } if (null != bos) { bos.close(); } } catch (IOException e) { this.setMessage(MessageUtil.getMessage("io_exception", newFileName)); return INPUT; } } } if (null == category) { category = new CategoryVO(); } if (null != category) { category.setName(categoryName); if (null != categoryId) { category.setId(categoryId); setId(categoryId.toString()); } category.setPicPath("/dish/" + newFileName); } this.setMessage(MessageUtil.getMessage("upload_picture_success_msg")); return SUCCESS; }