@Controller
@RequestMapping("/user")
public class UserController {
private static final String SEND_ACTIVATE_TIME = "SEND_ACTIVATE_TIME";
@RequestMapping("index.html")
protected String index() {
return "user/list";
}
@RequestMapping("sendActivate.html")
@ResponseBody
protected String sendActivate(String email, HttpServletRequest request) throws HttpException, IOException {
Map<String, Object> map = new HashMap<String, Object>();
map.put("email", email);
List<HashMap<String,Object>> list = MybatisUtils.selectList("user.mysql.selectUser", map);
String code = UUID.randomUUID().toString();
Calendar calendar = Calendar.getInstance();
HttpSession session = request.getSession();
session.setAttribute(SEND_ACTIVATE_TIME, calendar.getTime().getTime());
calendar.add(Calendar.DAY_OF_MONTH, 2);
Date date = calendar.getTime();
map.put("activateCode", code);
map.put("activateTime", date);
if(list.size() > 0){
// 用0表示已激活
String status = (String) list.get(0).get("status");
if(status != null && status.equals("0")){
return "已激活";
}else{
// 单纯激活就更新
MybatisUtils.update("user.mysql.updateActivateCode", map);
}
}else{
// 注册insert
map.put("userId", code);
map.put("registTime", date);
MybatisUtils.insert("user.mysql.insertUser", map);
}
StringBuffer sb=new StringBuffer("点击下面链接激活账号,48小时生效,否则重新注册账号,链接只能使用一次,请尽快激活!</br>");
sb.append("<a href=\"http://localhost:8080/me/user/activate.html?email=");
sb.append(email);
sb.append("&activateCode=");
sb.append(code);
sb.append("\">点击激活</a>");
System.out.println(sb);
MailUtils.send(email, "激活账号", sb.toString());
return "success";
}
@RequestMapping("activate.html")
@ResponseBody
protected String activate(String email, String activateCode, HttpServletRequest request){
String home = "<a href=\"http://localhost:8080/me\">返回首页</a>";
Map<String, Object> map = new HashMap<String, Object>();
map.put("email", email);
List<HashMap<String,Object>> list = MybatisUtils.selectList("user.mysql.selectUser", map);
if(list.size() > 0){
// 用0表示已激活
String status = (String) list.get(0).get("status");
if(status != null && status.equals("0")){
return "已激活" + home;
}else{
Date date = (Date) list.get(0).get("activateTime");
if(date.after(new Date())){
String code = (String) list.get(0).get("activateCode");
if(code.equalsIgnoreCase(activateCode)){
map.put("status", "0");
MybatisUtils.update("user.mysql.updateActivateStatus", map);
return "激活成功" + home;
}else{
return "激活码不正确" + home;
}
}else{
return "激活码已过,请重新激活" + home;
}
}
}else{
return "您还没有注册,请先注册" + home;
}
}
}
转
java邮箱激活
最新推荐文章于 2022-12-19 21:24:54 发布