浏览代码

Merge branch 'master' of ssh://git.9026.com:2212/swdz-WangHaijun/BaoMa

zilong 4 年之前
父节点
当前提交
b9ea6ec824

+ 11 - 3
app/Community/Actions/Vaccine/AddVaccine.php

xqd
@@ -81,12 +81,20 @@ class AddVaccine extends RowAction
         $org_id =$admin->org_id;
         $order_id = $this->row->id;
 
+        $ids = OrderVaccine::where(['order_id'=>$order_id])->pluck('vaccine_id')->toArray();
         if($is_admin){
-            $list = Vaccine::where('stock','>',0)->pluck('name','id');
+            $list = Vaccine::where('stock','>',0)->whereNotIn('id',$ids)->pluck('name','id')->toArray();
         } else {
-            $list = Vaccine::where('stock','>',0)->where('org_id',$org_id)->pluck('name','id');
+            $list = Vaccine::where('stock','>',0)->whereNotIn('id',$ids)->where('org_id',$org_id)->pluck('name','id')->toArray();
+        }
+
+        //找出老疫苗
+        $vaccine = Vaccine::whereIn('id',$ids)->pluck('name','id')->toArray();
+        if(!empty($list)){
+            $list = ($list+$vaccine);
+        } else {
+            $list = $vaccine;
         }
-        $ids = OrderVaccine::where(['order_id'=>$order_id])->pluck('vaccine_id')->toArray();
         $this->multipleSelect('vaccine_id','选择疫苗')->options($list)->value($ids)->required();
     }
 

+ 7 - 4
app/Community/Controllers/NurseUserController.php

xqd xqd
@@ -35,8 +35,10 @@ class NurseUserController extends AdminController
 
         $grid->model()->orderByDesc('id');
         $grid->model()->GroupBy('patient_id');
-        $grid->column('orderPatient.name', __('姓名'));
-        $grid->column('orderUser.nickname', __('监护人'));
+        $grid->column('orderUser.nickname', __('用户'));
+        $grid->column('orderPatient.guardian_name', __('监护人'));
+        $grid->column('orderPatient.name', __('患者'));
+
         $grid->column('orderPatient.phone', __('监护人手机号'))->display(function ($w){
             if(empty($w)) return Patient::where('id',$this->patient_id)->value('phone');
             return $w;
@@ -58,8 +60,9 @@ class NurseUserController extends AdminController
         }
 
         $grid->filter(function ($flter){
-            $flter->like('orderPatient.name','请输入用户姓名');
-            $flter->like('orderUser.nickname','请输入监护人姓名');
+            $flter->like('orderPatient.name','请输入患者姓名');
+            $flter->like('orderUser.nickname','请输入用户名');
+            $flter->like('orderPatient.guardian_name','请输入监护人姓名');
             $flter->between('orderUser.birthday','生日')->datetime();
         });
 

+ 6 - 5
app/Community/Controllers/OrderController.php

xqd xqd xqd
@@ -12,6 +12,7 @@ use Encore\Admin\Facades\Admin;
 use Encore\Admin\Form;
 use Encore\Admin\Grid;
 use Encore\Admin\Show;
+use mysql_xdevapi\Warning;
 
 class OrderController extends AdminController
 {
@@ -51,11 +52,12 @@ class OrderController extends AdminController
             }
             $where ['organization_id']=$org_id;
         }
-        $grid->model()->where($where)->leftJoin('order_patients','order_patients.order_id','=','orders.id');
+        $res = request()->all();
+        $grid->model()->where($where);
         if(!empty($res['orderPatient']['appoint_start_time']['start']) || !empty($res['orderPatient']['appoint_start_time']['start']) ){
-            $grid->model()->orderBy('order_patients.appoint_start_time','asc');
+            $grid->model()->orderBy('appoint_start_time','desc');
         } else {
-            $grid->model()->orderBy('order_patients.appoint_start_time','desc');
+            $grid->model()->orderBy('appoint_start_time','desc');
         }
         $grid->column('id', __('Id'));
         $grid->column('orderUser.nickname', __('预约用户'));
@@ -104,9 +106,8 @@ class OrderController extends AdminController
                 return '<span class="label label-default">'.$info.'</span>';
             }
         });
-
 //        $grid->column('payment_status', __('支付状态'))->using([1=>'待付款',2=>'已付款',3=>'退款中',4=>'已退款']);
