소스 검색

冲突结局

Swdz-WangHaiJun 4 년 전
부모
커밋
0ed6b826fb
17개의 변경된 파일2039개의 추가작업 그리고 0개의 파일을 삭제
  1. 161 0
      app/Admin/Controllers/OrdersManagement/BookingOrderController.php
  2. 152 0
      app/Admin/Controllers/OrdersManagement/ConsultingOrdersController.php
  3. 124 0
      app/Admin/Controllers/OrdersManagement/OrdersDetailsController.php
  4. 139 0
      app/Admin/Controllers/OrdersManagement/RechargeOrderController.php
  5. 144 0
      app/Admin/Controllers/OrdersManagement/ServicePackOrderController.php
  6. 94 0
      app/Admin/Controllers/OrdersManagement/UserSuggestsController.php
  7. 105 0
      app/Admin/Controllers/UserManagement/BmUser/UserBalanceLogController.php
  8. 96 0
      app/Admin/Controllers/UserManagement/BmUser/UserCouponsController.php
  9. 104 0
      app/Admin/Controllers/UserManagement/BmUser/UserListController.php
  10. 113 0
      app/Admin/Controllers/UserManagement/BmUser/UserPatientsController.php
  11. 132 0
      app/Admin/Controllers/UserManagement/BmUser/UserServiceController.php
  12. 138 0
      app/Admin/Controllers/UserManagement/DocterManagement/ApproveController.php
  13. 82 0
      app/Admin/Controllers/UserManagement/DocterManagement/DocterTeamController.php
  14. 132 0
      app/Admin/Controllers/UserManagement/DocterManagement/DoctorManagementController.php
  15. 99 0
      app/Admin/Controllers/UserManagement/DocterManagement/QualificationsController.php
  16. 105 0
      app/Admin/Controllers/UserManagement/DocterManagement/SignUpController.php
  17. 119 0
      app/Admin/Controllers/UserManagement/DocterManagement/UserEvaluatesController.php

+ 161 - 0
app/Admin/Controllers/OrdersManagement/BookingOrderController.php

xqd
@@ -0,0 +1,161 @@
+<?php
+
+namespace App\Admin\Controllers\OrdersManagement;
+
+use App\Models\Order;
+use App\Admin\Actions\backstage\Orders\OrderDetails;
+use Encore\Admin\Controllers\AdminController;
+use App\Admin\Actions\backstage\User\MapDepot;
+use App\Admin\Actions\backstage\User\Suggests;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class BookingOrderController 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()->wherein('product_type',[3,4,5]);
+
+        //筛选
+
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->column(1/3, function ($filter) {
+                $filter->like('user.nickname','用户姓名');
+                $filter->like('docter.name','医生姓名');
+                $filter->like('orderPatient.name','患者姓名');
+            });
+            $filter->column(1/3, function ($filter) {
+                $filter->equal('user_id', '用户id');
+                $filter->equal('docter_id', '医生id');
+            });
+            $filter->column(1/3,function ($filter) {
+                $filter->equal('product_type','预约类型')->radio(
+                    [
+                        ''=>'不限',
+                        3=>'门诊预约',
+                        4=>'疫苗接种预约',
+                        5=>'儿保预约'
+                    ]
+                );
+                $filter->equal('order_status','订单状态')->radio(
+                    [
+                        ''=>'不限',
+                        1=>'未支付',
+                        2=>'待接单',
+                        3=>'进行中',
+                        4=>'已完成',
+                        5=>'已取消'
+                    ]
+                );
+            });
+        });
+
+        $grid->actions(function ($actions) {
+            // 去掉删除
+            $actions->disableDelete();
+            // 去掉编辑
+            $actions->disableEdit();
+            // 去掉查看
+            $actions->disableView();
+            $actions->add(new OrderDetails());
+            $actions->add(new MapDepot());
+            $actions->add(new Suggests());
+        });
+
+        $grid->column('id', __('Id'))->sortable();
+        $grid->column('user_id', __('用户id'));
+        $grid->column('user.nickname', __('用户姓名'));
+        $grid->column('docter_id', __('医生id'));
+        $grid->column('docter.name', __('医生姓名'));
+        $grid->column('patient_id', __('患者id'));
+        $grid->column('orderPatient.name', __('患者姓名'));
+        $grid->column('orderPatient.appoint_start_time', __('预约日期'))->display(function ($time){
+            return date('Y-m-d H:i:s',$time);
+        });
+        $grid->column('orderPatient.appoint_end_time', __('就诊日期'))->display(function ($time){
+            return date('Y-m-d H:i:s',$time);
+        });
+        $grid->column('product_type', __('产品类型'))->using([3=>'门诊预约',4=>'疫苗接种预约',5=>'儿保预约']);
+        $grid->column('payment_type', __('支付方式'))->using([1=>'微信支付',2=>'余额支付']);
+        $grid->column('order_status', __('订单状态'))->using([1=>'未支付',2=>'待接单',3=>'进行中',4=>'已完成',5=>'已取消']);
+        $grid->column('payment_status', __('支付状态'))->using([1=>'待付款',2=>'已付款',3=>'退款中',4=>'已退款']);
+
+        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'));
+        $show->field('outtime', __('Outtime'));
+        $show->field('receiving_time', __('Receiving time'));
+
+        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'));
+        $form->number('outtime', __('Outtime'));
+        $form->number('receiving_time', __('Receiving time'));
+
+        return $form;
+    }
+}

+ 152 - 0
app/Admin/Controllers/OrdersManagement/ConsultingOrdersController.php

