Package net.baguajie.web.mvc.controllers

Source Code of net.baguajie.web.mvc.controllers.MapViewController

package net.baguajie.web.mvc.controllers;

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

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import net.baguajie.constants.ApplicationConfig;
import net.baguajie.domains.CityMeta;
import net.baguajie.repositories.CityMetaRepository;
import net.baguajie.vo.FilterElementVo;
import net.baguajie.web.utils.SessionUtil;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class MapViewController {
 
  @Autowired
  private CityMetaRepository cityMetaRepository;
  @Autowired
  private SessionUtil sessionUtil;
 
  @RequestMapping(value = "/map", method = RequestMethod.GET)
  public String view(Model model,
      HttpServletRequest request,
      HttpSession session){
    CityMeta city = sessionUtil.getGeoCityMeta(session);
    String pinyin = ApplicationConfig.defaultCityPinyin;
    if(city!= null){
      pinyin = city.getPinyin();
    }
    return toMap(pinyin, model, request);
  }
 
  private String toMap(String cityPinyin, Model model,
      HttpServletRequest request) {
    String city = request.getParameter("city");
    if(!StringUtils.hasText(city)){
      city = cityPinyin;
    }
    String category = request.getParameter("category");
    String keyword = request.getParameter("keyword");
    Collection<FilterElementVo> filters = new ArrayList<FilterElementVo>();
    StringBuilder sb = new StringBuilder();
    FilterElementVo filter = null;
   
    // set city filter
    filter = new FilterElementVo();
    filter.setType("city");
    filter.setTypeLabel("城市");
    filter.setValue("");
    filter.setLabel("全国");
    if(StringUtils.hasText(city)){
      CityMeta cityMeta = cityMetaRepository
        .getByPinyin(city.toLowerCase());
      if(cityMeta==null){
        cityMeta = cityMetaRepository.getByPinyin(
          ApplicationConfig.defaultCityPinyin);
      }
      if(cityMeta!=null){
        filter.setLabel(cityMeta.getName());
        filter.setValue(cityMeta.getPinyin());
      }
    }
    filters.add(filter);
    sb.append("city=").append(filter.getValue()).append("&");
   
    // set category filter
    filter = new FilterElementVo();
    filter.setType("category");
    filter.setTypeLabel("分类");
    filter.setValue("");
    filter.setLabel("全部");
    if(StringUtils.hasText(category)){
      filter.setLabel(category);
      filter.setValue(category);
    }
    filters.add(filter);
    sb.append("category=").append(filter.getValue()).append("&");
   
    // set keyword filter
    filter = new FilterElementVo();
    filter.setType("keyword");
    filter.setTypeLabel("关键词");
    filter.setValue("");
    filter.setLabel("未选择");
    if(StringUtils.hasText(keyword)){
      filter.setLabel(keyword);
      filter.setValue(keyword);
    }
    filters.add(filter);
    sb.append("keyword=").append(filter.getValue()).append("&");
   
    model.addAttribute("filters", filters);
    model.addAttribute("qStr", sb.toString());
    return "map";
  }
}
TOP

Related Classes of net.baguajie.web.mvc.controllers.MapViewController

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.