package org.taobao88.taobao.controllers; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; 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.multipart.MultipartFile; import org.taobao88.taobao.controllers.validators.PageRedactorValidator; import org.taobao88.taobao.enterprise.entity.Brands; import org.taobao88.taobao.enterprise.entity.Images; import org.taobao88.taobao.enterprise.service.BrandsService; import org.taobao88.taobao.enterprise.service.ImagesService; @Controller @RequestMapping(value = "/admin/pageRedactor/brands") public class BrandsController extends MainController { @Autowired private BrandsService brandsService; @Autowired private ImagesService imagesService; private PageRedactorValidator validator; @RequestMapping(method = RequestMethod.GET) public String index(@RequestParam(value = "page", required = false, defaultValue = "1") int page, HttpServletRequest request, Model model) { int totalCount = brandsService.getBrandsCount(); int totalPages = (int) totalCount / 54; if (totalCount % 54 != 0) { totalPages++; } model.addAttribute("curr_page", page); model.addAttribute("total_pages", totalPages == 0 ? 1 : totalPages); model.addAttribute("brands", brandsService.getBrandsPartial(page)); model.addAttribute("brands_index", true); return "pageRedactor"; } @RequestMapping(value = "/view", method = RequestMethod.GET) public String view(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam ("id") int id, Model model) { model.addAttribute("brand", brandsService.getBrandById(id)); model.addAttribute("brands_view", true); model.addAttribute("curr_page", page); return "pageRedactor"; } @RequestMapping(value = "/createBrand", method = RequestMethod.GET) public String create(@RequestParam(value = "page", required = false, defaultValue = "1") int page, Model model) { model.addAttribute("brands_create", true); model.addAttribute("curr_page", page); return "pageRedactor"; } @RequestMapping(value = "/createBrand/doCreate", method = RequestMethod.POST) public String doCreate(@RequestParam("bDesc") String desc, @RequestParam("bPhoto") MultipartFile file, @RequestParam(value = "page", required = false, defaultValue = "1") int page) { Brands brand = new Brands(); brand.setBrandName(desc); Images image = new Images(); image.setImageName(saveUploadedFile(file)); image.setImageId(imagesService.addImage(image)); brand.setBrandImage(image.getImageId()); brand.setImage(image); brandsService.addBrand(brand); return "redirect:/admin/pageRedactor/brands?page=" + page; } @RequestMapping(value = "/deleteBrand", method = RequestMethod.GET) public String deleteBrand(@RequestParam("id") int id, @RequestParam(value = "page", required = false, defaultValue = "1") int page) { Brands brand = brandsService.getBrandById(id); deleteImage(brand.getImage()); brandsService.deleteBrand(brand); return "redirect:/admin/pageRedactor/brands?page=" + page; } @RequestMapping(value = "/updateBrand", method = RequestMethod.GET) public String updateBrand(@RequestParam("id") int id, @RequestParam(value = "page", required = false, defaultValue = "1") int page, Model model) { Brands brand = brandsService.getBrandById(id); model.addAttribute("brand", brand); model.addAttribute("brands_update", true); model.addAttribute("curr_page", page); return "pageRedactor"; } @RequestMapping(value = "/updateBrand/doUpdate", method = RequestMethod.POST) public String doUpdateBrand(@RequestParam("id") int id, @RequestParam("bPhoto") MultipartFile file, @RequestParam(value = "page", required = false, defaultValue = "1") int page, HttpServletRequest request, Model model) { try { Brands brand = brandsService.getBrandById(id); validator = new PageRedactorValidator(); List<String> errors = validator.validateUpdateBrand(request); if (errors.size() != 0) { model.addAttribute("errors", toJSArray(errors.toArray())); model.addAttribute("brands_update", true); model.addAttribute("curr_page", page); return "pageRedactor"; } if (file.getSize() > 0) { Images image = new Images(); image.setImageName(saveUploadedFile(file)); image.setImageId(imagesService.addImage(image)); brand.setBrandImage(image.getImageId()); brand.setImage(image); } brand.setBrandName(validator.getString("bDesc")); brandsService.updateBrand(brand); return "redirect:/admin/pageRedactor/brands?page=" + page; } catch (Exception e) { e.printStackTrace(); model.addAttribute("unknown_error", true); model.addAttribute("brands_update", true); model.addAttribute("curr_page", page); return "pageRedactor"; } } }