jingyuzhi 4 年之前
父節點
當前提交
e24aa2e254
共有 75 個文件被更改,包括 988 次插入365 次删除
  1. 1 1
      app/Admin/Actions/Community/Docter/Failed.php
  2. 1 1
      app/Admin/Actions/Community/Docter/Pass.php
  3. 4 4
      app/Admin/Actions/backstage/Coupon/CouponBatchGrant.php
  4. 0 19
      app/Admin/Actions/backstage/Coupon/CouponDistribution.php
  5. 23 0
      app/Admin/Actions/backstage/Coupon/CouponDistributions.php
  6. 6 1
      app/Admin/Actions/backstage/Pass.php
  7. 1 1
      app/Admin/Actions/backstage/Refuse.php
  8. 25 3
      app/Admin/Actions/backstage/Revoke.php
  9. 2 11
      app/Admin/Controllers/CouponManagement/CouponDistributionUserList.php
  10. 11 9
      app/Admin/Controllers/CouponManagement/CouponManagementController.php
  11. 4 3
      app/Admin/Controllers/OrdersManagement/BookingOrderController.php
  12. 16 6
      app/Admin/Controllers/OrdersManagement/ConsultingOrdersController.php
  13. 2 1
      app/Admin/Controllers/OrdersManagement/OrdersDetailsController.php
  14. 2 2
      app/Admin/Controllers/OrdersManagement/RechargeOrderController.php
  15. 2 3
      app/Admin/Controllers/OrdersManagement/ServicePackOrderController.php
  16. 2 1
      app/Admin/Controllers/OrdersManagement/UserSuggestsController.php
  17. 2 1
      app/Admin/Controllers/UserManagement/BmUser/UserBalanceLogController.php
  18. 9 2
      app/Admin/Controllers/UserManagement/BmUser/UserCouponsController.php
  19. 3 1
      app/Admin/Controllers/UserManagement/BmUser/UserListController.php
  20. 2 1
      app/Admin/Controllers/UserManagement/BmUser/UserPatientsController.php
  21. 1 1
      app/Admin/Controllers/UserManagement/BmUser/UserServiceController.php
  22. 23 7
      app/Admin/Controllers/UserManagement/DocterManagement/ApproveController.php
  23. 1 1
      app/Admin/Controllers/UserManagement/DocterManagement/DocterTeamController.php
  24. 2 2
      app/Admin/Controllers/UserManagement/DocterManagement/DoctorManagementController.php
  25. 1 1
      app/Admin/Controllers/UserManagement/DocterManagement/QualificationsController.php
  26. 32 11
      app/Admin/Controllers/UserManagement/DocterManagement/SignUpController.php
  27. 8 2
      app/Admin/Controllers/UserManagement/DocterManagement/UserEvaluatesController.php
  28. 55 30
      app/Admin/routes.php
  29. 360 6
      app/Community/Controllers/ApiController.php
  30. 2 0
      app/Community/Controllers/DocterChatController.php
  31. 2 2
      app/Community/Controllers/DocterVerifyController.php
  32. 41 12
      app/Community/Controllers/HomeController.php
  33. 2 1
      app/Community/Controllers/NoticeController.php
  34. 11 1
      app/Community/Controllers/NurseController.php
  35. 7 5
      app/Community/Controllers/NurseUserController.php
  36. 8 1
      app/Community/Controllers/OfficeController.php
  37. 1 1
      app/Community/Controllers/OrderController.php
  38. 2 1
      app/Community/Controllers/OrderNurseController.php
  39. 1 1
      app/Community/Controllers/OrderVaccinesController.php
  40. 8 3
      app/Community/Controllers/ScheduleController.php
  41. 40 13
      app/Community/Controllers/StatController.php
  42. 15 7
      app/Community/Controllers/VaccineController.php
  43. 1 2
      app/Community/Controllers/VaccineUserController.php
  44. 13 0
      app/Community/routes.php
  45. 30 0
      app/Helpers/functions.php
  46. 135 160
      app/Http/Controllers/ScheDuleController.php
  47. 8 0
      app/Models/DocterOrganization.php
  48. 1 1
      app/Models/Office.php
  49. 2 1
      app/Models/Order.php
  50. 1 1
      app/Models/Organization.php
  51. 1 1
      app/Models/Patient.php
  52. 1 1
      app/Models/User.php
  53. 1 1
      config/app.php
  54. 7 5
      config/tenancy.php
  55. 0 0
      public/cdms/static/js/app.215f8c27.js
  56. 0 0
      public/cdms/static/js/app.215f8c27.js.map
  57. 0 0
      public/cdms/static/js/app.426d1eed.js
  58. 0 0
      public/cdms/static/js/app.426d1eed.js.map
  59. 0 0
      public/cdms/static/js/app.81757419.js
  60. 0 0
      public/cdms/static/js/app.81757419.js.map
  61. 0 0
      public/cdms/static/js/app.8628ae9c.js
  62. 0 0
      public/cdms/static/js/app.8628ae9c.js.map
  63. 0 0
      public/cdms/static/js/app.c37981e4.js
  64. 0 0
      public/cdms/static/js/app.c37981e4.js.map
  65. 0 0
      public/cdms/static/js/app.e96ab16e.js
  66. 0 0
      public/cdms/static/js/app.f1ec90df.js
  67. 0 0
      public/cdms/static/js/app.f1ec90df.js.map
  68. 0 0
      public/cdms/static/js/chunk-vendors.e71f87b8.js
  69. 0 0
      public/cdms/static/js/chunk-vendors.e71f87b8.js.map
  70. 二進制
      public/favicon.ico
  71. 1 0
      public/jquery-3.5.1.min.js
  72. 1 1
      resources/views/cdms/notice.blade.php
  73. 40 10
      resources/views/cdms/order_detail.blade.php
  74. 1 1
      resources/views/cdms/schedule.blade.php
  75. 3 0
      routes/web.php

+ 1 - 1
app/Admin/Actions/Community/Docter/Failed.php

xqd
@@ -15,7 +15,7 @@ class Failed extends RowAction
     protected $selector = '.failed';
 
     public $name = '驳回';
