ServiceController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. namespace App\Community\Controllers;
  3. use App\Admin\Actions\Service\ApplysAction;
  4. use App\Admin\Actions\Service\RefuseAction;
  5. use App\Models\Docter;
  6. use App\Models\Order;
  7. use App\Models\DocterTimes;
  8. use App\Models\Serviceapplys;
  9. use Encore\Admin\Controllers\AdminController;
  10. use Encore\Admin\Form;
  11. use Encore\Admin\Grid;
  12. use Encore\Admin\Show;
  13. class ServiceController extends AdminController
  14. {
  15. /**
  16. * Title for current resource.
  17. *
  18. * @var string
  19. */
  20. protected $title = '医生服务';
  21. /**
  22. * Make a grid builder.
  23. *
  24. * @return Grid
  25. */
  26. protected function grid()
  27. {
  28. $grid = new Grid(new Serviceapplys());
  29. $grid->model()->orderByDesc('id');
  30. $status = request('status',2);
  31. //
  32. $grid->tools(function ($tools) {
  33. $tools->batch(function ($batch) {
  34. $batch->disableDelete();
  35. });
  36. });
  37. $grid->column('ondocter.name','医生姓名');
  38. $grid->column('ondocter.phone_price','咨询价格');
  39. $grid->column('step_price','步进价格')->display(function (){
  40. $step = DocterTimes::where(['docter_id'=>$this->id])->value('step_price');
  41. return $step;
  42. });
  43. $grid->column('orders','总订单数')->display(function (){
  44. $order_type = Order::where(['docter_id'=>$this->id,'product_type'=>1])->count();
  45. return $order_type;
  46. });
  47. $grid->column('orders_actions','进行中数')->display(function (){
  48. $action = Order::where(['docter_id'=>$this->id,'product_type'=>1,'order_status'=>3])->count();
  49. return $action;
  50. });
  51. $grid->column('orders_inishs','完成数')->display(function (){
  52. $finish = Order::where(['docter_id'=>$this->id,'product_type'=>1,'order_status'=>4])->count();
  53. return $finish;
  54. });
  55. $grid->column('orders_anomaly','异常数')->display(function (){
  56. $anomaly = Order::where(['docter_id'=>$this->id,'product_type'=>1])->whereIn('order_status',[1,2,5])->count();
  57. return $anomaly;
  58. });
  59. $grid->column('status', __('状态'))->using([1=>'审核',2=>'已通过',3=>'已拒绝'])->label([
  60. 1 => 'warning',
  61. 2 => 'success',
  62. 3 => 'default'
  63. ]);
  64. if($status == 7) {
  65. $grid->column('id', __('Id'));
  66. $grid->column('ondocter.avatar', __('头像'))->image('',50,50);
  67. $grid->column('ondocter.id', __('医生ID'));
  68. $grid->column('ondocter.name','医生名称');
  69. $grid->column('ondocter.sex','性别')->using([1=>'男',2=>'女']);
  70. $grid->column('ondocter.DocterOrganization', __('所属机构'));
  71. $grid->column('ondocter.label', __('标签'))->label('info');
  72. $grid->column('status', __('状态'))->using([1=>'审核',2=>'已通过',3=>'已拒绝'])->label([
  73. 1 => 'warning',
  74. 2 => 'success',
  75. 3 => 'default'
  76. ]);
  77. $grid->column('created_at', __('创建时间'));
  78. $grid->column('updated_at', __('更新时间'));
  79. }
  80. $grid->filter(function ($filter){
  81. $filter->equal('service_type','服务类型')->select([1 => '图文', 2 => '电话', 3 => '问诊']);
  82. $filter->equal('status','服务类型')->select([1=>'待审核',2 =>'已通过 ',3=>'已拒绝']);
  83. });
  84. $grid->actions(function ($actions) {
  85. $actions->disableEdit();
  86. $actions->disableView();
  87. $actions->disableDelete();
  88. // if($actions->row->status == 1){
  89. // $actions->add(new ApplysAction());
  90. // $actions->add(new RefuseAction());
  91. // }
  92. });
  93. return $grid;
  94. }
  95. }