View Javadoc
1   package org.woehlke.greenshop.backend.catalog;
2   
3   import org.springframework.stereotype.Controller;
4   import org.springframework.ui.Model;
5   import org.springframework.web.bind.annotation.PathVariable;
6   import org.springframework.web.bind.annotation.RequestMapping;
7   import org.springframework.web.bind.annotation.RequestMethod;
8   import org.woehlke.greenshop.backend.AdminMenuCategory;
9   import org.woehlke.greenshop.oodm.catalog.entities.Language;
10  import org.woehlke.greenshop.oodm.catalog.entities.Review;
11  import org.woehlke.greenshop.oodm.catalog.model.ReviewProduct;
12  import org.woehlke.greenshop.oodm.catalog.service.LanguageService;
13  import org.woehlke.greenshop.oodm.catalog.service.ReviewService;
14  
15  import javax.inject.Inject;
16  import java.util.List;
17  
18  /**
19   * Created by tw on 30.01.15.
20   */
21  @Controller
22  public class ReviewController {
23  
24      @Inject
25      private LanguageService languageService;
26  
27      @Inject
28      private ReviewService reviewService;
29  
30  
31      @RequestMapping(value = "/admin/reviews", method = RequestMethod.GET)
32      public String reviews(Model model){
33          int menuCategory = AdminMenuCategory.CATALOG.ordinal();
34          model.addAttribute("menuCategory",menuCategory);
35          Language language = languageService.findLanguageByCode("en");
36          List<ReviewProduct> reviews = reviewService.getAllReviews(language);
37          model.addAttribute("reviews",reviews);
38          ReviewProduct thisReview = null;
39          if(reviews.size()>0){
40              thisReview = reviews.iterator().next();
41          }
42          model.addAttribute("thisReview",thisReview);
43          int averageRating = thisReview.getReview().getReview().getRating();
44          model.addAttribute("averageRating",averageRating);
45          return "admin/catalog/reviews";
46      }
47  
48      @RequestMapping(value = "/admin/reviews/{reviewId}", method = RequestMethod.GET)
49      public String reviewsId(@PathVariable long reviewId,Model model){
50          int menuCategory = AdminMenuCategory.CATALOG.ordinal();
51          model.addAttribute("menuCategory",menuCategory);
52          Language language = languageService.findLanguageByCode("en");
53          List<ReviewProduct> reviews = reviewService.getAllReviews(language);
54          model.addAttribute("reviews",reviews);
55          ReviewProduct thisReview = null;
56          if(reviews.size()>0){
57              thisReview = reviewService.getReviewById(reviewId, language);
58          }
59          model.addAttribute("thisReview",thisReview);
60          int averageRating = thisReview.getReview().getReview().getRating();
61          model.addAttribute("averageRating",averageRating);
62          return "admin/catalog/reviews";
63      }
64  
65      @RequestMapping(value = "/admin/reviews/setInactive/{reviewId}", method = RequestMethod.GET)
66      public String reviewsSetInactive(@PathVariable long reviewId,Model model){
67          int menuCategory = AdminMenuCategory.CATALOG.ordinal();
68          model.addAttribute("menuCategory",menuCategory);
69          Language language = languageService.findLanguageByCode("en");
70          ReviewProduct thisReview = reviewService.getReviewById(reviewId, language);
71          Review review = thisReview.getReview().getReview();
72          review.setStatus(0);
73          reviewService.update(review);
74          thisReview = reviewService.getReviewById(reviewId, language);
75          model.addAttribute("thisReview",thisReview);
76          List<ReviewProduct> reviews = reviewService.getAllReviews(language);
77          model.addAttribute("reviews",reviews);
78          int averageRating = thisReview.getReview().getReview().getRating();
79          model.addAttribute("averageRating",averageRating);
80          return "admin/catalog/reviews";
81      }
82  
83      @RequestMapping(value = "/admin/reviews/setActive/{reviewId}", method = RequestMethod.GET)
84      public String reviewsSetActive(@PathVariable long reviewId,Model model){
85          int menuCategory = AdminMenuCategory.CATALOG.ordinal();
86          model.addAttribute("menuCategory",menuCategory);
87          Language language = languageService.findLanguageByCode("en");
88          ReviewProduct thisReview = reviewService.getReviewById(reviewId, language);
89          Review review = thisReview.getReview().getReview();
90          review.setStatus(1);
91          reviewService.update(review);
92          thisReview = reviewService.getReviewById(reviewId, language);
93          model.addAttribute("thisReview",thisReview);
94          List<ReviewProduct> reviews = reviewService.getAllReviews(language);
95          model.addAttribute("reviews",reviews);
96          int averageRating = thisReview.getReview().getReview().getRating();
97          model.addAttribute("averageRating",averageRating);
98          return "admin/catalog/reviews";
99      }
100 }