xqd
@@ -0,0 +1,152 @@
+<?php
+
+namespace App\Admin\Controllers\OrdersManagement;
+
+use App\Admin\Actions\backstage\Orders\OrderDetails;
+use App\Admin\Actions\backstage\User\MapDepot;
+use App\Admin\Actions\backstage\User\Suggests;
+use App\Models\Order;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class ConsultingOrdersController 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()->wherein('product_type',[1,2]);
+        //筛选
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->column(1/3, function ($filter) {
+                $filter->like('user.nickname','用户姓名');
+                $filter->equal('user_id', '用户id');
+            });
+            $filter->column(1/3, function ($filter) {
+                $filter->like('docter.name','医生姓名');
+                $filter->equal('docter_id', '医生id');
+                $filter->equal('product_type','产品类型')->radio(
+                    [
+                        ''=>'不限',
+                        1=>'电话咨询',
+                        2=>'图文咨询',
+                    ]
+                );
+            });
+            $filter->column(1/3, function ($filter) {
+                $filter->like('orderPatient.name','患者姓名');
+                $filter->equal('order_status','订单状态')->radio(
+                    [
+                        ''=>'不限',
+                        1=>'未支付',
+                        2=>'待接单',
+                        3=>'进行中',
+                        4=>'已完成',
+                        5=>'已取消'
+                    ]
+                );
+            });
+        });
+        //操作
+        $grid->actions(function ($actions) {
+            // 去掉删除
+            $actions->disableDelete();
+            // 去掉编辑
+            $actions->disableEdit();
+            // 去掉查看
+            $actions->disableView();
+            $actions->add(new OrderDetails());
+            $actions->add(new MapDepot());
+            $actions->add(new Suggests());
+
+        });
+        $grid->column('id', __('Id'))->sortable();
+        $grid->column('user_id', __('用户id'));
+        $grid->column('user.nickname', __('用户姓名'));
+        $grid->column('docter_id', __('医生id'));
+        $grid->column('docter.name', __('医生姓名'));
+        $grid->column('patient_id', __('患者id'));
+        $grid->column('orderPatient.name', __('患者姓名'));
+        $grid->column('orderPatient.symptoms', __('患者描述'));
+        $grid->column('product_type', __('产品类型'))->using([1=>'电话咨询',2=>'图文咨询']);
+        $grid->column('payment_type', __('支付方式'))->using([1=>'微信支付',2=>'余额支付']);
+        $grid->column('order_status', __('订单状态'))->using([1=>'未支付',2=>'待接单',3=>'进行中',4=>'已完成',5=>'已取消']);
+        $grid->column('payment_status', __('支付状态'))->using([1=>'待付款',2=>'已付款',3=>'退款中',4=>'已退款']);
+
+        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'));
+        $show->field('outtime', __('Outtime'));
+        $show->field('receiving_time', __('Receiving time'));
+
+        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'));
+        $form->number('outtime', __('Outtime'));
+        $form->number('receiving_time', __('Receiving time'));
+
+        return $form;
+    }
+}

+ 124 - 0
app/Admin/Controllers/OrdersManagement/OrdersDetailsController.php

xqd
@@ -0,0 +1,124 @@
+<?php
+
+namespace App\Admin\Controllers\OrdersManagement;
+
+use App\Models\Order;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class OrdersDetailsController 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->disableActions();
+        $grid->column('id', __('Id'));
+        $grid->column('product_type', __('产品类型'))->using([
+            1=>'电话咨询',
+            2=>'图文咨询',
+            3=>'门诊预约',
+            4=>'疫苗接种预约',
+            5=>'儿保预约',
+            6=>'服务包',
+            7=>'充值订单'
+        ]);
+        $grid->column('payment_type', __('支付方式'))->using([1=>'微信支付',2=>'余额支付']);
+        $grid->column('order_status', __('订单状态'))->using([1=>'未支付',2=>'待接单',3=>'进行中',4=>'已完成',5=>'已取消']);
+        $grid->column('payment_status', __('支付状态'))->using([1=>'待付款',2=>'已付款',3=>'退款中',4=>'已退款']);
+        $grid->column('payment_time', __('支付时间'))->display(function ($time){
+            return date('Y-m-d H:i:s',$time);
+        });
+        $grid->column('receiving_time', __('接单时间'))->display(function ($time){
+            return date('Y-m-d H:i:s',$time);
+        });
+        $grid->column('end_time', __('订单完成时间'))->display(function ($time){
+            return date('Y-m-d H:i:s',$time);
+        });
+        $grid->column('total_amount', __('订单总金额'))->display(function ($money){
+            return $money/100;
+        });
+        $grid->column('payment_amount', __('用户实际支付的金额'))->display(function ($money){
+            return $money/100;
+        });
+        $grid->column('discount_amount', __('折扣金额'))->display(function ($money){
+            return $money/100;
+        });
+
+
+        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'));
+        $show->field('outtime', __('Outtime'));
+        $show->field('receiving_time', __('Receiving time'));
+
+        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'));
+        $form->number('outtime', __('Outtime'));
+        $form->number('receiving_time', __('Receiving time'));
+
+        return $form;
+    }
+}

+ 139 - 0
app/Admin/Controllers/OrdersManagement/RechargeOrderController.php

xqd
@@ -0,0 +1,139 @@
+<?php
+
+namespace App\Admin\Controllers\OrdersManagement;
+
+use App\Models\Order;
+use App\Admin\Actions\backstage\Orders\OrderDetails;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class RechargeOrderController 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()->wherein('product_type',[7]);
+
+        //筛选
+
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+                $filter->like('user.nickname','用户姓名');
+                $filter->equal('user_id', '用户id');
+                $filter->equal('order_status','订单状态')->radio(
+                    [
+                        ''=>'不限',
+                        1=>'未支付',
+                        2=>'待接单',
+                        3=>'进行中',
+                        4=>'已完成',
+                        5=>'已取消'
+                    ]
+                );
+            });
+
+        $grid->actions(function ($actions) {
+            // 去掉删除
+            $actions->disableDelete();
+            // 去掉编辑
+            $actions->disableEdit();
+            // 去掉查看
+            $actions->disableView();
+            $actions->add(new OrderDetails());
+        });
+
+        $grid->column('id', __('Id'))->sortable();
+        $grid->column('user_id', __('用户id'));
+        $grid->column('user.nickname', __('用户姓名'));
+        $grid->column('product_type', __('产品类型'))->using([7=>'充值订单']);
+        $grid->column('payment_type', __('支付方式'))->using([1=>'微信支付',2=>'余额支付']);
+        $grid->column('total_amount', __('订单总金额'))->display(function ($money){
+            return $money/100;
+        });
+        $grid->column('payment_amount', __('用户实际支付的金额'))->display(function ($money){
+            return $money/100;
+        });
+        $grid->column('discount_amount', __('折扣金额'))->display(function ($money){
+            return $money/100;
+        });
+        $grid->column('order_status', __('订单状态'))->using([1=>'未支付',2=>'待接单',3=>'进行中',4=>'已完成',5=>'已取消']);
+        $grid->column('payment_status', __('支付状态'))->using([1=>'待付款',2=>'已付款',3=>'退款中',4=>'已退款']);
+
+        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'));
+        $show->field('outtime', __('Outtime'));
+        $show->field('receiving_time', __('Receiving time'));
+
+        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'));
+        $form->number('outtime', __('Outtime'));
+        $form->number('receiving_time', __('Receiving time'));
+
+        return $form;
+    }
+}

