短信验证码修改密码

一,导入相关的jar包

	<!-- 短信验证接口jar包 -->
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.1.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>4.3.6</version>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.4</version>
		</dependency>

二,导入调用短信接口类SMScode
在短信平台获取短信的 /* 短信模板id / 和/ 短信应用接口的key */

package com.aerfa.ao.utils;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;

/**
 * 调用短信接口类
 * @author sunsetRain
 *
 */
public class SMScode {

    //把手机号码和随机验证码传递过来
    public static boolean sendCode(String phoneNumber, String code) throws Exception {

        String str_code = URLEncoder.encode("#code#=" + code, "UTF-8");
        //包装好URL对象,将接口地址包装在此对象中
      /*  URL url = new URL("http://v.juhe.cn/sms/send?mobile=" + phoneNumber +
                "&tpl_id=137817&tpl_value=" + str_code + "&key=15b94278c39bf2c1921d90628b132ee3");*/

      URL url = new URL("http://v.juhe.cn/sms/send?mobile=" + phoneNumber +
                "&tpl_id=179373&tpl_value=" + str_code + "&key=218d907f2b126501ed2644bca033aa5f");
                /* 短信模板id */                            /* 短信应用接口的key */
        //打开连接,得到连接对象
        URLConnection connection = url.openConnection();
        //向服务器发送连接请求
        connection.connect();
        //获得服务器响应的数据
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
        StringBuffer buffer = new StringBuffer();
        String lineDate = null;
        while((lineDate = bufferedReader.readLine()) != null) {
            buffer.append(lineDate);
        }
        bufferedReader.close();
        if(buffer.toString().indexOf("\"error_code\":0")>=0 ) {
            return true;
        }

        return false;
    }
}


三,通过手机获取验证码

    //手机验证码
    @ResponseBody
    @RequestMapping("telFindFinance")
    public String telFindFinance(String phoneNumber){
        Boolean flag = false;
        Random random = new Random();
        int temp = random.nextInt(10000);
        SecurityUtils.getSubject().getSession().setAttribute("temp",temp);
        String code = String.valueOf(temp);
        try {
            //是否发送成功
            flag =SMScode.sendCode(phoneNumber,code);
        } catch (Exception e) {
            e.printStackTrace();
        }
        if(flag){
            return "1";
        }else{
            return "2";
        }
    }

四,忘记密码–验证-- 修改密码controller

//修改账户部分信息-忘记密码
    @ResponseBody
    @RequestMapping("updateFinances")
    public int updateFinances(int financeBh,int telnum,String financePassword){
        if (telnum==(Integer) SecurityUtils.getSubject().getSession().getAttribute("temp")){
            Finance f=new Finance();
            f.setFinanceBh(financeBh);
            f.setFinancePassword(financePassword);
            return financeService.updateByPrimaryKeySelective(f);
        }else{
            return 404;
        }
    }

五,业务层service

  /**
     * 根据主键选择性修改账户信息
     * @param record 账户实体
     * @return 修改数量
     */
    int updateByPrimaryKeySelective(Finance record);

六,业务实现层serivceImpl

     /**
     * 根据主键选择性修改账户信息
     * @param record 账户实体
     * @return 修改数量
     */
    public int updateByPrimaryKeySelective(Finance record) {
        return financeMapper.updateByPrimaryKeySelective(record);
    }

mapper层的方法

    /**
     * 根据主键选择性修改账户信息
     * @param record 账户实体
     * @return 修改数量
     */
   int updateByPrimaryKeySelective(Finance record);

七,修改maaper.xml

<update id="updateByPrimaryKeySelective" parameterType="com.aerfa.ao.entity.Finance">
    update finance
    <set>
      <if test="financeName != null">
        finance_name = #{financeName,jdbcType=VARCHAR},
      </if>
      <if test="financePassword != null">
        finance_password = #{financePassword,jdbcType=VARCHAR},
      </if>
      <if test="financeState != null">
        finance_state = #{financeState,jdbcType=TINYINT},
      </if>
      <if test="staffBh != null">
        staff_bh = #{staffBh,jdbcType=INTEGER},
      </if>
    </set>
    where finance_bh = #{financeBh,jdbcType=INTEGER}
  </update>

