| xqd
@@ -0,0 +1,120 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\Community\Controllers;
|
|
|
+
|
|
|
+use App\Admin\Actions\Community\Notice\sendNotice;
|
|
|
+use App\models\Order;
|
|
|
+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 Order());
|
|
|
+
|
|
|
+ $grid->model()->GroupBy('patient_id');
|
|
|
+ $user = Admin::user();
|
|
|
+ if(empty(request('product_type'))){
|
|
|
+ $user_ids = Order::whereIn('product_type',[4,5])->distinct()->pluck('user_id');
|
|
|
+ $grid->model()->whereIn('user_id',$user_ids)->distinct();
|
|
|
+ }
|
|
|
+
|
|
|
+ $grid->column('orderUser.nickname', __('用户'));
|
|
|
+ $grid->column('orderPatient.name', __('患者'));
|
|
|
+ $grid->column('orderPatient.relationship_type', __('关系'))->using([1=>'父亲',2=>'母亲',3=>'祖父',4=>'祖母',5=>'外祖父',6=>'外祖母',7=>'叔侄',8=>'其他']);
|
|
|
+ $grid->column('orderPatient.phone', __('用户手机号'));
|
|
|
+ $grid->column('orderPatient.birthday', __('出生日期'));
|
|
|
+
|
|
|
+ $grid->filter(function ($flter){
|
|
|
+ $flter->like('orderPatient.name','请输入用户姓名');
|
|
|
+ $flter->like('orderUser.nickname','请输入监护人姓名');
|
|
|
+ $flter->between('orderUser.birthday','生日')->datetime();
|
|
|
+ $flter->equal('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;
|
|
|
+ }
|
|
|
+}
|