+ 144 - 0
app/Admin/Controllers/OrdersManagement/ServicePackOrderController.php

xqd
@@ -0,0 +1,144 @@
+<?php
+
+namespace App\Admin\Controllers\OrdersManagement;
+
+use App\Models\Order;
+use App\Admin\Actions\backstage\Orders\OrderDetails;
+use Encore\Admin\Controllers\AdminController;
+use App\Admin\Actions\backstage\User\MapDepot;
+use App\Admin\Actions\backstage\User\Suggests;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class ServicePackOrderController 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()->wherein('product_type',[6]);
+        //筛选
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->column(1/2, function ($filter) {
+                $filter->like('user.nickname','用户姓名');
+                $filter->like('docter.name','医生姓名');
+                $filter->like('orderPatient.name','患者姓名');
+            });
+            $filter->column(1/2, function ($filter) {
+                $filter->equal('user_id', '用户id');
+                $filter->equal('docter_id', '医生id');
+                $filter->equal('order_status','订单状态')->radio(
+                    [
+                        ''=>'不限',
+                        1=>'未支付',
+                        2=>'待接单',
+                        3=>'进行中',
+                        4=>'已完成',
+                        5=>'已取消'
+                    ]
+                );
+            });
+        });
+        //操作
+        $grid->actions(function ($actions) {
+            // 去掉删除
+            $actions->disableDelete();
+            // 去掉编辑
+            $actions->disableEdit();
+            // 去掉查看
+            $actions->disableView();
+            $actions->add(new OrderDetails());
+            $actions->add(new MapDepot());
+            $actions->add(new Suggests());
+        });
+        $grid->column('id', __('Id'))->sortable();
+        $grid->column('user_id', __('用户id'));
+        $grid->column('user.nickname', __('用户姓名'));
+        $grid->column('patient_id', __('患者id'));
+        $grid->column('orderPatient.name', __('患者姓名'));
+        $grid->column('orderPack.service_pack_id', __('服务包id'));
+        $grid->column('orderPack.pack_name', __('服务包名称'));
+        $grid->column('orderPack.pack_price', __('服务包价格'))->display(function ($money){
+            return $money/100;
+        });
+        $grid->column('product_type', __('产品类型'))->using([6=>'服务包订单']);
+        $grid->column('payment_type', __('支付方式'))->using([1=>'微信支付',2=>'余额支付']);
+        $grid->column('order_status', __('订单状态'))->using([1=>'未支付',2=>'待接单',3=>'进行中',4=>'已完成',5=>'已取消']);
+        $grid->column('payment_status', __('支付状态'))->using([1=>'待付款',2=>'已付款',3=>'退款中',4=>'已退款']);
+
+        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'));
+        $show->field('outtime', __('Outtime'));
+        $show->field('receiving_time', __('Receiving time'));
+
+        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'));
+        $form->number('outtime', __('Outtime'));
+        $form->number('receiving_time', __('Receiving time'));
+
+        return $form;
+    }
+}

+ 94 - 0
app/Admin/Controllers/OrdersManagement/UserSuggestsController.php

xqd
@@ -0,0 +1,94 @@
+<?php
+
+namespace App\Admin\Controllers\OrdersManagement;
+
+use App\Models\Suggest;
+use App\Models\User;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class UserSuggestsController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '病例意见单';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new Suggest());
+        $uesr_id = \request('patient_id');
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->equal('patient_id','档案id');
+        });
+        $grid->column('id', __('Id'));
+        $grid->column('order_id', __('订单id'));
+        $grid->column('user_id', __('用户id'));
+        $grid->column('patient_id', __('档案id'));
+        $grid->column('symptoms', __('病症'))->limit(20,'...');
+        $grid->column('pathogen', __('病因'))->limit(20,'...');
+        $grid->column('suggest', __('结论建议'))->limit(20,'...');
+        $grid->column('supplement_reason', __('补充原因'))->limit(20,'...');
+        $grid->column('supplement_content', __('补充内容'))->limit(20,'...');
+        $grid->column('created_at', __('创建时间'));
+        $grid->column('updated_at', __('更新时间'));
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(Suggest::findOrFail($id));
+
+        $show->field('id', __('Id'));
+        $show->field('order_id', __('Order id'));
+        $show->field('user_id', __('User id'));
+        $show->field('patient_id', __('Patient id'));
+        $show->field('symptoms', __('Symptoms'));
+        $show->field('pathogen', __('Pathogen'));
+        $show->field('suggest', __('Suggest'));
+        $show->field('supplement_reason', __('Supplement reason'));
+        $show->field('supplement_content', __('Supplement content'));
+        $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 Suggest());
+
+        $form->number('order_id', __('Order id'));
+        $form->number('user_id', __('User id'));
+        $form->number('patient_id', __('Patient id'));
+        $form->text('symptoms', __('Symptoms'));
+        $form->text('pathogen', __('Pathogen'));
+        $form->text('suggest', __('Suggest'));
+        $form->text('supplement_reason', __('Supplement reason'));
+        $form->text('supplement_content', __('Supplement content'));
+
+        return $form;
+    }
+}

+ 105 - 0
app/Admin/Controllers/UserManagement/BmUser/UserBalanceLogController.php

