You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			113 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
namespace wstmart\common\model;
 | 
						|
/**
 | 
						|
 * ============================================================================
 | 
						|
 * 短信日志类
 | 
						|
 */
 | 
						|
class LogSms extends Base{
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 写入并发送短讯记录
 | 
						|
	 */
 | 
						|
	public function sendSMS($smsSrc,$phoneNumber,$params,$smsFunc,$verfyCode,$userId=0){
 | 
						|
		//判断有没有开启短信功能
 | 
						|
		if((int)WSTConf('CONF.smsOpen')==0)return WSTReturn('未开启短信接口');
 | 
						|
		$userId = $userId>0?(int)session('WST_USER.userId'):$userId;
 | 
						|
		$ip = request()->ip();
 | 
						|
		
 | 
						|
		//检测短信验证码验证是否正确
 | 
						|
		//if(WSTConf("CONF.smsVerfy")==1){
 | 
						|
			// if(WSTVisitModule() == 'home'){//pc版的有验证码 mark 2011204
 | 
						|
			// 	$smsverfy = input("post.smsVerfy");
 | 
						|
			// 	$rs = WSTVerifyCheck($smsverfy);
 | 
						|
			// 	if(!$rs){
 | 
						|
			// 		return WSTReturn("验证码不正确!",-2);
 | 
						|
			// 	}
 | 
						|
			// }
 | 
						|
		//}
 | 
						|
		//检测是否超过每日短信发送数
 | 
						|
		$date = date('Y-m-d');
 | 
						|
		$smsRs = $this->field("count(smsId) counts,max(createTime) createTime")
 | 
						|
			 		  ->where(["smsPhoneNumber"=>$phoneNumber])
 | 
						|
		 	          ->whereTime('createTime', 'between', [$date.' 00:00:00', $date.' 23:59:59'])->find();
 | 
						|
		if($smsRs['counts']>(int)WSTConf("CONF.smsLimit")){
 | 
						|
			return WSTReturn("超出每日短信限制!");
 | 
						|
		}
 | 
						|
		if($smsRs['createTime'] !='' && ((time()-strtotime($smsRs['createTime']))<120)){
 | 
						|
			return WSTReturn("请勿频繁发送短信验证");
 | 
						|
		}
 | 
						|
		//检测IP是否超过发短信次数
 | 
						|
		$ipRs = $this->field("count(smsId) counts,max(createTime) createTime")
 | 
						|
					 ->where(["smsIP"=>$ip])
 | 
						|
					 ->whereTime('createTime', 'between', [$date.' 00:00:00', $date.' 23:59:59'])->find();
 | 
						|
		if($ipRs['counts']>(int)WSTConf("CONF.smsLimit")){
 | 
						|
			return WSTReturn("发送短信验证次数过多!");
 | 
						|
		}
 | 
						|
		//if($ipRs['createTime']!='' && ((time()-strtotime($ipRs['createTime']))<120)){
 | 
						|
		//	return WSTReturn("请勿频繁发送短信验证!");
 | 
						|
		//}
 | 
						|
		$data = array();
 | 
						|
		$data['smsSrc'] = $smsSrc;
 | 
						|
		$data['smsUserId'] = $userId;
 | 
						|
		$data['smsPhoneNumber'] = $phoneNumber;
 | 
						|
		$data['smsContent'] = 'N/A';
 | 
						|
		$data['smsReturnCode'] = '';
 | 
						|
		$data['smsCode'] = $verfyCode;
 | 
						|
		$data['smsIP'] = $ip;
 | 
						|
		$data['smsFunc'] = $smsFunc;
 | 
						|
		$data['createTime'] = date('Y-m-d H:i:s');
 | 
						|
		$this->data($data)->save();
 | 
						|
		$rdata = ['msg'=>'短信发送失败!','status'=>-1];
 | 
						|
		hook('sendSMS',['phoneNumber'=>$phoneNumber,"params"=>$params,'smsId'=>$this->smsId,'status'=>&$rdata]);
 | 
						|
		return $rdata;
 | 
						|
	}
 | 
						|
	/** 商家短信通知  mark hsf  20180421*/
 | 
						|
	public function sendShopSMS($smsSrc,$phoneNumber,$params,$smsFunc,$verfyCode,$userId){
 | 
						|
		//判断有没有开启短信功能
 | 
						|
		if((int)WSTConf('CONF.smsOpen')==0)return WSTReturn('未开启短信接口');
 | 
						|
		
 | 
						|
		//$shopInfo = GetShopInfo($shopId,'userId');
 | 
						|
		$ip = request()->ip();		
 | 
						|
		
 | 
						|
		$data = array();
 | 
						|
		$data['smsSrc'] = $smsSrc;
 | 
						|
		$data['smsUserId'] = $userId;
 | 
						|
		$data['smsPhoneNumber'] = $phoneNumber;
 | 
						|
		$data['smsContent'] = 'N/A';
 | 
						|
		$data['smsReturnCode'] = '';
 | 
						|
		$data['smsCode'] = $verfyCode;
 | 
						|
		$data['smsIP'] = $ip;
 | 
						|
		$data['smsFunc'] = $smsFunc;
 | 
						|
		$data['createTime'] = date('Y-m-d H:i:s');
 | 
						|
		$this->save($data);
 | 
						|
		//dump($params);
 | 
						|
		//$rdata = ['msg'=>'短信发送失败!','status'=>-1];
 | 
						|
		hook('sendSMS',['phoneNumber'=>$phoneNumber,"params"=>$params,'smsId'=>$this->smsId,'status'=>&$rdata]);
 | 
						|
		return $rdata;
 | 
						|
	}
 | 
						|
	/**
 | 
						|
	 * 写入并发送管理员短讯记录
 | 
						|
	 */
 | 
						|
	public function sendAdminSMS($smsSrc,$phoneNumber,$params,$smsFunc,$verfyCode,$userId=0){
 | 
						|
		//判断有没有开启短信功能
 | 
						|
		if((int)WSTConf('CONF.smsOpen')==0)return WSTReturn('未开启短信接口');
 | 
						|
		$userId = $userId>0?(int)session('WST_USER.userId'):$userId;
 | 
						|
		$ip = request()->ip();
 | 
						|
 | 
						|
		$data = array();
 | 
						|
		$data['smsSrc'] = $smsSrc;
 | 
						|
		$data['smsUserId'] = $userId;
 | 
						|
		$data['smsPhoneNumber'] = $phoneNumber;
 | 
						|
		$data['smsContent'] = 'N/A';
 | 
						|
		$data['smsReturnCode'] = '';
 | 
						|
		$data['smsCode'] = $verfyCode;
 | 
						|
		$data['smsIP'] = $ip;
 | 
						|
		$data['smsFunc'] = $smsFunc;
 | 
						|
		$data['createTime'] = date('Y-m-d H:i:s');
 | 
						|
		$this->save($data);
 | 
						|
		$rdata = ['msg'=>'短信发送失败!','status'=>-1];
 | 
						|
		hook('sendSMS',['phoneNumber'=>$phoneNumber,"params"=>$params,'smsId'=>$this->smsId,'status'=>&$rdata]);
 | 
						|
		return $rdata;
 | 
						|
	}
 | 
						|
}
 |