基于JAVA的专科医院管理系统开发概要以及过程记录(三)

本文详细记录了基于JAVA的专科医院管理系统中注册与登录功能的实现过程。注册时,系统自动生成唯一的诊疗卡编号,通过AJAX进行数据库查询和验证。登录时,对用户输入的电话号码或诊疗卡进行正则校验。完整代码和处理细节在文中均有说明。
摘要由CSDN通过智能技术生成

一级标题 基于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}

到这里注册登录功能就基本上完成了,注册还有一些小细节
比如说用户注册的账户是不是手机号重复等.

下一章 首页信息加载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

步城曦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值