xqd
@@ -0,0 +1,105 @@
+<?php
+
+namespace App\Admin\Controllers\UserManagement\BmUser;
+
+use App\Models\UserBalanceLog;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class UserBalanceLogController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '余额明细';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new UserBalanceLog());
+        //根据id筛选数据
+        $uesr_id = \request('user_id');
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->equal('user_id','用户id');
+        });
+        //关闭全部的操作
+        $grid->disableActions();
+
+        $grid->column('id', __('Id'));
+        $grid->column('user_id', __('用户ID'));
+        $grid->column('user.nickname', __('用户名称'));
+        $grid->column('admin_user_id', __('后台用户ID'));
+        $grid->column('type', __('类型'))
+            ->using([1=>'订单消费',2=>'用户充值',3=>'后台赠送']);
+        $grid->column('relation_id', __('订单id'));
+        $grid->column('before_balance', __('变化前的余额'))->display(function ($price){
+            return $price/100;
+        });
+        $grid->column('change_balance', __('改变的余额'))->display(function ($price){
+            return $price/100;
+        });
+        $grid->column('after_balance', __('变化后的余额'))->display(function ($price){
+            return $price/100;
+        });
+        $grid->column('remark', __('备注'));
+        $grid->column('created_at', __('创建时间'));
+        $grid->column('updated_at', __('更新时间'));
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(UserBalanceLog::findOrFail($id));
+
+        $show->field('id', __('Id'));
+        $show->field('user_id', __('User id'));
+        $show->field('admin_user_id', __('Admin user id'));
+        $show->field('type', __('Type'));
+        $show->field('relation_id', __('Relation id'));
+        $show->field('before_balance', __('Before balance'));
+        $show->field('change_balance', __('Change balance'));
+        $show->field('after_balance', __('After balance'));
+        $show->field('remark', __('Remark'));
+        $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 UserBalanceLog());
+
+        $form->number('user_id', __('User id'));
+        $form->number('admin_user_id', __('Admin user id'));
+        $form->switch('type', __('Type'));
+        $form->number('relation_id', __('Relation id'));
+        $form->number('before_balance', __('Before balance'));
+        $form->number('change_balance', __('Change balance'));
+        $form->number('after_balance', __('After balance'));
+        $form->text('remark', __('Remark'));
+
+        return $form;
+    }
+}

+ 96 - 0
app/Admin/Controllers/UserManagement/BmUser/UserCouponsController.php

xqd
@@ -0,0 +1,96 @@
+<?php
+
+namespace App\Admin\Controllers\UserManagement\BmUser;
+
+use App\Models\UserCoupon;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class UserCouponsController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '优惠券列表';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new UserCoupon());
+        $uesr_id = \request('user_id');
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->equal('user_id','用户id');
+        });
+        $grid->disableActions();
+        $grid->column('id', __('Id'));
+        $grid->column('user_id', __('用户ID'));
+        $grid->column('order_id', __('订单'));
+        $grid->column('coupon_id', __('优惠券ID'));
+        $grid->column('name', __('券名称'));
+        $grid->column('title', __('券标题'));
+        $grid->column('desc', __('使用说明'));
+        $grid->column('rules', __('使用规则'));
+        $grid->column('icon', __('券图标'))->image();
+        $grid->column('status', __('状态'))->using([1=>'可用',2=>'已用',3=>'已过期']);
+        $grid->column('type', __('类型'))->using([1=>'满减券',2=>'折扣券']);
+        $grid->column('usable_type', __('可用类型'))->using([1=>'全部产品通用',2=>'部分产品可用']);
+        $grid->column('money', __('满减券的优惠钱数'))->display(function ($money){
+            return $money/100;
+        });
+        $grid->column('discount', __('折扣'));
+        $grid->column('min_consume_amount', __('最低消费金额'))->display(function ($money){
+            return $money/100;
+        });
+        $grid->column('max_reduce_amount', __('折扣券的最大抵扣金额'))->display(function ($money){
+            return $money/100;
+        });
+        $grid->column('expire_type', __('过期类型'))->using([1=>'领取N天过期',2=>'设置固定过期时间']);
+        $grid->column('effective_days', __('有效天数'));
+        $grid->column('start_time', __('有效期开始时间'))->display(function ($time){
+            return date("Y-m-d H:i",$time);
+        });
+        $grid->column('end_time', __('有效期结束时间'))->display(function ($time){
+            return date("Y-m-d H:i",$time);
+        });
+        $grid->column('expire_time', __('过期时间'))->display(function ($time){
+            return date("Y-m-d H:i",$time);
+        });
+        $grid->column('use_time', __('使用时间'));
+        $grid->column('created_at', __('创建时间'));
+        $grid->column('updated_at', __('更新时间'));
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(UserCoupon::findOrFail($id));
+        return $show;
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        $form = new Form(new UserCoupon());
+        return $form;
+    }
+}

+ 104 - 0
app/Admin/Controllers/UserManagement/BmUser/UserListController.php

