Przeglądaj źródła

找回密码页面

xuexb 6 lat temu
rodzic
commit
d85a544339

+ 13 - 1
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/ctrl/PageController.java

@@ -82,7 +82,7 @@ public class PageController extends BaseController{
         if (result.getStatus() != ResponseStatus.SUCCESS){
             return "mobile_login";
         }
-        request.getSession().setAttribute("UserId", ((UserDTO)result.getData()).getId());
+        request.getSession().setAttribute("userId", ((UserDTO)result.getData()).getId());
         String redirectURL = (String) request.getSession().getAttribute("redirectURL");
         redirectURL = redirectURL==null?UrlConstants.DFAULT_GOTO:redirectURL;
         return "redirect:"+redirectURL;
@@ -104,6 +104,18 @@ public class PageController extends BaseController{
         return "success_page";
     }
 
+    @RequestMapping(value = UrlConstants.PAGE + "forgetPassword", method = RequestMethod.GET)
+    public String forgetPassword(){
+        return "forget_password";
+    }
+
+    @ResponseBody
+    @RequestMapping(value = UrlConstants.PAGE + "forgetPassword/check", method = RequestMethod.POST)
+    public UserVO foregetPasswordCheck(UserVO userVO){
+        return userVO;
+    }
+
+
     @RequestMapping("error-404")
     public String toPage404(Model model){
         model.addAttribute("message", "老铁,你的页面飞走了!\n404 Not Fount");

+ 5 - 0
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/ctrl/TestController.java

@@ -118,4 +118,9 @@ public class TestController extends BaseController{
             mailService.sendArrearsEmail();
     }
 
+    @RequestMapping(value = "/test/findpwd", method = RequestMethod.GET)
+    public ModelAndView findpwd(){
+        return new ModelAndView("forget_password");
+    }
+
 }

+ 2 - 2
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/ctrl/UserController.java

@@ -82,14 +82,14 @@ public class UserController extends BaseController {
         return null;
     }
 
-    @RequestMapping(value = UrlConstants.API + "verify/mail", method = RequestMethod.POST)
+    @RequestMapping(value = UrlConstants.API + "verify/mail", method = RequestMethod.PUT)
     public ResponseResult<String> sendVerifyEmail(UserDTO userDTO){
         ResponseResult<String> result = new ResponseResult<>();
         result = userLogic.sendVerifyEmail(userDTO);
         return result;
     }
 
-    @RequestMapping(value = UrlConstants.API + "verify/mobile", method = RequestMethod.POST)
+    @RequestMapping(value = UrlConstants.API + "verify/mobile", method = RequestMethod.PUT)
     public ResponseResult<String> sendVerifyMobileMessage(UserDTO userDTO){
         return userLogic.sendMobileVerfication(userDTO);
     }

+ 198 - 0
mooctest-user-server/src/main/resources/templates/forget_password.html

@@ -0,0 +1,198 @@
+<!DOCTYPE html>
+<html lang="zh-CN" xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:th="http://www.thymeleaf.org">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>慕测平台</title>
+    <meta name="keywords" content="" />
+    <meta name="description" content="" />
+
+    <link rel="stylesheet" type="text/css" th:href="@{/vendor/bootstrap/css/bootstrap.min.css}">
+    <link rel="stylesheet" type="text/css" th:href="@{/fonts/font-awesome-4.7.0/css/font-awesome.min.css}">
+    <link rel="stylesheet" type="text/css" th:href="@{/fonts/iconic/css/material-design-iconic-font.min.css}">
+    <link rel="stylesheet" type="text/css" th:href="@{/css/util.css}">
+    <link rel="stylesheet" type="text/css" th:href="@{/css/main.css}">
+</head>
+
+<body>
+
+<div class="limiter">
+    <div class="container-login100" th:style="'background-image:url(/images/bg.jpg);'">
+        <div class="wrap-login100 p-l-40 p-r-40 p-t-30 p-b-25">
+            <!--邮箱找回-->
+            <form id="byEmail" th:action="@{/page/forgetPassword/check}" method="post" class="login100-form">
+                <div id="login-logo" class="p-b-15" style="text-align: center;">
+                    <img style="width: 80px;" th:src="@{/images/mooctest.png}" >
+                </div>
+
+                <span class="login100-form-title p-b-30">找回密码</span>
+
+                <div class="wrap-input100 validate-input m-b-23" data-validate="请输入邮箱">
+                    <span class="label-input100">邮箱</span>
+                    <input id="email" class="input100" type="email" name="mobile" placeholder="请输入邮箱" required="邮箱不可为空">
+                    <span class="focus-input100" data-symbol="&#xf206;"></span>
+                </div>
+
+                <div class="wrap-input100 validate-input" data-validate="请输入验证码">
+                    <span class="label-input100">验证码</span>
+                    <input class="input100" type="text" name="verifyCode" placeholder="请输入验证码" required="验证码不可为空">
+                    <span class="focus-input100" data-symbol="&#xf190;"></span>
+                </div>
+                <div p-t-8 p-b-20>
+                    <div class="text-right">
+                        <a href="#" onclick="findByMobile()">手机找回</a>
+                    </div>
+                </div>
+
+                <div class="text-center p-t-6 p-b-8">
+                    <span id="e_info" style="color: red" th:text="${result==null}?'&nbsp;':${result.msg}"></span>
+                </div>
+                <div class="container-login100-form-btn" style="width: 50%; float: left;">
+                    <div class="wrap-login100-form-btn">
+                        <div class="login100-form-bgbtn"></div>
+                        <button type="button"  id="sendMobileVerify" class="login100-form-btn" onclick="sendEmailVerifyCode(this)" >获取验证码</button>
+                    </div>
+                </div>
+                <div class="container-login100-form-btn">
+                    <div class="wrap-login100-form-btn">
+                        <div class="login100-form-bgbtn"></div>
+                        <button type="submit" class="login100-form-btn">验 证</button>
+                    </div>
+                </div>
+                <div class="flex-col-c p-t-10">
+                    <a href="/page/login" class="txt2">返回登录</a>
+                </div>
+            </form>
+            <!--手机找回-->
+            <form id="byMobile" style="display: none;" th:action="@{/page/forgetPassword/check}" method="post" class="login100-form">
+                <div style="text-align: center;" class="p-b-15">
+                    <img style="width: 80px;" th:src="@{/images/mooctest.png}" >
+                </div>
+
+                <span class="login100-form-title p-b-30">找回密码</span>
+
+                <div class="wrap-input100 validate-input m-b-23" data-validate="请输入手机号">
+                    <span class="label-input100">手机号</span>
+                    <input id="mobile" class="input100" type="text" name="mobile" placeholder="请输入手机号" required="手机号不可为空">
+                    <span class="focus-input100" data-symbol="&#xf2c8;"></span>
+                </div>
+
+                <div class="wrap-input100 validate-input" data-validate="请输入验证码">
+                    <span class="label-input100">验证码</span>
+                    <input class="input100" type="text" name="verifyCode" placeholder="请输入验证码" required="验证码不可为空">
+                    <span class="focus-input100" data-symbol="&#xf190;"></span>
+                </div>
+                <div p-t-8 p-b-20>
+                    <div class="text-right">
+                        <a href="#" onclick="findByEmail()">邮箱找回</a>
+                    </div>
+                </div>
+
+                <div class="text-center p-t-6 p-b-8">
+                    <span id="m_info" style="color: red" th:text="${result==null}?'&nbsp;':${result.msg}"></span>
+                </div>
+                <div class="container-login100-form-btn" style="width: 50%; float: left;">
+                    <div class="wrap-login100-form-btn">
+                        <div class="login100-form-bgbtn"></div>
+                        <button type="button"  id="sendVerify" class="login100-form-btn" onclick="sendMobileVerifyCode(this)" >获取验证码</button>
+                    </div>
+                </div>
+                <div class="container-login100-form-btn">
+                    <div class="wrap-login100-form-btn">
+                        <div class="login100-form-bgbtn"></div>
+                        <button type="submit" form="byMobile" class="login100-form-btn">验 证</button>
+                    </div>
+                </div>
+                <div class="flex-col-c p-t-10">
+                   <a href="/page/login" class="txt2">返回登录</a>
+                </div>
+            </form>
+        </div>
+    </div>
+</div>
+
+<script th:src="@{/vendor/jquery/jquery-3.2.1.min.js}"></script>
+<script th:src="@{/js/main.js}"></script>
+<script type="text/javascript">
+
+    function findByEmail() {
+        document.getElementById("byEmail").style.display="block";
+        document.getElementById("byMobile").style.display="none";
+        document.getElementById("m_info").innerHTML="&nbsp;";
+        document.getElementById("e_info").innerHTML="&nbsp;";
+        return false;
+    }
+
+    function findByMobile() {
+        document.getElementById("byEmail").style.display="none";
+        document.getElementById("byMobile").style.display="block";
+        document.getElementById("m_info").innerHTML="&nbsp;";
+        document.getElementById("e_info").innerHTML="&nbsp;";
+        return false;
+    }
+
+    function sendMobileVerifyCode(obj) {
+        var mobile = $("#mobile").val();
+        if (mobile == null || mobile.trim() == "") {
+            document.getElementById("m_info").innerText = "手机号不能为空";
+            return;
+        }
+        if (!mobile.match(/^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})$/)){
+            document.getElementById("info").innerText = "手机号格式不正确,请重新输入";
+            return
+        }
+
+        var data = {"mobile":mobile};
+        $.ajax({
+            url:"/api/verify/mobile",
+            type:"PUT",
+            data:data,
+            timeout: 3000,
+            success:function (result) {
+                console.log(result);
+                if (result.status != 2000) {
+                    alert("发送失败, 原因:"+result.msg);
+                    document.getElementById("m_info").innerText = result.msg;
+                }else{
+                    alert("发送成功,请尽快查收!");
+                    document.getElementById("m_info").innerHTML = "&nbsp;";
+                    settime(obj);
+                }
+            }
+        })
+    }
+    function sendEmailVerifyCode(obj) {
+        var email = $("#email").val();
+        if (email == null || email.trim() == "") {
+            document.getElementById("e_info").innerText = "邮箱不能为空";
+            return;
+        }
+        if (!email.match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{1,5}|[0-9]{1,3})(\]?)$/)){
+            document.getElementById("e_info").innerText = "邮箱格式不正确,请重新输入";
+            return
+        }
+
+        var data = {"email":email};
+        $.ajax({
+            url:"/api/verify/mail",
+            type:"PUT",
+            data:data,
+            timeout: 3000,
+            success:function (result) {
+                console.log(result);
+                if (result.status != 2000) {
+                    alert("发送失败, 原因:"+result.msg);
+                }else{
+                    alert("发送成功,请前往邮箱查收!");
+                    document.getElementById("e_info").innerHTML = "&nbsp;"
+                    settime(obj);
+                }
+            }
+        })
+    }
+</script>
+</body>
+</html>

