Browse Source

社区端订单列表问题优化

whj 4 years ago
parent
commit
22ad9fc7c9

+ 24 - 0
app/Community/Actions/Clinc/Finished.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace App\Community\Actions\Clinc;
+
+use App\Models\Order;
+use Encore\Admin\Actions\RowAction;
+use Illuminate\Database\Eloquent\Model;
+
+class Finished extends RowAction
+{
+    public $name = '完成订单';
+
+    public function handle(Model $model)
+    {
+        $id = $this->row->id;
+        $res = Order::where('id',$id)->update(['order_status'=>Order::FINISHED]);
+        if($res){
+            return $this->response()->success('操作成功!')->refresh();
+        }
+
+        return $this->response()->error('操作失败!');
+    }
+
+}

+ 34 - 0
app/Community/Actions/Clinc/OrderCancel.php

@@ -0,0 +1,34 @@
+<?php
+
+namespace App\Community\Actions\Clinc;
+
+use App\Models\Order;
+use Encore\Admin\Actions\RowAction;
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Support\Facades\DB;
+
+class OrderCancel extends RowAction
+{
+    public $name = '取消订单';
+
+    public function handle(Model $model)
+    {
+        $id = $this->row->id;
+        DB::beginTransaction();
+        try {
+            //退还余额
+            $res = Order::orderCancel($id);
+            DB::commit();
+        } catch ( \Exception $e){
+            dd($e->getMessage());
+            DB::rollBack();
+            return $this->response()->error('操作失败!');
+        }
+
+        if($res){
+            return $this->response()->success('操作成功!')->refresh();
+        }
+        return $this->response()->error('操作失败!');
+    }
+
+}

+ 27 - 0
app/Community/Actions/Clinc/Reserved.php

@@ -0,0 +1,27 @@
+<?php
+
+namespace App\Community\Actions\Clinc;
+
+use App\Models\Order;
+use Encore\Admin\Actions\RowAction;
+use Illuminate\Database\Eloquent\Model;
+
+class Reserved extends RowAction
+{
+    public $name = '立即订单';
+
+    public function handle(Model $model)
+    {
+        $id = $this->row->id;
+
+        $res = Order::where('id',$id)->update(['order_status'=>Order::ISING]);
+
+
+        if($res){
+            return $this->response()->success('操作成功!')->refresh();
+        }
+
+        return $this->response()->error('操作失败!');
+    }
+
+}

+ 1 - 1
app/Community/Controllers/HomeController.php

@@ -20,7 +20,7 @@ class HomeController extends Controller
     }
     }
     public function home(Content $content)
     public function home(Content $content)
     {
     {
-        if(!Admin::user()->isAdministrator()){
+        if(!Admin::user()->inroles(['administrator','manager'])){
             return redirect('/cdms/notices');
             return redirect('/cdms/notices');
         }
         }
         return $content
         return $content

+ 13 - 9
app/Community/Controllers/NurseController.php

@@ -40,6 +40,7 @@ class NurseController extends AdminController
             return $w??0;
             return $w??0;
         });
         });
         $grid->column('type','类型')->display(function ($t){
         $grid->column('type','类型')->display(function ($t){
+            if(!$t) return '未知';
            return Nurse::getNursetype()[$t];
            return Nurse::getNursetype()[$t];
         });
         });
         $grid->column('today', __('今日预约'));
         $grid->column('today', __('今日预约'));
@@ -53,7 +54,8 @@ class NurseController extends AdminController
         })->editable();
         })->editable();
         $grid->column('remark', __('备注'))->editable('textarea');
         $grid->column('remark', __('备注'))->editable('textarea');
         $grid->actions(function ($actions){
         $grid->actions(function ($actions){
-            $actions->disableView();
+//            $actions->disableView();
+            $actions->disableDelete();
         });
         });
         return $grid;
         return $grid;
     }
     }