xqd
@@ -0,0 +1,104 @@
+<?php
+
+namespace App\Admin\Controllers\UserManagement\BmUser;
+
+
+use App\Admin\Actions\backstage\User\archives;
+use App\Admin\Actions\backstage\User\BalanceLog;
+use App\Admin\Actions\backstage\User\BlackList;
+use App\Admin\Actions\backstage\User\coupons;
+use App\Models\Patient;
+use App\Models\User;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class UserListController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '用户列表';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new User());
+        $grid->actions(function ($actions) {
+        // 去掉删除
+        $actions->disableDelete();
+        // 去掉编辑
+        $actions->disableEdit();
+        // 去掉查看
+        $actions->disableView();
+        $actions->add(new archives());
+        $actions->add(new BalanceLog());
+        $actions->add(new BlackList());
+        $actions->add(new coupons());
+    });
+        //筛选
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->equal('phone','手机')->mobile()->placeholder("请输入手机");
+            $filter->like('patient.name','患者姓名')->placeholder("请输入患者姓名");
+            $filter->like('nickname','昵称');
+            $filter->equal('status','用户状态')->radio([
+                ''   => '不限',
+                0    => '黑名单',
+                1    => '正常',
+            ]);
+            $filter->equal('is_pack','用户状态')->radio([
+                ''   => '全部用户',
+                0    => '普通用户',
+                1    => '服务包用户',
+            ]);
+        });
+            $grid ->model()->where('status','>=','0');
+            $grid->column('id', __('用户id'))->sortable();
+            $grid->column('nickname', __('用户名'));
+            $grid->column('sex', __('性别'))->using([0=>'未知',1=>'男',2=>'女']);
+            $grid->column('age', __('年龄'));
+            $grid->column('status', __('状态'))->using([0=>'黑名单',1=>'正常',]);
+            $grid->column('is_pack', __('用户身份'))->using([0=>'普通用户',1=>'付费用户']);
+            $grid->column('balance', __('当前余额'))->display(function ($price){
+                return $price/100;
+            });
+            $grid->column('created_at', __('注册时间'));
+            $grid->column('last_login_time', __('最后登录时间'))->display(function ($time){
+                return date("Y-m-d H:i",$time);
+            });
+//            $grid->column('patient', __('患者姓名'))->pluck('name')->map('ucwords')->implode(',');
+            $grid->column('patient', __('患者姓名'))->pluck('name')->label('default');
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(User::findOrFail($id));
+        return $show;
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        $form = new Form(new User());
+        return $form;
+    }
+}

+ 113 - 0
app/Admin/Controllers/UserManagement/BmUser/UserPatientsController.php

xqd
@@ -0,0 +1,113 @@
+<?php
+
+namespace App\Admin\Controllers\UserManagement\BmUser;
+
+use App\Admin\Actions\backstage\User\MapDepot;
+use App\Admin\Actions\backstage\User\Suggests;
+use App\Models\Patient;
+use Encore\Admin\Controllers\AdminController;
+use App\Admin\Actions\backstage\User\service;
+use Illuminate\Http\Request;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class UserPatientsController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '档案';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new Patient());
+        $uesr_id = \request('user_id');
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->equal('user_id','用户id');
+            $filter->equal('id','患者id');
+            $filter->like('name','患者姓名');
+        });
+        $grid->actions(function ($actions) {
+            // 去掉删除
+            $actions->disableDelete();
+            // 去掉编辑
+            $actions->disableEdit();
+            //服务包
+            $actions->add(new service());
+
+        });
+        $grid->column('id', __('档案id'));
+        $grid->column('user_id', __('用户id'));
+        $grid->column('name', __('患者姓名'));
+        $grid->column('sex', __('性别'))->using([0=>'未知',1=>'男',2=>'女',]);
+        $grid->column('avatar', __('头像'))->image("",100,100);
+        $grid->column('age', __('年龄'));
+        $grid->column('email', __('邮箱'));
+        $grid->column('phone', __('联系电话'));
+        $grid->column('address', __('家庭住址'))->limit(20,'...');
+        $grid->column('guardian_name', __('监护人姓名'));
+        $grid->column('card_type', __('证件类型'))->using([1=>'身份证',2=>'护照']);
+        $grid->column('card_number', __('证件号'));
+        $grid->column('social_card_number', __('社保卡号'));
+        $grid->column('created_at', __('创建时间'));
+        $grid->column('updated_at', __('更新时间'));
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(Patient::findOrFail($id));
+
+        $show->field('id', __('档案id'));
+        $show->field('user_id', __('用户id'));
+        $show->field('name', __('姓名'));
+        $show->field('sex', __('性别'))->using([0=>'未知',1=>'男',2=>'女',]);
+        $show->field('avatar', __('头像'))->image();
+        $show->field('card_img_url', __('身份证正面照片'))->image();
+        $show->field('card_back_img_url', __('身份证背面照片'))->image();
+        $show->field('birthday', __('生日'));
+        $show->field('age', __('年龄'));
+        $show->field('email', __('邮箱'));
+        $show->field('phone', __('联系电话'));
+        $show->field('address', __('家庭住址'));
+        $show->field('guardian_name', __('监护人姓名'));
+        $show->field('relationship_type', __('与就诊人关系类型'))
+            ->using([1=>'父亲',2=>'母亲',3=>'祖父',4=>'祖母',5=>'外祖父',6=>'外祖母',7=>'叔侄',8=>'其他']);
+        $show->field('info', __('就诊信息'));
+        $show->field('card_type', __('证件类型'))->using([1=>'身份证',2=>'护照']);
+        $show->field('card_number', __('证件号'));
+        $show->field('social_card_number', __('社保卡号'));
+        $show->field('born_hospital', __('出生医院'));
+        $show->field('created_at', __('创建时间'));
+        $show->field('updated_at', __('更新时间'));
+
+        return $show;
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        $form = new Form(new Patient());
+        return $form;
+    }
+}

+ 132 - 0
app/Admin/Controllers/UserManagement/BmUser/UserServiceController.php

