Package com.springone.myrestaurants.web

Source Code of com.springone.myrestaurants.web.TopNController

package com.springone.myrestaurants.web;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.springframework.core.convert.converter.Converter;
import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.springone.myrestaurants.domain.RatedRestaurant;
import com.springone.myrestaurants.domain.Recommendation;
import com.springone.myrestaurants.domain.UserAccount;

@RequestMapping("/topn")
@Controller
public class TopNController extends BaseApplicationController {
 
 
    @RequestMapping(method = RequestMethod.GET)
    public String list(@ModelAttribute("currentUserAccountId") Long userId,
                   Model model) {
      UserAccount currentUser = this.userAccountRepository.findUserAccount(userId);
      Collection<RatedRestaurant> top5 = currentUser.getTop5RatedRestaurants();
      List<RatedRestaurantBean> topn = new ArrayList<RatedRestaurantBean>();
      for (RatedRestaurant rr : top5) {
        RatedRestaurantBean rrb = new RatedRestaurantBean();
        rrb.setId(rr.getRestaurant().getId());
        rrb.setName(rr.getRestaurant().getName());
        float totPoints = 0;
        long count = 0;
        for (Recommendation r : rr.getRecommendations()) {
          totPoints += r.getStars();
          count++;
        }
        rrb.setRating(totPoints / count);
        rrb.setRecommendations(count);
        topn.add(rrb);
      }
      model.addAttribute("topn", topn);
     
        return "topn/list";
    }
   
    Converter<UserAccount, String> getUserAccountConverter() {
        return new Converter<UserAccount, String>() {
            public String convert(UserAccount friend) {
                return new StringBuilder().append(friend.getUserName()).toString();
            }
        };
    }
   
    @InitBinder
    void registerConverters(WebDataBinder binder) {
        if (binder.getConversionService() instanceof GenericConversionService) {
            GenericConversionService conversionService = (GenericConversionService) binder.getConversionService();
            conversionService.addConverter(getUserAccountConverter());
        }
    }


}
TOP

Related Classes of com.springone.myrestaurants.web.TopNController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.