package org.taobao88.taobao.controllers;
import java.util.Map;
import java.util.Set;
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.enterprise.entity.Images;
import org.taobao88.taobao.enterprise.entity.Recomendation;
import org.taobao88.taobao.enterprise.entity.RecomendationType;
import org.taobao88.taobao.enterprise.service.RecomendationService;
import org.taobao88.taobao.enterprise.service.RecomendationTypeService;
@Controller
@RequestMapping(value = "/admin/pageRedactor/banner")
public class BannerController extends MainController {
@Autowired private RecomendationTypeService recomendationTypeService;
@Autowired private RecomendationService recomendationService;
@RequestMapping(method = RequestMethod.GET)
public String index(@RequestParam(value = "page", required = false, defaultValue = "1") int page,
HttpServletRequest request,
Model model) {
Map<Integer, RecomendationType> types = recomendationTypeService.getRecomendationTypes();
int totalCount = recomendationService.getRecomendationsCount(types.get(5));
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("banners", recomendationService.getRecomendationsPartial(page, types.get(5)));
model.addAttribute("banner_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("banner", recomendationService.getRecomendationById(id));
model.addAttribute("banner_view", true);
model.addAttribute("curr_page", page);
return "pageRedactor";
}
@RequestMapping(value = "/createBanner", method = RequestMethod.GET)
public String createBanner(@RequestParam(value = "page", required = false, defaultValue = "1") int page,
Model model) {
model.addAttribute("recomendation_type", 5);
model.addAttribute("banner_create", true);
model.addAttribute("curr_page", page);
return "pageRedactor";
}
@RequestMapping(value = "/createBanner/doCreate", method = RequestMethod.POST)
public String doCreate(@RequestParam(value = "page", required = false, defaultValue = "1") int page,
@RequestParam("rDesc") String desc,
@RequestParam("rPrice") String price,
@RequestParam("rHref") String href,
@RequestParam("rPhoto") MultipartFile file,
@RequestParam("recType") int recType) {
Recomendation rec = new Recomendation();
rec.setDescription(desc);
rec.setPrice(Double.parseDouble(price));
rec.setHref(href);
rec.setPhoto(saveUploadedFile(file));
rec.setType(recomendationTypeService.getTypeById(recType));
recomendationService.addRecomendation(rec);
return "redirect:/admin/pageRedactor/banner?page=" + page;
}
@RequestMapping(value = "/updateBanner", method = RequestMethod.GET)
public String updateBanner(@RequestParam(value = "page", required = false, defaultValue = "1") int page,
@RequestParam("id") int id, Model model) {
Recomendation rec = recomendationService.getRecomendationById(id);
model.addAttribute("rec", rec);
model.addAttribute("banner_update", true);
model.addAttribute("curr_page", page);
return "pageRedactor";
}
@RequestMapping(value = "/updateBanner/doUpdate", method = RequestMethod.POST)
public String doUpdateBanner(@RequestParam(value = "page", required = false, defaultValue = "1") int page,
@RequestParam("rDesc") String desc,
@RequestParam("rPrice") String price,
@RequestParam("rHref") String href, @RequestParam("id") int id,
@RequestParam("rPhoto") MultipartFile file) {
Recomendation rec = recomendationService.getRecomendationById(id);
rec.setDescription(desc);
rec.setPrice(Double.parseDouble(price));
rec.setHref(href);
if (file.getSize() > 0) {
rec.setPhoto(saveUploadedFile(file));
}
recomendationService.updateRecomendation(rec);
return "redirect:/admin/pageRedactor/banner?page=" + page;
}
@RequestMapping(value = "/deleteBanner", method = RequestMethod.GET)
public String deleteBanner(@RequestParam(value = "page", required = false, defaultValue = "1") int page,
@RequestParam("id") int id) {
Recomendation rec = recomendationService.getRecomendationById(id);
Set<Images> images = rec.getImages();
if (images != null || !images.isEmpty()) {
for (Images img : images) {
deleteImage(img);
}
}
recomendationService.deleteRecomendation(rec);
return "redirect:/admin/pageRedactor/banner?page=" + page;
}
}