xqd
@@ -0,0 +1,132 @@
+<?php
+
+namespace App\Admin\Controllers\UserManagement\BmUser;
+
+use App\Models\Order;
+use App\Models\OrderPack;
+use App\Models\Patient;
+use App\Admin\Actions\backstage\User\Insurance ;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class UserServiceController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '服务包-保单';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new Order());
+        $product_type = 6;
+        $uesr_id = \request('user_id');
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->equal('patient_id','档案id');
+            $filter->equal('product_type','订单类型');
+        });
+        $grid->actions(function ($actions) {
+
+            // 去掉删除
+            $actions->disableDelete();
+
+            // 去掉编辑
+            $actions->disableEdit();
+            //保险单链接
+            $actions->add(new Insurance());
+        });
+
+        $grid->column('orderPack.id', __('Id'));
+        $grid->column('orderPack.order_id', __('订单id'));
+        $grid->column('patient_id', __('患者姓名'))->display(function ($id){
+            return Patient::where('id',$id)->value('name');
+        });
+        $grid->column('orderPack.service_pack_id', __('服务包id'));
+        $grid->column('orderPack.pack_name', __('服务包名称'));
+        $grid->column('orderPack.pack_intro', __('服务包简介'));
+        $grid->column('orderPack.pack_price', __('服务包价格'))->display(function ($price){
+            return $price/100;
+        });
+        $grid->column('orderPack.team_id', __('医生团队ID'));
+
+        $grid->column('orderPack.effective_days', __('有效天数'));
+        $grid->column('orderPack.start_time', __('开始时间'))->display(function ($start_time){
+            return date("Y-m-d H:i",$start_time);
+        });
+        $grid->column('orderPack.end_time', __('结束时间'))->display(function ($end_time){
+            return date("Y-m-d H:i",$end_time);
+        });
+        $grid->column('orderPack.created_at', __('创建时间'));
+        $grid->column('orderPack.updated_at', __('更新时间'));
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(Order::findOrFail($id));
+
+        $show->field('orderPack.id', __('Id'));
+        $show->field('orderPack.order_id', __('订单ID'));
+        $show->field('orderPack.service_pack_id', __('服务包ID'));
+        $show->field('orderPack.pack_name', __('服务包名称'));
+        $show->field('orderPack.pack_intro', __('服务包简介'));
+        $show->field('orderPack.pack_price', __('服务包价格'))->as(function ($price){
+            return $price/100;
+        });
+        $show->field('orderPack.insurance_policy', __('保单名称'));
+        $show->field('orderPack.insurance_img_url', __('保单图片链接'));
+        $show->field('orderPack.team_id', __('医生团队ID'));
+        $show->field('orderPack.phone_minutes', __('	电话分钟数'));
+        $show->field('orderPack.chat_num', __('图文咨询次数'));
+        $show->field('orderPack.appoint_num', __('门诊预约次数'));
+        $show->field('orderPack.vaccine_limit_amount', __('疫苗总金额限制'))->as(function ($price){
+            return $price/100;
+        });
+        $show->field('orderPack.nurses_limit_amount', __('儿保总金额限制'))->as(function ($price){
+            return $price/100;
+        });
+        $show->field('orderPack.effective_days', __('	有效天数'));
+        $show->field('orderPack.start_time', __('开始时间'))->as(function ($start_time){
+            return date("Y-m-d H:i",$start_time);
+        });
+        $show->field('orderPack.end_time', __('结束时间'))->as(function ($end_time){
+            return date("Y-m-d H:i",$end_time);
+        });
+        $show->field('orderPack.is_security', __('宝贝是否有医保'))
+            ->using([0=>'否',1=>'是']);
+        $show->field('orderPack.guardian_name', __('监护人姓名'));
+        $show->field('orderPack.relationship_type', __('与宝贝的关系'))
+            ->using([1=>'父亲',2=>'母亲',3=>'祖父',4=>'祖母',5=>'外祖父',6=>'外祖母',7=>'叔侄']);
+        $show->field('orderPack.created_at', __('创建时间'));
+        $show->field('orderPack.updated_at', __('更新时间'));
+
+        return $show;
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        $form = new Form(new Order());
+        return $form;
+    }
+}

+ 138 - 0
app/Admin/Controllers/UserManagement/DocterManagement/ApproveController.php

xqd
@@ -0,0 +1,138 @@
+<?php
+
+namespace App\Admin\Controllers\UserManagement\DocterManagement;
+
+use App\Admin\Actions\backstage\Pass;
+use App\Admin\Actions\backstage\Refuse;
+use App\Admin\Actions\backstage\Revoke;
+use App\Models\Docter;
+use App\Models\DocterOrganization;
+use App\Models\Office;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class ApproveController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '认证列表';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new DocterOrganization());
+        $grid ->model()->where('state','>',0);
+        $grid->column('id', __('Id'));
+        $grid->column('docter.id', __('医生ID'));
+        $grid->column('docter.name', __('医生姓名'));
+        $grid->column('docter.avatar', __('医生头像'))->image(50,50);
+        $grid->column('docter.sex', __('性别'))->using([0=>'未知',1=>'男',2=>'女']);
+        $grid->column('organization.name', __('机构'));
+        $grid->column('office.name', __('科室'));
+        $grid->column('qualification.name', __('医生资质'));
+        $grid->column('remarks', __('备注'));
+        $grid->column('state', __('认证状态'))->using([1=>'审核成功',2=>'审核驳回',3=>'待审核']);
+        $grid->column('authentication_time', __('签约时间'))->display(function ($time){
+            if ($time == 0){
+                return '';
+            }else
+            {
+                return $time;
+            }
+        });
+        $grid->column('authentication_end_time', __('签约到期时间'))->display(function ($time){
+            if ($time == 0){
+                return '';
+            }else
+            {
+                return $time;
+            }
+        });
+        //禁用创建按钮
+        $grid->disableCreateButton();
+        $grid->actions(function ($actions) {
+            // 去掉删除
+            $actions->disableDelete();
+            // 去掉编辑
+            $actions->disableEdit();
+            // 去掉查看
+            $actions->disableView();
+            //待审核状态下 给通过和驳回
+            if ($actions->row->state == 3){
+                //通过申请
+                $actions->add(new Pass());
+                //驳回申请
+                $actions->add(new Refuse());
+            }
+            //已认证状态下 给撤销
+            if ($actions->row->state == 1){
+                $actions->add(new Revoke());
+            }
+            //驳回状态下 不给任何操作
+            if ($actions->row->state == 2){
+
+            }
+
+        });
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+
+        $show = new Show(DocterOrganization::findOrFail($id));
+        $show->field('id', __('Id'));
+        $show->field('docter.id', __('医生ID'));
+        $show->field('docter.name', __('名字'));
+        $show->field('docter.sex', __('性别'))->using([0=>'未知',1=>'男',2=>'女']);
+        $show->field('docter.card_id', __('身份证'));
+        $show->field('organization.name', __('机构'));
+        $show->field('office.name', __('科室'));
+        $show->field('qualification.name', __('医生资质'));
+//        $show->field('docter.card_photo', __('身份证正反面'))->as(function ($id){
+////            dd($id);
+//            $imgs = explode(',',$id);
+//            $html = '';
+//            foreach ($imgs as $val){
+//                $html .='img src="'.$val.'"';
+//            }
+//            return "<{$html}>";
+////            return json_decode($id,true);
+//        });
+        $show->field('docter.card_photo', __('身份证正反面'))->image();
+        return $show;
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        $form = new Form(new DocterOrganization());
+
+        $form->number('docter_id', __('Docter id'));
+        $form->number('organization_id', __('Organization id'));
+        $form->number('offices_id', __('Offices id'));
+        $form->number('qualifications_id', __('Qualifications id'));
+        $form->number('state', __('State'));
+
+        return $form;
+    }
+}

