Package net.baguajie.web.mvc.controllers

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

package net.baguajie.web.mvc.controllers;

import java.io.UnsupportedEncodingException;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
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 HomeController {
  private static Logger logger = LoggerFactory
      .getLogger(HomeController.class);
  @Autowired
  private CityMetaRepository cityMetaRepository;
  @Autowired
  private SessionUtil sessionUtil;

  @RequestMapping(value = "/", method = RequestMethod.GET)
  public String home(Model model, HttpServletRequest request,
      HttpSession session) {
    CityMeta city = sessionUtil.getGeoCityMeta(session);
    String pinyin = ApplicationConfig.defaultCityPinyin;
    if (city != null) {
      pinyin = city.getPinyin();
    }
    return toHome(pinyin, model, request, session);
  }

  private String toHome(String cityPinyin, Model model,
      HttpServletRequest request, HttpSession session) {
    String city = request.getParameter("city");
    if (!StringUtils.hasText(city)) {
      city = cityPinyin;
    }
    String category = null;
    try {
      if (request.getParameter("category") != null) {
        category = new String(request.getParameter("category")
            .getBytes("ISO-8859-1"), "UTF-8");
      }
    } catch (UnsupportedEncodingException e) {
      logger.warn(e.getMessage(), e);
    }
    String keyword = null;
    try {
      if (request.getParameter("keyword") != null) {
        keyword = new String(request.getParameter("keyword").getBytes(
            "ISO-8859-1"), "UTF-8");
      }
    } catch (UnsupportedEncodingException e) {
      logger.warn(e.getMessage(), e);
    }
    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 "home";
  }

}
TOP

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

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.