DinnerOrders.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace app\common\validate;
  3. use think\Db;
  4. use think\Validate;
  5. class DinnerOrders extends Validate{
  6. protected $rule = [
  7. // 'company_id' => 'require|gt:0',
  8. // 'name|姓名' => 'require',
  9. 'goods' => 'require|checkGoods',
  10. ];
  11. protected $message = [
  12. 'company_id.require' => '未选择单位',
  13. 'company_id.gt' => '未选择单位',
  14. 'name.require' => '请输入姓名',
  15. 'goods.require' => '请选择商品',
  16. ];
  17. protected $scene = [
  18. ];
  19. protected function checkGoods($value,$rule,$data=[])
  20. {
  21. $goods = json_decode($data['goods'],true);
  22. if(!$goods){
  23. return '未选择商品';
  24. }
  25. $days = [];
  26. foreach ($goods as $k=>$v){
  27. $dinner = Db::name('dinner')
  28. ->alias('a')
  29. ->join('dinner_cate b','b.id = a.cate_id')
  30. ->where('a.id',$v['dinner_id'])
  31. ->where('a.enable',1)
  32. ->where('a.del',0)
  33. ->where('b.enable',1)
  34. ->where('b.del',0)
  35. ->field('b.title,a.day,b.start,b.end')
  36. ->find();
  37. if(!$dinner){
  38. return '选择的商品已下架';
  39. }
  40. $curTime = date('H:i:s');
  41. if($curTime < $dinner['start']||$curTime > $dinner['end']){
  42. return '['.$dinner['title'].']不再售卖时间内';
  43. }
  44. if(in_array($dinner['day'],$days)){
  45. $days[] = $dinner['day'];
  46. }
  47. }
  48. if(count($days) > 1){
  49. return '选择商品错误';
  50. }
  51. return true;
  52. }
  53. }