StoreProductPresellValidate.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace app\validate\merchant;
  3. use think\Validate;
  4. class StoreProductPresellValidate extends Validate
  5. {
  6. protected $failException = true;
  7. protected $rule = [
  8. "image|主图" => 'require|max:128',
  9. "slider_image|轮播图" => 'require',
  10. "store_name|商品名称" => 'require|max:128',
  11. "store_info|商品简介" => 'require|max:128',
  12. "product_id|原商品ID" => 'require',
  13. "temp_id|运费模板" => 'require',
  14. "start_time|开始时间" => 'require|checkTime',
  15. "end_time|结束时间" => "require",
  16. "presell_type|预售类型" => "require",
  17. "final_start_time|尾款支付开始时间" => "requireIf:presell_type,2",
  18. "final_end_time|尾款支付结束时间" => "requireIf:presell_type,2",
  19. "delivery_type|发货类型" => "require",
  20. "delivery_day|发货等待天数" => "require",
  21. "attrValue|商品属性" => "require|Array"
  22. ];
  23. protected function checkTime($value,$rule,$data)
  24. {
  25. $start_time = strtotime($data['start_time']);
  26. $end_time = strtotime($data['end_time']);
  27. if($start_time > $end_time) return '活动开始时间必须小于结束时间';
  28. if($start_time < time()) return '活动开始时间必须大于当前时间';
  29. if($data['presell_type'] == 2){
  30. $final_start_time = strtotime($data['final_start_time']);
  31. $final_end_time = strtotime($data['final_end_time']);
  32. if($end_time > $final_start_time) return '尾款支付开始时间必须大于定金结束时间';
  33. if($final_end_time < $final_start_time) return '尾款支付开始时间必须小于结束时间';
  34. }
  35. return true;
  36. }
  37. }