Package net.baguajie.web.mvc.controllers

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

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.constants.ApplicationConstants;
import net.baguajie.constants.Gender;
import net.baguajie.domains.CityMeta;
import net.baguajie.repositories.CityMetaRepository;
import net.baguajie.vo.FilterElementVo;
import net.baguajie.web.utils.DomainObjectUtil;
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;
import org.springframework.web.bind.annotation.SessionAttributes;

@Controller
@SessionAttributes({ ApplicationConstants.SESSION_SIGNIN_USER,
    ApplicationConstants.SESSION_SIGNIN_USER_PREFER })
public class ProfilesController {
  private static Logger logger = LoggerFactory
      .getLogger(ProfilesController.class);
  @Autowired
  private CityMetaRepository cityMetaRepository;
  @Autowired
  private SessionUtil sessionUtil;

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

  private String toProfiles(String cityPinyin, Model model,
      HttpServletRequest request, HttpSession session) {
    String city = request.getParameter("city");
    if (!StringUtils.hasText(city)) {
      city = cityPinyin;
    }
    String gender = null;
    try {
      if (request.getParameter("gender") != null) {
        gender = new String(request.getParameter("gender").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;
    // add 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(filter.getType()).append("=").append(filter.getValue())
        .append("&");

    // add gender filter
    filter = new FilterElementVo();
    filter.setType("gender");
    filter.setTypeLabel("性别");
    filter.setValue("");
    filter.setLabel("无所谓");
    if (StringUtils.hasText(gender)) {
      try {
        Gender g = Gender.valueOf(gender.toUpperCase());
        filter.setLabel(DomainObjectUtil.getGender(g));
        filter.setValue(gender);
      } catch (RuntimeException re) {

      }
    }
    filters.add(filter);
    sb.append(filter.getType()).append("=").append(filter.getValue())
        .append("&");

    // add 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(filter.getType()).append("=").append(filter.getValue())
        .append("&");

    model.addAttribute("filters", filters);
    model.addAttribute("qStr", sb.toString());
    return "profiles";
  }
}
TOP

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

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.