42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | namespace app\admin\validate\seckill; | ||
|  | 
 | ||
|  | use think\Validate; | ||
|  | use app\common\model\seckill\SeckillTime; | ||
|  | 
 | ||
|  | class SeckillTimeValidate extends Validate | ||
|  | { | ||
|  |     protected $rule = [ | ||
|  |         'start_time'        => 'require', | ||
|  |         'end_time'          => 'require|checkTime', | ||
|  |     ]; | ||
|  |     protected $message = [ | ||
|  |         'start_time.require'        => '请选择开始时间', | ||
|  |         'end_time.require'          => '请选择结束时间', | ||
|  |     ]; | ||
|  | 
 | ||
|  |     public function checkTime($value,$rule,$data){ | ||
|  |         $start_time = strtotime(date('Y-m-d'.$data['start_time'])); | ||
|  |         $end_time = strtotime(date('Y-m-d'.$value)); | ||
|  |         if($start_time >= $end_time){ | ||
|  |             return '开始时间不能大于结束时间'; | ||
|  |         } | ||
|  |         $where[] = ['del','=',0]; | ||
|  |         if(isset($data['id'])){ | ||
|  |             $where[] = ['id','<>',$data['id']]; | ||
|  |         } | ||
|  |         $time_list = SeckillTime::where($where)->select()->toArray(); | ||
|  |         foreach ($time_list as $item){ | ||
|  |             $item_start_time = strtotime(date('Y-m-d'.$item['start_time'])); | ||
|  |             $item_end_time = strtotime(date('Y-m-d'.$item['end_time'])); | ||
|  |             if($start_time >= $item_start_time && $start_time < $item_end_time ){ | ||
|  |                 return '秒杀时间段冲突'; | ||
|  |             } | ||
|  |             if($end_time >= $item_start_time && $end_time < $item_end_time ){ | ||
|  |                 return '秒杀时间段冲突'; | ||
|  |             } | ||
|  | 
 | ||
|  |         } | ||
|  |         return true; | ||
|  |     } | ||
|  | } |