-    public function handle(Request $request)
+    public function handle()
     {
         DB::beginTransaction();
         try {

+ 1 - 1
app/Admin/Actions/Community/Docter/Pass.php

xqd
@@ -21,7 +21,7 @@ class Pass extends RowAction
         $name = $this->row->docter->name;
         try{
             $DocOrg = new DocterOrganization();
-            $DocOrg->where('id',$id)->update(['state'=>1]);
+            $DocOrg->where('id',$id)->update(['state'=>3]);
 //            $count = $DocOrg->where('state','!=',1)->where('docter_id',$docter_id)->count();
 //            if($count == 0){
 //                Docter::where(['id'=>$docter_id])->update(['is_then'=>1]);

+ 4 - 4
app/Admin/Actions/backstage/Coupon/CouponBatchGrant.php

xqd xqd xqd
@@ -25,8 +25,8 @@ class CouponBatchGrant extends BatchAction
         //获取过期类型是指定几天过期
         if ($coupon->expire_type == 1){
             $effective_days = $coupon->effective_days;
-            $expire_time = date("Y-m-d H:i:s",  ('+'.$effective_days.'day'));
-            $expire_time_num = strtotime($expire_time);
+            $str_time = '+'.$effective_days.'day';
+            $expire_time_num = strtotime($str_time);
             $arr = [
                 'user_id' => 0,
                 'coupon_id'=>$coupon_id,
@@ -46,7 +46,7 @@ class CouponBatchGrant extends BatchAction
                 'expire_time' => $expire_time_num,
                 'coupons_num'=>0
             ];
-        }else{
+        }else if ($coupon->expire_type == 2){
             $arr = [
                 'user_id' => 0,
                 'coupon_id'=>$coupon_id,
@@ -77,7 +77,7 @@ class CouponBatchGrant extends BatchAction
     }
     public function form()
     {
-        $name = Coupon::pluck('name','id');
+        $name = Coupon::where('position_type',2)->pluck('name','id');
         $this->select('id', '优惠券名称')->options($name);
     }
 }

+ 0 - 19
app/Admin/Actions/backstage/Coupon/CouponDistribution.php

xqd
@@ -1,19 +0,0 @@
-<?php
-
-namespace App\Admin\Actions\backstage\Coupon;
-
-use Encore\Admin\Actions\RowAction;
-use Illuminate\Database\Eloquent\Model;
-
-class CouponDistribution extends RowAction
-{
-    public $name = '优惠券发放';
-
-    public function handle(Model $model)
-    {
-        // $model ...
-
-        return $this->response()->success('跳转订单详情成功')->redirect('/admin/coupon_distribution_user_list?coupon_id='.$this->row->id.'');
-    }
-
-}

+ 23 - 0
app/Admin/Actions/backstage/Coupon/CouponDistributions.php

xqd
@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Admin\Actions\backstage\Coupon;
+
+use Encore\Admin\Actions\Action;
+use Illuminate\Http\Request;
+
+class CouponDistributions extends Action
+{
+    protected $selector = '.coupon-distributions';
+    public function handle(Request $request)
+    {
+        // $request ...
+
+        return $this->response()->success('跳转优惠券发放列表成功')->redirect('/admin/coupon_distribution_user_list');
+    }
+    public function html()
+    {
+        return <<<HTML
+        <a class="btn btn-sm btn-default coupon-distributions">优惠券发放</a>
+HTML;
+    }
+}

+ 6 - 1
app/Admin/Actions/backstage/Pass.php

xqd
@@ -15,7 +15,12 @@ class Pass extends RowAction
     {
 //         $model ...
 //        dd($model);
-        DocterOrganization::where('id',$model->id)->update(['state'=>2,'authentication_time'=>date('Y-m-d H:i:s')]);
+        $end_time = strtotime('+1year');
+        $authentication_end_time = date('Y-m-d H:i:s',$end_time);
+        DocterOrganization::where('id',$model->id)->update(['state'=>1,
+                                                            'authentication_time'=>date('Y-m-d H:i:s'),
+                                                            'authentication_end_time'=>$authentication_end_time]
+                                                            );
         Docter::where('id',$model->docter_id)->update(['is_then'=>1]);
         return $this->response()->success('审核通过')->refresh();
     }

+ 1 - 1
app/Admin/Actions/backstage/Refuse.php

xqd
@@ -12,7 +12,7 @@ class Refuse extends RowAction
     public function handle(Model $model)
     {
         // $model ...
-        DocterOrganization::where('id',$model->id)->update(['state'=>3]);
+        DocterOrganization::where('id',$model->id)->update(['state'=>2,'authentication_time'=>0,'authentication_end_time'=>0]);
 
         return $this->response()->success('审核驳回')->refresh();
     }

+ 25 - 3
app/Admin/Actions/backstage/Revoke.php

xqd xqd
@@ -1,6 +1,7 @@
 <?php
 
 namespace App\Admin\Actions\backstage;
+use App\Models\Docter;
 use App\Models\DocterOrganization;
 use Encore\Admin\Actions\RowAction;
 use Illuminate\Database\Eloquent\Model;
@@ -11,9 +12,30 @@ class Revoke extends RowAction
 
     public function handle(Model $model)
     {
-        // $model ...
-        DocterOrganization::where('id',$model->id)->update(['state'=>0]);
-        return $this->response()->success('审核撤销')->refresh();
+
+        //获得通过认证的机构数量
+        $is_pass_num = 0;
+        $docter_approve_num = DocterOrganization::where('docter_id',$model->docter_id)->get();
+        $docter_approve_num_array = $docter_approve_num->toarray();
+        foreach ($docter_approve_num_array as $value)
+        {
+            if ($value['state'] == 1)
+            {
+                $is_pass_num=$is_pass_num+1;
+            }
+        }
+        //如果同时有多个机构认证
+        if($is_pass_num > 1)
+        {
+            //撤销到社区端
+            DocterOrganization::where('id',$model->id)->update(['state'=>0,'authentication_time'=>'','authentication_end_time'=>0]);
+        }
+        if ($is_pass_num ==1)
+        {
+            DocterOrganization::where('id',$model->id)->update(['state'=>0,'authentication_time'=>0,'authentication_end_time'=>0]);
+            Docter::where('id',$model->docter_id)->update(['is_then'=>0]);
+        }
+        return $this->response()->success('审核撤销成功')->refresh();
     }
 
 }

+ 2 - 11
app/Admin/Controllers/CouponManagement/CouponDistributionUserList.php

xqd xqd
@@ -26,9 +26,7 @@ class CouponDistributionUserList extends AdminController
     protected function grid()
     {
         $grid = new Grid(new User());
-        $coupon_id = request('coupon_id');
         $grid->filter(function($filter){
-            // 去掉默认的id过滤器
             $filter->disableIdFilter();
             $filter->equal('phone','手机')->mobile()->placeholder("请输入手机");
             $filter->like('patient.name','患者姓名')->placeholder("请输入患者姓名");
@@ -45,16 +43,9 @@ class CouponDistributionUserList extends AdminController
             ]);
         });
         $grid->batchActions(function ($batch) {
-            $batch->add(new CouponBatchGrant($_GET['coupon_id']));
-        });
-        $grid->actions(function ($actions) {
-            // 去掉删除
-            $actions->disableDelete();
-            // 去掉编辑
-            $actions->disableEdit();
-            // 去掉查看
-            $actions->disableView();
+            $batch->add(new CouponBatchGrant());
         });
+        $grid->disableActions();
         $grid ->model()->where('status','>=','0');
         $grid->column('id', __('用户id'))->sortable();
         $grid->column('nickname', __('用户名'));

+ 11 - 9
app/Admin/Controllers/CouponManagement/CouponManagementController.php

xqd xqd xqd xqd xqd
@@ -4,6 +4,7 @@ namespace App\Admin\Controllers\CouponManagement;
 
 use App\Admin\Actions\backstage\Coupon\CouponDetails;
 use App\Admin\Actions\backstage\Coupon\CouponDistribution;
+use App\Admin\Actions\backstage\Coupon\CouponDistributions;
 use App\Models\Coupon;
 use Encore\Admin\Controllers\AdminController;
 use Encore\Admin\Form;
@@ -28,13 +29,12 @@ class CouponManagementController extends AdminController
     {
         $grid = new Grid(new Coupon());
 
+        $grid->tools(function (Grid\Tools $tools) {
+            $tools->append(new CouponDistributions());
+        });
         $grid->actions(function ($actions) {
             $actions->disableView();
             $actions->add(new CouponDetails());
-            if($actions->row->position_type == 2 )
-            {
-                $actions->add(new CouponDistribution());
-            }
         });
 
         $grid->column('id', __('Id'));
@@ -51,9 +51,13 @@ class CouponManagementController extends AdminController
         $grid->column('num', __('数量'));
         $grid->column('effective_days', __('有效天数'));
         $grid->column('start_time', __('有效期开始时间'))->display(function ($time){
+            if ($time ==0)
+                return '';
             return date('Y-m-d H:i:s',$time);
         });
         $grid->column('end_time', __('有效期结束时间'))->display(function ($time){
+            if ($time ==0)
+                return '';
             return date('Y-m-d H:i:s',$time);
         });
         return $grid;
@@ -104,7 +108,7 @@ class CouponManagementController extends AdminController
         $form->text('title', __('券标题'));
         $form->text('desc', __('使用说明'));
         $form->text('rules', __('使用规则'));
-        $form->image('icon', __('券图标'));
+        $form->image('icon', __('券图标'))->help('图标大小48px * 48px');
         $form->select('type', '类型')
             ->options([
                 1 => '满减券',
@@ -126,10 +130,8 @@ class CouponManagementController extends AdminController
             ])->when(1, function (Form $form) {
                 $form->text('effective_days', __('有效天数'));
             })->when(2, function (Form $form) {
-                $form->date('start_time', __('有效期开始时间'))->required();
-                $form->date('end_time', __('有效期结束时间'))->required()->rules(
-                    'date|after:start_time',['after' => '结束时间小于开始时间']
-                );
+                $form->date('start_time', __('有效期开始时间'));
+                $form->date('end_time', __('有效期结束时间'));
                 $form->saving(function ($form){
                     $form->start_time = strtotime($form->start_time);
                     $form->end_time = strtotime($form->end_time);

+ 4 - 3
app/Admin/Controllers/BookingOrderController.php → app/Admin/Controllers/OrdersManagement/BookingOrderController.php

xqd xqd xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\OrdersManagement;
 
 use App\Models\Order;
 use App\Admin\Actions\backstage\Orders\OrderDetails;
@@ -28,7 +28,7 @@ class BookingOrderController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new Order());
-
+        $grid->disableCreateButton();
         $grid->model()->wherein('product_type',[3,4,5]);
 
         //筛选
@@ -45,8 +45,9 @@ class BookingOrderController extends AdminController
                 $filter->equal('docter_id', '医生id');
             });
             $filter->column(1/3,function ($filter) {
-                $filter->equal('product_type','预约类型')->select(
+                $filter->equal('product_type','预约类型')->radio(
                     [
+                        ''=>'不限',
                         3=>'门诊预约',
                         4=>'疫苗接种预约',
                         5=>'儿保预约'

+ 16 - 6
app/Admin/Controllers/ConsultingOrdersController.php → app/Admin/Controllers/OrdersManagement/ConsultingOrdersController.php

xqd xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\OrdersManagement;
 
 use App\Admin\Actions\backstage\Orders\OrderDetails;
 use App\Admin\Actions\backstage\User\MapDepot;
@@ -28,18 +28,28 @@ class ConsultingOrdersController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new Order());
+        $grid->disableCreateButton();
         $grid->model()->wherein('product_type',[1,2]);
         //筛选
         $grid->filter(function ($filter){
             $filter->disableIdFilter();
-            $filter->column(1/2, function ($filter) {
+            $filter->column(1/3, 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->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(
                     [
                         ''=>'不限',

+ 2 - 1
app/Admin/Controllers/OrdersDetailsController.php → app/Admin/Controllers/OrdersManagement/OrdersDetailsController.php

xqd xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\OrdersManagement;
 
 use App\Models\Order;
 use Encore\Admin\Controllers\AdminController;
@@ -25,6 +25,7 @@ class OrdersDetailsController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new Order());
+        $grid->disableCreateButton();
         $grid->disableActions();
         $grid->column('id', __('Id'));
         $grid->column('product_type', __('产品类型'))->using([

+ 2 - 2
app/Admin/Controllers/RechargeOrderController.php → app/Admin/Controllers/OrdersManagement/RechargeOrderController.php

xqd xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\OrdersManagement;
 
 use App\Models\Order;
 use App\Admin\Actions\backstage\Orders\OrderDetails;
@@ -26,7 +26,7 @@ class RechargeOrderController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new Order());
-
+        $grid->disableCreateButton();
         $grid->model()->wherein('product_type',[7]);
 
         //筛选

+ 2 - 3
app/Admin/Controllers/ServicePackOrderController.php → app/Admin/Controllers/OrdersManagement/ServicePackOrderController.php

xqd xqd xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\OrdersManagement;
 
 use App\Models\Order;
 use App\Admin\Actions\backstage\Orders\OrderDetails;
@@ -28,6 +28,7 @@ class ServicePackOrderController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new Order());
+        $grid->disableCreateButton();
         $grid->model()->wherein('product_type',[6]);
         //筛选
         $grid->filter(function ($filter){
@@ -67,8 +68,6 @@ class ServicePackOrderController extends AdminController
         $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('orderPack.service_pack_id', __('服务包id'));

+ 2 - 1
app/Admin/Controllers/UserSuggestsController.php → app/Admin/Controllers/OrdersManagement/UserSuggestsController.php

xqd xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\OrdersManagement;
 
 use App\Models\Suggest;
 use App\Models\User;
@@ -26,6 +26,7 @@ class UserSuggestsController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new Suggest());
+        $grid->disableCreateButton();
         $uesr_id = \request('patient_id');
         $grid->filter(function ($filter){
             $filter->disableIdFilter();

+ 2 - 1
app/Admin/Controllers/UserBalanceLogController.php → app/Admin/Controllers/UserManagement/BmUser/UserBalanceLogController.php

xqd xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\UserManagement\BmUser;
 
 use App\Models\UserBalanceLog;
 use Encore\Admin\Controllers\AdminController;
@@ -25,6 +25,7 @@ class UserBalanceLogController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new UserBalanceLog());
+        $grid->disableCreateButton();
         //根据id筛选数据
         $uesr_id = \request('user_id');
         $grid->filter(function ($filter){

+ 9 - 2
app/Admin/Controllers/UserCouponsController.php → app/Admin/Controllers/UserManagement/BmUser/UserCouponsController.php

xqd xqd xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\UserManagement\BmUser;
 
 use App\Models\UserCoupon;
 use Encore\Admin\Controllers\AdminController;
@@ -25,6 +25,7 @@ class UserCouponsController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new UserCoupon());
+        $grid->disableCreateButton();
         $uesr_id = \request('user_id');
         $grid->filter(function ($filter){
             $filter->disableIdFilter();
@@ -64,7 +65,13 @@ class UserCouponsController extends AdminController
         $grid->column('expire_time', __('过期时间'))->display(function ($time){
             return date("Y-m-d H:i",$time);
         });
-        $grid->column('use_time', __('使用时间'));
+        $grid->column('use_time', __('使用时间'))->display(function ($time){
+            if($time == 0)
+            {
+                return '';
+            }else
+                return date("Y-m-d H:i",$time);
+        });
         $grid->column('created_at', __('创建时间'));
         $grid->column('updated_at', __('更新时间'));
 

+ 3 - 1
app/Admin/Controllers/UserListController.php → app/Admin/Controllers/UserManagement/BmUser/UserListController.php

xqd xqd
@@ -1,6 +1,7 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\UserManagement\BmUser;
+
 
 use App\Admin\Actions\backstage\User\archives;
 use App\Admin\Actions\backstage\User\BalanceLog;
@@ -30,6 +31,7 @@ class UserListController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new User());
+        $grid->disableCreateButton();
         $grid->actions(function ($actions) {
         // 去掉删除
         $actions->disableDelete();

+ 2 - 1
app/Admin/Controllers/UserPatientsController.php → app/Admin/Controllers/UserManagement/BmUser/UserPatientsController.php

xqd xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\UserManagement\BmUser;
 
 use App\Admin\Actions\backstage\User\MapDepot;
 use App\Admin\Actions\backstage\User\Suggests;
@@ -29,6 +29,7 @@ class UserPatientsController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new Patient());
+        $grid->disableCreateButton();
         $uesr_id = \request('user_id');
         $grid->filter(function ($filter){
             $filter->disableIdFilter();

+ 1 - 1
app/Admin/Controllers/UserServiceController.php → app/Admin/Controllers/UserManagement/BmUser/UserServiceController.php

xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\UserManagement\BmUser;
 
 use App\Models\Order;
 use App\Models\OrderPack;

+ 23 - 7
app/Admin/Controllers/ApproveController.php → app/Admin/Controllers/UserManagement/DocterManagement/ApproveController.php

xqd xqd xqd xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\UserManagement\DocterManagement;
 
 use App\Admin\Actions\backstage\Pass;
 use App\Admin\Actions\backstage\Refuse;
@@ -30,7 +30,7 @@ class ApproveController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new DocterOrganization());
-        $grid ->model()->where('state','>=','1');
+        $grid ->model()->where('state','>',0);
         $grid->column('id', __('Id'));
         $grid->column('docter.id', __('医生ID'));
         $grid->column('docter.name', __('医生姓名'));
@@ -39,8 +39,24 @@ class ApproveController extends AdminController
         $grid->column('organization.name', __('机构'));
         $grid->column('office.name', __('科室'));
         $grid->column('qualification.name', __('医生资质'));
-        $grid->column('state', __('认证状态'))->using([1=>'待审核',2=>'已认证',3=>'已驳回']);
-        $grid->column('authentication_time', __('认证时间'));
+        $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) {
@@ -51,18 +67,18 @@ class ApproveController extends AdminController
             // 去掉查看
             $actions->disableView();
             //待审核状态下 给通过和驳回
-            if ($actions->row->state == 1){
+            if ($actions->row->state == 3){
                 //通过申请
                 $actions->add(new Pass());
                 //驳回申请
                 $actions->add(new Refuse());
             }
             //已认证状态下 给撤销
-            if ($actions->row->state == 2){
+            if ($actions->row->state == 1){
                 $actions->add(new Revoke());
             }
             //驳回状态下 不给任何操作
-            if ($actions->row->state == 3){
+            if ($actions->row->state == 2){
 
             }
 

+ 1 - 1
app/Admin/Controllers/DocterTeamController.php → app/Admin/Controllers/UserManagement/DocterManagement/DocterTeamController.php

xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\UserManagement\DocterManagement;
 
 use App\Models\TeamDocter;
 use Encore\Admin\Controllers\AdminController;

+ 2 - 2
app/Admin/Controllers/DoctorManagementController.php → app/Admin/Controllers/UserManagement/DocterManagement/DoctorManagementController.php

xqd xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\UserManagement\DocterManagement;
 
 use App\Admin\Actions\backstage\Docters\SignUp;
 use App\Admin\Actions\backstage\Docters\Team;
@@ -30,7 +30,7 @@ class DoctorManagementController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new Docter());
-
+        $grid->disableCreateButton();
         $grid->filter(function ($filter){
             $filter->disableIdFilter();
             $filter->like('name','昵称');

+ 1 - 1
app/Admin/Controllers/QualificationsController.php → app/Admin/Controllers/UserManagement/DocterManagement/QualificationsController.php

xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\UserManagement\DocterManagement;
 
 use App\Models\Qualification;
 use Encore\Admin\Controllers\AdminController;

+ 32 - 11
app/Admin/Controllers/SignUpController.php → app/Admin/Controllers/UserManagement/DocterManagement/SignUpController.php

xqd xqd xqd
@@ -1,7 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
-
+namespace App\Admin\Controllers\UserManagement\DocterManagement;
 use App\Models\DocterOrganization;
 use Encore\Admin\Controllers\AdminController;
 use Encore\Admin\Form;
@@ -25,18 +24,46 @@ class SignUpController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new DocterOrganization());
-        $grid->disableActions();
+        $grid->disableCreateButton();
         $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=>'审核拒绝']);
+        $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', __('更新时间'));
 
@@ -73,13 +100,7 @@ class SignUpController extends AdminController
     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'));
-
+        $form->datetime('authentication_end_time', __('签约到期时间'));
         return $form;
     }
 }

+ 8 - 2
app/Admin/Controllers/UserEvaluatesController.php → app/Admin/Controllers/UserManagement/DocterManagement/UserEvaluatesController.php

xqd xqd xqd
@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Admin\Controllers;
+namespace App\Admin\Controllers\UserManagement\DocterManagement;
 
 use App\Admin\Actions\backstage\Evaluate\Ignore;
 use App\Admin\Actions\backstage\Evaluate\Pass;
@@ -27,6 +27,7 @@ class UserEvaluatesController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new Evaluate());
+        $grid->disableCreateButton();
         $grid->actions(function ($actions) {
             // 去掉删除
             $actions->disableDelete();
@@ -60,7 +61,12 @@ class UserEvaluatesController extends AdminController
         $grid->column('score', __('评分'));
         $grid->column('status', __('状态'))->using([1=>'待审核',2=>'审核通过',3=>'忽略']);
         $grid->column('audit_time', __('审核时间'))->display(function ($time){
-            return date('Y-m-d H:i:s',$time);
+            if($time == 0)
+                return '';
+            else
+            {
+                return date('Y-m-d H:i:s',$time);
+            }
         });
         $grid->column('created_at', __('创建时间'));
         $grid->column('updated_at', __('更新时间'));

+ 55 - 30
app/Admin/routes.php

xqd xqd xqd
@@ -11,13 +11,13 @@ Route::group([
     'as'            => config('admin.route.prefix') . '.',
 ], function (Router $router) {
     $router->get('/', 'HomeController@index')->name('home');
+    $router->get('/home', 'HomeController@index')->name('home');
     $router->get('/api/getCity', 'ApiController@getCity');
     $router->get('/api/getArea', 'ApiController@getArea');
     $router->post('/img_upload', 'Api\ApiController@upload');
     $router->resource('/cdms_user', CdmsController::class);
     $router->resource('/organizations', OrganizationController::class);
     $router->resource('/docters', DocterController::class);
-    $router->resource('/docters_approve', ApproveController::class);
     $router->resource('banners', BannerController::class);
     //服务包海报
     $router->resource('servebanners', ServebannerController::class);
@@ -25,9 +25,6 @@ Route::group([
     $router->resource('articles', ArticleController::class);
     //疫苗管理
     $router->resource('vaccines', VaccinesController::class);
-    $router->resource('docters_management', DoctorManagementController::class);
-    $router->resource('users', UserListController::class);
-    $router->resource('user_patients', UserPatientsController::class);
     $router->resource('service_applys',ServiceapplysController::class);
     //电话咨询认证
     $router->resource('phone_service_cc',PhoneServiceCCController::class);
@@ -57,37 +54,65 @@ Route::group([
     $router->get('/setting_form', 'Config\FormController@form');
     $router->post('/setting_form_save', 'Config\FormController@setting_form_save');
 
-    $router->resource('user_orders', UserServiceController::class);
-    $router->resource('user_balance_logs', UserBalanceLogController::class);
-
-    //用户管理->优惠券管理
-    $router->resource('user_coupons', UserCouponsController::class);
-    //用户管理->病例意见单
-    $router->resource('user_suggests', UserSuggestsController::class);
-    //评价管理
-    $router->resource('evaluates', UserEvaluatesController::class);
-    //职称类别
-    $router->resource('qualifications', QualificationsController::class);
+    /*
+     * 用户管理->医生管理
+     * */
+    //认证管理
+    $router->resource('/docters_approve', UserManagement\DocterManagement\ApproveController::class);
+    //医生管理
+    $router->resource('docters_management', UserManagement\DocterManagement\DoctorManagementController::class);
     //医生管理->签约管理
-    $router->resource('sign_up', SignUpController::class);
+    $router->resource('sign_up', UserManagement\DocterManagement\SignUpController::class);
     //医生管理->团队管理
-    $router->resource('docter_team', DocterTeamController::class);
-    //订单管理->咨询订单
-    $router->resource('consulting_orders', ConsultingOrdersController::class);
-    //订单管理->咨询/预约/服务包订单->订单详情
-    $router->resource('orders_details', OrdersDetailsController::class);
-    //订单管理->预约订单
-    $router->resource('booking_order', BookingOrderController::class);
-    //订单管理->服务包管理
-    $router->resource('service_pack_order', ServicePackOrderController::class);
-    //订单管理->充值订单
-    $router->resource('recharge_order', RechargeOrderController::class);
-    //优惠券管理->优惠券列表
+    $router->resource('docter_team', UserManagement\DocterManagement\DocterTeamController::class);
+    //评价管理
+    $router->resource('evaluates', UserManagement\DocterManagement\UserEvaluatesController::class);
+    //职称类别
+    $router->resource('qualifications', UserManagement\DocterManagement\QualificationsController::class);
+
+    /*
+     * 用户管理->宝妈用户
+     * */
+    //用户列表
+    $router->resource('users', UserManagement\BmUser\UserListController::class);
+    //用户列表->查看患者档案
+    $router->resource('user_patients', UserManagement\BmUser\UserPatientsController::class);
+    //查看患者档案->服务包
+    $router->resource('user_orders', UserManagement\BmUser\UserServiceController::class);
+    //用户列表->余额明细
+    $router->resource('user_balance_logs', UserManagement\BmUser\UserBalanceLogController::class);
+    //用户管理->优惠券管理
+    $router->resource('user_coupons', UserManagement\BmUser\UserCouponsController::class);
+
+    /*
+     * 订单管理
+     * */
+    //咨询订单
+    $router->resource('consulting_orders', OrdersManagement\ConsultingOrdersController::class);
+    //预约订单
+    $router->resource('booking_order', OrdersManagement\BookingOrderController::class);
+    //服务包管理
+    $router->resource('service_pack_order', OrdersManagement\ServicePackOrderController::class);
+    //充值订单
+    $router->resource('recharge_order', OrdersManagement\RechargeOrderController::class);
+    //咨询/预约/服务包订单->订单详情
+    $router->resource('orders_details', OrdersManagement\OrdersDetailsController::class);
+    //订单记录中->病例意见单
+    $router->resource('user_suggests', OrdersManagement\UserSuggestsController::class);
+
+    /*
+     * 优惠券管理
+     * */
+    //优惠券列表
     $router->resource('coupons', CouponManagement\CouponManagementController::class);
-    //优惠券管理->优惠券详情
+    //优惠券详情
     $router->resource('coupons_details', CouponManagement\CouponDetailsController::class);
-    //优惠券管理->优惠券发放->用户列表
+    //优惠券发放->用户列表
     $router->resource('coupon_distribution_user_list', CouponManagement\CouponDistributionUserList::class);
+    /*
+     * 社区端通告
+     * */
+
     //社区端通告
     $router->resource('community_notices', CommunityNotice\CommunityNotices::class);
 });

+ 360 - 6
app/Community/Controllers/ApiController.php

xqd xqd xqd
@@ -5,11 +5,21 @@ namespace App\Community\Controllers;
 
 
 use App\Http\Controllers\Controller;
+use App\Models\CdmsUsers;
 use App\Models\Docter;
+use App\Models\DocterOrganization;
+use App\Models\Order;
+use App\Models\Organization;
 use App\Models\PatientRemark;
 use App\Models\Schedule;
+use App\Models\SchedulePeriod;
+use App\Models\SystemConfig;
 use App\Models\TimePeriod;
+use Carbon\Carbon;
 use EasyWeChat\Factory;
+use Encore\Admin\Facades\Admin;
+use Illuminate\Support\Facades\DB;
+use mysql_xdevapi\Exception;
 
 class ApiController extends Controller
 {
@@ -24,6 +34,7 @@ class ApiController extends Controller
         $data['type'] = request('type');
         $is_have = PatientRemark::where($data)->first();
         $data['remark'] = request('remark');
+        if(empty($data['remark'])) return redirect('/cdms/nurse_users');
         if($is_have){
             PatientRemark::where(['id'=>$is_have->id])->update(['remark'=>$data['remark']]);
         } else {
@@ -95,20 +106,363 @@ class ApiController extends Controller
     }
 
 
-
+    //获取排班页面
     public function getComSchedule()
     {
 
-        $time  = TimePeriod::get(['id','start_time_period','end_time_period']);
-        dd($time);
-        $data['community'] = [];
-        $data['docter'] = [];
+        $set_time = request('time');//时间
+        $user = Admin::user();
+        $org_id = $user->org_id;
+        $doc_id = $user->docter_id;
 
-    }
+        $docter_id = request('docter_id');
+        $role = request('role');
+
+        $is_docter = CdmsUsers::where('docter_id',$doc_id)->where('docter_id','!=','')->first();
+
+        if(empty($set_time)){
+            return json_encode(['code'=>601,'msg'=>'缺少必要参数','data'=>'']);
+        }
+
+        if($is_docter){
+            $role =2;
+        }
+
+        $all_time = explode('至',$set_time);
+        if(count($all_time) <2){
+            return json_encode(['code'=>601,'msg'=>'缺少必要参数','data'=>'']);
+        }
+
+        $start_time  = intval(str_replace('-','',$all_time[0]));
+        $end_time  = intval(str_replace('-','',$all_time[1]));
+        $first_day = strtotime($all_time[0]);
+//        DB::enableQueryLog();
+        $sche_dule = Schedule::whereBetween('schedule_day',[$start_time,$end_time])
+            ->pluck('id')
+            ->toArray();
+//        echo '<pre>';
+//        print_r(DB::getQueryLog());
+//        echo '</pre>';
+        //dd($sche_dule);
+
+        $sche_dule_arr =[
+            [
+                'date'=>"上午",
+                'monday'=>false,
+                'tuesday'=>false,
+                'wednesday'=>false,
+                'thursday'=>false,
+                'friday'=>false,
+                'saturday'=>false,
+                'sunday'=>false,
+            ],
+            [
+                'date'=>"下午",
+                'monday'=>false,
+                'tuesday'=>false,
+                'wednesday'=>false,
+                'thursday'=>false,
+                'friday'=>false,
+                'saturday'=>false,
+                'sunday'=>false,
+            ],
+            [
+                'date'=>"晚上",
+                'monday'=>false,
+                'tuesday'=>false,
+                'wednesday'=>false,
+                'thursday'=>false,
+                'friday'=>false,
+                'saturday'=>false,
+                'sunday'=>false,
+            ]
+        ];
+
+        //周字段映射
+        $week_arr = ['monday','tuesday','wednesday','thursday','friday','saturday','sunday'];
 
+        //时段区间id
+        $schedule_config = SystemConfig::get('docter_config');
+        $times[] = TimePeriod::where('start_time_period','>=',$schedule_config['morning_start'])->where('end_time_period','<=',$schedule_config['morning_end'])->pluck('id')->toArray();
+        $times[] = TimePeriod::where('start_time_period','>=',$schedule_config['afternoon_start'])->where('end_time_period','<=',$schedule_config['afternoon_end'])->pluck('id')->toArray();
+        $times[] = TimePeriod::where('start_time_period','>=',$schedule_config['evening_start'])->where('end_time_period','<=',$schedule_config['evening_end'])->pluck('id')->toArray();
 
+        if(empty($sche_dule)){
+            return ['code'=>200,'msg'=>'ok','data'=>['docter'=>$sche_dule_arr,'org_id'=>$org_id,'docter_id'=>$docter_id]];
+        }
+        if($role == 1){
+            $ids = DocterOrganization::where(['organization_id'=>$org_id])->pluck('docter_id');
+            $name = Organization::where('id',$docter_id)->value('name');
+            $user_id = $org_id;
+            for ($i = 0; $i<6; $i++){
+                $str_time =  date('Y-m-d',($first_day + $i * 86400));
+                for($j=0;$j<3;$j++){
+                    //检测上午
+                    $is_mo_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$times[$j])
+                        ->where('docter_id','!=',$docter_id)->count();
+                    $is_self = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$times[$j])
+                        ->where('docter_id',$docter_id)->count();
+                    if($is_self){
+                        $sche_dule_arr[$j][$week_arr[$i]] = true;
+                    }
+                    if($is_mo_have){
+                        $sche_dule_arr[$j][$week_arr[$i]] = 'other';
+                    }
+                }
+            }
+        } else {
+
+            $ids = DocterOrganization::where(['docter_id'=>$docter_id])->pluck('organization_id');
+            $name = Docter::where('id',$docter_id)->value('name');
+            $user_id = $docter_id;
+            for ($i=0; $i<=6; $i++){
+                $str_time =  date('Y-m-d',($first_day + $i * 86400));
+                for($j=0;$j<=2;$j++){
+                    //检测上午
+                    $is_mo_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$times[$j])
+                        ->where('organization_id','!=',$org_id)->where('docter_id','=',$docter_id)->count();
+                    $is_mo_self = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$times[$j])
+                        ->where('organization_id',$org_id)->where('docter_id',$docter_id)->count();
+                    if($is_mo_self){
+                        $sche_dule_arr[$j][$week_arr[$i]] = true;
+                    }
+                    if($is_mo_have){
+                        $sche_dule_arr[$j][$week_arr[$i]] = 'other';
+                    }
+                }
+            }
+        }
+
+
+        //  "morning_start" => "09:00"
+        //  "morning_end" => "12:00"
+        //  "afternoon_start" => "13:00"
+        //  "afternoon_end" => "18:00"
+        //  "evening_start" => "19:00"
+        //  "evening_end" => "20:00"
+
+
+        $data['docter'] = $sche_dule_arr;
+        $data['name'] = $name;
+
+        $data['role'] = $role;
+        $data['user_id'] = $user_id;
+        return  (json_encode(['code'=>200,'msg'=>'ok','data'=>$data]));
+    }
+
+    //编辑排班
     public function setDocChedule()
     {
+        $docter_id = request('docter_id');
+        $org_id = request('org_id');
+        $set_time = request('time');
+        $data = request('schedulingtime');
+//        $set_time = '2020-12-07至2020-12-13';
+        if(empty($set_time) || empty($org_id) || empty($docter_id)){
+            return json_encode(['status'=>601,'msg'=>'缺少必要参数','data'=>'']);
+        }
+
+        $all_time = explode('至',$set_time);
+        $schedule_id = Schedule::where(['organization_id'=>$org_id,'docter_id'=>$docter_id,'schedule_date'=>$all_time[0]])->value('id');
+        if(count($all_time) <2) {
+            return json_encode(['status'=>601,'msg'=>'缺少必要参数','data'=>'']);
+        }
+        $start_time  = intval(str_replace('-','',$all_time[0]));
+        $end_time  = intval(str_replace('-','',$all_time[1]));
+        $first_day = strtotime($start_time);
+        //周字段映射
+        $week_arr = ['monday','tuesday','wednesday','thursday','friday','saturday','sunday'];
+//        $data = [
+//            [
+//                'date'=>"上午",
+//                'monday'=>false,
+//                'tuesday'=>false,
+//                'wednesday'=>false,
+//                'thursday'=>true,
+//                'friday'=>false,
+//                'saturday'=>false,
+//                'sunday'=>false,
+//            ],
+//            [
+//                'date'=>"下午",
+//                'monday'=>false,
+//                'tuesday'=>true,
+//                'wednesday'=>false,
+//                'thursday'=>false,
+//                'friday'=>false,
+//                'saturday'=>false,
+//                'sunday'=>false,
+//            ],
+//            [
+//                'date'=>"晚上",
+//                'monday'=>false,
+//                'tuesday'=>false,
+//                'wednesday'=>true,
+//                'thursday'=>false,
+//                'friday'=>false,
+//                'saturday'=>false,
+//                'sunday'=>false,
+//            ]
+//        ];
+
+
+        //时段区间id
+        $schedule_config = SystemConfig::get('docter_config');
+        $times[1] = TimePeriod::where('start_time_period','>=',$schedule_config['morning_start'])
+            ->where('end_time_period','<=',$schedule_config['morning_end'])
+            ->pluck('id')->toArray();
+
+        $times[2] = TimePeriod::where('start_time_period','>=',$schedule_config['afternoon_start'])
+            ->where('end_time_period','<=',$schedule_config['afternoon_end'])
+            ->pluck('id')->toArray();
+
+        $times[3] = TimePeriod::where('start_time_period','>=',$schedule_config['evening_start'])
+            ->where('end_time_period','<=',$schedule_config['evening_end'])
+            ->pluck('id')->toArray();
+        foreach ($times as $val){
+            foreach ($val as $t){
+                $time_period[] = $t;
+            }
+        }
+
+        $data[0] = array_values(object_array(json_decode($data[0])));
+        $data[1] = array_values(object_array(json_decode($data[1])));
+        $data[2] = array_values(object_array(json_decode($data[2])));
+
+        $mo_schedule = array_values($data[0]);
+        $af_schedule = array_values($data[1]);
+        $ev_schedule = array_values($data[2]);
+
+
+        DB::beginTransaction();
+        try {
+            $schedule_insert = [
+                'organization_id'=>$org_id,
+                'docter_id'=>$docter_id,
+                'schedule_date'=>$all_time[0],
+                'schedule_day'=>$start_time,
+                'created_at'=>Carbon::now(),
+                'updated_at'=>Carbon::now(),
+            ];
+            if(!$schedule_id){
+                $schedule_id = Schedule::insertGetId($schedule_insert);
+            }
+            unset($schedule_insert['schedule_day']);
+            $schedule_insert['schedule_id'] =$schedule_id;
+            $info = [];
+            for ($i = 1 ;$i<=3;$i++){
+                $mo_schedule = array_values($data[$i-1]);
+                foreach ($mo_schedule as $key=>$val){
+                    if($key==0) continue;
+                    $schedule_date = $start_time + $key;
+                    $strtime = "$schedule_date";
+                    $time_insert = $schedule_insert;
+                    $time_insert['type'] = $i;
+
+                    $schedule_time = $times[$i];
+                    $real_time = date('Y-m-d',($first_day + ($key-1)*86400));
+                    $time_insert['schedule_date'] = $real_time;
+                    $time_insert['me_sure'] = 1;
+
+                    if($val == true){
+                        $data['schedule_date'] = $start_time ;
+                        foreach ($schedule_time as $time_id){
+                            $is_have = SchedulePeriod::where(['time_period_id'=>$time_id,'type'=>($i),'schedule_date'=>$real_time,'organization_id'=>$org_id])->value('id');
+                            if($is_have) break;
+                            $time_insert['time_period_id'] = $time_id;
+                            $info[] = $time_insert;
+                            SchedulePeriod::insert($time_insert);
+                        }
+                    } else {
+                        $data['schedule_date'] = $start_time;
+                        foreach ($schedule_time as $time_id){
+                            $is_have = SchedulePeriod::where(['time_period_id'=>$time_id,'type'=>($i),'schedule_date'=>$real_time,'organization_id'=>$org_id,'docter_id'=>$docter_id,'schedule_id'=>$schedule_id])->value('id');
+                            if($is_have)  SchedulePeriod::where(['time_period_id'=>$time_id,'type'=>($i),'docter_id'=>$docter_id,'schedule_date'=>$real_time,'organization_id'=>$org_id,'docter_id'=>$docter_id,'schedule_id'=>$schedule_id])->delete();
+                        }
+                    }
+                }
+            }
+            DB::commit();
+        } catch (Exception $e){
+            DB::rollBack();
+            Log::info($e->getMessage());
+        }
+        return json_encode(['status'=>200,'msg'=>'插入成功','data'=>count($info)]);
+    }
+
+    //获取用户信息
+    public function getScheduleInfo()
+    {
+
+        $user = Admin::user();
+        $org_id = $user->org_id;
+        $docter_id = $user->docter_id;
+
+        $is_docter = CdmsUsers::where('docter_id',$docter_id)->where('docter_id','!=','')->first();
+        if(empty($org_id) && empty($docter_id)){
+            return json_encode(['code'=>601,'msg'=>'缺少必要参数','data'=>'']);
+        }
+        $role = 1;
+        if($is_docter){
+            $role = 2;
+        }
+        $lists =[];
+        if($role == 1){
+            $ids = DocterOrganization::where(['organization_id'=>$org_id])->pluck('docter_id')->toArray();
+            $list = Docter::whereIn('id',$ids)->where('is_then',1)->get(['id','name']);
+            foreach ($list as $val){
+                $lists[] = ['value'=>$val->id,'label'=>$val->name];
+            }
+            $name = Organization::where('id',$org_id)->value('name');
+            $user_id = $org_id;
+        } else {
+            $ids = DocterOrganization::where(['docter_id'=>$docter_id])->pluck('organization_id');
+            $list = Organization::whereIn('id',$ids)->get(['id','name']);
+            foreach ($list as $val){
+                $lists[] = ['value'=>$val->id,'label'=>$val->name];
+            }
+            $name = Docter::where('id',$docter_id)->value('name');
+            $user_id = $docter_id;
+        }
+        $data['user_id'] = $user_id;
+        $data['name'] = $name;
+        $data['role'] = $role;
+        $data['list'] = $lists;
+        return (json_encode(['code'=>200,'msg'=>'ok','data'=>$data]));
+    }
+
+    //获取图文订单
+    public function get_chat_order()
+    {
+        $org_id = 1;
+        $docter_id = request('docter_id');
+        if(empty($docter_id)){
+            return json_encode(['code'=>601,'msg'=>'缺少必要参数','data'=>'']);
+
+        }
+
+        $list = Order::where(['organization_id'=>$org_id,'docter_id'=>$docter_id,'order_status'=>3])->with('orderUser')->distinct('user_id')->get('user_id');
+        $user_list = [];
+        foreach ($list as $val){
+            $user_list[] = [
+                'id'=>$val->user_id,
+                'avatar'=>$val->orderUser->avatar,
+                'name'=>$val->orderUser->nickname,
+            ];
+        }
+        $data['docter'] =  Docter::where('id',$docter_id)->first(['id','avatar','name']);
+        $data['order_list'] = $user_list;
+        return  (json_encode(['code'=>200,'msg'=>'ok','data'=>$data]));
+    }
+
+    public function updateOrder(){
+        $id = request('id');
+        $status = request('status');
+        if(empty($id) || empty($status)){
+            return json_encode(['code'=>601,'msg'=>'缺少必要参数','data'=>'']);
+        }
+        $data = Order::where('id',$id)->update(['order_status'=>$status]);
+        return  (json_encode(['code'=>200,'msg'=>'ok','data'=>$data]));
 
     }
 

+ 2 - 0
app/Community/Controllers/DocterChatController.php

xqd
@@ -103,6 +103,8 @@ class DocterChatController extends AdminController
         $user = Admin::user();
         $org_id = $user->org_id;
         $docter_id = $user->docter_id;
+        Admin::js('jquery-3.5.1.min.js');
+
         $url = '/cdms/chat_view?docter_id='.$docter_id;
 //        $content->body('<iframe src="/cdms/chat_view?docter_id='.$docter_id.'" style="width: 100%;height:800px;border: none"></iframe>');
         $content->body('<iframe src="/cdms/chat_view?docter_id='.$docter_id.'" style="width: 100%;height:800px;border: none"></iframe>');

+ 2 - 2
app/Community/Controllers/DocterVerifyController.php

xqd xqd
@@ -41,7 +41,7 @@ class DocterVerifyController extends AdminController
         $grid->column('docter.card_id', __('身份证号'));
         $grid->column('office.name', __('认证科室'));
         $grid->column('qualification.name', __('认证资质'));
-        $grid->column('state', __('状态'))->using(['待审核','已通过','以拒绝'])->label(['info','success','error']);
+        $grid->column('state', __('状态'))->using(['待审核','已认证','认证失败','审核中'])->label(['info','success','error','info']);
 
         $grid->actions(function($actions){
             $actions->disableDelete();
@@ -57,7 +57,7 @@ class DocterVerifyController extends AdminController
             $filter->disableIdFilter();
             $filter->like('docter.name','姓名');
             $filter->equal('docter.sex','性别')->select(['未知','男','女']);
-            $filter->equal('state','状态')->select(['待审核','已通过','以拒绝']);
+            $filter->equal('state','状态')->select(['待审核','已认证','认证失败']);
         });
 
         return $grid;

+ 41 - 12
app/Community/Controllers/HomeController.php

xqd xqd xqd
@@ -4,8 +4,10 @@ namespace App\Community\Controllers;
 
 use App\Http\Controllers\Controller;
 use App\Models\Order;
+use App\Models\Schedule;
 use App\Models\SchedulePeriod;
 use Encore\Admin\Controllers\Dashboard;
+use Encore\Admin\Facades\Admin;
 use Encore\Admin\Layout\Column;
 use Encore\Admin\Layout\Content;
 use Encore\Admin\Layout\Row;
@@ -26,35 +28,37 @@ class HomeController extends Controller
             })->row(function (Row $row){
                 $data = StatController::service();
                 $row->column(3,new InfoBox('今日预约(人)', 'users', 'aqua', '/cdms/home', $data['schedule_paitent']));
-                $row->column(3,new InfoBox('今日排班(人)', 'users', 'aqua', '/cdms/home', $data['schedule_docter']));
-                $row->column(3,new InfoBox('接诊患者(人次)', 'users', 'aqua', '/cdms/home', $data['paitent_num']));
+                $row->column(3,new InfoBox('今日排班(人)', 'calendar-check-o', 'aqua', '/cdms/home', $data['schedule_docter']));
+                $row->column(3,new InfoBox('接诊患者(人次)', 'user', 'aqua', '/cdms/home', $data['paitent_num']));
             })
             ->row(function (Row $row){
                 return $row->column(12,'<p style="font-family:Arial,Helvetica,sans-serif; font-size:1.2em; margin-top20px;vertical-align:middle; font-weight:normal ">疫苗概况</p>');
             })->row(function (Row $row){
                 $data = StatController::vaccine();
-                $row->column(3,new InfoBox('疫苗种类(种)', 'users', 'aqua', '/cdms/home', $data['sum_num']));
-                $row->column(3,new InfoBox('库存剩余(支)', 'users', 'aqua', '/cdms/home', $data['have_num']));
-                $row->column(3,new InfoBox('疫苗缺苗(种)', 'users', 'aqua', '/cdms/home', $data['less_num']));
+                $row->column(3,new InfoBox('疫苗种类(种)', 'eyedropper', 'aqua', '/cdms/home', $data['sum_num']));
+                $row->column(3,new InfoBox('库存剩余(支)', 'home', 'aqua', '/cdms/home', $data['have_num']));
+                $row->column(3,new InfoBox('疫苗缺苗(种)', 'genderless', 'aqua', '/cdms/home', $data['less_num']));
             })
             ->row(function (Row $row){
                 $data = StatController::vaccine();
-                $row->column(3,new InfoBox('今日预约(人支)', 'users', 'aqua', '/cdms/home', $data['today_schedule']));
-                $row->column(3,new InfoBox('预计今日消耗(支)', 'users', 'aqua', '/cdms/home', $data['today_vaccine']));
+                $row->column(3,new InfoBox('今日预约(人支)', 'hospital-o', 'aqua', '/cdms/home', $data['today_schedule']));
+                $row->column(3,new InfoBox('预计今日消耗(支)', 'calendar', 'aqua', '/cdms/home', $data['today_vaccine']));
             })
             ->row(function (Row $row){
-                return $row->column(12,'<p style="font-family:Arial,Helvetica,sans-serif; font-size:1.2em; margin-top20px;vertical-align:middle; font-weight:normal ">儿保概况</p>');
+                return $row->column(12,'<p style="font-family:Arial,Helvetica,sans-serif; font-size:1.2em; margin-top20px;vertical-align:middle; font-weight:normal ">订单概况</p>');
             })->row(function (Row $row){
                 $data = StatController::nurse();
-                $row->column(3,new InfoBox('疫苗种类(种)', 'users', 'aqua', '/cdms/home', $data));
+                $row->column(3,new InfoBox('门诊订单(个)', 'first-order', 'aqua', '/cdms/home', $data[0]));
+                $row->column(3,new InfoBox('计免订单(个)', 'first-order', 'aqua', '/cdms/home', $data[1]));
+                $row->column(3,new InfoBox('儿保订单(个)', 'first-order', 'aqua', '/cdms/home', $data[2]));
             })
             ->row(function (Row $row){
                 return $row->column(12,'<p style="font-family:Arial,Helvetica,sans-serif; font-size:1.2em; margin-top20px;vertical-align:middle; font-weight:normal ">今日排班         </p>');
             })->row(function (Row $row){
                 $data = StatController::schedule();
-                $row->column(3,new InfoBox('计免医生(人)', 'users', 'aqua', '/cdms/home', $data['vaccine_num']));
-                $row->column(3,new InfoBox('儿保医生(人)', 'users', 'aqua', '/cdms/home', $data['nurse_num']));
-                $row->column(3,new InfoBox('门诊医生(人)', 'users', 'aqua', '/cdms/home', $data['clinic_num']));
+                $row->column(3,new InfoBox('计免医生(人)', 'hospital-o', 'aqua', '/cdms/home', $data['vaccine_num']));
+                $row->column(3,new InfoBox('儿保医生(人)', 'hospital-o', 'aqua', '/cdms/home', $data['nurse_num']));
+                $row->column(3,new InfoBox('门诊医生(人)', 'hospital-o', 'aqua', '/cdms/home', $data['clinic_num']));
             });
 //            ->row($this->real_data())
 //            ->row($this->vaccine_data())
@@ -93,10 +97,35 @@ class HomeController extends Controller
             return redirect('/cdms/docter_chats');
         }
         $data = Order::where('id',$id)->with('orderPatient')->first();
+        if(!empty($data->orderPatient->medical_imgs)){
+            $data->orderPatient->medical_imgs = object_array(json_decode($data->orderPatient->medical_imgs ));
+        } else {
+            $data->orderPatient->medical_imgs = [];
+        }
         $content = new Content();
         $status = Order::getStatus();
         $content->view('cdms.order_detail',compact('data','status'));
 
         return $content;
     }
+
+    public function schedule(){
+        $time = redirect('time');
+        $time = '2020-12-07至2020-12-13';
+
+        $data = sechedule_timeperiod();
+        $org_id = Admin::user()->org_id;
+        $where = [];
+        if($org_id){
+            $where['organization_id'] = $org_id;
+        }
+
+        if($time){
+
+        } else {
+            $where['schedule_date']=date('Y-m-d',strtotime('this week'));
+        }
+
+        Schedule::where($where)->pluck('id');
+    }
 }

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

xqd xqd
@@ -2,6 +2,7 @@
 
 namespace App\Community\Controllers;
 
+use App\Models\CommunityNotice;
 use App\Models\Notice;
 use App\Models\User;
 use Encore\Admin\Controllers\AdminController;
@@ -35,7 +36,7 @@ class NoticeController extends AdminController
         $user = Admin::user();
         $org_id = $user->org_id;
         $docter_id = $user->docter_id;
-        $notice = Notice::get();
+        $notice = CommunityNotice::get();
         $content->view('cdms.notice',['notice'=>$notice]);
         return $content;
     }

+ 11 - 1
app/Community/Controllers/NurseController.php

xqd xqd xqd xqd
@@ -5,6 +5,7 @@ namespace App\Community\Controllers;
 use App\Models\Docter;
 use App\Models\DocterOrganization;
 use App\Models\Nurse;
+use App\Models\Organization;
 use Encore\Admin\Controllers\AdminController;
 use Encore\Admin\Facades\Admin;
 use Encore\Admin\Form;
@@ -18,7 +19,7 @@ class NurseController extends AdminController
      *
      * @var string
      */
-    protected $title = '用户管理';
+    protected $title = '儿保项目';
 
     /**
      * Make a grid builder.
@@ -29,6 +30,10 @@ class NurseController extends AdminController
     {
         $grid = new Grid(new Nurse());
         $grid->disableCreateButton(false);
+        $org_id = Admin::user()->org_id;
+        if($org_id){
+            $grid->model()->where(['org_id'=>$org_id]);
+        }
         $grid->column('id', __('ID'));
         $grid->column('name', __('项目名称'))->editable();
         $grid->column('used', __('已使用'))->display(function ($w){
@@ -80,6 +85,11 @@ class NurseController extends AdminController
         $org_id = $user->org_id;
         $form->text('name', __('项目名称'));
         $form->text('price', __('价格'));
+        $form->hidden('org_id')->value($org_id);
+//        if($org_id){
+//        } else {
+//            $form->select('org_id','机构')->options(Organization::pluck('name','id'));
+//        }
         $form->multipleSelect('docters','服务医生')->options(function () use ($org_id) {
             if(empty($org_id)){
                 return  Docter::pluck('name','id');

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

xqd
@@ -77,11 +77,13 @@ class NurseUserController extends AdminController
         $form->setAction('/cdms/api/paitent_remark');
         $form->hidden('patient_id');
         $org_id = Admin::user()->org_id;
-        $form->hidden('org_id')->default(intval($org_id));
-        $form->hidden('type')->default(1);
-        $form->textarea('remark','备注')->default(function () use ($org_id,$form){
-            return PatientRemark::where(['org_id'=>intval($org_id),'patient_id'=>$form->model()->patient_id,'type'=>1])->value('remark');
-        });
+        $form->hidden('org_id')->value(intval($org_id));
+        $form->hidden('type')->value(1);
+        if($org_id){
+            $form->textarea('remark','备注')->default(function () use ($org_id,$form){
+                return PatientRemark::where(['org_id'=>intval($org_id),'patient_id'=>$form->model()->patient_id,'type'=>1])->value('remark');
+            });
+        }
         return $form;
     }
 }

+ 8 - 1
app/Community/Controllers/OfficeController.php

xqd xqd
@@ -3,6 +3,7 @@
 namespace App\Community\Controllers;
 
 use App\Models\Office;
+use App\Models\Organization;
 use Encore\Admin\Controllers\AdminController;
 use Encore\Admin\Facades\Admin;
 use Encore\Admin\Form;
@@ -68,8 +69,14 @@ class OfficeController extends AdminController
     protected function form()
     {
         $form = new Form(new Office());
+        $org_id = Admin::user()->org_id;
+        if($org_id){
+            $form->hidden('org_id', __('名称'))->value(Admin::user()->org_id);
+        } else {
+            $orglist = Organization::pluck('name','id');
+            $form->select('org_id', __('名称'))->options($orglist);
+        }
         $form->text('name', __('名称'));
-        $form->hidden('org_id', __('名称'))->value(Admin::user()->org_id);
         $form->setWidth(6);
         return $form;
     }

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

xqd
@@ -33,7 +33,7 @@ class OrderController extends AdminController
         $is_docter = $user->isRole('opc');
         if(!$is_admin){
             $org_id = $user->org_id;
-            $where = ['product_type'=>1,'organization_id'=>$org_id];
+            $where = ['product_type'=>3,'organization_id'=>$org_id];
             if($is_docter) {
                 $where['docter_id'] = Docter::where(['cmds_id'=>$user->id])->value('id');
             }

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

xqd
@@ -89,7 +89,8 @@ class OrderNurseController extends AdminController
         });
 
         $grid->actions(function ($actions) {
-            if($actions->row->orders->order_status  < 2 ){
+//            dd($actions->row->orders);
+            if(!empty($actions->row->orders) && $actions->row->orders->order_status< 2 ){
                 $actions->add(new Finished());
             }
             $actions->add(new DelNurse());

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

xqd
@@ -15,7 +15,7 @@ class OrderVaccinesController extends AdminController
      *
      * @var string
      */
-    protected $title = '用户管理';
+    protected $title = '计免预约';
 
     /**
      * Make a grid builder.

+ 8 - 3
app/Community/Controllers/ScheduleController.php

xqd xqd
@@ -3,6 +3,7 @@
 namespace App\Community\Controllers;
 
 use App\Http\Controllers\Controller;
+use App\Models\CdmsUsers;
 use App\Models\Docter;
 use Encore\Admin\Controllers\AdminController;
 use Encore\Admin\Facades\Admin;
@@ -19,13 +20,17 @@ class ScheduleController extends AdminController
         $user = Admin::user();
         $org_id = $user->org_id;
         $docter_id = $user->docter_id;
-        $url = '/cdms/chat_view?docter_id='.$docter_id;
-        $content->body('<iframe src="/cdms/chat_view?docter_id='.$docter_id.'" style="width: 100%;height:800px;border: none"></iframe>');
+        $id = $org_id;
+        if(empty($docter_id)){
+            $id = $docter_id;
+        }
+        $url = '/cdms/chat_view?id='.$docter_id;
+        $content->body('<iframe src="/cdms/schedule_view?id='.$id.'" style="width:100%;height:800px;border: none"></iframe>');
         return $content;
     }
 
     public function schedule()
     {
-        return view('/cdms');
+        return view('cdms.schedule');
     }
 }

+ 40 - 13
app/Community/Controllers/StatController.php

xqd xqd
@@ -10,19 +10,30 @@ use App\Models\Order;
 use App\Models\Schedule;
 use App\Models\SchedulePeriod;
 use App\Models\Vaccine;
+use Encore\Admin\Facades\Admin;
 use Illuminate\Support\Facades\DB;
 
 class StatController extends  Controller
 {
 
+    public static $org_id;
+    public function __construct()
+    {
+        self::$org_id = Admin::user()->org_id;;
+    }
+
     //疫苗统计
     public static function vaccine()
     {
-        $data ['sum_num'] = Vaccine::count();
-        $data['have_num'] = Vaccine::sum('stock');
-        $data['less_num'] = Vaccine::where(['stock'=>0])->count();//取苗钟数
-        $data['today_schedule'] = Order::where(['order_status'=>1])->where('product_type',4)->where('created_at','>',date('Y-m-d H:i:s',time()))->count();
-        $data['today_vaccine'] = Order::where(['product_type'=>4])->with('orderPatient','appoint_start_time',strtotime('today'))->count();//接诊患者(人次)
+        $where = [];
+        if(self::$org_id){
+            $where['organization_id']=self::$org_id;
+        }
+        $data ['sum_num'] = Vaccine::where($where)->count();
+        $data['have_num'] = Vaccine::where($where)->sum('stock');
+        $data['less_num'] = Vaccine::where($where)->where(['stock'=>0])->count();//取苗钟数
+        $data['today_schedule'] = Order::where(['order_status'=>1])->where($where)->where('product_type',4)->where('created_at','>',date('Y-m-d H:i:s',time()))->count();
+        $data['today_vaccine'] = Order::where(['product_type'=>4])->where($where)->with('orderPatient','appoint_start_time',strtotime('today'))->count();//接诊患者(人次)
         return $data;
 
     }
@@ -32,34 +43,50 @@ class StatController extends  Controller
     //实时数据
     public static function  service()
     {
-        $data['schedule_paitent'] = Order::where(['order_status'=>1])->whereIn('product_type',[3,4,5])->where('created_at','>',date('Y-m-d H:i:s',time()))->count();
-        $data['schedule_docter'] = SchedulePeriod::distinct('docter_id')->where('schedule_date',date('Y-m-d H:i:s',time()))->count();
+        $where = [];
+        if(self::$org_id){
+            $where['organization_id']=self::$org_id;
+        }
+        $data['schedule_paitent'] = Order::where(['order_status'=>1])->where($where)->whereIn('product_type',[3,4,5])->where('created_at','>',date('Y-m-d H:i:s',time()))->count();
+        $data['schedule_docter'] = SchedulePeriod::distinct('docter_id')->where($where)->where('schedule_date',date('Y-m-d H:i:s',time()))->count();
 //        $data['paitent_num'] = Order::where(['order_status'=>1])->distinct()->count()->BgroupBy('patient_id');
         $data['paitent_num'] = Order::whereHas('orderPatient',function ($query){
             $query->where(['appoint_start_time'=>strtotime('today')]);
-        })->where(['product_type'=>4])->count();//接诊患者(人次)
+        })->where(['product_type'=>4])->where($where)->count();//接诊患者(人次)
 
 return $data;
 
 
     }
 
-    //儿保概况
+    //订单概况
     public static function nurse()
     {
-     $nurse_num = Order::where('product_type',5)->where('created_at','>',strtotime('today'))->count();
-     return $nurse_num;
+        //3.门诊预约 4.疫苗接种预约 5.儿保预约
+         $where = [];
+        if(self::$org_id){
+             $where['organization_id']=self::$org_id;
+         }
+         $nurse_num[] = Order::where('product_type',3)->where($where)->count();
+         $nurse_num[] = Order::where('product_type',4)->where($where)->count();
+         $nurse_num[] = Order::where('product_type',5)->where($where)->count();
+         return $nurse_num;
     }
 
     //排班统计
     public static function schedule()
     {
-        $ids = SchedulePeriod::where('schedule_date',date("Y-m-d"))->distinct('docter_id')->pluck('docter_id');
+        $where = [];
+        if(self::$org_id){
+            $where['organization_id']=self::$org_id;
+        }
+
+        $ids = SchedulePeriod::where('schedule_date',date("Y-m-d"))->where($where)->distinct('docter_id')->pluck('docter_id')->toArray();
         $data = ['clinic_num'=>0,'vaccine_num'=>0,'nurse_num'=>0];
         if(empty($ids)){
             return  $data;
         };
-        $docters = Docter::whereIn('id',$ids->toArray())->get(['id','type'])->GroupBy('type');
+        $docters = Docter::whereIn('id',$ids)->get(['id','type'])->GroupBy('type');
         foreach ($docters as $key => $val){
             if($key === 1){
                 $data['clinic_num'] = count($val);

+ 15 - 7
app/Community/Controllers/VaccineController.php

xqd xqd xqd
@@ -18,7 +18,7 @@ class VaccineController extends AdminController
      *
      * @var string
      */
-    protected $title = '用户管理';
+    protected $title = '疫苗';
 
     /**
      * Make a grid builder.
@@ -30,6 +30,9 @@ class VaccineController extends AdminController
         $grid = new Grid(new Vaccine());
 
         $org_id = Admin::user()->org_id;
+        if($org_id){
+            $grid->model()->where(['org_id'=>$org_id]);
+        }
         $grid->disableCreateButton(false);
         $grid->column('id', __('ID'));
         $grid->column('name', __('疫苗名称'));
@@ -95,12 +98,17 @@ class VaccineController extends AdminController
     {
         $form = new Form(new Vaccine());
 
-        $form->select('type', __('类型'))->options([1=>'一类',2=>'二类']);
-        $form->select('org_id','机构')->options(Organization::pluck('name','id'));
-        $form->text('name', __('疫苗名称'));
-        $form->text('supplier', __('厂家'));
-        $form->number('price', __('价格'));
-        $form->number('stock', __('库存'));
+        $orglist = Organization::pluck('name','id');
+        $org_id = Admin::user()->org_id;
+        if($org_id){
+            $orglist = Organization::where(['id'=>$org_id])->pluck('name','id');
+        }
+        $form->select('type', __('类型'))->options([1=>'一类',2=>'二类'])->default(1);
+        $form->select('org_id','机构')->options($orglist)->rules('required',['requried'=>'请选择机构']);
+        $form->text('name', __('疫苗名称'))->rules('required',['requried'=>'请填写疫苗名称']);
+        $form->text('supplier', __('厂家'))->rules('required',['requried'=>'请填写厂家信息']);
+        $form->number('price', __('价格'))->rules('required',['requried'=>'请填写价格']);
+        $form->number('stock', __('库存'))->rules('required',['requried'=>'请填写库存']);
         $form->textarea('remark', __('备注'));
 
         return $form;

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

xqd xqd
@@ -17,7 +17,7 @@ class VaccineUserController extends AdminController
      *
      * @var string
      */
-    protected $title = '用户列表';
+    protected $title = '计免用户';
 
     /**
      * Make a grid builder.
@@ -29,7 +29,6 @@ class VaccineUserController extends AdminController
         $grid = new Grid(new Order());
         $is_amdin = Admin::user()->isRole('administrator');
         $user = Admin::user();
-        dd($user);
         if(!$is_amdin){
             $grid->model()->where(['organization_id'=>$user->org_id,'product_type'=>4]);
         }

+ 13 - 0
app/Community/routes.php

xqd xqd xqd
@@ -2,6 +2,7 @@
 //常规路由
 Route::get('/', 'HomeController@index');
 Route::get('/home', 'HomeController@home');
+Route::get('/total_schedule', 'HomeController@schedule');
 Route::resource('nurses', NurseController::class);
 Route::resource('nurse_users', NurseUserController::class);
 Route::resource('order_nurses', OrderNurseController::class);
@@ -26,6 +27,10 @@ Route::get('notices', 'NoticeController@grid');
 
 //群发通知
 Route::resource('user_notices', UserNoticeController::class);
+Route::get('schedule', 'ScheduleController@index');
+Route::get('schedule_view', 'ScheduleController@schedule');
+
+//
 
 Route::get('send_notices', 'NoticeController@send');
 Route::resource('/docter_chats', DocterChatController::class);
@@ -36,7 +41,15 @@ Route::get('/order_detail', 'HomeController@order_detail');
 Route::get('/api/getDocter', 'ApiController@getDocter');
 Route::put('/api/paitent_remark', 'ApiController@paitent_remark');
 Route::get('/api/sendmsg', 'ApiController@sendmsg');
+Route::post('/api/update_order', 'ApiController@updateOrder');
+
+Route::get('/getComSchedule', 'ApiController@getComSchedule');
+Route::get('/getChatOrder', 'ApiController@get_chat_order');
+Route::get('/setDocChedule', 'ApiController@setDocChedule');
+Route::get('/getScheduleInfo', 'ApiController@getScheduleInfo');
+
 
+Route::get('/getChatOrder', 'ScheDuleController@get_chat_order');
 
 
 

+ 30 - 0
app/Helpers/functions.php

xqd xqd
@@ -7,6 +7,8 @@
  */
 
 use App\Exceptions\ExitOutException;
+use App\Models\SystemConfig;
+use App\Models\TimePeriod;
 
 //统一输出格式话的json数据
 if (!function_exists('out')) {
@@ -343,3 +345,31 @@ if (!function_exists('generate_code')) {
         return rand($min, $max);
     }
 }
+
+if (!function_exists('object_array')) {
+    function object_array($array) {
+        if(is_object($array)) {
+            $array = (array)$array;
+        }
+        if(is_array($array)) {
+            foreach($array as $key=>$value) {
+                $array[$key] = object_array($value);
+            }
+        }
+        return $array;
+    }
+}
+
+if (!function_exists('sechedule_timeperiod')) {
+    function sechedule_timeperiod()
+    {
+        $schedule_config = SystemConfig::get('docter_config');
+        $times[] = TimePeriod::where('start_time_period','>=',$schedule_config['morning_start'])->where('end_time_period','<=',$schedule_config['morning_end'])->pluck('id')->toArray();
+        $times[] = TimePeriod::where('start_time_period','>=',$schedule_config['afternoon_start'])->where('end_time_period','<=',$schedule_config['afternoon_end'])->pluck('id')->toArray();
+        $times[] = TimePeriod::where('start_time_period','>=',$schedule_config['evening_start'])->where('end_time_period','<=',$schedule_config['evening_end'])->pluck('id')->toArray();
+
+        return $times;
+    }
+}
+
+

+ 135 - 160
app/Http/Controllers/ScheDuleController.php

xqd xqd xqd xqd xqd xqd
@@ -58,7 +58,7 @@ class ScheDuleController  extends Controller
 //        $set_time = '2020-11-30至2020-12-06';
 //        $org_id = 1;
 //        $docter_id = 47;
-        $role = 1;
+        $role = 2;
 
         if(empty($set_time) || empty($org_id) || empty($docter_id)){
             return json_encode(['status'=>601,'msg'=>'缺少必要参数','data'=>'']);
@@ -74,6 +74,7 @@ class ScheDuleController  extends Controller
 
         $start_time  = intval(str_replace('-','',$all_time[0]));
         $end_time  = intval(str_replace('-','',$all_time[1]));
+        $first_day = strtotime($all_time[0]);
 //        DB::enableQueryLog();
         $sche_dule = Schedule::whereBetween('schedule_day',[$start_time,$end_time])
                                 ->where(['docter_id'=>$docter_id])
@@ -122,11 +123,11 @@ class ScheDuleController  extends Controller
 
         //时段区间id
         $schedule_config = SystemConfig::get('docter_config');
-        $mo = TimePeriod::where('start_time_period','>=',$schedule_config['morning_start'])->where('end_time_period','<=',$schedule_config['morning_end'])->pluck('id')->toArray();
-        $af = TimePeriod::where('start_time_period','>=',$schedule_config['afternoon_start'])->where('end_time_period','<=',$schedule_config['afternoon_end'])->pluck('id')->toArray();
-        $ev = TimePeriod::where('start_time_period','>=',$schedule_config['evening_start'])->where('end_time_period','<=',$schedule_config['evening_end'])->pluck('id')->toArray();
+        $times[] = TimePeriod::where('start_time_period','>=',$schedule_config['morning_start'])->where('end_time_period','<=',$schedule_config['morning_end'])->pluck('id')->toArray();
+        $times[] = TimePeriod::where('start_time_period','>=',$schedule_config['afternoon_start'])->where('end_time_period','<=',$schedule_config['afternoon_end'])->pluck('id')->toArray();
+        $times[] = TimePeriod::where('start_time_period','>=',$schedule_config['evening_start'])->where('end_time_period','<=',$schedule_config['evening_end'])->pluck('id')->toArray();
         if(empty($sche_dule)){
-            return ['status'=>200,'msg'=>'ok','data'=>['schedule'=>$sche_dule_arr,'org_id'=>$org_id,'docter_id'=>$docter_id]];
+            return ['status'=>200,'msg'=>'ok','data'=>['docter'=>$sche_dule_arr,'org_id'=>$org_id,'docter_id'=>$docter_id]];
         }
 
         $role = 2;
@@ -136,96 +137,47 @@ class ScheDuleController  extends Controller
             $name = Organization::where('id',$docter_id)->value('name');
 
             $user_id = $org_id;
-
-            for ($i = $start_time; $i<=$end_time; $i++){
-                $j = 0;
-                $strtime = "$i";
-                $str_time = substr($strtime,0,4).'-'.substr($strtime,4,2).'-'.substr($strtime,6,2);
-                //检测上午
-
-                $is_mo_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$mo)
-                    ->where('organization_id','!=',$org_id)->count();
-                ['schedule_id'=>$sche_dule,'schedule_date'=>$str_time,'organization_id'=>$org_id,'docter_id'=>$docter_id];
-
-                $is_self = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$mo)
-                    ->where('organization_id',$org_id)->count();
-                if($is_self){
-                    $sche_dule_arr[0][$week_arr[$j]] = true;
-                }
-                if($is_mo_have){
-                    $sche_dule_arr[0][$week_arr[$j]] = 'other';
-                }
-                //检测下午
-                $is_af_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$af)
-                    ->where('organization_id','!=',$org_id)->count();
-                $is_af_self = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$af)
-                    ->where('organization_id',$org_id)->count();
-                if($is_af_self){
-                    $sche_dule_arr[1][$week_arr[$j]] = true;
-                }
-                if($is_af_have){
-                    $sche_dule_arr[1][$week_arr[$j]] = 'other';
-                }
-
-                //检测晚上
-                $is_ev_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$ev)
-                    ->where('organization_id','!=',$org_id)->count();
-                $is_ev_self = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$ev)
-                    ->where('organization_id',$org_id)->count();
-                if($is_ev_self){
-                    $sche_dule_arr[2][$week_arr[$j]] = true;
-                }
-                if($is_ev_have){
-                    $sche_dule_arr[2][$week_arr[$j]] = 'other';
+            for ($i = 1; $i<7; $i++){
+                $str_time =  date('Y-m-d',($first_day + $i * 86400));
+                for($j=0;$j<3;$j++){
+                    //检测上午
+                    $is_mo_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$times[$j])
+                        ->where('organization_id','!=',$org_id)->count();
+                    ['schedule_id'=>$sche_dule,'schedule_date'=>$str_time,'organization_id'=>$org_id,'docter_id'=>$docter_id];
+
+                    $is_self = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$times[$j])
+                        ->where('organization_id',$org_id)->count();
+
+                    if($is_self){
+                        $sche_dule_arr[$j][$week_arr[$i]] = true;
+                    }
+                    if($is_mo_have){
+                        $sche_dule_arr[$j][$week_arr[$i]] = 'other';
+                    }
                 }
             }
-
         } else {
+
             $ids = DocterOrganization::where(['docter_id'=>$docter_id])->pluck('organization_id');
             $list = Organization::whereIn('id',$ids)->get(['id as value','name as label'])->toArray();
             $name = Docter::where('id',$docter_id)->value('name');
             $user_id = $docter_id;
-
-            for ($i = $start_time; $i<=$end_time; $i++){
-                $j = 0;
-                $strtime = "$i";
-                $str_time = substr($strtime,0,4).'-'.substr($strtime,4,2).'-'.substr($strtime,6,2);
-                //检测上午
-//                echo $str_time.'<br>';
-
-                $is_mo_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$mo)
-                    ->where('organization_id','!=',$org_id)->where('docter_id','=',$docter_id)->count();
-
-                $is_mo_self = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$mo)
-                    ->where('organization_id','=',$org_id)->where('docter_id',$docter_id)->count();
-                if($is_mo_self){
-                    $sche_dule_arr[0][$week_arr[$j]] = true;
-                }
-                if($is_mo_have){
-                    $sche_dule_arr[0][$week_arr[$j]] = 'other';
-                }
-                //检测下午
-                $is_af_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$af)
-                    ->where('organization_id','!=',$org_id)->where('docter_id','=',$docter_id)->count();
-                $is_af_self = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$af)
-                    ->where('organization_id','=',$org_id)->where('docter_id',$docter_id)->count();
-                if($is_af_self){
-                    $sche_dule_arr[1][$week_arr[$j]] = true;
-                }
-                if($is_af_have){
-                    $sche_dule_arr[1][$week_arr[$j]] = 'other';
-                }
-
-                //检测晚上
-                $is_ev_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$ev)
-                    ->where('organization_id','!=',$org_id)->where('docter_id','=',$docter_id)->count();
-                $is_ev_self = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$ev)
-                    ->where('organization_id','=',$org_id)->where('docter_id',$docter_id)->count();
-                if($is_ev_self){
-                    $sche_dule_arr[2][$week_arr[$j]] = true;
-                }
-                if($is_ev_have){
-                    $sche_dule_arr[2][$week_arr[$j]] = 'other';
+            for ($i=0; $i<=6; $i++){
+                $str_time =  date('Y-m-d',($first_day + $i * 86400));
+                for($j=0;$j<=2;$j++){
+                    //检测上午
+                    $is_mo_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$times[$j])
+                        ->where('organization_id','!=',$org_id)->where('docter_id','=',$docter_id)->count();
+                    $is_mo_self = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$times[$j])
+                        ->where('organization_id',$org_id)->where('docter_id',$docter_id)->count();
+//                    echo $i.'--'.$j.'is_self---'.$is_mo_self.'<br>';
+
+                    if($is_mo_self){
+                        $sche_dule_arr[$j][$week_arr[$i]] = true;
+                    }
+                    if($is_mo_have){
+                        $sche_dule_arr[$j][$week_arr[$i]] = 'other';
+                    }
                 }
             }
         }
@@ -255,113 +207,129 @@ class ScheDuleController  extends Controller
         $org_id = request('org_id');
         $set_time = request('time');
         $data = request('schedulingtime');
-        $shcdule_id = request('schdule_id');
-        $set_time = '2020-12-07至2020-12-13';
+//        $set_time = '2020-12-07至2020-12-13';
         if(empty($set_time) || empty($org_id) || empty($docter_id)){
             return json_encode(['status'=>601,'msg'=>'缺少必要参数','data'=>'']);
         }
+
         $all_time = explode('至',$set_time);
+        $schedule_id = Schedule::where(['organization_id'=>$org_id,'docter_id'=>$docter_id,'schedule_date'=>$all_time[0]])->value('id');
         if(count($all_time) <2) {
             return json_encode(['status'=>601,'msg'=>'缺少必要参数','data'=>'']);
         }
         $start_time  = intval(str_replace('-','',$all_time[0]));
         $end_time  = intval(str_replace('-','',$all_time[1]));
+        $first_day = strtotime($start_time);
         //周字段映射
         $week_arr = ['monday','tuesday','wednesday','thursday','friday','saturday','sunday'];
-
-        $data = [
-            [
-                'date'=>"上午",
-                'monday'=>false,
-                'tuesday'=>false,
-                'wednesday'=>false,
-                'thursday'=>true,
-                'friday'=>false,
-                'saturday'=>false,
-                'sunday'=>false,
-            ],
-            [
-                'date'=>"下午",
-                'monday'=>false,
-                'tuesday'=>true,
-                'wednesday'=>false,
-                'thursday'=>false,
-                'friday'=>false,
-                'saturday'=>false,
-                'sunday'=>false,
-            ],
-            [
-                'date'=>"晚上",
-                'monday'=>false,
-                'tuesday'=>false,
-                'wednesday'=>true,
-                'thursday'=>false,
-                'friday'=>false,
-                'saturday'=>false,
-                'sunday'=>false,
-            ]
-        ];
+//        $data = [
+//            [
+//                'date'=>"上午",
+//                'monday'=>false,
+//                'tuesday'=>false,
+//                'wednesday'=>false,
+//                'thursday'=>true,
+//                'friday'=>false,
+//                'saturday'=>false,
+//                'sunday'=>false,
+//            ],
+//            [
+//                'date'=>"下午",
+//                'monday'=>false,
+//                'tuesday'=>true,
+//                'wednesday'=>false,
+//                'thursday'=>false,
+//                'friday'=>false,
+//                'saturday'=>false,
+//                'sunday'=>false,
+//            ],
+//            [
+//                'date'=>"晚上",
+//                'monday'=>false,
+//                'tuesday'=>false,
+//                'wednesday'=>true,
+//                'thursday'=>false,
+//                'friday'=>false,
+//                'saturday'=>false,
+//                'sunday'=>false,
+//            ]
+//        ];
 
 
         //时段区间id
         $schedule_config = SystemConfig::get('docter_config');
-        $mo = TimePeriod::where('start_time_period','>=',$schedule_config['morning_start'])
+        $times[1] = TimePeriod::where('start_time_period','>=',$schedule_config['morning_start'])
                         ->where('end_time_period','<=',$schedule_config['morning_end'])
                         ->pluck('id')->toArray();
-        $af = TimePeriod::where('start_time_period','>=',$schedule_config['afternoon_start'])
+
+        $times[2] = TimePeriod::where('start_time_period','>=',$schedule_config['afternoon_start'])
                         ->where('end_time_period','<=',$schedule_config['afternoon_end'])
                         ->pluck('id')->toArray();
-        $ev = TimePeriod::where('start_time_period','>=',$schedule_config['evening_start'])
+
+        $times[3] = TimePeriod::where('start_time_period','>=',$schedule_config['evening_start'])
                         ->where('end_time_period','<=',$schedule_config['evening_end'])
                         ->pluck('id')->toArray();
+        foreach ($times as $val){
+            foreach ($val as $t){
+                $time_period[] = $t;
+            }
+        }
 
+        $data[0] = array_values(object_array(json_decode($data[0])));
+        $data[1] = array_values(object_array(json_decode($data[1])));
+        $data[2] = array_values(object_array(json_decode($data[2])));
 
         $mo_schedule = array_values($data[0]);
         $af_schedule = array_values($data[1]);
         $ev_schedule = array_values($data[2]);
 
-        $org_id = 1;
-        $docter_id = 47;
 
         DB::beginTransaction();
         try {
-            if(!$shcdule_id){
-                $schedule_insert = [
-                    'organization_id'=>$org_id,
-                    'docter_id'=>$docter_id,
-                    'schedule_date'=>$all_time[0],
-                    'schedule_day'=>$start_time,
-                    'created_at'=>Carbon::now(),
-                    'updated_at'=>Carbon::now(),
-                ];
-                $shcdule_id = Schedule::insertGetId($schedule_insert);
+            $schedule_insert = [
+                'organization_id'=>$org_id,
+                'docter_id'=>$docter_id,
+                'schedule_date'=>$all_time[0],
+                'schedule_day'=>$start_time,
+                'created_at'=>Carbon::now(),
+                'updated_at'=>Carbon::now(),
+            ];
+            if(!$schedule_id){
+                $schedule_id = Schedule::insertGetId($schedule_insert);
             }
-
             unset($schedule_insert['schedule_day']);
-
-            $schedule_insert['schedule_id'] =$shcdule_id;
+            $schedule_insert['schedule_id'] =$schedule_id;
             $info = [];
-            for ($i = 0 ;$i<=2;$i++){
-                $mo_schedule = array_values($data[$i]);
+            for ($i = 1 ;$i<=3;$i++){
+                $mo_schedule = array_values($data[$i-1]);
                 foreach ($mo_schedule as $key=>$val){
                     if($key==0) continue;
                     $schedule_date = $start_time + $key;
                     $strtime = "$schedule_date";
-                    $first_day = strtotime('this week');
                     $time_insert = $schedule_insert;
-                    $time_insert['type'] = $i+1;
+                    $time_insert['type'] = $i;
+
+                    $schedule_time = $times[$i];
                     $real_time = date('Y-m-d',($first_day + ($key-1)*86400));
                     $time_insert['schedule_date'] = $real_time;
                     $time_insert['me_sure'] = 1;
-                    foreach ($mo as $time_id){
-                        $is_have = SchedulePeriod::where(['time_period_id'=>$time_id,'type'=>($i+1),'docter_id'=>$docter_id,'schedule_date'=>$real_time]);
-                        if($is_have) break;
-                        $time_insert['time_period_id'] = $time_id;
-                        $info[] = $time_insert;
-                        SchedulePeriod::insert($time_insert);
-                    }
-                    if($val){
+
+                    if($val == true){
                         $data['schedule_date'] = $start_time ;
+
+                        foreach ($schedule_time as $time_id){
+                            $is_have = SchedulePeriod::where(['time_period_id'=>$time_id,'type'=>($i),'docter_id'=>$docter_id,'schedule_date'=>$real_time,'organization_id'=>$org_id,'docter_id'=>$docter_id,'schedule_id'=>$schedule_id])->value('id');
+                            if($is_have) break;
+                            $time_insert['time_period_id'] = $time_id;
+                            $info[] = $time_insert;
+                            SchedulePeriod::insert($time_insert);
+                        }
+                    } else {
+                        $data['schedule_date'] = $start_time;
+                        foreach ($schedule_time as $time_id){
+                            $is_have = SchedulePeriod::where(['time_period_id'=>$time_id,'type'=>($i),'docter_id'=>$docter_id,'schedule_date'=>$real_time,'organization_id'=>$org_id,'docter_id'=>$docter_id,'schedule_id'=>$schedule_id])->value('id');
+                            if($is_have)  SchedulePeriod::where(['time_period_id'=>$time_id,'type'=>($i),'docter_id'=>$docter_id,'schedule_date'=>$real_time,'organization_id'=>$org_id,'docter_id'=>$docter_id,'schedule_id'=>$schedule_id])->delete();
+                        }
                     }
                 }
             }
@@ -376,31 +344,38 @@ class ScheDuleController  extends Controller
     //获取用户信息
     public function getScheduleInfo()
     {
-        $docter_id = request('docter_id');
+        $docter_id = request('id');
         $org_id = request('org_id');
-        $is_docter = CdmsUsers::where('docter_id',$docter_id);
-        $role = 1;
+        $is_docter = CdmsUsers::where('docter_id',$docter_id)->first();
         if(empty($org_id) && empty($docter_id)){
             return json_encode(['status'=>601,'msg'=>'缺少必要参数','data'=>'']);
         }
+        $role = 1;
         if($is_docter){
             $role = 2;
         }
+        $lists =[];
         if($role == 1){
-            $ids = DocterOrganization::where(['docter_id'=>$docter_id])->pluck('organization_id');
-            $list = Organization::whereIn('id',$ids)->get(['id as value','name as label'])->toArray();
+            $ids = DocterOrganization::where(['organization_id'=>$org_id])->pluck('docter_id')->toArray();
+            $list = Docter::whereIn('id',$ids)->get(['id','name']);
+            foreach ($list as $val){
+                $lists[] = ['value'=>$val->id,'label'=>$val->name];
+            }
             $name = Organization::where('id',$org_id)->value('name');
             $user_id = $org_id;
         } else {
             $ids = DocterOrganization::where(['docter_id'=>$docter_id])->pluck('organization_id');
-            $list = Organization::whereIn('id',$ids)->get(['id as value','name as label'])->toArray();
+            $list = Organization::whereIn('id',$ids)->get(['id','name']);
+            foreach ($list as $val){
+                $lists[] = ['value'=>$val->id,'label'=>$val->name];
+            }
             $name = Docter::where('id',$docter_id)->value('name');
             $user_id = $docter_id;
         }
         $data['user_id'] = $user_id;
         $data['name'] = $name;
         $data['role'] = $role;
-        $data['list'] = $list;
+        $data['list'] = $lists;
         return (json_encode(['code'=>200,'msg'=>'ok','data'=>$data]));
     }
 

+ 8 - 0
app/Models/DocterOrganization.php

xqd xqd
@@ -7,6 +7,9 @@ use Illuminate\Database\Eloquent\Model;
 class DocterOrganization extends Model
 {
     protected $table = 'docter_organization';
+    protected $casts = [
+        'card_photo' => 'json',
+    ];
 
     //医生类型(1.问诊医生 2.疫苗医生 3.儿保医生)
     public  static $_doct_type = [1=>'门诊医生',2=>'疫苗医生',3=>'儿保医生'];
@@ -31,4 +34,9 @@ class DocterOrganization extends Model
         return $this->hasOne(Organization::class,'id','organization_id');
     }
 
+    public  function teamdocter()
+    {
+        return $this->hasOne(TeamDocter::class,'docter_id','docter_id');
+    }
+
 }

+ 1 - 1
app/Models/Office.php

xqd
@@ -13,6 +13,6 @@ class Office extends BaseModel
 
     public function organizations()
     {
-        return $this->hasMany(Organization::class,'id','org_id');
+        return $this->hasOne(Organization::class,'id','org_id');
     }
 }

+ 2 - 1
app/Models/Order.php

xqd
@@ -12,9 +12,10 @@ class Order extends BaseModel
 {
     protected $appends = ['is_evaluate', 'order_duration'];
 
-    CONST UNPAID = 1, ISING = 2, FINISHED = 3,CANCELED=4; //订单状态(1.未支付 2.进行中 3.已完成 4.已取消)
+    CONST UNPAID = 1, NOTACCEPT = 2, ISING = 3, FINISHED = 4,CANCELED=5; //订单状态(1.未支付 2.进行中 3.已完成 4.已取消)
     public static  $_order_status = [
         self::UNPAID=>'未支付',
+        self::NOTACCEPT=>'待支付',
         self::ISING=>'进行中',
         self::FINISHED=>'已完成',
         self::CANCELED=>'已取消',

+ 1 - 1
app/Models/Organization.php

xqd
@@ -24,7 +24,7 @@ class Organization extends BaseModel
     }
     public function docter()
     {
-        return $this->belongsToMany(Docter::class);
+        return $this->belongsTo(Docter::class);
     }
 
     public function user()

+ 1 - 1
app/Models/Patient.php

xqd
@@ -43,7 +43,7 @@ class Patient extends BaseModel
         return $text;
     }
     public function users(){
-        return $this->hasOne(User::class,'id','user_id');
+        return $this->belongsTo(User::class,'id','user_id');
     }
     public function order(){
         return $this->hasMany(Order::class);

+ 1 - 1
app/Models/User.php

xqd
@@ -94,6 +94,6 @@ class User extends BaseModel
         return $this->hasMany(UserBalanceLog::class);
     }
     public function patient(){
-        return $this->hasMany(Patient::class);
+        return $this->hasMany(Patient::class,'user_id','id');
     }
 }

+ 1 - 1
config/app.php

xqd
@@ -67,7 +67,7 @@ return [
     |
     */
 
-    'timezone' => 'UTC',
+    'timezone' => 'Asia/shanghai',
 
     /*
     |--------------------------------------------------------------------------

+ 7 - 5
config/tenancy.php

xqd xqd xqd xqd xqd
@@ -11,7 +11,7 @@ return [
     | login page.
     |
     */
-    'name' => '超级妈力机构管理平台',
+    'name' => '超级妈力社区管理平台',
 
     /*
     |--------------------------------------------------------------------------
@@ -22,7 +22,7 @@ return [
     | `img` tag, eg '<img src="http://logo-url" alt="Admin logo">'.
     |
     */
-    'logo' => '<b>超级妈力</b> 管理平台',
+    'logo' => '<b>社区</b> 管理平台',
 
     /*
     |--------------------------------------------------------------------------
@@ -34,7 +34,7 @@ return [
     | '<img src="http://logo-url" alt="Admin logo">'.
     |
     */
-    'logo_mini' => '<b>超级妈力</b>',
+    'logo_mini' => '<b>力</b>',
 
     /*
     |--------------------------------------------------------------------------
@@ -85,7 +85,9 @@ return [
     | If your page is going to be accessed via https, set it to `true`.
     |
     */
-    'https' => env('ADMIN_HTTPS', false),
+
+    'https' => env('ADMIN_HTTPS', true),
+
 
     /*
     |--------------------------------------------------------------------------
@@ -300,7 +302,7 @@ return [
     | When you use command `php artisan admin:extend` to generate extensions,
     | the extension files will be generated in this directory.
     */
-    'extension_dir' => app_path('Comuunity/Extensions'),
+    'extension_dir' => app_path('Community/Extensions'),
 
     /*
     |--------------------------------------------------------------------------

文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/app.215f8c27.js


文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/app.215f8c27.js.map


文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/app.426d1eed.js


文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/app.426d1eed.js.map


文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/app.81757419.js


文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/app.81757419.js.map


文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/app.8628ae9c.js


文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/app.8628ae9c.js.map


文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/app.c37981e4.js


文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/app.c37981e4.js.map


文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/app.e96ab16e.js


文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/app.f1ec90df.js


文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/app.f1ec90df.js.map


文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/chunk-vendors.e71f87b8.js


文件差異過大導致無法顯示
+ 0 - 0
public/cdms/static/js/chunk-vendors.e71f87b8.js.map


二進制
public/favicon.ico


文件差異過大導致無法顯示
+ 1 - 0
public/jquery-3.5.1.min.js


+ 1 - 1
resources/views/cdms/notice.blade.php

xqd
@@ -81,7 +81,7 @@
         </div>
         <div class="tiem">{{date('Y年m月d日 H:i:s',strtotime($val->created_at))}}</div>
     </div>
-    <div>{{$val->content}}</div>
+    <div>{!!$val->content!!}</div>
 </div>
 @endforeach
 

+ 40 - 10
resources/views/cdms/order_detail.blade.php

xqd xqd
@@ -27,26 +27,35 @@
         display: block;
     }
 
+    .imgs{
+        height: 500px;
+        display: block;
+    }
 </style>
 
 <div class="contet">
     <div class="center">
         <h2 style="display: inline-block">订单详情</h2>
         @if($data->orderPatient)
+            @if($data->order_status == 3)
             <a class = "a_btn m-l-30" href="/cdms/chats">会话</a>
-            <a class = "a_btn m-l-30" href="javascript:void(0)">完成</a>
+            <a class = "a_btn complet m-l-30" href="javascript:void(0)">完成</a>
+            @endif
         @endif
     </div>
     <div class="center">
         <span>订单号:{{$data->order_sn}}</span>
         @if(!empty($data->orderPatient))
-            <span>患者:{{$data->orderPatient->name}}</span>
-            <span>年龄:{{birthday_to_age($data->orderPatient->birthday)}}</span>
-            <span>身份证号:{{$data->orderPatient->card_number}}</span>
-            <span>下单时间:{{$data->orderPatient->created_at}}</span>
-            <span>订单状态:{{$status[$data->order_status]}}接单</span>
-            <span>病情描述:{{$data->orderPatient->symptoms}}</span>
-            <span>图片:{{$data->orderPatient->medical_imgs}}</span>
+            <span>患者:  {{$data->orderPatient->name}}</span>
+            <span>年龄:  {{birthday_to_age($data->orderPatient->birthday)}}</span>
+            <span>身份证号:  {{$data->orderPatient->card_number}}</span>
+            <span>下单时间:  {{$data->orderPatient->created_at}}</span>
+            <span>订单状态:  {{$status[$data->order_status]}}@if($data->order_status == 2)  <a class = "a_btn add m-l-30" href="javascript:void(0)">接单</a> @endif </span>
+            <span>病情描述:  {{$data->orderPatient->symptoms}}</span>
+            <span>图片: </span>
+            @foreach($data->orderPatient->medical_imgs as $img)
+                <img class="imgs" src="{{$img}}" alt="">
+            @endforeach
         @else
             <span>患者:</span>
             <span>年龄:</span>
@@ -58,7 +67,28 @@
         @endif
     </div>
 </div>
-
+<script src="/jquery-3.5.1.min.js"></script>
 <script>
-
+    var id = {{$data->id}}
+    $('.complet').click(function () {
+        $.post('/cdms/api/update_order',{'id':id,'status':4},function (res) {
+            console.log(res)
+            if(res.code == 200){
+                alert('操作成功')
+                location.reload();
+            } else{
+                alert('操作失敗')
+            }
+        });
+    })
+    $('.add').click(function () {
+        $.post('/cdms/api/update_order',{'id':id,'status':3},function (res) {
+            if(res.code == 200){
+                alert('接单成功')
+                location.reload();
+            } else{
+                alert('接单失敗')
+            }
+        });
+    })
 </script>

+ 1 - 1
resources/views/cdms/schedule.blade.php

xqd
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>scheduling</title><link href="static/css/app.999c8fb4.css" rel="preload" as="style"><link href="static/css/chunk-vendors.767f701c.css" rel="preload" as="style"><link href="static/js/app.e96ab16e.js" rel="preload" as="script"><link href="static/js/chunk-vendors.6c9b2a24.js" rel="preload" as="script"><link href="static/css/chunk-vendors.767f701c.css" rel="stylesheet"><link href="static/css/app.999c8fb4.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but scheduling doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.6c9b2a24.js"></script><script src="static/js/app.e96ab16e.js"></script></body></html>
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>scheduling</title><link href="static/css/app.999c8fb4.css" rel="preload" as="style"><link href="static/css/chunk-vendors.767f701c.css" rel="preload" as="style"><link href="static/js/app.306dc37f.js" rel="preload" as="script"><link href="static/js/chunk-vendors.e71f87b8.js" rel="preload" as="script"><link href="static/css/chunk-vendors.767f701c.css" rel="stylesheet"><link href="static/css/app.999c8fb4.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but scheduling doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.e71f87b8.js"></script><script src="static/js/app.306dc37f.js"></script></body></html>

+ 3 - 0
routes/web.php

xqd
@@ -17,8 +17,11 @@ Route::get('/', function () {
 
 
 Route::get('/api/getComSchedule', 'ScheDuleController@getComSchedule');
+Route::get('/getComSchedule', 'ScheDuleController@getComSchedule');
 Route::get('/getChatOrder', 'ScheDuleController@get_chat_order');
 Route::get('/api/setDocChedule', 'ScheDuleController@setDocChedule');
+Route::get('/setDocChedule', 'ScheDuleController@setDocChedule');
 //用户信息
 Route::get('/api/getScheduleInfo', 'ScheDuleController@getScheduleInfo');
+Route::get('/getScheduleInfo', 'ScheDuleController@getScheduleInfo');
 

部分文件因文件數量過多而無法顯示