OrderController.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace App\Community\Controllers;
  3. use App\Models\Order;
  4. use Encore\Admin\Controllers\AdminController;
  5. use Encore\Admin\Form;
  6. use Encore\Admin\Grid;
  7. use Encore\Admin\Show;
  8. class OrderController extends AdminController
  9. {
  10. /**
  11. * Title for current resource.
  12. *
  13. * @var string
  14. */
  15. protected $title = '门诊预约';
  16. /**
  17. * Make a grid builder.
  18. *
  19. * @return Grid
  20. */
  21. protected function grid()
  22. {
  23. $grid = new Grid(new Order());
  24. $grid->model()->where(['product_type'=>1]);
  25. $grid->column('id', __('Id'));
  26. $grid->column('orderUser.nickname', __('预约用户'));
  27. $grid->column('orderPatient.appoint_start_time', __('预约时间'))->display(function ($w){
  28. return date('Y-m-d H:i:s',$w);
  29. });
  30. $grid->column('orderPatient.appoint_end_time', __('门诊时间'))->display(function ($w){
  31. if(empty($w)) return '';
  32. return date('Y-m-d H:i:s',$w);
  33. });;
  34. $grid->column('orderPatient.name', __('预约患者'))->display(function ($w){
  35. return $w==1?'男':'女';
  36. });;
  37. $grid->column('orderPatient.sex', __('患者性别'));
  38. $grid->column('orderPatient.birthday', __('患者年龄'))->display(function ($w){
  39. return birthday_to_age($w);
  40. });;
  41. $grid->column('docter.name', __('预约医生'));
  42. // $grid->column('organization_id', __('Organization id'));
  43. //查询
  44. $grid->quickSearch(function ($model, $query) {
  45. $model->whereHas('patients',function ($model) use ($query) {
  46. $model->where('name', 'like', "{$query}%");
  47. });
  48. })->placeholder('请输入用户姓名');
  49. $grid->filter(function (Grid\Filter $filter){
  50. $filter->disableIdFilter();
  51. $filter->column(1/2, function ($filter) {
  52. $filter->equal('docter_id','排班医生')->select('/cdms/api/getDocter');
  53. $filter->equal('order_status','订单状态')->select(Order::$_order_status);
  54. $filter->between('orderPatient.appoint_start_time','预约时间')->datetime();
  55. });
  56. });
  57. return $grid;
  58. }
  59. /**
  60. * Make a show builder.
  61. *
  62. * @param mixed $id
  63. * @return Show
  64. */
  65. protected function detail($id)
  66. {
  67. $show = new Show(Order::findOrFail($id));
  68. $show->field('id', __('Id'));
  69. $show->field('user_id', __('User id'));
  70. $show->field('docter_id', __('Docter id'));
  71. $show->field('patient_id', __('Patient id'));
  72. $show->field('organization_id', __('Organization id'));
  73. $show->field('order_sn', __('Order sn'));
  74. $show->field('payment_type', __('Payment type'));
  75. $show->field('product_type', __('Product type'));
  76. $show->field('order_status', __('Order status'));
  77. $show->field('payment_status', __('Payment status'));
  78. $show->field('total_amount', __('Total amount'));
  79. $show->field('payment_amount', __('Payment amount'));
  80. $show->field('discount_amount', __('Discount amount'));
  81. $show->field('payment_time', __('Payment time'));
  82. $show->field('created_at', __('Created at'));
  83. $show->field('updated_at', __('Updated at'));
  84. return $show;
  85. }
  86. /**
  87. * Make a form builder.
  88. *
  89. * @return Form
  90. */
  91. protected function form()
  92. {
  93. $form = new Form(new Order());
  94. $form->display('orderUser.nickename', __('用户'));
  95. $form->display('docter_id', __('医生'));
  96. $form->number('payment_time', __('Payment time'));
  97. return $form;
  98. }
  99. }