+ 2 - 1
mooctest-user-server/src/main/resources/templates/login.html

@@ -46,7 +46,7 @@
                         <a href="/page/mobile/login">手机登录</a>
                     </div>
                     <div class="text-right" style="float: right;">
-                        <a href="javascript:">忘记密码?</a>
+                        <a href="/page/forgetPassword">忘记密码?</a>
                     </div>
                 </div>
                 <div class="text-center p-t-6 p-b-20">
@@ -89,4 +89,5 @@
 <script th:src="@{/js/main.js}"></script>
 </body>
 
+
 </html>

+ 5 - 5
mooctest-user-server/src/main/resources/templates/mobile_login.html

@@ -29,10 +29,10 @@
 
                 <span class="login100-form-title p-b-30">MOOCTEST</span>
 
-                <div class="wrap-input100 validate-input m-b-23" data-validate="请输入 shou'ji'hao">
+                <div class="wrap-input100 validate-input m-b-23" data-validate="请输入手机号">
                     <span class="label-input100">手机号</span>
-                    <input id="mobile" class="input100" type="text" name="mobile" placeholder="请输入手机号" required="邮箱账号不可为空">
-                    <span class="focus-input100" data-symbol="&#xf206;"></span>
+                    <input id="mobile" class="input100" type="text" name="mobile" placeholder="请输入手机号" required="手机号不可为空">
+                    <span class="focus-input100" data-symbol="&#xf2c8;"></span>
                 </div>
 
                 <div class="wrap-input100 validate-input" data-validate="请输入验证码">
