PatrolPlan.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace app\common\validate;
  3. use think\Validate;
  4. class PatrolPlan extends Validate
  5. {
  6. /**
  7. * 定义验证规则
  8. * 格式:'字段名' => ['规则1','规则2'...]
  9. *
  10. * @var array
  11. */
  12. protected $rule = [
  13. 'title|计划名称' => 'require|length:1,100',
  14. 'start_time|计划开始时间' => 'require|date|checkStartTime',
  15. 'end_time|计划结束时间' => 'require|date',
  16. 'mode' => 'require|in:1,2,3,4',
  17. 'content' => 'require|checkContent'
  18. ];
  19. /**
  20. * 定义错误信息
  21. * 格式:'字段名.规则名' => '错误信息'
  22. *
  23. * @var array
  24. */
  25. protected $message = [
  26. 'title.length' => '计划名称必须在100字以内',
  27. 'mode.require' => '参数错误',
  28. 'mode.in' => '参数错误',
  29. 'content.require' => '未设置任务',
  30. ];
  31. protected function checkStartTime($value,$rule,$data=[])
  32. {
  33. $curDay = date('Y-m-d');
  34. if($curDay > $data['start_time']){
  35. return '计划开始时间不能小于当前时间';
  36. }
  37. if($data['start_time'] > $data['end_time']){
  38. return '计划结束时间不能大于计划开始时间';
  39. }
  40. return true;
  41. }
  42. protected function checkContent($value,$rule,$data=[])
  43. {
  44. $content = json_decode($data['content'],true);
  45. if(!$content){
  46. return '未设置任务';
  47. }
  48. if(empty($content['addrForms'])){
  49. return '未设置地点';
  50. }
  51. if(empty($content['tasks']['list'])){
  52. return '未设置任务';
  53. }
  54. return true;
  55. }
  56. }