Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Code Block
languagejs
title发送短信验证码接口
importPackage(java.lang);
importPackage(org.apache.commons.lang3.time);
importPackage(com.weibaobiao.utils);
importPackage(com.weibaobiao.support.entity);
importPackage(com.weibaobiao.support.dao);
importPackage(com.weibaobiao.support);

var phoneNumber = request.getParameter("phone");
logger.debug("phoneNumber: "+phoneNumber);
var verifyCodeDao = beanService.getBean("verifyCodeDaoImpl");
var activateCode = null;
var po = verifyCodeDao.findByUsername(phoneNumber);
if (po == null) {
	po = new VerifyCodePO();
	po.setUsername(phoneNumber);
	po.setId(AppUtils.generateRandomUUID());
} else {
	// 是否频繁发送: 50秒间隔
	var interval = parseInt((new Date().getTime() - po.getActCodeDate().getTime()) / 1000);
	if (interval < 59) {
		if (interval < 1) {
			interval = 1;
		}
		result.setSuccess(false);
		result.setMessage("您的操作过于频繁,请"+(60-interval)+"秒后重试");
		throw new AppException("您的操作过于频繁,请"+(60-interval)+"秒后重试");
	} else if (interval < 600) {
		// 如果在10分钟内,不重复生成
		activateCode = po.getActCode();
	}
	// 同一号码,一天只能发送30条
	if (po.getUpdateDate() != null && DateUtils.isSameDay(po.getUpdateDate(), new Date())) {
		if (po.getTodayCount() + 1 > 30) {
		    result.setSuccess(false);
			result.setMessage("您今天的操作过于频繁,请明天再试");
			throw new AppException("您今天的操作过于频繁,请明天再试");
		}
	} else {
		po.setUpdateDate(new Date());
		po.setTodayCount(0);
	}
}

if (activateCode == null) {
	activateCode = ""+parseInt((Math.random()*9+1)*100000);
}

logger.debug("activateCode: " + activateCode);

po.setActCode(activateCode);
po.setActCodeDate(new Date());
po.setUsername(phoneNumber);
verifyCodeDao.save(po);
var sendSmsUrl = "http://192.168.1.1:8030/service/httpService/httpInterface.do?method=sendMsg&veryCode=123&mobile="+phoneNumber+"&tempid=JSM40935-0057&content="+activateCode+"&code=gbk";
logger.debug("Send sms url: "+sendSmsUrl);
//webService.get(sendSmsUrl);
result.setSuccess(true);
result.setData(activateCode);

...