八,实体类
导入Finance.java文件

package com.aerfa.ao.entity;

import java.io.Serializable;

public class Finance implements Serializable {
private Integer financeBh;

private String financeName;

private String financePassword;

private Byte financeState;

private Integer staffBh;

private String staffName;

public String getStaffName() {
    return staffName;
}

public void setStaffName(String staffName) {
    this.staffName = staffName;
}

public Integer getFinanceBh() {
    return financeBh;
}

public void setFinanceBh(Integer financeBh) {
    this.financeBh = financeBh;
}

public String getFinanceName() {
    return financeName;
}

public void setFinanceName(String financeName) {
    this.financeName = financeName == null ? null : financeName.trim();
}

public String getFinancePassword() {
    return financePassword;
}

public void setFinancePassword(String financePassword) {
    this.financePassword = financePassword == null ? null : financePassword.trim();
}

public Byte getFinanceState() {
    return financeState;
}

public void setFinanceState(Byte financeState) {
    this.financeState = financeState;
}

public Integer getStaffBh() {
    return staffBh;
}

public void setStaffBh(Integer staffBh) {
    this.staffBh = staffBh;
}

}

html5页面显示

pass_forget.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="plugins/layui/css/layui.css" th:href="@{/oa/plugins/layui/css/layui.css}" media="all" />
    <link rel="stylesheet" href="css/login.css" th:href="@{/oa/css/login.css}" />
    <link rel="stylesheet" th:href="@{/webjars/layui/2.4.5/css/layui.css}">
    <script th:src="@{/webjars/jquery/3.3.1/jquery.js}"></script>
    <script th:src="@{/webjars/layui/2.4.5/layui.js}"></script>
</head>
<body class="beg-login-bg">
<form class="layui-form" action="">
    <div class="layui-fluid">
        <div class="layui-row " style="float :left; position: relative;margin:10% 35%">
            <div class="layui-col-md15"  >
                <div class="layui-card" style="background-color: rgb(138, 140, 147)">
                    <div class="layui-card-header" style="font-size: 20px;font-family: '微软雅黑 Light';color: #e2e2e2;text-align:center;"><strong>忘记密码</strong></div>
                &lt;div class="layui-card-body" pad15=""&gt;
                    &lt;div class="layui-form" lay-filter=""&gt;

                        &lt;div class="layui-form-item"&gt;
                            &lt;label class="layui-form-label" style="color: #e2e2e2"&gt;手机号&lt;/label&gt;
                            &lt;div class="layui-input-inline"&gt;
                                &lt;input type="text" name="tel" id="tel" lay-verify="tel" lay-vertype="tips" class="layui-input layui-form-danger"&gt;
                                &lt;input type="hidden" id="txt1"&gt;
                                &lt;!-- 帐号编号 --&gt;
                                &lt;input type="hidden" name="financeBh" id="bh"&gt;
                            &lt;/div&gt;
                        &lt;/div&gt;
                        &lt;div class="layui-form-item"&gt;
                            &lt;label class="layui-form-label" style="color: #e2e2e2"&gt;验证码&lt;/label&gt;
                            &lt;div class="layui-input-inline"&gt;
                                &lt;input type="text" name="telnum" id="telnum" lay-verify="telnum" lay-vertype="tips" class="layui-input layui-form-danger"&gt;
                            &lt;/div&gt;
                            &lt;div class="layui-form-mid "&gt;
                                &lt;input value="获取验证码" class="layui-btn layui-btn-sm" id="getCode" lay-filter="set" style="width: 80px" /&gt;
                                &lt;!--&lt;button class="layui-btn layui-btn-sm" id="getCode" lay-filter="set"&gt;获取验证码&lt;/button&gt;--&gt;
                            &lt;/div&gt;
                        &lt;/div&gt;
                        &lt;div class="layui-form-item"&gt;
                            &lt;label class="layui-form-label" style="color: #e2e2e2"&gt;新密码&lt;/label&gt;
                            &lt;div class="layui-input-inline"&gt;
                                &lt;input type="password"  lay-verify="pass" lay-vertype="tips" autocomplete="off" id="LAY_password" class="layui-input"&gt;
                            &lt;/div&gt;
                            &lt;!--&lt;div class="layui-form-mid layui-word-aux" style="color: #e2e2e2;font-size: 15px"&gt;6到16个字符&lt;/div&gt;--&gt;
                        &lt;/div&gt;
                        &lt;div class="layui-form-item"&gt;
                            &lt;label class="layui-form-label" style="color: #e2e2e2"&gt;确认新密码&lt;/label&gt;
                            &lt;div class="layui-input-inline"&gt;
                                &lt;input type="password" name="financePassword" id="txt2" lay-verify="repass" lay-vertype="tips" autocomplete="off" class="layui-input"&gt;
                            &lt;/div&gt;
                        &lt;/div&gt;
                        &lt;div class="layui-form-item"&gt;
                            &lt;div class="layui-input-block"&gt;
                                &lt;button class="layui-btn" lay-submit lay-filter="setmypass"&gt;确认修改&lt;/button&gt;
                            &lt;/div&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;

                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

