一级标题 基于JAVA的专科医院管理系统开发概要以及过程记录(三)
注册与登录的实现
注册
首先我们需要明确思路
在系统中,用户所注册的诊疗卡号一般都是有系统规定的,用户不可进行修改与编辑。所以在页面,我们将查询数据库进行数据比对,查询诊疗卡编号的最后一项,在此基础上进行+1即是新用户注册的新的诊疗卡编号。
所以,我们先写sql语句
SELECT PATIENT_ID FROM PATIENT ORDER BY PATIENT_ID DESC LIMIT 0,1
//查询病人表(patient)中,id倒序最后一项
在Mapper接口中有
int SelectIdNumberCountAddOne();
//通过注解@select查询数据库
然后我们在工具类中,实现加一的方法
public String GetIdNumber(String userId) {
int id = Integer.parseInt(userId)+1;
return id + "";
}
然后我们在页面上进行AJAX访问
function onloadAccoutNumber() {
$.post('url', {}, function(result) {
$('#usernumber').val(result);
});
}
url:你的controller访问路径
然后我们就能得到一串数字即是你数据库根据id排序的最新数据,也是新用户的唯一的编号。
到这儿了就可以进行下一步:实现注册功能;
在页面中
$("#userName").val();//获取用户输入的名字
//同理我们可以用这方法获取到电话和密码
//电话验证
function checkPhone(userInput) {
var check =
/^(((13[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(17[3-8]{1})|(18[0-9]{1})|(19[0-9]{1})|(14[5-7]{1}))+\d{8})$/;
if (userInput === '' && userInput === undefined) {
return '请输入';
} else if (!check.test(userInput)) {
return false;
} else {
return true;
}
}
//如果是邮箱,那么邮箱验证方式在下面
//验证邮箱格式
function checkEmail(userInput) {
var check = new RegExp("^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$");
if (userInput === "") {return false;} else if (!check.test(userInput)) {return false;} else {
return ture;}}
验证完成后,通过给注册按钮添加点击事件发送AJAX请求完成注册。
记得要验证复选框是否选中,如果不选中无法进行注册
/*注册中的复选框验证 */
function checkCheckBox(){
var checkbox = $("#customCheck1").is(":checked");
if(checkbox){return true}else{return false}
}
/*注册账户*/
function regAccount(){
var username = $('#userName').val();
var userphone = $("#userphone").val();
var userpwd = $('#userpwd').val();
$.post('url',{'patient_name':username,'patient_phone':userphone,'patient_pwd':userpwd},function(result){});}
/*点击注册按钮实现注册*/
$('.regAccount').click(function(){
var check = checkCheckBox();if(check){regAccount();
}else{alert('请同意本软件隐私条例!')}});
在后台controller中,我们使用@restController和@ResponseBody注解
如果遇见跨域问题,添加@CrossOrigin注解
我这里附上我写的完整代码
//Mapper接口
@Insert("INSERT INTO PATIENT VALUES(0,#{patient_name}," + "#{patient_sex}," + "#{patient_dept},"
+ "#{patient_state}," + "#{patient_phone}," + "#{patient_pwd},#{patient_allergy},"
+ "#{patient_email},#{patient_status})")
int InsertUserToDB(@Param("patient_name") String patient_name, @Param("patient_sex") String patient_sex,
@Param("patient_dept") String patient_dept, @Param("patient_state") String patient_state,
@Param("patient_phone") String patient_phone, @Param("patient_pwd") String patient_pwd,
@Param("patient_allergy") String patient_allergy, @Param("patient_email") String patient_email,
@Param("patient_status") String patient_status);
//services层
@Override
public int InsertUserToDB(String patient_name, String patient_sex, String patient_dept, String patient_state,
String patient_phone, String patient_pwd, String patient_allergy, String patient_email,
String patient_status) {
// TODO Auto-generated method stub
return userMapper.InsertUserToDB(patient_name, patient_sex, patient_dept, patient_state, patient_phone, patient_pwd, patient_allergy, patient_email, patient_status);
}
//Controller层
@RequestMapping(value = "/InsertUserToDB", method = { RequestMethod.GET, RequestMethod.POST })
public int InsertUserToDB(String patient_name, String patient_phone, String patient_pwd) {
return userServices.InsertUserToDB(patient_name, null, null, null, patient_phone, patient_pwd, null, null, "1");
}
登录
登录实现
登录页中只有2个参数,一个用户电话和一个密码
这就比较简单了,同注册一样的道理我们只需要获取到用户输入的参数然后对用户输入的参数进行校验,加上电话号码校验
我这里用的是正则,代码贴在上面,我判断用户输入的数字的长度,如果是11为则判定为电话号码,小于11为则判断为诊疗卡,大于11位则要求用户重新输入.
我这里就不赘述过程了,直接贴代码!
/**
* @param {Object} useremail
* @param {Object} userpwd
* 验证用户电话和密码
* 将用户id存入缓存中
*/
function checkPhoneAndPwd(useremail, userpwd) {
$.post('url
', {
'userPhone': useremail,
'userPwd': userpwd
}, function(result) {
console.log(result);
if (result == '') {
alert('电话或密码错误')
} else {
//存入缓存,方便调用
localStorage.setItem('patient_id', result.patient_id);
location.href = 'index.html';
}
});
}
/**
* 验证登录
*/
$(".checkAccountLogin").click(function() {
var userInputEmail = $('#exampleInputEmail1').val();
var userInputPwd = $('#exampleInputPassword1').val();
if (userInputEmail == '') {alert('请键入您的电话/诊疗卡编号')}
if (userInputEmail.length < 11) {} else if (userInputEmail.length === 11) {
var a = checkPhone(userInputEmail);
if (a) {checkPhoneAndPwd(userInputEmail, userInputPwd);}} else {
alert('请键入正确的手机号码!');}});
后台查询代码
//电话验证
SELECT * FROM PATIENT WHERE PATIENT_PHONE = #{patine_phone} AND PATIENT_PWD = #{patine_pwd}
//诊疗卡验证
SELECT * FROM PATIENT WHERE PATIENT_ID = #{patine_Id} AND PATIENT_PWD = #{patine_pwd}
到这里注册登录功能就基本上完成了,注册还有一些小细节
比如说用户注册的账户是不是手机号重复等.