+ 82 - 0
app/Admin/Controllers/UserManagement/DocterManagement/DocterTeamController.php

xqd
@@ -0,0 +1,82 @@
+<?php
+
+namespace App\Admin\Controllers\UserManagement\DocterManagement;
+
+use App\Models\TeamDocter;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class DocterTeamController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '团队管理';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new TeamDocter());
+
+        $docter_id = \request('docter_id');
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->equal('docter_id','医生');
+        });
+        //关闭操作栏
+        $grid->disableActions();
+
+        $grid->column('id', __('Id'));
+        $grid->column('docter_id', __('医生id'));
+        $grid->column('docter.name', __('医生姓名'));
+        $grid->column('team_id', __('团队id'));
+        $grid->column('team.name', __('团队名称'));
+        $grid->column('team.introduction', __('团队简介'));
+        $grid->column('created_at', __('创建时间'));
+        $grid->column('updated_at', __('更新时间'));
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(TeamDocter::findOrFail($id));
+
+        $show->field('id', __('Id'));
+        $show->field('docter_id', __('Docter id'));
+        $show->field('team_id', __('Team id'));
+        $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 TeamDocter());
+
+        $form->number('docter_id', __('Docter id'));
+        $form->number('team_id', __('Team id'));
+
+        return $form;
+    }
+}

+ 132 - 0
app/Admin/Controllers/UserManagement/DocterManagement/DoctorManagementController.php

xqd
@@ -0,0 +1,132 @@
+<?php
+
+namespace App\Admin\Controllers\UserManagement\DocterManagement;
+
+use App\Admin\Actions\backstage\Docters\SignUp;
+use App\Admin\Actions\backstage\Docters\Team;
+use App\Models\Docter;
+use App\Models\DocterOrganization;
+use App\Models\Organization;
+use App\Models\User;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class DoctorManagementController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '医生列表';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new Docter());
+
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->like('name','昵称');
+            $filter->equal('status','工作状态')->select([
+                0    => '禁用',
+                1    => '启用',
+            ]);
+
+        });
+
+        $grid->actions(function ($actions) {
+            // 去掉编辑
+            $actions->disableEdit();
+            // 去掉查看
+            $actions->disableView();
+            //签约管理
+            $actions->add(new SignUp());
+            //团队管理
+            $actions->add(new Team());
+        });
+
+        $grid->column('id', __('Id'))->sortable();
+        $grid->column('name', __('姓名'));
+        $grid->column('avatar', __('头像'))->image('',50,50);
+        $grid->column('score', __('评分'));
+        $grid->column('service_persons', __('服务人数'));
+        $states = [
+            'on'  => ['value' => 1, 'text' => '启用', 'color' => 'primary'],
+            'off' => ['value' => 0, 'text' => '禁用', 'color' => 'danger'],
+        ];
+        $grid->column('status', __('工作状态'))->switch($states);
+        $grid->column('is_then', __('认证状态'))->using([0=>'未认证',1=>'已认证']);
+        $grid->column('label', __('标签'))->label('info');
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(Docter::findOrFail($id));
+
+        $show->field('id', __('Id'));
+        $show->field('type', __('Type'));
+        $show->field('name', __('Name'));
+        $show->field('phone', __('Phone'));
+        $show->field('sex', __('Sex'));
+        $show->field('birthday', __('Birthday'));
+        $show->field('avatar', __('Avatar'));
+        $show->field('status', __('Status'));
+        $show->field('label', __('Label'));
+        $show->field('sign', __('Sign'));
+        $show->field('intro', __('Intro'));
+        $show->field('office_id', __('Office id'));
+        $show->field('qualification_id', __('Qualification id'));
+        $show->field('score', __('Score'));
+        $show->field('service_persons', __('Service persons'));
+        $show->field('eva_num', __('Eva num'));
+        $show->field('service_days', __('Service days'));
+        $show->field('phone_minutes', __('Phone minutes'));
+        $show->field('chat_price', __('Chat price'));
+        $show->field('phone_price', __('Phone price'));
+        $show->field('appoint_price', __('Appoint price'));
+        $show->field('is_chat', __('Is chat'));
+        $show->field('is_phone', __('Is phone'));
+        $show->field('is_appoint', __('Is appoint'));
+        $show->field('latitude', __('Latitude'));
+        $show->field('longitude', __('Longitude'));
+        $show->field('created_at', __('Created at'));
+        $show->field('updated_at', __('Updated at'));
+        $show->field('user_id', __('User id'));
+        $show->field('password', __('Password'));
+        $show->field('is_then', __('Is then'));
+        $show->field('practice', __('Practice'));
+        $show->field('card_photo', __('Card photo'));
+        $show->field('is_quail', __('Is quail'));
+        $show->field('card_id', __('Card id'));
+        $show->field('receiving_time', __('Receiving time'));
+
+        return $show;
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        $form = new Form(new Docter());
+
+        $form->switch('status', __('状态'));
+        return $form;
+    }
+}

+ 99 - 0
app/Admin/Controllers/UserManagement/DocterManagement/QualificationsController.php