</form>
<script>
$(function () {
$("#tel").blur(function () {
var s= $("#tel").val();

       $.ajax({
           url:"/oa/selectAss",
           type:"POST",
           dataType:"json",
           success:function (data) {
               var pos = 1;
               for(var i = 0 ;i&lt;data.length;i++){
                   if(data[i].staffTel==s){
                       pos = 2;
                       $("#bh").val(data[i].financeBh);
                       break;
                   }
               }
               if(pos==1){
                   $("#txt1").val(1);
                   layer.msg("手机号不存在!", {icon: 5, time: 1000});
               }else if(pos==2){
                   $("#txt1").val(2);
               }
           }
       })
    })

})
layui.use(['form', 'layedit', 'laydate'], function(){
    var form = layui.form
        ,layer = layui.layer
        ,layedit = layui.layedit
        ,$=layui.jquery;

    //自定义验证规则
    form.verify({
        tel:function (value) {
            if($("#txt1").val()==1)
                return '该手机号不存在';

        }
        ,repass: function(value){
            if(value!=$("#LAY_password").val()){
                return '密码不一致';
            }
        }
        /*,telnum: function(value) {
            var telnum = $(this).val();
            if (telnum == "") {
                layer.msg("请输入验证码!", {icon: 2, time: 1000});
            }else{
                $.post("/oa/telFindFinance", { "phoneNumber": phoneNumber},function(data) {
                    if (data == 1) {
                        layer.msg("验证码发送成功!", {icon: 1, time: 1000});
                    } else {
                        layer.msg("验证码发送失败!", {icon: 2, time: 1000})
                    }
                });
            }
        }*/
    });

    $("#telnum").blur(function () {
        var telnum = $(this).val();
        if(telnum==""){
            layer.msg("请输入验证码!", {icon: 2, time: 1000});
        }
    });

    $("#getCode").click(function () {
        var phoneNumber = $("#tel").val();
        if(phoneNumber==""){
            layer.msg("请输入手机号!", {icon: 2, time: 1000});
        }else{
            $.post("/oa/telFindFinance", { "phoneNumber": phoneNumber},function(data){
                if(data==1){
                    layer.msg("验证码发送成功!", {icon: 1, time: 1000});
                }else{
                    layer.msg("验证码发送失败!", {icon: 2, time: 1000})
                }
            });
        }
    });

    //监听提交
    form.on('submit(setmypass)', function(data){
          //修改
          $.ajax({
              url:"/oa/updateFinances",
              type:"POST",
              data:{
                  "financeBh":data.field.financeBh,
                  "telnum":data.field.telnum,
                  "financePassword":data.field.financePassword
              },
              dataType:"json",
              success:function (pos) {
                  if(pos==404){
                      layer.msg('验证码不正确', {icon: 5});
                  }else {
                      if (pos &gt; 0) {
                          parent.layer.msg('修改成功', {icon: 6, time: 1000}, function () {
                              window.location.href = "loginOA";
                          });
                      } else {
                          layer.msg('修改失败', {icon: 5});
                      }
                  }
              }
          });
          return false;
    });

});

</script>

</body>
</html>

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值