From 54bc8ca741983d686ffd28c6d3618c25b136282b Mon Sep 17 00:00:00 2001 From: liyunfengfengfeng <2305743208@qq.com> Date: Sun, 25 Mar 2018 16:20:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=BE=E5=9B=9E=E5=AF=86=E7=A0=81=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yingjun/ssm/service/UserService.java | 8 +++ .../ssm/service/impl/UserServiceImpl.java | 35 ++++++++++++ .../yingjun/ssm/web/FindPwdController.java | 8 ++- src/main/webapp/WEB-INF/jsp/user/findPwd.jsp | 10 ++-- src/main/webapp/resource/script/findPwd.js | 57 +++++++++++++++---- 5 files changed, 99 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/yingjun/ssm/service/UserService.java b/src/main/java/com/yingjun/ssm/service/UserService.java index c9da45a..96ce22a 100644 --- a/src/main/java/com/yingjun/ssm/service/UserService.java +++ b/src/main/java/com/yingjun/ssm/service/UserService.java @@ -88,4 +88,12 @@ public interface UserService { * @return */ public User queryUserByEmail(String email); + + /** + * 根据邮箱修改用户密码 + * @param user 用户信息 + * @param code 验证码 + * @param session 存储系统发送的验证码 + */ + public void updatePasswordByEmail(User user, String code, HttpSession session); } \ No newline at end of file diff --git a/src/main/java/com/yingjun/ssm/service/impl/UserServiceImpl.java b/src/main/java/com/yingjun/ssm/service/impl/UserServiceImpl.java index 9260f78..67dbd8c 100644 --- a/src/main/java/com/yingjun/ssm/service/impl/UserServiceImpl.java +++ b/src/main/java/com/yingjun/ssm/service/impl/UserServiceImpl.java @@ -139,4 +139,39 @@ public class UserServiceImpl implements UserService { return userDao.queryUserByEmail(email); } + /** + * 根据邮箱修改当前登录用户的密码 + * @param user 用户信息 + * @param code 验证码 + * @param session session存储系统发送的验证码 + */ + @Transactional(propagation= Propagation.REQUIRED,isolation = Isolation.READ_COMMITTED,rollbackFor=Throwable.class) + @Override + public void updatePasswordByEmail(User user, String code, HttpSession session) { + try{ + User userFind = queryUserByEmail(user.getEmail()); + if(userFind == null){ + throw new BizException("用户不存在"); + } + String emailCode = (String)session.getAttribute("code"); + if(!emailCode.equals(code)){ + throw new BizException("验证码错误"); + } + //加密密码 + if(user!=null){ + user.setPassword(Md5Util.md5Password(user.getPassword())); + }else{ + return; + } + user.setId(userFind.getId()); + if(1 != userDao.updateTUserById(user)){ + throw new Exception("插入数据影响函数不唯一"); + } + }catch (BizException biz){ + throw new BizException(biz.getMessage(),biz); + }catch (Exception e){ + throw new RuntimeException("插入数据影响函数不唯一",e); + } + } + } \ No newline at end of file diff --git a/src/main/java/com/yingjun/ssm/web/FindPwdController.java b/src/main/java/com/yingjun/ssm/web/FindPwdController.java index 0f62be1..c25af52 100644 --- a/src/main/java/com/yingjun/ssm/web/FindPwdController.java +++ b/src/main/java/com/yingjun/ssm/web/FindPwdController.java @@ -47,14 +47,16 @@ public class FindPwdController { */ @ResponseBody @RequestMapping(value = "/findPwd",produces = {"application/json;charset=UTF-8"}) - public BaseResult userLogin() { + public BaseResult userLogin(User user,String code,HttpSession session) { try { - + LOG.info("用户信息 " + user); + LOG.info("用户输入的验证码 " + code); + userService.updatePasswordByEmail(user,code,session); } catch (BizException e) { return new BaseResult<>(false, e.getMessage()); } catch (Exception e) { return new BaseResult<>(false, ResultEnum.INVALID_USER.getMsg()); } - return new BaseResult<>(true, "登陆成功"); + return new BaseResult<>(true, "修改成功"); } } diff --git a/src/main/webapp/WEB-INF/jsp/user/findPwd.jsp b/src/main/webapp/WEB-INF/jsp/user/findPwd.jsp index e3419e8..ce1ba95 100644 --- a/src/main/webapp/WEB-INF/jsp/user/findPwd.jsp +++ b/src/main/webapp/WEB-INF/jsp/user/findPwd.jsp @@ -45,19 +45,20 @@
diff --git a/src/main/webapp/resource/script/findPwd.js b/src/main/webapp/resource/script/findPwd.js index 08a89dd..2a00183 100644 --- a/src/main/webapp/resource/script/findPwd.js +++ b/src/main/webapp/resource/script/findPwd.js @@ -42,25 +42,43 @@ function addReceive(){ function closeBounce(){ $(".bounces").addClass('hide'); } -function settime(val) { +// 获取验证码 +var countdown = 60; +function setTime(val) { var $val = $(val); - if (countdown == 0) { + if (countdown == 60){ + //异步发送验证码 + $.ajax({ + type: 'POST', + data: $('#findPwdForm').serialize(), + dataType: "json", + url: '/user/getEmailCode', + success: function (data) { + if (data.success) { + + } else { + + } + } + }); + } + if (countdown == 0) { $('#getCode').removeClass('countBtn'); $('#getCode').addClass('bounceBtn'); - val.removeAttribute("disabled"); + val.removeAttribute("disabled"); $val.children().html("获取验证码") - countdown = 60; - } else { + countdown = 60; + } else { $('#getCode').removeClass('bounceBtn'); $('#getCode').addClass('countBtn'); - val.setAttribute("disabled", true); + val.setAttribute("disabled", true); $val.children().html("重新发送" + countdown + "s") - countdown--; - setTimeout(function() { - settime(val) - },1000) - } -} + countdown--; + setTimeout(function() { + settime(val) + },1000) + } +} function sure(){ var $newPwd = $("#newPwd").val(); var $pwda = $("#pwd-a").val(); @@ -69,4 +87,19 @@ function sure(){ $("#pwd-a").addClass('noPass') $("#pwd-a").after('输入不一致') } + + $.ajax({ + type: 'POST', + data: $('#findPwdForm').serialize(), + dataType: "json", + url: '/find/findPwd', + success: function (data) { + if(data.success){ + alert("修改成功"); + window.location.href="/user/login"; + }else{ + alert(data.error); + } + } + }); } -- GitLab