截流自动化的商城平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SeckillTimeValidate.php 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace app\admin\validate\seckill;
  3. use think\Validate;
  4. use app\common\model\seckill\SeckillTime;
  5. class SeckillTimeValidate extends Validate
  6. {
  7. protected $rule = [
  8. 'start_time' => 'require',
  9. 'end_time' => 'require|checkTime',
  10. ];
  11. protected $message = [
  12. 'start_time.require' => '请选择开始时间',
  13. 'end_time.require' => '请选择结束时间',
  14. ];
  15. public function checkTime($value,$rule,$data){
  16. $start_time = strtotime(date('Y-m-d'.$data['start_time']));
  17. $end_time = strtotime(date('Y-m-d'.$value));
  18. if($start_time >= $end_time){
  19. return '开始时间不能大于结束时间';
  20. }
  21. $where[] = ['del','=',0];
  22. if(isset($data['id'])){
  23. $where[] = ['id','<>',$data['id']];
  24. }
  25. $time_list = SeckillTime::where($where)->select()->toArray();
  26. foreach ($time_list as $item){
  27. $item_start_time = strtotime(date('Y-m-d'.$item['start_time']));
  28. $item_end_time = strtotime(date('Y-m-d'.$item['end_time']));
  29. if($start_time >= $item_start_time && $start_time < $item_end_time ){
  30. return '秒杀时间段冲突';
  31. }
  32. if($end_time >= $item_start_time && $end_time < $item_end_time ){
  33. return '秒杀时间段冲突';
  34. }
  35. }
  36. return true;
  37. }
  38. }