package cn.ksource.web.controller.uc;
|
|
import cn.ksource.core.util.*;
|
import cn.ksource.core.web.WebLoginUser;
|
import cn.ksource.core.web.WebUtil;
|
import cn.ksource.web.Constants;
|
import cn.ksource.web.entity.WebLoginEntity;
|
import cn.ksource.web.facade.uc.login.UserFacade;
|
import org.apache.commons.lang.StringUtils;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.servlet.ModelAndView;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
@Controller
|
@RequestMapping("/user")
|
public class UserController {
|
|
@Resource(name="userFacade")
|
private UserFacade userFacade;
|
|
|
/**
|
* 跳转到用户中心登录页面
|
* @param req
|
* @return
|
*/
|
@RequestMapping(value="login.html", method=RequestMethod.GET)
|
public ModelAndView toLogin(HttpServletRequest req) {
|
WebLoginUser webLoginUser = WebUtil.getWebLoginUser(req);
|
if (webLoginUser == null) {
|
ModelAndView modelAndView = new ModelAndView("/uc/login/login");
|
return modelAndView;
|
}
|
return new ModelAndView("redirect:/uc/home.html");
|
}
|
|
|
|
/**
|
* 用户登录
|
* @param request
|
* @param response
|
*/
|
@RequestMapping(value="login.html", method=RequestMethod.POST)
|
public void login(HttpServletRequest request,HttpServletResponse response) {
|
String username = request.getParameter("username");
|
String password = request.getParameter("password");
|
String checkCode = request.getParameter("checkCode");
|
WebLoginEntity webLoginEntity = new WebLoginEntity();
|
//判断验证码
|
if (StringUtil.notEmpty(checkCode) && StringUtils.equalsIgnoreCase(checkCode, (String) request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY))) {
|
|
webLoginEntity = userFacade.doUserLogin(request,username, password);
|
} else {
|
webLoginEntity.setResult(WebLoginEntity.Login_Result_CheckCodeError);
|
}
|
int result = webLoginEntity.getResult();
|
Map<String,String> map = new HashMap<String, String>();
|
map.put("result", String.valueOf(result));
|
map.put("msg", webLoginEntity.Login_Result_Info.get(result));
|
String json = JsonUtil.map2Json(map);
|
WebUtil.write(response, json);
|
}
|
|
/**
|
* 跳转到找回密码页面
|
* @param req
|
* @return
|
*/
|
@RequestMapping(value="findPwd.html", method=RequestMethod.GET)
|
public ModelAndView forgotPwd(HttpServletRequest req) {
|
return new ModelAndView("/uc/login/findPwd");
|
}
|
|
/**
|
* 通过用户名查询用户名是否存在
|
*/
|
|
@RequestMapping("queryUser.html")
|
public void queryUser(HttpServletRequest request,HttpServletResponse response) {
|
String username = request.getParameter("param");
|
Map map = userFacade.queryUserByName(username);
|
Map resultMap = new HashMap();
|
if(null!=map&&map.size()>0) {
|
resultMap.put("info", "用户名输入正确");
|
resultMap.put("status", "y");
|
} else {
|
resultMap.put("info", "用户名不存在");
|
resultMap.put("status", "n");
|
}
|
WebUtil.write(response, JsonUtil.map2Json(resultMap));
|
}
|
|
/**
|
* 判断验证码是否正确
|
*/
|
@RequestMapping("checkCode.html")
|
public void checkCode(HttpServletResponse response,HttpServletRequest request) {
|
//获取验证码
|
String checkCode = request.getParameter("param");
|
Map map = new HashMap();
|
if (StringUtil.notEmpty(checkCode) && (StringUtils.equalsIgnoreCase(checkCode, (String) request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY)))) {
|
map.put("info", "验证码输入正确");
|
map.put("status", "y");
|
} else {
|
map.put("info", "验证码输入错误");
|
map.put("status", "n");
|
}
|
WebUtil.write(response, JsonUtil.map2Json(map));
|
}
|
|
/**
|
* 进入到身份验证页面
|
*/
|
@RequestMapping("validPage.html")
|
public ModelAndView validPage(HttpServletRequest request) {
|
ModelAndView modelAndView = new ModelAndView("/uc/login/vaildPage");
|
String username = request.getParameter("username");
|
String checkCode = request.getParameter("checkCode");
|
Map map = userFacade.queryUserByName(username);
|
if(null!=map&&map.size()>0&&StringUtil.notEmpty(checkCode) && StringUtils.equalsIgnoreCase(checkCode, (String) request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY))) {
|
modelAndView.addObject("username", username);
|
String mobile = null!=map.get("MOBILE")?String.valueOf(map.get("MOBILE")):"";
|
if(StringUtil.notEmpty(mobile)) {
|
modelAndView.addObject("mobile",mobile);
|
|
//将用户名存放在session一份
|
request.getSession().setAttribute("username", username);
|
|
String random = StringUtil.randomNumber(6);
|
request.getSession().setAttribute("random", random);
|
String message = "【"+ Constants.company_name+"】亲爱的用户!您于"+DateUtil.getToday("yy年MM月dd日")+"申请了"+Constants.company_name+"用户中心手机号验证,验证码是"+random+"。";
|
try {
|
SMSUtil.sendSMS(message,mobile );
|
} catch (Exception e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
}
|
|
//生成六位验证码,发到用户手机
|
return modelAndView;
|
}
|
return new ModelAndView("/error");
|
}
|
|
/**
|
* 跳转到重置密码页面
|
*/
|
@RequestMapping("confirmCheck.html")
|
public ModelAndView confirmCheck(HttpServletResponse response,HttpServletRequest request) {
|
ModelAndView modelAndView = new ModelAndView("/uc/login/resetPwd");
|
String checkCode = request.getParameter("checkCode");
|
if(checkCode.equals(request.getSession().getAttribute("random"))) {
|
request.getSession().removeAttribute("random");
|
//获取用户的邮箱信息
|
Map map = userFacade.queryUserByName((String)request.getSession().getAttribute("username"));
|
String mobile = ConvertUtil.obj2StrBlank(map.get("MOBILE"));
|
|
//将邮箱地址放入到session中
|
|
request.getSession().setAttribute("mobile", mobile);
|
//生成隐式验证码
|
String random = StringUtil.randomNumber(6);
|
request.getSession().setAttribute("random", random);
|
modelAndView.addObject("random", random);
|
|
return modelAndView;
|
}
|
return new ModelAndView("/error");
|
}
|
|
/**
|
* 判断验证码是否正确
|
*/
|
@RequestMapping("checksendCode.html")
|
public void checksendCode(HttpServletResponse response,HttpServletRequest request) {
|
//获取验证码
|
String checkCode = request.getParameter("param");
|
Map map = new HashMap();
|
if (StringUtil.notEmpty(checkCode) && (StringUtils.equalsIgnoreCase(checkCode, (String)request.getSession().getAttribute("random")))) {
|
map.put("info", "验证码输入正确");
|
map.put("status", "y");
|
} else {
|
map.put("info", "验证码输入错误");
|
map.put("status", "n");
|
}
|
WebUtil.write(response, JsonUtil.map2Json(map));
|
}
|
|
/**
|
* 重置密码
|
*/
|
@RequestMapping("resetPwd.html")
|
public void resetPwd(HttpServletResponse response,HttpServletRequest request) {
|
String random = request.getParameter("random");
|
String password = request.getParameter("password");
|
String sessionRandom = (String)request.getSession().getAttribute("random");
|
request.getSession().removeAttribute("random");
|
Map resultMap = new HashMap();
|
if(random.equals(sessionRandom)) {
|
//通过用户名和邮箱重新查询用户信息,以免在此过程中恶意修改用户名或者邮箱
|
String username = (String)request.getSession().getAttribute("username");
|
String mobile = (String)request.getSession().getAttribute("mobile");
|
boolean b = userFacade.doResetPwd(username,mobile,password);
|
if(b) {
|
resultMap.put("status", "0");
|
resultMap.put("msg", "success");
|
} else {
|
resultMap.put("status", "1");
|
resultMap.put("msg", "找回密码失败<br>请联系我们的客服人员");
|
}
|
WebUtil.write(response, JsonUtil.map2Json(resultMap));
|
}
|
}
|
}
|