-        $grid->column('payment_status', __('支付状态'))->using(Order::getPayStatus())->label([1=>'warring',2=>'success',3=>'info',4=>'danger',5=>'warring']);
+        $grid->column('payment_status', __('支付状态'))->using(Order::getPayStatus())->label([1=>'warning',2=>'success',3=>'info',4=>'danger',5=>'default']);
 
         //查询
         $grid->quickSearch(function ($model, $query) {

+ 7 - 5
app/Community/Controllers/OrderNurseController.php

xqd xqd xqd
@@ -35,6 +35,8 @@ class OrderNurseController extends AdminController
     {
         $grid = new Grid(new Order());
 //        $grid->model()->orderByDesc('orders.id');
+        $res = request()->all();
+
         $grid->disableExport(false);
         $grid->export(function ($export) {
             $export->filename('儿保订单'.Date('Y-m-d',time()));
@@ -49,13 +51,13 @@ class OrderNurseController extends AdminController
         $where = ['product_type'=>5];
         if(!$is_admin){
             $org_id = $user->org_id;
-            $where['orders.organization_id']=$org_id;
+            $where['organization_id']=$org_id;
         }
-        $grid->model()->where($where)->leftJoin('order_patients','order_patients.order_id','=','orders.id');
+        $grid->model()->where($where);
         if(!empty($res['orderPatient']['appoint_start_time']['start']) || !empty($res['orderPatient']['appoint_start_time']['start']) ){
-            $grid->model()->orderBy('order_patients.appoint_start_time','asc');
+            $grid->model()->orderBy('appoint_start_time');
         } else {
-            $grid->model()->orderBy('order_patients.appoint_start_time','desc');
+            $grid->model()->orderBy('appoint_start_time','desc');
         }
         $grid->column('id', __('ID'));
         $grid->column('orderUser.user_name', __('预约用户'))->display(function($w){
@@ -100,7 +102,7 @@ class OrderNurseController extends AdminController
                 return '<span class="label label-default">'.$info.'</span>';
             }
         });
-        $grid->column('payment_status', __('支付状态'))->using(Order::getPayStatus())->label([1=>'warring',2=>'success',3=>'info',4=>'danger',5=>'warring']);
+        $grid->column('payment_status', __('支付状态'))->using(Order::getPayStatus())->label([1=>'warring',2=>'success',3=>'info',4=>'danger',5=>'default']);
         //查询
         $grid->quickSearch(function ($model, $query) {
             $model->whereHas('patients',function ($model) use ($query) {

+ 14 - 11
app/Community/Controllers/OrderVaccinesController.php

xqd xqd xqd
@@ -47,26 +47,29 @@ class OrderVaccinesController extends AdminController
             } );
         });
 
-        DB::enableQueryLog();
-
-
         $user = Admin::user();
         $is_admin = Admin::user()->inRoles(['administrator','devloper']);
         $where = ['product_type'=>4];
         if(!$is_admin){
             $org_id = $user->org_id;
-            $where = ['product_type'=>4,'orders.organization_id'=>$org_id];
+            $where = ['product_type'=>4,'organization_id'=>$org_id];
         }
-        $grid->model()->where($where)->leftJoin('order_patients','order_patients.order_id','=','orders.id');
+        $grid->model()->where($where);
         if(!empty($res['orderPatient']['appoint_start_time']['start']) || !empty($res['orderPatient']['appoint_start_time']['start']) ){
-            $grid->model()->orderBy('order_patients.appoint_start_time','asc');
+            $grid->model()->orderBy('appoint_start_time');
         } else {
-            $grid->model()->orderBy('order_patients.appoint_start_time','desc');
+            $grid->model()->orderBy('appoint_start_time','desc');
         }
 
-        $grid->column('order_id', __('Id'));
+        $grid->column('id', __('Id'));
         $grid->column('user.nickname', __('预约用户'));
-
+        $grid->column('orderPatient.phoe', __('电话'))->display(function ($w){
+            if(empty($w)) {
+                if(empty($this->orderUser->phone)) return '';
+                return $this->orderUser->phone;
+            }
+            return $w;
+        });
         $grid->column('appoint_start_time', __('预约时间'))->display(function ($w){
              if(empty($this->orderPatient) || empty($this->orderPatient->appoint_start_time)) return '';
             return date('Y-m-d H:i',$w).'~'.date('H:i',$this->appoint_end_time);
@@ -110,7 +113,7 @@ class OrderVaccinesController extends AdminController
 
         $grid->filter(function ($filter)  {
             $filter->column(1/2, function ($filter) {
-//                $filter->equal('docter.id','排班医生')->select('/cdms/api/getDocter');
+//                $filter->equal('docter.id','排班医生')->select('https://wechat.fresherbaby.com/api/getAppiontInfo?telphone=13808729518&sig=d7d875f10af1c341b8ba3d9e433e88aa&SecretKey=2018&st=2018&id=11&barcode=&area=12');
                 $filter->equal('order_status','订单状态')->select(Order::$_order_status);
                 $filter->timestampBetween('orderPatient.appoint_start_time','预约时间')->datetime();
             });
@@ -160,7 +163,7 @@ class OrderVaccinesController extends AdminController
             if(empty($vaccine_name) ) return '';
             return implode(',',$vaccine_name);
         });
-        $show->field('payment_status', __('支付状态'))->using([1=>'待付款',2=>'已付款',3=>'退款中',4=>'已退款'])->label('info');
+        $show->field('payment_status', __('支付状态'))->using(Order::getPayStatus())->label('info');
 
         $show->field('order_status', __('订单状态'))->using(Order::getStatus())->label('info');
         $show->field('created_at', __('创建时间'));

+ 3 - 1
app/Community/Controllers/UserNoticeController.php

xqd xqd
@@ -39,6 +39,7 @@ class UserNoticeController extends AdminController
 
 
         $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', __('用户手机号'));
@@ -46,7 +47,8 @@ class UserNoticeController extends AdminController
 
         $grid->filter(function ($flter){
             $flter->like('name','请输入患者姓名');
-            $flter->like('user.nickname','请输入监护人姓名');
+            $flter->like('user.nickname','用户');
+            $flter->like('guardian_name','请输入监护人姓名');
             $flter->like('phone','电话');
             $flter->between('birthday','生日')->datetime();
 //            $flter->timestampBetween('orderPatient.appoint_start_time','预约时间')->datetime();

+ 2 - 1
app/Community/Controllers/VaccineController.php

xqd
@@ -53,10 +53,11 @@ class VaccineController extends AdminController
             $actions->disableDelete();
         });
 
+        $grid->column('use_count', __('已使用'));
+        $grid->column('appoint_count', __('已预约'));
         $grid->column('stock', __('剩余库存'))->display(function ($w){
             return !empty($w) ? $w :  0;
         });
-        $grid->column('use_count', __('已使用量'));
 //        $grid->column('today_num', __('今日预约'))->display(function ()  {
 //            return Order::where(['product_type'=>4])->wherehas('orderVaccine',function ($query){
 //                $query->where('vaccine_id',$this->id);

+ 5 - 3
app/Community/Controllers/VaccineUserController.php

xqd xqd
@@ -37,8 +37,9 @@ class VaccineUserController extends AdminController
         }
 
         $grid->model()->GroupBy('patient_id');
+        $grid->column('orderUser.nickname', __('用户'));
+        $grid->column('orderPatient.guardian_name', __('监护人'));
         $grid->column('orderPatient.name', __('姓名'));
-        $grid->column('orderUser.nickname', __('监护人'));
         $grid->column('orderPatient.phone', __('监护人手机号'))->display(function ($w){
             if(empty($w)) return Patient::where('id',$this->patient_id)->value('phone');
             return $w;
@@ -49,8 +50,9 @@ class VaccineUserController extends AdminController
         });
 
         $grid->filter(function ($flter){
-            $flter->like('orderPatient.name','请输入用户姓名');
-            $flter->like('orderUser.nickname','请输入监护人姓名');
+            $flter->like('orderPatient.name','请输入患者姓名');
+            $flter->like('orderUser.nickname','请输入用户名');
+            $flter->like('orderPatient.guardian_name','请输入监护人姓名');
             $flter->between('orderUser.birthday','生日')->datetime();
         });
 

+ 12 - 3
app/Models/Vaccine.php

xqd xqd
@@ -6,7 +6,7 @@ class Vaccine extends BaseModel
 {
 
     const FREETYPE = 1, NOFREETYPE =2;
-    protected $appends = ['use_count'];
+    protected $appends = ['use_count','appoint_count'];
 
     protected static $_type = [
         self::FREETYPE => 'Ⅰ类',
@@ -28,9 +28,18 @@ class Vaccine extends BaseModel
     {
         $id = $this->attributes['id'];
         if(empty($id)) return 0;
-        return OrderVaccine::where(['vaccine_id'=>$id])->count();
+        return OrderVaccine::where(['vaccine_id'=>$id])->whereHas('orders',function($query){
+            $query->where('order_status',4);
+        })->count();
+    }
+    protected function getAppointCountAttribute()
+    {
+        $id = $this->attributes['id'];
+        if(empty($id)) return 0;
+        return OrderVaccine::where(['vaccine_id'=>$id])->whereHas('orders',function($query){
+            $query->where('order_status',3);
+        })->count();
     }
-
     public function organizationvaccines(){
         return $this->hasMany(OrganizationVaccines::class,'vaccine_id');
     }