StoreProductPresellValidate.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\validate\merchant;
  12. use think\Validate;
  13. class StoreProductPresellValidate extends Validate
  14. {
  15. protected $failException = true;
  16. protected $rule = [
  17. "image|主图" => 'require|max:128',
  18. "slider_image|轮播图" => 'require',
  19. "store_name|商品名称" => 'require|max:128',
  20. "product_id|原商品ID" => 'require',
  21. "start_time|开始时间" => 'require|checkTime',
  22. "end_time|结束时间" => "require",
  23. "presell_type|预售类型" => "require",
  24. "final_start_time|尾款支付开始时间" => "requireIf:presell_type,2",
  25. "final_end_time|尾款支付结束时间" => "requireIf:presell_type,2",
  26. "delivery_type|发货类型" => "require",
  27. "delivery_day|发货等待天数" => "require",
  28. "attrValue|商品属性" => "require|Array"
  29. ];
  30. protected function checkTime($value,$rule,$data)
  31. {
  32. $start_time = strtotime($data['start_time']);
  33. $end_time = strtotime($data['end_time']);
  34. if($start_time > $end_time) return '活动开始时间必须小于结束时间';
  35. if($start_time < time()) return '活动开始时间必须大于当前时间';
  36. if($data['presell_type'] == 2){
  37. $final_start_time = strtotime($data['final_start_time']);
  38. $final_end_time = strtotime($data['final_end_time']);
  39. if($end_time > $final_start_time) return '尾款支付开始时间必须大于定金结束时间';
  40. if($final_end_time < $final_start_time) return '尾款支付开始时间必须小于结束时间';
  41. }
  42. return true;
  43. }
  44. }