123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <?php
- namespace App\Community\Controllers;
- use App\Admin\Actions\Community\Notice\sendNotice;
- use App\Models\Order;
- use App\Models\Patient;
- use Encore\Admin\Controllers\AdminController;
- use Encore\Admin\Facades\Admin;
- use Encore\Admin\Form;
- use Encore\Admin\Grid;
- use Encore\Admin\Show;
- class UserNoticeController extends AdminController
- {
- /**
- * Title for current resource.
- *
- * @var string
- */
- protected $title = '群发通知';
- /**
- * Make a grid builder.
- *
- * @return Grid
- */
- protected function grid()
- {
- $grid = new Grid(new Patient());
- $grid->model()->orderByDesc('id');
- $user = Admin::user();
- echo request('product_type');
- if(!empty(request('product_type'))){
- $user_ids = Order::whereIn('product_type',[4,5])->distinct('user_id')->pluck('user_id');
- $grid->model()->whereIn('user_id',$user_ids);
- }
- $grid->column('user.nickname', __('用户'));
- $grid->column('guardian_name', __('监护人'));
- $grid->column('name', __('患者'));
- $grid->column('relationship_type', __('关系'))->using([1=>'父亲',2=>'母亲',3=>'祖父',4=>'祖母',5=>'外祖父',6=>'外祖母',7=>'叔侄',8=>'其他']);
- $grid->column('phone', __('用户手机号'));
- $grid->column('birthday', __('出生日期'));
- $grid->filter(function ($flter){
- $flter->like('name','请输入患者姓名');
- $flter->like('user.nickname','用户');
- $flter->like('guardian_name','请输入监护人姓名');
- $flter->like('phone','电话');
- $flter->between('birthday','生日')->datetime();
- // $flter->timestampBetween('orderPatient.appoint_start_time','预约时间')->datetime();
- $flter->equal('order.product_type','用户类型')->select([4=>'计免',5=>'儿保']);
- });
- $grid->actions(function ($actions){
- $actions->disableView();
- $actions->disableDelete();
- $actions->disableEdit();
- });
- $grid->batchActions(function ($batch) {
- $batch->disableDelete();
- $batch->add(new sendNotice());
- });
- return $grid;
- }
- /**
- * Make a show builder.
- *
- * @param mixed $id
- * @return Show
- */
- protected function detail($id)
- {
- $show = new Show(Order::findOrFail($id));
- $show->field('id', __('Id'));
- $show->field('user_id', __('User id'));
- $show->field('docter_id', __('Docter id'));
- $show->field('patient_id', __('Patient id'));
- $show->field('organization_id', __('Organization id'));
- $show->field('order_sn', __('Order sn'));
- $show->field('payment_type', __('Payment type'));
- $show->field('product_type', __('Product type'));
- $show->field('order_status', __('Order status'));
- $show->field('payment_status', __('Payment status'));
- $show->field('total_amount', __('Total amount'));
- $show->field('payment_amount', __('Payment amount'));
- $show->field('discount_amount', __('Discount amount'));
- $show->field('payment_time', __('Payment time'));
- $show->field('created_at', __('Created at'));
- $show->field('updated_at', __('Updated at'));
- return $show;
- }
- /**
- * Make a form builder.
- *
- * @return Form
- */
- protected function form()
- {
- $form = new Form(new Order());
- $form->number('user_id', __('User id'));
- $form->number('docter_id', __('Docter id'));
- $form->number('patient_id', __('Patient id'));
- $form->number('organization_id', __('Organization id'));
- $form->text('order_sn', __('Order sn'));
- $form->switch('payment_type', __('Payment type'))->default(1);
- $form->switch('product_type', __('Product type'))->default(1);
- $form->switch('order_status', __('Order status'))->default(1);
- $form->switch('payment_status', __('Payment status'))->default(1);
- $form->number('total_amount', __('Total amount'));
- $form->number('payment_amount', __('Payment amount'));
- $form->number('discount_amount', __('Discount amount'));
- $form->number('payment_time', __('Payment time'));
- return $form;
- }
- }
|