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;
 | |
|     }
 | |
| } |