开发用例

用户注册

驱动器RegisterProcessor完整代码

var tableName = 'demo-user';
function run() {
    var username = _webParams.getParamValues().get("username");
    var password = _webParams.getParamValues().get("password");
    var mobilephone = _webParams.getParamValues().get("mobilephone");
    var email = _webParams.getParamValues().get("email");
    var checkCode = _webParams.getParamValues().get("checkCode");
    if(username == null || username == "") {
        return _webTools.getJsonMessage(false, null, null, null, "用户名不能为空...");
    }
    if(findUserByName(username) != null) {
        return _webTools.getJsonMessage(false, null, null, null, "用户名[" + username + "]已存在");
    }
    if(password == null || password == "") {
        return _webTools.getJsonMessage(false, null, null, null, "密码不能为空...");
    }
    if(mobilephone != null && mobilephone != "") {
        if(findUserByPhone(mobilephone) != null) {
            return _webTools.getJsonMessage(false, null, null, null, "手机号[" + mobilephone + "]已存在");
        }
    } else {
        mobilephone = "";
    }
    if(email == null || email == "") {
        return _webTools.getJsonMessage(false, null, null, null, "邮箱不能为空");
    } else if(findUserByEmail(email) != null) {
        return _webTools.getJsonMessage(false, null, null, null, "邮箱[" + email + "]已存在");
    }
    if(checkCode == "" || checkCode == null) {
        return _webTools.getJsonMessage(false, null, null, null, "验证码不能为空:" + checkCode);
    }
    var checkCaptchaCode = _webTools.validateCaptcha(_webParams, checkCode);
    if(checkCaptchaCode == false) {
        return _webTools.getJsonMessage(false, null, null, null, "验证码不正确:" + checkCode);
    }
    password = _security.encryptSHA(username + _security.encryptSimpleMD5(password));
    var vols = ["Username", "Password", "Email", "MobilePhone", "status", "registTime"];
    var vals = [username, password, email, mobilephone, "ENABLE", new Date().getTime().toString()];
    _db.updateData("cms", tableName, username, vols, vals);
    try {
        sendActiveUserEmail(username, email);
        return _webTools.getJsonMessage(true, null, null, null, "恭喜您注册成功,请进入您的邮箱激活该帐户。");
        return _webTools.getJsonMessage(true, null, null, null, "注册成功!");

    } catch(e) {
        return _webTools.getJsonMessage(false, null, null, null, e.toString());
    }
}
//根据username查询数据库
functionfindUserByName(username) {
    var data = null;
    try {
        data = _db.findData("cms", tableName, username);
    } catch(e) {
        var wrongMess = e.toString();
        if(wrongMess.indexOf("cannot found id") < 0) {
            throw e;
        }
    }
    return data;
}
//根据email查询数据库
functionfindUserByEmail(email) {
    var data = null;
    try {
        data = findUserByColVal("Email", email); //数据库,表名,列名,列值,从-1到1的记录
    } catch(e) {
        var wrongMess = e.toString();
        if(wrongMess.indexOf("cannot found id") < 0) {
            throw e;
        }
    }
    return data;
}
//根据mobilephone查询数据库
functionfindUserByPhone(mobilephone) {
    var data = null;
    try {
        data = findUserByColVal("MobilePhone", mobilephone); //数据库,表名,列名,列值,从-1到1的记录
    } catch(e) {
        var wrongMess = e.toString();
        if(wrongMess.indexOf("cannot found id") < 0) {
            throw e;
        }
    }
    return data;
}
//根据列名:列值查找数据库
functionfindUserByColVal(col, val) {
    var data = _db.findData("cms", tableName, [col], [val], -1, 1);
    if(data.size() == 0) {
        return null;
    } else {
        return data.get(0);
    }
}
//发送验证链接
functionsendActiveUserEmail(userName, email) {
    var currentTime = getDateTime(new Date());
    var invalidDate = getInvalidDate(1);
    var showInvalidTime = getDateTime(invalidDate);
    var invaliDateTime = invalidDate.getTime() + "";
    var verificateCode = _security.encryptSHA(_webTools.randomAlphanumeric(8));
    var resetPassword = _webTools.randomAlphanumeric(6);
    var cols = ["userName", "verificateCode", "createTime", "invalidTime", "validStatus", "type"];
    var vals = [userName, verificateCode, currentTime, invaliDateTime, true, "NEWUSERACTIVE"];
    _db.updateData('cms', 'EmailVerificatRecord', cols, vals);
    var siteDomain = "jdf.unitedbiz.net";
    try {
        siteDomain = _db.findData("cms", "SystemConfig", "domain").get("value");
    } catch(e) {}
    varreturnClickUrl = "http://" + siteDomain + "/activeUserService?username=" + userName + "&verificateCode=" + verificateCode;
    var subject = "[cloud]激活您的帐户";
    var htmlMessage = '亲爱的用户 ' + userName + ':您好!感谢您注册了我们的网站,请您在使用帐户前点击下方链接验证。我们将一如既往、热忱的为您服务!'; 
    var textMessage = "激活帐户"; 
    sendEmail(email, subject, htmlMessage, textMessage); 
} 