xqd
@@ -0,0 +1,99 @@
+<?php
+
+namespace App\Admin\Controllers\UserManagement\DocterManagement;
+
+use App\Models\Qualification;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class QualificationsController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '职称类别';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new Qualification());
+
+        $grid->actions(function ($actions) {
+            // 去掉编辑
+            $actions->disableEdit();
+            // 去掉查看
+            $actions->disableView();
+        });
+
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->like('name','职称名称');
+            $filter->equal('status','状态')->select([
+                0    => '禁用',
+                1    => '启用',
+            ]);
+        });
+
+        $grid->column('id', __('Id'));
+        $grid->column('name', __('职称名称'));
+        $states = [
+            'on'  => ['value' => 1, 'text' => '启用', 'color' => 'primary'],
+            'off' => ['value' => 0, 'text' => '禁用', 'color' => 'danger'],
+        ];
+        $grid->column('status', __('状态'))->switch($states);
+        $grid->column('created_at', __('创建时间'));
+        $grid->column('updated_at', __('更新时间'));
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(Qualification::findOrFail($id));
+
+        $show->field('id', __('Id'));
+        $show->field('name', __('Name'));
+        $show->field('status', __('Status'));
+        $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 Qualification());
+
+        $form->text('name', __('职称名称'));
+        $form->switch('status', __('状态'))->default(1);
+        $form->footer(function ($footer) {
+            // 去掉`查看`checkbox
+            $footer->disableViewCheck();
+            // 去掉`继续编辑`checkbox
+            $footer->disableEditingCheck();
+            // 去掉`继续创建`checkbox
+            $footer->disableCreatingCheck();
+        });
+
+        return $form;
+    }
+}

+ 105 - 0
app/Admin/Controllers/UserManagement/DocterManagement/SignUpController.php

xqd
@@ -0,0 +1,105 @@
+<?php
+
+namespace App\Admin\Controllers\UserManagement\DocterManagement;
+use App\Models\DocterOrganization;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class SignUpController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '签约管理';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new DocterOrganization());
+        $docter_id = \request('docter_id');
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->equal('docter_id','医生');
+        });
+        $grid->actions(function ($actions) {
+            // 去掉删除
+            $actions->disableDelete();
+            // 去掉查看
+            $actions->disableView();
+
+            // 如果审核成功才能修改认证到期时间
+            if($actions->row->state != 1){
+                //去掉编辑
+                $actions->disableEdit();
+            }
+        });
+        $grid->column('id', __('Id'));
+        $grid->column('docter_id', __('医生id'));
+        $grid->column('docter.name', __('医生姓名'));
+        $grid->column('organization_id', __('机构id'));
+        $grid->column('organization.name', __('机构名字'));
+        $grid->column('state', __('审核状态'))->using([0=>'社区端待审核',1=>'审核成功',2=>'审核驳回',3=>'待审核']);
+        $grid->column('authentication_time', __('签约时间'))->display(function ($time){
+            if ($time == 0){
+                return '';
+            }else
+            {
+                return $time;
+            }
+        });
+        $grid->column('authentication_end_time', __('签约到期时间'))->display(function ($time){
+            if ($time == 0){
+                return '';
+            }else
+            {
+                return $time;
+            }
+        });
+        $grid->column('created_at', __('创建时间'));
+        $grid->column('updated_at', __('更新时间'));
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(DocterOrganization::findOrFail($id));
+
+        $show->field('id', __('Id'));
+        $show->field('docter_id', __('Docter id'));
+        $show->field('organization_id', __('Organization id'));
+        $show->field('offices_id', __('Offices id'));
+        $show->field('qualifications_id', __('Qualifications id'));
+        $show->field('state', __('State'));
+        $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 DocterOrganization());
+        $form->datetime('authentication_end_time', __('签约到期时间'));
+        return $form;
+    }
+}

+ 119 - 0
app/Admin/Controllers/UserManagement/DocterManagement/UserEvaluatesController.php

xqd
@@ -0,0 +1,119 @@
+<?php
+
+namespace App\Admin\Controllers\UserManagement\DocterManagement;
+
+use App\Admin\Actions\backstage\Evaluate\Ignore;
+use App\Admin\Actions\backstage\Evaluate\Pass;
+use App\Models\Evaluate;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class UserEvaluatesController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '评价管理';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new Evaluate());
+        $grid->actions(function ($actions) {
+            // 去掉删除
+            $actions->disableDelete();
+            // 去掉编辑
+            $actions->disableEdit();
+            //去掉查看
+            $actions->disableView();
+            //审核通过
+            $actions->add(new Pass());
+            //忽略
+            $actions->add(new Ignore());
+        });
+
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->like('user.nickname','用户名字');
+            $filter->like('docter.name','医生名字');
+            $filter->like('content','评价内容');
+            $filter->equal('status','审核状态')->select([
+                1   => '待审核',
+                2    => '审核通过',
+                3    => '忽略',
+            ]);
+        });
+
+        $grid->column('id', __('Id'));
+        $grid->column('order_id', __('订单ID'));
+        $grid->column('user.nickname', __('用户姓名'));
+        $grid->column('docter.name', __('医生名称'));
+        $grid->column('content', __('评价内容'));
+        $grid->column('score', __('评分'));
+        $grid->column('status', __('状态'))->using([1=>'待审核',2=>'审核通过',3=>'忽略']);
+        $grid->column('audit_time', __('审核时间'))->display(function ($time){
+            if($time == 0)
+                return '';
+            else
+            {
+                return date('Y-m-d H:i:s',$time);
+            }
+        });
+        $grid->column('created_at', __('创建时间'));
+        $grid->column('updated_at', __('更新时间'));
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(Evaluate::findOrFail($id));
+
+        $show->field('id', __('Id'));
+        $show->field('user_id', __('User id'));
+        $show->field('order_id', __('Order id'));
+        $show->field('docter_id', __('Docter id'));
+        $show->field('status', __('Status'));
+        $show->field('audit_time', __('Audit time'));
+        $show->field('content', __('Content'));
+        $show->field('score', __('Score'));
+        $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 Evaluate());
+
+        $form->number('user_id', __('User id'));
+        $form->number('order_id', __('Order id'));
+        $form->number('docter_id', __('Docter id'));
+        $form->switch('status', __('Status'))->default(1);
+        $form->number('audit_time', __('Audit time'));
+        $form->text('content', __('Content'));
+        $form->switch('score', __('Score'));
+
+        return $form;
+    }
+}