MVC短信存储数据相关步骤

1.项目中创建一个Remote类库,添加一个第三方的类:TenXunYunSMS.cs

添加后在引用的NuGet包管理器中的浏览搜索qcloudsms_csharp下载

 public class TenXunYunSMS
    {
        //appId
        //public int appId =
        //appKey
        //public string appKey =""
        //短信模板ID
        private int tmplateId = 379257;
        //签名内容
        private string smsSign = "7hhhcn";
        /// <summary>
        /// 验证码
        /// </summary>
        public int Code { get; set; }
        /// <summary>
        /// 发送验证码
        /// </summary>
        /// <param name="phone"></param>
        /// <returns></returns>
        public void SetSMS(string phone)
        {
            Random random = new Random();
            int code = random.Next(100000, 999999);
            try
            {
                SmsSingleSender ssender = new SmsSingleSender(appId, appKey);
                var result = ssender.sendWithParam("86", phone,
                    tmplateId, new[] { code.ToString() }, smsSign, "", "");  // 签名参数未提供或者为空时,会使用默认签名发送短信
            }
            catch (JSONException ex)
            {
                throw;
            }
            catch (HTTPException ex)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw;
            }
            Code = code;
        }
    }

2.在数据库中创建一个表来存储用户接收到的验证码

CREATE TABLE [dbo].[Users](
	[userId] [int] IDENTITY(1,1) NOT NULL,
	[userName] [varchar](30) NOT NULL,
	[userPwd] [varchar](20) NOT NULL,
	[userTel] [bigint] NOT NULL,
	[userEmail] [varchar](30) NOT NULL,
	[userDate] [datetime] NOT NULL,
	[userTime] [datetime] NOT NULL,

3.在MVC中的Web.config里配置第三方提供的appId值和appKey值

<add key="appId" value"************"/>
  <add key="appKey" value="*********************"/>

4.在项目中添加一个实体Code类

 public class Code
    {

        public int Id { get; set; }
        public String codes { get; set; }
        public DateTime cTime { get; set; }
        public DateTime out_time { get; set; }

        public Code(){ }

        public Code(int id,String codes,DateTime cTime, DateTime out_time)
        {
            this.Id = id;
            this.codes = codes;
            this.cTime = cTime;
            this.out_time = out_time;
        }

    }

5.UI层 在网页中的"获取验证码"按钮添加一个click事件

$("#btn1").click(function () {
            if (D) {
                $.ajax({
                    type: "post",
                    url: "/Yzm3/Yzm32?tel=" + $("#tel").val(),
                    success: function (result) {
                        if (result.Success) {
                         alert("验证码发送成功!");
                            yzm();
                        } else {
                            alert("验证码发送失败!");
                        }
                    },
                })

6.

在Login控制器中添加两个方法

Sms_Gain(string tel)方法:向数据库添加一条消息

Sms_Gains(string tel)方法:从数据库查询用户是否已有验证码


//是否获取到验证码
 
public JsonResult Sms_Gain(string tel)
    {
 
      //调用Operate 对象(Operate类只有一个属性bool类型的Success)
  
     Operate op = new Operate();
   
    //调用业务层的SmsGain类
 
      SmsGain s = new SmsGain();
     
  //调用业务层的SmsGain类的Sms_Gain(string tel)方法
 
      op.Success =s.Sms_Gain(tel);
  
     //返回结果
     
  return Json(op);
  
  }
 
 
 
 

//是否已有验证码
 
public JsonResult Sms_Gains(string tel)
        {
      
      //调用Operate 对象(Operate类只有一个属性bool类型的Success)
  
          Operate op = new Operate();
    
        //调用业务层的SmsGain类
   
         SmsGain s = new SmsGain();
     
       //调用业务层的SmsGain类的Sms_Gain(string tel)方法
 
           op.Success = s.Sms_Gains(tel)>0;
    
        //返回结果
    
        return Json(op);
  
      }

7.在业务层的中添加Sms_Gain(string tel)方法Sms_Gains(string tel)方法

 

 public class Yzm2
    {
        public bool Yzmtel2(String tel)
        {
            TenXunYunSMS aa = new TenXunYunSMS();
            Yzm1 lt = new Yzm1();
            try
            {
                aa.SetSMS(tel);
            }
            catch (Exception e)
            {
                return false;
            }
            lt.Yzmtel(Convert.ToString(aa.Code));
            return true;
        }
        public bool SelectYam2(String codes)
        {
            Yzm1 lt = new Yzm1();
            if (lt.Selectyzm(codes)>0)
            {
                return true;
            }
            return false;
        }
    }

8.数据访问层的SSmsInfo的insetsmsInfo(SmsInfo s)方法和 selectsmss(string tel)方法

public class Yzm1
    {
        public void Yzmtel(String code)
        {
            Code A = new Code();
            string sql = @"insert into dbo.Code(codes, cTime, out_time)values(@codes,@cTime,@out_time)";
            SqlHelper bd = new SqlHelper();
            SqlParameter[] parameters = {
                new SqlParameter()
                {
                    DbType = DbType.String,
                    ParameterName = "@codes",
                    Value = code
                },
                new SqlParameter()
                {
                    DbType = DbType.DateTime,
                    ParameterName = "@cTime",
                    Value = DateTime.Now
                },
                new SqlParameter()
                {
                    DbType = DbType.DateTime,
                    ParameterName = "@out_time",
                    Value = DateTime.Now.AddMinutes(2)
                }
            };

            bd.ExcuteNoQuery(sql, parameters);
        }
        public int Selectyzm(String codes)
        {
            Code A = new Code();
            SqlHelper bd = new SqlHelper();
            String sql = "select COUNT(1) from dbo.Code where codes =@codes and out_time > @cTime";
            SqlParameter[] parameters = {
                new SqlParameter()
                {
                    DbType = DbType.String,
                    ParameterName = "@codes",
                    Value = codes
                },
                new SqlParameter()
                {
                    DbType = DbType.DateTime,
                    ParameterName = "@cTime",
                    Value = DateTime.Now
                }
            };
            int read = bd.ExecuteReader(sql,parameters);
            return read;
        }
    }

9.工具类sqlHelper

public class SqlHelper
    {
        int i = 0;
        string config = ConfigurationManager.AppSettings["sql"];
        SqlConnection conn = null;
        public int ExcuteNoQuery(string sql, SqlParameter[] parameters) {
            try
            {
                //1:创建连接 
                conn = new SqlConnection(config);
                //2:打开连接 
                conn.Open();
                //3;创建SqlCommand对象
                SqlCommand comm = new SqlCommand(sql, conn);
                //4:预处理 
                if (parameters != null)
                {
                    comm.Parameters.AddRange(parameters);
                }
                //5:执行sql语句 (ExcuteNonQuery)
                i= comm.ExecuteNonQuery();
                //6:处理返回结果、
                return i;
            }
            catch (Exception ex)
            {
                return i;
            }
            finally {
                conn.Close();
            }
        }

        public int ExecuteReader(string sql, SqlParameter[] parameters)
        {
            try
            {
                //1:创建连接 
                conn = new SqlConnection(config);
                //2:打开连接 
                conn.Open();
                //3;创建SqlCommand对象
                SqlCommand comm = new SqlCommand(sql, conn);
                //4:预处理 
                if (parameters != null)
                {
                    comm.Parameters.AddRange(parameters);
                }
                //5:执行sql语句 (ExcuteNonQuery)
                i =Convert.ToInt32(comm.ExecuteScalar());
                //6:处理返回结果、
                return i;
            }
            catch (Exception ex)
            {
                return i;
            }
            finally
            {
                conn.Close();
            }
        }

 

基于SSM框架的智能家政保洁预约系统,是一个旨在提高家政保洁服务预约效率和管理水平的平台。该系统通过集成现代信息技术,为家政公司、家政服务人员和消费者提供了一个便捷的在线预约和管理系统。 系统的主要功能包括: 1. **用户管理**:允许消费者注册、登录,并管理他们的个人资料和预约历史。 2. **家政人员管理**:家政服务人员可以注册并更新自己的个人信息、服务类别和服务时间。 3. **服务预约**:消费者可以浏览不同的家政服务选项,选择合适的服务人员,并在线预约服务。 4. **订单管理**:系统支持订单的创建、跟踪和管理,包括订单的确认、完成和评价。 5. **评价系统**:消费者可以在家政服务完成后对服务进行评价,帮助提高服务质量和透明度。 6. **后台管理**:管理员可以管理用户、家政人员信息、服务类别、预约订单以及处理用户反馈。 系统采用Java语言开发,使用MySQL数据库进行数据存储,通过B/S架构实现用户与服务的在线交互。系统设计考虑了不同用户角色的需求,包括管理员、家政服务人员和普通用户,每个角色都有相应的权限和功能。此外,系统还采用了软件组件化、精化体系结构、分离逻辑和数据等方法,以便于未来的系统升级和维护。 智能家政保洁预约系统通过提供一个集中的平台,不仅方便了消费者的预约和管理,也为家政服务人员提供了一个展示和推广自己服务的机会。同时,系统的后台管理功能为家政公司提供了强大的数据支持和决策辅助,有助于提高服务质量和管理效率。该系统的设计与实现,标志着家政保洁服务向现代化和网络化的转型,为管理决策和控制提供保障,是行业发展中的重要里程碑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值