12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <?php
- namespace plugin\ali_sms\validate;
- //发送手机短信验证器
- use app\service\ConfServiceFacade;
- use plugin\ali_sms\model\AliSms;
- use think\Validate;
- class Send extends Validate
- {
- //数组顺序就是检测的顺序,比如这里,会先检测code验证码的正确性
- protected $rule = [
- 'mobile' => 'require|checkMobile:',
- 'event' => 'require|checkEvent:',
- ];
- //定义内置方法检验失败后返回的字符
- protected $message = [
- 'mobile.require' => '手机号码不能为空',
- 'event.require' => '事件名称不能为空',
- ];
- //自定义密码检验方法
- protected function checkMobile($mobile){
- $smsModel = new AliSms();
- $lastSms = $smsModel->where('mobile','=',$mobile)->order('id','desc')->find();
- if($lastSms){
- if( time() - strtotime($lastSms['create_time'] ) < ConfServiceFacade::get('plugin.ali_sms.intervalTime') ){
- return '发送频繁';
- }else{
- return true;
- }
- }else{
- return true;
- }
- }
- //事件名称参数检测
- protected function checkEvent($event){
- $events = array_keys(ConfServiceFacade::get('plugin.ali_sms.template'));
- return !in_array($event,$events) ? '事件名称参数错误' : true;
- }
- }
|