package com.goafanti.user.controller; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.RedirectView; import com.goafanti.common.bo.Result; import com.goafanti.common.constant.ErrorConstants; import com.goafanti.common.controller.BaseController; import com.goafanti.common.model.Admin; import com.goafanti.common.model.User; import com.goafanti.common.utils.TimeUtils; import com.goafanti.common.utils.VerifyCodeUtils; import com.goafanti.core.shiro.token.TokenManager; import com.goafanti.user.service.UserService; @Controller public class UserLoginController extends BaseController { @Resource private UserService userService; @RequestMapping(value = "/login", method = RequestMethod.GET) @ResponseBody public Result login(HttpServletRequest request, Model model) { Result res = new Result(); TokenManager.logout(); return res; } @RequestMapping(value = "/login", method = RequestMethod.POST) public ModelAndView doLogin(User user, Boolean rememberMe, HttpServletRequest request, ModelAndView modelview) { TokenManager.login(user, rememberMe); RedirectView rv = new RedirectView(); rv.setUrl(request.getContextPath() + "/index"); rv.setExposeModelAttributes(false); modelview.setView(rv); return modelview; } /** * 用户登录 * @param user * @param remember * @param request * @return */ @RequestMapping(value = "/signin", method = RequestMethod.POST) @ResponseBody public Result signin(User user,Boolean remember, HttpServletRequest request) { Result res = new Result(); res.setData(TokenManager.login(user, remember)); return res; } /** * 管理端登录 * @param user * @param remember * @param request * @return */ @RequestMapping(value = "/managesignin", method = RequestMethod.POST) @ResponseBody public Result managesignin(Admin admin,Boolean remember, HttpServletRequest request) { Result res = new Result(); res.setData(TokenManager.manageLogin(admin, remember)); return res; } /** * 忘记密码 使用手机号+手机验证码登录 * @param mobile * @param mobileCode * @param type * @return */ @RequestMapping(value = "/mobileSigin", method = RequestMethod.POST) @ResponseBody public Result mobileSignIn(User user,String mobileCode){ Result res = new Result(); if(StringUtils.isBlank(user.getMobile())){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"必须指定","手机号")); return res; } if(TimeUtils.checkOverTime("register")){ res.getError().add(buildError(ErrorConstants.MCODE_OVERTIME_ERROR,"手机验证码超时失效")); return res; } if(!TokenManager.getSession().getAttribute(VerifyCodeUtils.M_CODE).equals(mobileCode)){ res.getError().add(buildError(ErrorConstants.MCODE_ERROR,"手机验证码错误")); return res; } return res; } }