@@ -49,7 +49,7 @@
                         <!--<span>&nbsp;&nbsp;</span>-->
                     <!--</div>-->
                 </div>
-                <div class="text-center p-t-6 p-b-8">
+                <div class="text-center p-t-6 p-b-6">
                     <span id="info" style="color: red" th:text="${result==null}?'&nbsp;':${result.msg}"></span>
                 </div>
                 <div class="container-login100-form-btn" style="width: 50%; float: left;">
@@ -108,7 +108,7 @@
         var data = {"mobile":mobile};
         $.ajax({
             url:"/api/verify/mobile",
-            type:"POST",
+            type:"PUT",
             data:data,
             timeout: 3000,
             success:function (result) {

+ 3 - 3
mooctest-user-server/src/main/resources/templates/register.html

@@ -32,12 +32,12 @@
                 <div class="wrap-input100 validate-input" data-validate="请输入邮箱">
                     <!--<span class="label-input100">邮箱</span>-->
                     <input class="input100" type="email" id="email" name="email" placeholder="请输入邮箱" required="邮箱不可为空">
-                    <span class="focus-input100" data-symbol="&#xf206;"></span>
+                    <span class="focus-input100 p-b-5" data-symbol="&#xf206;"></span>
                 </div>
 
                 <div class="wrap-input100 validate-input " data-validate="请输入姓名">
                     <!--<span class="label-input100">姓名</span>-->
-                    <input class="input100" type="text" name="name" placeholder="请输入姓名" required="邮箱不可为空">
+                    <input class="input100" type="text" name="name" placeholder="请输入姓名" required="姓名不可为空">
                     <span class="focus-input100" data-symbol="&#xf197;"></span>
                 </div>
 
@@ -99,7 +99,7 @@ function sendEmail(obj) {
     var data = {"email":email};
     $.ajax({
         url:"/api/verify/mail",
-        type:"POST",
+        type:"PUT",
         data:data,
         timeout: 3000,
         success:function (result) {