UserLoginController.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package com.goafanti.user.controller;
  2. import javax.annotation.Resource;
  3. import javax.servlet.http.HttpServletRequest;
  4. import org.apache.commons.lang3.StringUtils;
  5. import org.apache.shiro.web.util.WebUtils;
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.ui.Model;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RequestMethod;
  10. import org.springframework.web.bind.annotation.ResponseBody;
  11. import org.springframework.web.servlet.ModelAndView;
  12. import org.springframework.web.servlet.view.RedirectView;
  13. import com.goafanti.common.bo.Result;
  14. import com.goafanti.common.constant.ErrorConstants;
  15. import com.goafanti.common.controller.BaseController;
  16. import com.goafanti.common.model.Admin;
  17. import com.goafanti.common.model.User;
  18. import com.goafanti.common.utils.TimeUtils;
  19. import com.goafanti.common.utils.VerifyCodeUtils;
  20. import com.goafanti.core.shiro.token.TokenManager;
  21. import com.goafanti.user.service.UserService;
  22. @Controller
  23. public class UserLoginController extends BaseController {
  24. @Resource
  25. private UserService userService;
  26. @RequestMapping(value = "/login", method = RequestMethod.GET)
  27. @ResponseBody
  28. public Result login(HttpServletRequest request, Model model) {
  29. Result res = new Result();
  30. TokenManager.logout();
  31. return res;
  32. }
  33. @RequestMapping(value = "/login", method = RequestMethod.POST)
  34. public ModelAndView doLogin(User user, Boolean rememberMe, HttpServletRequest request, ModelAndView modelview) {
  35. TokenManager.login(user, rememberMe);
  36. RedirectView rv = new RedirectView();
  37. rv.setUrl(request.getContextPath() + "/index");
  38. rv.setExposeModelAttributes(false);
  39. modelview.setView(rv);
  40. return modelview;
  41. }
  42. /**
  43. * 用户登录
  44. * @param user
  45. * @param remember
  46. * @param request
  47. * @return
  48. */
  49. @RequestMapping(value = "/signin", method = RequestMethod.POST)
  50. @ResponseBody
  51. public Result signin(User user,Boolean remember, HttpServletRequest request) {
  52. Result res = new Result();
  53. TokenManager.login(user, remember);
  54. res.setData(WebUtils.getAndClearSavedRequest(request));
  55. return res;
  56. }
  57. /**
  58. * 管理端登录
  59. * @param user
  60. * @param remember
  61. * @param request
  62. * @return
  63. */
  64. @RequestMapping(value = "/managesignin", method = RequestMethod.POST)
  65. @ResponseBody
  66. public Result managesignin(Admin admin,Boolean remember, HttpServletRequest request) {
  67. Result res = new Result();
  68. res.setData(TokenManager.manageLogin(admin, remember));
  69. return res;
  70. }
  71. /**
  72. * 忘记密码 使用手机号+手机验证码登录
  73. * @param mobile
  74. * @param mobileCode
  75. * @param type
  76. * @return
  77. */
  78. @RequestMapping(value = "/mobileSigin", method = RequestMethod.POST)
  79. @ResponseBody
  80. public Result mobileSignIn(User user,String mobileCode){
  81. Result res = new Result();
  82. if(StringUtils.isBlank(user.getMobile())){
  83. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"必须指定","手机号"));
  84. return res;
  85. }
  86. if(TimeUtils.checkOverTime("register")){
  87. res.getError().add(buildError(ErrorConstants.MCODE_OVERTIME_ERROR,"手机验证码超时失效"));
  88. return res;
  89. }
  90. if(!TokenManager.getSession().getAttribute(VerifyCodeUtils.M_CODE).equals(mobileCode)){
  91. res.getError().add(buildError(ErrorConstants.MCODE_ERROR,"手机验证码错误"));
  92. return res;
  93. }
  94. return res;
  95. }
  96. }