如何在服务器端限制一分钟之内不能重复发送短信

直接上代码:

String lastSendSMSTime=getKeyCache(request, response, mobile);
        if(StringUtil.isNullOrEmpty(lastSendSMSTime)){
        	saveKeyCache(request, response, mobile, String.valueOf(DateTimeUtil.getCurrentTimeSecond())/*1436319245*/);
        }else{
        	long lastSendSMSTimeSecond=Long.parseLong(lastSendSMSTime);
        	long currentTimeSecond=DateTimeUtil.getCurrentTimeSecond();
        	int delter=(int) (currentTimeSecond-lastSendSMSTimeSecond);
        	if(delter>60){//TODO  写入配置文件
        		saveKeyCache(request, response, mobile, String.valueOf(DateTimeUtil.getCurrentTimeSecond()));
        	}else{//a00001
        		return new BaseResponseDto(false, "a00001", "一分钟之内不能重复发送手机短信").toJson();
        	}
        }

 

第一次发送时lastSendSMSTime 为null,于是设置当前时间A

第二次访问时,lastSendSMSTime 不为null,获取其值,为时间A;

同时获取当前时间B,计算时间A,和时间B 的差量delter.

业务逻辑是:拿delter和60进行比较,如果delter>60,说明两次发短信的时间相差60秒,则允许发送,会重置时间为当前时间;

若delter<=60秒,则允许发送,并且不会重置时间

 

你可能感兴趣的:(限制访问次数,限制发送短信次数)