package com.hao.controller;
import com.hao.enums.TypeMessageEnum;
import com.hao.model.UserResponse;
import com.hao.model.vo.UserVo;
import com.hao.service.UserService;
import com.hao.util.session.SessionManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import static com.hao.constants.Constants.LOGIN_URI;
import static com.hao.util.Asserts.checkNotBlank;
/**
* Created by user on 2016/2/24.
*/
@Controller
public class UserController extends AbstractController{
private static final Logger LOGGER = LoggerFactory.getLogger(UserController.class);
@Resource
private UserService userService;
@RequestMapping(value = "/user/login",method = RequestMethod.GET)
public String login(Model model){
return "/user/login";
}
@RequestMapping(value = "/user/isLogin",method = RequestMethod.POST)
public String loginPost(UserVo userVo, HttpServletRequest request,Model model){
try {
checkNotBlank(userVo.getUserIdentity(), "用户登录名不能为空");
checkNotBlank(userVo.getUserPassword(), "用户密码不能为空");
UserResponse response = userService.login(userVo.getUserIdentity(), userVo.getUserPassword());
if (response.isSuccess()) {
SessionManager.INSTANCE.login(response.getUserVo(), request.getSession());
return "redirect:/index";
}
setMessage(model, TypeMessageEnum.ERROR, response.getResponse());
} catch (Exception e) {
e.printStackTrace();
LOGGER.warn("",e);
setMessage(model,TypeMessageEnum.ERROR,e.getMessage());
}
return login(model);
}
@RequestMapping(value = "/user/logout")
public String logout(HttpServletRequest request) {
SessionManager.INSTANCE.logout(request.getSession());
return "redirect:" + LOGIN_URI;
}
@ExceptionHandler({Exception.class})
public String exception(Exception e) {
LOGGER.warn("user controller exception:{}",e.getMessage());
return "exception";
}
}