@@ -69,11 +71,13 @@ class NurseController extends AdminController
         $show = new Show(Nurse::findOrFail($id));
         $show = new Show(Nurse::findOrFail($id));
 
 
         $show->field('id', __('Id'));
         $show->field('id', __('Id'));
-        $show->field('name', __('Name'));
-        $show->field('price', __('Price'));
-        $show->field('remark', __('Remark'));
-        $show->field('created_at', __('Created at'));
-        $show->field('updated_at', __('Updated at'));
+        $show->field('name', __('项目名称'));
+        $show->field('price', __('价格'))->as(function ($v){
+            return round($v/100,4).'元';
+        });
+        $show->field('remark', __('备注'));
+        $show->field('created_at', __('创建时间'));
+        $show->field('updated_at', __('更新时间'));
 
 
         return $show;
         return $show;
     }
     }
@@ -91,12 +95,12 @@ class NurseController extends AdminController
         $form->editing(function ($f){
         $form->editing(function ($f){
             $f->model()->price /= 100;
             $f->model()->price /= 100;
         });
         });
-        $form->text('name', __('项目名称'));
+        $form->text('name', __('项目名称'))->rules('required',['required'=>'疫苗名称必须']);
         $form->select('type','类型')->options(Nurse::getNursetype())->when(1,function (Form $form){
         $form->select('type','类型')->options(Nurse::getNursetype())->when(1,function (Form $form){
             $form->hidden('price', __('价格'))->default(0);
             $form->hidden('price', __('价格'))->default(0);
         })->when(2,function (Form $form){
         })->when(2,function (Form $form){
             $form->text('price', __('价格'))->help('单位元');
             $form->text('price', __('价格'))->help('单位元');
-        });
+        })->rules('required',['required'=>'请填写价格']);
         $form->hidden('org_id')->value($org_id);
         $form->hidden('org_id')->value($org_id);
 
 
         $form->multipleSelect('docters','服务医生')->options(function () use ($org_id) {
         $form->multipleSelect('docters','服务医生')->options(function () use ($org_id) {
@@ -106,7 +110,7 @@ class NurseController extends AdminController
             $ids = DocterOrganization::where('organization_id',$org_id)->pluck('docter_id');
             $ids = DocterOrganization::where('organization_id',$org_id)->pluck('docter_id');
             if(empty($ids)) return [];
             if(empty($ids)) return [];
             return  Docter::whereIn('id',$ids)->pluck('name','id');
             return  Docter::whereIn('id',$ids)->pluck('name','id');
-        });
+        })->rules('required',['required'=>'请选择医生']);
         $form->textarea('remark', __('备注'));
         $form->textarea('remark', __('备注'));
         $form->saving(function ($form){
         $form->saving(function ($form){
             if($form->type == 1){
             if($form->type == 1){

+ 26 - 23
app/Community/Controllers/OrderController.php

@@ -2,9 +2,9 @@
 
 
 namespace App\Community\Controllers;
 namespace App\Community\Controllers;
 
 
-use App\Community\Actions\Nurse\Finished;
-use App\Community\Actions\Nurse\OrderCance;
-use App\Community\Actions\Nurse\Reserved;
+use App\Community\Actions\Clinc\Finished;
+use App\Community\Actions\Clinc\OrderCancel;
+use App\Community\Actions\Clinc\Reserved;
 use App\Models\Docter;
 use App\Models\Docter;
 use App\Models\Order;
 use App\Models\Order;
 use Encore\Admin\Controllers\AdminController;
 use Encore\Admin\Controllers\AdminController;
@@ -46,10 +46,10 @@ class OrderController extends AdminController
         }
         }
         $grid->column('id', __('Id'));
         $grid->column('id', __('Id'));
         $grid->column('orderUser.nickname', __('预约用户'));
         $grid->column('orderUser.nickname', __('预约用户'));
-        $grid->column('orderPatient.appoint_start_time', __('预约时间'))->display(function ($w){
+        $grid->column('orderPatient.appoint_start_time', __('预约开始时间'))->display(function ($w){
             return date('Y-m-d H:i:s',$w);
             return date('Y-m-d H:i:s',$w);
         });
         });
-        $grid->column('orderPatient.appoint_end_time', __('门诊时间'))->display(function ($w){
+        $grid->column('orderPatient.appoint_end_time', __('预约结束时间'))->display(function ($w){
             if(empty($w)) return '';
             if(empty($w)) return '';
             return date('Y-m-d H:i:s',$w);
             return date('Y-m-d H:i:s',$w);
         });
         });
@@ -57,7 +57,7 @@ class OrderController extends AdminController
 
 
         $grid->column('orderPatient.name', __('预约患者'))->display(function ($w){
         $grid->column('orderPatient.name', __('预约患者'))->display(function ($w){
             return $w==1?'男':'女';
             return $w==1?'男':'女';
-        });;
+        });
         $grid->column('orderPatient.sex', __('患者性别'));
         $grid->column('orderPatient.sex', __('患者性别'));
         $grid->column('orderPatient.birthday', __('患者年龄'))->display(function ($w){
         $grid->column('orderPatient.birthday', __('患者年龄'))->display(function ($w){
             return birthday_to_age($w);
             return birthday_to_age($w);
@@ -77,10 +77,11 @@ class OrderController extends AdminController
                 $actions->add(new Reserved());
                 $actions->add(new Reserved());
             }
             }
             if(!empty($actions->row->order_status) && $actions->row->order_status<= 3){
             if(!empty($actions->row->order_status) && $actions->row->order_status<= 3){
-                $actions->add(new OrderCance());
+                $actions->add(new OrderCancel());
                 $actions->add(new Finished());
                 $actions->add(new Finished());
             }
             }
-            $actions->disableView();
+//            $actions->disableView();
+            $actions->disableEdit();
             $actions->disableDelete();
             $actions->disableDelete();
         });
         });
         $grid->filter(function (Grid\Filter $filter)  {
         $grid->filter(function (Grid\Filter $filter)  {
@@ -105,21 +106,23 @@ class OrderController extends AdminController
         $show = new Show(Order::findOrFail($id));
         $show = new Show(Order::findOrFail($id));
 
 
         $show->field('id', __('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('orderUser.nickname', __('预约用户'));
+        $show->field('orderPatient.sex', __('患者性别'))->as(function ($w){
+            return $w==1?'男':'女';
+        });
+        $show->field('orderPatient.appoint_start_time', __('开始时间'));
+        $show->field('orderPatient.appoint_end_time', __('结束时间'));
+        $show->field('orderPatient.birthday', __('患者年龄'));
+        $show->field('docter.name', __('预约医生'));
+        $show->field('order_status', __('订单状态'))->using(Order::getStatus());
+        $show->field('payment_status', __('支付状态'))->using([1=>'待付款',2=>'已付款',3=>'退款中',4=>'已退款']);
+        $show->panel()->tools(function ($tools) {
+                $tools->disableEdit();
+                $tools->disableDelete();
+        });
+
+        $show->field('created_at', __('创建时间'));
+        $show->field('updated_at', __('更新时间'));
 
 
         return $show;
         return $show;
     }
     }

+ 1 - 1
app/Community/Controllers/Vaccine/OrganizationVaccineController.php

@@ -136,7 +136,7 @@ class OrganizationVaccineController extends AdminController
            $f->price *=100;
            $f->price *=100;
         });
         });
 
 
-        $form->number('stock', __('库存'))->rules('required',['required'=>'请输入库存']);
+        $form->number('stock', __('库存'))->rules('required',['required'=>'请输入库存'])->min(0);
         $form->text('supplier', __('厂家'))->rules('required',['required'=>'请输入厂家']);
         $form->text('supplier', __('厂家'))->rules('required',['required'=>'请输入厂家']);
         $form->textarea('remark', __('备注'));
         $form->textarea('remark', __('备注'));