run();

模板页面Register.vm完整代码

$_service.get("demoHeader")
<div id="main">
	<div>
		<div id="breadcrumb">您的位置:
			<a href="/">首页</a><span>&gt;</span>注册</div>
		<div id="reg">
		<div>
			<form action="registerService" id="register-form" method="post">
				<div>请使用常用邮箱注册cms账号!</div>
				<div>
					<input id="username" name="username" type="text" placeholder="用户名" />
				</div>
				<div>
					<input id="password" name="password" type="password" placeholder="登录密码" />
				</div>
				<div>
					<input id="confirmPassword" name="confirmPassword" type="password" placeholder="确认登录密码" />
				</div>
				<div>
					<input id="mobilephone" name="mobilephone" type="text" placeholder="手机号" />
				</div>
				<div>
					<input id="email" name="email" type="text" placeholder="注册邮箱" onblur="checkUser('Email',this)" />
				</div>
				<div>
					<input id="checkCode" name="checkCode" type="text" placeholder="输入验证码" />
				</div>
				<a href='javascript:changeCaptcha();' onmouseover="this.style.cursor='hand'" onmouseout="this.style.cursor='default'">
					<img id="randomImg" src="captcha.jpg" height="45" width="130" alt="" style="vertical-align:middle;" />&nbsp;&nbsp;
				</a>
				<a href="javascript:changeCaptcha();">看不清?换一张</a>
				<div>
					<a href="javascript:void(0)" onclick="regSubmit()" class="btn200x50 btn-orange">注册</a>
				</div>
			</form>
		 </div>
		</div>
	</div>
</div>
$_service.get("demoFooter")

<script src="cmsAdminStatic/js/jquery.form.js"></script>
<script type="text/javascript">
		function regSubmit() {
			$('#register-form').ajaxSubmit(function(data) {
				if(data.success == true) {
					alert(data.message);
					window.location.href = "login";
				} else {
					alert(data.message);
				}
			});
		}
		/*Ajax邮箱验证*/
		function checkEmail(colName, obj) {
			var inputObj = $(obj);
			var colVal = inputObj.val();
			if(colVal == "") { //如果值为为空暂不校验
				return false;
			}
			$.post(getUUIDURL("registerValidate"), {
				colName: colName,
				colValue: colVal
			}, function(data) {
				if(data.success == true) {
					var id = inputObj.attr("id");
					if(id == "email") {
					   alert("邮箱[" + colVal + "]已存在.");
					}
					inputObj.focus();
				} else {
					if(data.exception != "") { //如果存在异常,提示异常信息
						alert(data.exception);
					}
				}
			}, "json");
		}
		//更换校验码
		functionchangeCaptcha() {
			$('#randomImg').attr('src', 'checkcode.jpg?img=' + Math.random());
		}
	</script>