jingyuzhi 4 лет назад
Родитель
Сommit
29d76155b1
50 измененных файлов с 2447 добавлено и 242 удалено
  1. 1 1
      app/Admin/Actions/Community/Docter/Chat.php
  2. 78 4
      app/Admin/Actions/Community/Notice/sendNotice.php
  3. 19 0
      app/Admin/Actions/Community/Order/Detail.php
  4. 5 0
      app/Admin/Actions/UpdateCdms.php
  5. 18 0
      app/Admin/Actions/backstage/Docters/SignUp.php
  6. 19 0
      app/Admin/Actions/backstage/Docters/Team.php
  7. 20 0
      app/Admin/Actions/backstage/Evaluate/Ignore.php
  8. 20 0
      app/Admin/Actions/backstage/Evaluate/Pass.php
  9. 2 0
      app/Admin/Actions/backstage/Pass.php
  10. 1 0
      app/Admin/Actions/backstage/Refuse.php
  11. 28 0
      app/Admin/Actions/backstage/User/Insurance.php
  12. 37 0
      app/Admin/Actions/backstage/User/MapDepot.php
  13. 5 2
      app/Admin/Controllers/ApproveController.php
  14. 1 2
      app/Admin/Controllers/CdmsController.php
  15. 118 0
      app/Admin/Controllers/Config/ConfigController.php
  16. 307 0
      app/Admin/Controllers/Config/FormController.php
  17. 80 0
      app/Admin/Controllers/DocterTeamController.php
  18. 31 49
      app/Admin/Controllers/DoctorManagementController.php
  19. 0 64
      app/Admin/Controllers/QualificationController.php
  20. 99 0
      app/Admin/Controllers/QualificationsController.php
  21. 84 0
      app/Admin/Controllers/SignUpController.php
  22. 114 0
      app/Admin/Controllers/UserEvaluatesController.php
  23. 1 2
      app/Admin/Controllers/UserPatientsController.php
  24. 3 0
      app/Admin/Controllers/UserServiceController.php
  25. 18 1
      app/Admin/routes.php
  26. 32 3
      app/Community/Controllers/ApiController.php
  27. 20 38
      app/Community/Controllers/DocterChatController.php
  28. 1 0
      app/Community/Controllers/DocterOrgController.php
  29. 51 18
      app/Community/Controllers/HomeController.php
  30. 10 9
      app/Community/Controllers/NoticeController.php
  31. 21 2
      app/Community/Controllers/NurseController.php
  32. 6 4
      app/Community/Controllers/OrderNurseController.php
  33. 41 11
      app/Community/Controllers/StatController.php
  34. 120 0
      app/Community/Controllers/UserNoticeController.php
  35. 11 5
      app/Community/Controllers/VaccineController.php
  36. 11 1
      app/Community/routes.php
  37. 317 25
      app/Http/Controllers/ScheDuleController.php
  38. 17 0
      app/Models/CommunitySchedule.php
  39. 10 0
      app/Models/Nurse.php
  40. 1 1
      app/Models/Order.php
  41. 5 0
      app/Models/SchedulePeriod.php
  42. 78 0
      app/Models/SystemConfig.php
  43. 0 0
      resources/views/cdms/chat.blade.php
  44. 87 0
      resources/views/cdms/notice.blade.php
  45. 98 0
      resources/views/cdms/nurse_data.blade.php
  46. 52 0
      resources/views/cdms/order_detail.blade.php
  47. 121 0
      resources/views/cdms/real_data.blade.php
  48. 110 0
      resources/views/cdms/schedule_data.blade.php
  49. 116 0
      resources/views/cdms/vaccine_data.blade.php
  50. 2 0
      routes/web.php

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

xqd
@@ -10,6 +10,6 @@ class Chat extends RowAction
     public $name = '查看';
     public function href()
     {
-        return '/cdms/docter_chats/1/edit';
+        return '/cdms/chats';
     }
 }

+ 78 - 4
app/Admin/Actions/Community/Notice/sendNotice.php

xqd xqd
@@ -3,6 +3,7 @@
 namespace App\Admin\Actions\Community\Notice;
 
 use App\User;
+use EasyWeChat\Factory;
 use Encore\Admin\Actions\BatchAction;
 use Illuminate\Database\Eloquent\Collection;
 
@@ -14,17 +15,90 @@ class sendNotice extends BatchAction
     {
         foreach ($collection as $model) {
             $openid = User::where('id',$model->id)->value('openid');
+            $content = request('content');
+            $remark= request('remark');
+//            $openid = 'oVxTzvgYlGktIDZXwfLMLQ01Tr5s'; 自己
             if(empty($openid)) continue;
+//            $this->send($openid,$content,$remark);
         }
 
-        return $this->response()->success('Success message...')->refresh();
+        return $this->response()->success('发送成功')->refresh();
     }
 
     public function form()
     {
-        $this->text('title','标题')->value('社区通州')->disable();
-        $this->textarea('content','内容')->value('社区通州')->rows(4);
-        $this->textarea('remark','备注')->value('社区通州')->rows(3);
+        $this->text('title','标题')->value('社区通知')->disable();
+        $this->textarea('content','内容')->rows(4);
+        $this->textarea('remark','备注')->rows(3);
+    }
+
+    public function send($open_id,$cotent, $remark)
+    {
+        if(empty($open_id)) return true;
+        $config = [
+                'app_id' => 'wx1c2357232cd25f65',
+                'secret' => 'c8cab53e4e52234ed1bc2abbdeaba57d',
+//            'app_id' => 'wx13bedfcc62e9bab0',
+//            'secret' => '175e5518b6426dd12d3096f24ca68fb8',
+                'response_type' => 'array'
+            ];
+        $app = Factory::officialAccount($config);
+        $user = $app->user->get('oVxTzvgYlGktIDZXwfLMLQ01Tr5sss');
+        if(!isset($user['openid'])) return true;
+        $app->template_message->send([
+                'touser' => 'oVxTzvgYlGktIDZXwfLMLQ01Tr5s',
+                'template_id' => '3LUhWGlyiljxrT3Jh8orwQZ2LSHjfRs9SIHaB40O6q0',
+            //            'url' => 'https://t5.9026.com',
+                'data' => [
+                    'first'=>'社区通知',
+                    'keyword1' => '王海军',
+                    'keyword2' => 18719141830,
+                    'keyword3' => '开发工程师',
+                    'keyword4' => '思维定制',
+                    'keyword5' => '2020-12-12',
+                ],
+            ]);
+        return true;
+    }
+
+
+    public function send2($user_ids,$number,$content){
+
+        if(!is_array($user_ids)) {
+            $user_ids = [$user_ids];
+        }
+
+
+        $app = app('wechat.official_account');
+
+        foreach($user_ids as $user_id) {
+
+            $user = (new User())->find($user_id);
+
+            if(empty($user) || empty($user['open_id'])) continue;
+
+            $official_open_id = $user->getOfficialOpenId($user['union_id']);
+
+            if(empty($official_open_id)) continue;
+
+            $result=$app->template_message->send([
+                'touser' => $official_open_id,
+                'template_id' => '4x80cGpV2boFdY7fm4QpsPBNo-FLytKjQGJKtZq_nr4',
+                'miniprogram' => [
+                    'appid' => env('WECHAT_MINI_PROGRAM_APPID'),
+                    'pagepath' => 'pages/index/index',
+                ],
+                'data' => [
+                    'first' => '作业许可状态改变',
+                    'keyword1' => $number,
+                    'keyword2' => $content,
+                    'keyword3' => $user->name,
+                    'remark' => '备注'
+                ],
+            ]);
+            var_dump($result);
+        }
+        return true;
     }
 
 }

+ 19 - 0
app/Admin/Actions/Community/Order/Detail.php

xqd
@@ -0,0 +1,19 @@
+<?php
+
+
+namespace App\Admin\Actions\Community\Order;
+
+
+use App\Models\Order;
+use Encore\Admin\Actions\RowAction;
+use Illuminate\Database\Eloquent\Model;
+
+class Detail extends RowAction
+{
+
+    public $name = '详情';
+    public function href()
+    {
+       return '/cdms/order_detail?id='.$this->row->id;
+    }
+}

+ 5 - 0
app/Admin/Actions/UpdateCdms.php

xqd
@@ -18,4 +18,9 @@ class UpdateCdms extends RowAction
         }
         return "/admin/cdms_user/".$cmds_id."/edit";
     }
+
+    public function form()
+    {
+        $this->display('')->image();
+    }
 }

+ 18 - 0
app/Admin/Actions/backstage/Docters/SignUp.php

xqd
@@ -0,0 +1,18 @@
+<?php
+
+namespace App\Admin\Actions\backstage\Docters;
+
+use Encore\Admin\Actions\RowAction;
+use Illuminate\Database\Eloquent\Model;
+
+class SignUp extends RowAction
+{
+    public $name = '签约管理';
+
+    public function handle(Model $model)
+    {
+        // $model ...
+        return $this->response()->success('跳转签约管理成功')->redirect('/admin/sign_up?docter_id='.$this->row->id.'');
+    }
+
+}

+ 19 - 0
app/Admin/Actions/backstage/Docters/Team.php

xqd
@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Admin\Actions\backstage\Docters;
+
+use Encore\Admin\Actions\RowAction;
+use Illuminate\Database\Eloquent\Model;
+
+class Team extends RowAction
+{
+    public $name = '团队管理';
+
+    public function handle(Model $model)
+    {
+        // $model ...
+
+        return $this->response()->success('跳转团队管理成功')->redirect('/admin/docter_team?docter_id='.$this->row->id.'');
+    }
+
+}

+ 20 - 0
app/Admin/Actions/backstage/Evaluate/Ignore.php

xqd
@@ -0,0 +1,20 @@
+<?php
+
+namespace App\Admin\Actions\backstage\Evaluate;
+
+use App\Models\Evaluate;
+use Encore\Admin\Actions\RowAction;
+use Illuminate\Database\Eloquent\Model;
+
+class Ignore extends RowAction
+{
+    public $name = '忽略';
+
+    public function handle(Model $model)
+    {
+        // $model ...
+        Evaluate::where('order_id',$model->order_id)->update(['status'=>3]);
+        return $this->response()->success('忽略成功')->refresh();
+    }
+
+}

+ 20 - 0
app/Admin/Actions/backstage/Evaluate/Pass.php

xqd
@@ -0,0 +1,20 @@
+<?php
+
+namespace App\Admin\Actions\backstage\Evaluate;
+
+use App\Models\Evaluate;
+use Encore\Admin\Actions\RowAction;
+use Illuminate\Database\Eloquent\Model;
+
+class Pass extends RowAction
+{
+    public $name = '审核通过';
+
+    public function handle(Model $model)
+    {
+        // $model ...
+        Evaluate::where('order_id',$model->order_id)->update(['status'=>2]);
+        return $this->response()->success('审核通过.')->refresh();
+    }
+
+}

+ 2 - 0
app/Admin/Actions/backstage/Pass.php

xqd xqd
@@ -2,6 +2,7 @@
 
 namespace App\Admin\Actions\backstage;
 
+use App\Models\Docter;
 use App\Models\DocterOrganization;
 use Encore\Admin\Actions\RowAction;
 use Illuminate\Database\Eloquent\Model;
@@ -15,6 +16,7 @@ class Pass extends RowAction
 //         $model ...
 //        dd($model);
         DocterOrganization::where('id',$model->id)->update(['state'=>2]);
+        Docter::where('id',$model->docter_id)->update(['is_then'=>1]);
         return $this->response()->success('审核通过')->refresh();
     }
 

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

xqd
@@ -13,6 +13,7 @@ class Refuse extends RowAction
     {
         // $model ...
         DocterOrganization::where('id',$model->id)->update(['state'=>3]);
+        
         return $this->response()->success('审核拒绝')->refresh();
     }
 

+ 28 - 0
app/Admin/Actions/backstage/User/Insurance.php

xqd
@@ -0,0 +1,28 @@
+<?php
+
+namespace App\Admin\Actions\backstage\User;
+
+use App\Models\Order;
+use App\Models\OrderPack;
+use Encore\Admin\Actions\RowAction;
+use Illuminate\Database\Eloquent\Model;
+
+class Insurance extends RowAction
+{
+    public $name = '保险单链接';
+
+//    public function handle(Model $model)
+//    {
+//        // $model ...
+//
+//        return $this->response()->success('Success message.')->refresh();
+//    }
+    public function form(Model $model)
+    {
+//        dd($model);
+//        $order_id = Order::where('patient_id',$model->id)->where('product_type','6')->value('id');
+        $val = OrderPack::where('order_id',$model->id)->value('insurance_img_url');
+        $this->image('name')->value($val);
+    }
+
+}

+ 37 - 0
app/Admin/Actions/backstage/User/MapDepot.php

xqd
@@ -0,0 +1,37 @@
+<?php
+
+namespace App\Admin\Actions\backstage\User;
+
+use App\Models\OrderPatient;
+use Encore\Admin\Actions\RowAction;
+use Illuminate\Database\Eloquent\Model;
+
+class MapDepot extends RowAction
+{
+    public $name = '病例图库';
+
+    public function form(Model $model)
+    {
+        $imgs = OrderPatient::where('patient_id',$model->id)->get('medical_imgs');
+        $all = json_decode($imgs,true);
+        $i =1;
+        $all1 =  array_column($all,'medical_imgs');
+//        dd($all1);
+        foreach ($all1 as $val)
+        {
+//            dd($val);
+            if (is_array($val) || is_object($val))
+            {
+                foreach ($val as $value1){
+//                dd($value1);
+                    $this->image('name'.$i)->value($value1);
+                    $i++;
+//                echo $value1."<br>";
+                }
+            }
+
+//            dd($value1);
+        }
+    }
+
+}

+ 5 - 2
app/Admin/Controllers/ApproveController.php

xqd
@@ -33,17 +33,20 @@ class ApproveController extends AdminController
         $grid ->model()->where('state','>=','1');
         $grid->column('id', __('Id'));
         $grid->column('docter.id', __('医生ID'));
-        $grid->column('docter.name', __('名字'));
+        $grid->column('docter.name', __('医生姓名'));
+        $grid->column('docter.avatar', __('医生头像'))->image(50,50);
         $grid->column('docter.sex', __('性别'))->using([0=>'未知',1=>'男',2=>'女']);
-        $grid->column('docter.card_id', __('身份证'));
         $grid->column('organization.name', __('机构'));
         $grid->column('office.name', __('科室'));
         $grid->column('qualification.name', __('医生资质'));
         $grid->column('state', __('状态'))->using([1=>'待审核',2=>'已认证',3=>'已驳回']);
 
         $grid->actions(function ($actions) {
+            //通过申请
             $actions->add(new Pass());
+            //驳回申请
             $actions->add(new Refuse());
+            //撤销申请
             $actions->add(new Revoke());
         });
         return $grid;

+ 1 - 2
app/Admin/Controllers/CdmsController.php

xqd
@@ -24,8 +24,7 @@ class CdmsController extends AdminController
         $roleModel = config('tenancy.database.roles_model');
 
         $id = request('id');
-//        var_dump(intval($id));
-//        dd('ss');
+
         $form = new Form(new $userModel());
 
         $userTable = config('tenancy.database.users_table');

+ 118 - 0
app/Admin/Controllers/Config/ConfigController.php

xqd
@@ -0,0 +1,118 @@
+<?php
+
+namespace App\Admin\Controllers\Config;
+
+use App\Base_Area;
+use App\Models\SystemConfig;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+/**
+ * @author pxwei
+ * Class ConfigController
+ * @package App\Admin\Controllers\City
+ */
+class ConfigController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '配置管理';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new SystemConfig);
+
+        $grid->disableCreateButton(false);
+        $grid->column('id', __('ID'))->sortable();
+        $grid->column('group', __('分组'))->editable();
+        $grid->column('key', __('键'))->editable();
+        $grid->column('value', __('值'))->display(function (){
+            if (strlen($this->value)>30){
+                return mb_substr($this->value,0,20).'...';
+            }
+            return $this->value;
+        })->modal('值',function (){
+            return $this->value;
+        })->copyable();
+
+        $grid->column('chinese', __('中文名'))->editable();
+        $grid->column('fieldType', __('类型'))->editable('select',SystemConfig::getType());
+        $grid->column('comment', __('说明'))->editable();
+        $grid->column('sort', __('排序'))->editable()->sortable();
+        $grid->column('updated_at', __('更新时间'))->sortable();
+
+        $grid->filter(function (Grid\Filter $filter){
+            $filter->disableIdFilter();
+            $filter->column(1/2, function ($filter) {
+                $filter->like('group','分组');
+                $filter->like('key','键');
+
+            });
+            $filter->column(1/2, function ($filter) {
+                $filter->like('value','值');
+
+            });
+
+
+
+        });
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed   $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(SystemConfig::findOrFail($id));
+
+        $show->field('id', __('ID'));
+        $show->field('group', __('分组'));
+        $show->field('key', __('key'));
+        $show->field('value', __('value'));
+        $show->field('fieldType', __('类型'))->using(SystemConfig::getType());
+        $show->field('chinese', __('标签名称'));
+        $show->field('comment', __('说明'));
+        $show->field('created_at', __('Created at'));
+        $show->field('updated_at', __('Updated at'));
+
+        return $show;
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        $form = new Form(new SystemConfig);
+        $form->display('id', __('ID'));
+        $form->text('group', __('group/分组'));
+//        $form->select('group', __('group/分组'))->options(SystemConfig::getGroup());
+        $form->text('key', __('key/键'));
+        $form->text('chinese', __('Label/标签名词'))->help('中文标签名词,方便用户查看');
+        $form->number('sort', __('Sort/排序'))->help('排序,越大越前')->default(0);
+        $form->select('fieldType', __('Type/字段类型'))->options(SystemConfig::getType());
+        $form->text('comment', __('comment/配置描述'));
+        $form->textarea('value', __('value/内容'));
+        $form->display('created_at', __('Created At'));
+        $form->display('updated_at', __('Updated At'));
+
+        return $form;
+    }
+}

+ 307 - 0
app/Admin/Controllers/Config/FormController.php

xqd
@@ -0,0 +1,307 @@
+<?php
+
+namespace App\Admin\Controllers\Config;
+
+use App\Model\BaseArea;
+use App\Model\Communities;
+use App\Models\SystemConfig;
+use App\Http\Controllers\Controller;
+use Encore\Admin\Form\Tab;
+use Encore\Admin\Grid;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Widgets\Form;
+use Encore\Admin\Widgets\Table;
+
+/**
+ * @author pxwei
+ * Class ConfigController
+ * @package App\Admin\Controllers\Form
+ */
+class FormController extends Controller
+{
+    public function form()
+    {
+        $dbs = SystemConfig::orderby('sort','desc')->orderby('created_at','asc')->get(['id','group','key','value','comment','chinese','fieldType'])->toArray();
+
+        $configs = [];
+
+        foreach ($dbs as $db){
+            $configs[$db['group']][] = $db;
+        }
+        $tab = new \Encore\Admin\Widgets\Tab();
+
+
+        foreach ($configs as $k => $config){
+            $form = new Form();
+            $form->action("/admin/setting_form_save");
+
+            foreach ($config as $value){
+                switch ($value['fieldType']){
+                    case SystemConfig::Field_textarea:
+                        $form->textarea($value['group'].'____'.$value['key'],$value['chinese'])->help($value['comment'])->rows(1)->default($value['value']);
+                        break;
+                    case  SystemConfig::Filed_richText:
+                        $form->editor($value['group'].'____'.$value['key'],$value['chinese'])->default($value['value']);
+                        break;
+                    case  SystemConfig::Field_Time:
+                        $form->time($value['group'].'____'.$value['key'],$value['chinese'])->default($value['value'])->format('HH:mm');
+                        break;
+                    case  SystemConfig::Field_File:
+                        $form->file($value['group'].'____'.$value['key'],$value['chinese'])->help('当前文件:'.$value['value']);
+                        break;
+                    case  SystemConfig::Field_Switch:
+
+
+                            $states = [
+                                'on'  => ['value' => 1, 'text' => '开', 'color' => 'success'],
+                                'off' => ['value' => 0, 'text' => '关', 'color' => 'danger'],
+
+                            ];
+                            $s = $value['value'];
+
+                        if ($value['key']=='use_personal')
+                        {
+                            $s = $s==0?1:0;
+                        }
+
+
+                        $form->switch($value['group'].'____'.$value['key'].'____Switch',$value['chinese'])->help($value['comment'])->default($s)->states($states);
+                        break;
+                    case  SystemConfig::Field_Checkbox:
+                        $data = [];
+                        $default = [];
+                        foreach (json_decode($value['value'],true) as $v){
+                            $data[$v['key']] =$v['text'];
+                            if ($v['value'] == 1)
+                                $default[] = $v['key'];
+
+                        }
+
+                        $form->checkbox($value['group'].'____'.$value['key'].'____checkbox',$value['chinese'])->options($data)->default($default)->help($value['comment'])->canCheckAll();
+                        break;
+                    case SystemConfig::Field_Json:
+                        $json = json_decode($value['value'],true);
+                        if (!$json)
+                            $form->display('json',$value['chinese'])->default('字段JSON解析失败');
+                        else{
+                            $form->fieldset($value['chinese'].'_配置组', function (Form $form)use ($json,$value) {
+                                foreach ($json as $kk=> $v){
+                                    $form->text($value['group'].'____'.$value['key'].'____J____'.$kk,$kk)->default($v);
+                                }
+                            });
+                        }
+                        break;
+
+                    case SystemConfig::Field_Json_Array:
+                        $json = json_decode($value['value'],true);
+                        if (!$json)
+                            $form->display('json',$value['chinese'])->default('数组JSON解析失败');
+                        else{
+                            $form->fieldset($value['chinese'].'_配置组', function (Form $form)use ($json,$value) {
+                                foreach ($json as $kk=> $v){
+                                    $form->text($value['group'].'____'.$value['key'].'____JA____'.$kk,$v['text'])->default($v['value']);
+                                }
+                            });
+                        }
+                        break;
+                    case SystemConfig::Field_Image:
+                        $form->image($value['group'].'____'.$value['key'],$value['chinese'])->default($value['value']);
+
+                }
+            }
+
+            $tab->add(SystemConfig::$groups[$k]??$k,$form->render());
+            $form = null;
+
+
+
+        }
+        $c =  new Content();
+        return $c->title("配置")->description('设置')->row($tab->render());
+    }
+
+    public function setting_form_save()
+    {
+        $inputs = request()->input();
+        unset($inputs['_token']);
+        $data = [];
+        $json = [];
+        $jsonArr = [];
+        foreach ($inputs as $k => $v){
+            $groups = explode('____',$k);
+            $num = count($groups);
+            if ($num< 1)
+                continue;
+            else if ($num === 2){
+                //普通字段配置
+                SystemConfig::where(['group'=>$groups[0],'key'=>$groups[1]])->update(['value'=>$v]);
+            }else if ($num === 3){
+                if ($groups[2] == "Switch"){
+                    if ($v=="on")
+                        $v = 1;
+                    else
+                        $v = 0;
+
+                    if ($groups[1] =='use_personal')
+                    {
+                        $v = $v==0?1:0;
+                    }
+
+                    SystemConfig::where(['group'=>$groups[0],'key'=>$groups[1]])->update(['value'=>$v]);
+                }else if ($groups[2] == "checkbox"){
+                    $origin_data = SystemConfig::get($groups[0],$groups[1]);
+                    $origin_data = json_decode($origin_data,true);
+                    foreach ($origin_data as $kk => $datum){
+                        $origin_data[$kk]['value'] =0;
+                        foreach ($v as $vv){
+                            if ($datum['key'] == $vv)
+                                $origin_data[$kk]['value'] =1;
+                        }
+                    }
+
+                    SystemConfig::where(['group'=>$groups[0],'key'=>$groups[1]])->update(['value'=>json_encode($origin_data)]);
+                }
+
+            }else if ($num == 4){
+                if ($groups[2]=="JA"){
+                    $jsonArr[$groups[0]][$groups[1]][$groups[3]] = $v;
+                }else{
+                    //JSON字段配置
+                    $json[$groups[0]][$groups[1]][$groups[3]] = $v;
+                }
+
+            }
+        }
+
+        if (count($json)>0){
+            foreach ($json as $k =>$value){
+                foreach ($value as $kk => $item){
+                    SystemConfig::where(['group'=>$k,'key'=>$kk])->update(['value'=>json_encode($item)]);
+                }
+            }
+        }
+
+        if (count($jsonArr)>0){
+            foreach ($jsonArr as $k =>$value){
+                foreach ($value as $kk => $item){
+                    $res = SystemConfig::where(['group'=>$k,'key'=>$kk])->first();
+                    if (!$res)
+                        continue;
+                    $json = json_decode($res['value'],true);
+
+                    foreach ($item as $kkk => $item2){
+                        $json[$kkk]['value'] = $item2;
+                        $res->update(['value'=>json_encode($json)]);
+
+
+
+                }
+            }
+        }
+        }
+
+        $files = request()->file();
+
+        foreach ($files as $key => $file){
+            $groups = explode('____',$key);
+            $file_name ='upload/SystemFiles/'.uniqid().'.'.$file->getClientOriginalExtension();
+            file_put_contents(public_path($file_name),file_get_contents($file->getRealPath()));
+            SystemConfig::where(['group'=>$groups[0],'key'=>$groups[1]])->update(['value'=>$file_name]);
+
+        }
+
+
+        admin_info('保存成功');
+        return back();
+    }
+
+
+    public function setCommunity()
+    {
+        $id = request('pid')?:'1';
+        $grid = new Grid(new BaseArea());
+
+        $grid->model()->where('pid',$id);
+
+
+        $c =  new Content();
+        return $c->title("配置")->description('设置')->body($grid->render());
+    }
+
+
+    public function setAreaById()
+    {
+        $id = request('id');
+        $type = request('t');
+        $m = request('m');
+
+        if ($m == "0")
+        {
+            $rs = Communities::where('id',$id)->update(['is_door'=>$type]);
+            if ($rs)
+            {
+                admin_toastr('设置成功','info');
+                return back();
+            }
+            admin_toastr('设置失败','error');
+            return back();
+        }
+
+        $rs = BaseArea::where('relation','like',"%{$id}%")->orwhere('id',$id)->update(['is_door'=>intval($type)]);
+
+
+
+        $rs = BaseArea::where(['grade'=>5])->where('relation','like',"%{$id}%")->get(['id']);
+        $ds = [];
+        foreach ($rs as $r){
+            $ds[] = $r['id'];
+        }
+
+        $rs = Communities::whereIn('area_id',$ds)->update(['is_door'=>intval($type)]);
+
+
+            admin_toastr('设置成功','info');
+            return back();
+
+
+    }
+
+
+    public function setPrice()
+    {
+        $id = request('pid');
+        $key = request('key');
+        $p = request('price');
+        $m = request('m');
+        $text = request('text');
+
+        if ($m == "1")
+        {
+            $rs = Communities::where('id',$id)->update([$key=>($p/10)]);
+            if ($rs)
+            {
+                return response()->json(['status'=>'ok']);
+            }
+            return response()->json(['status'=>'error']);
+        }
+
+
+        $rs = BaseArea::where('merger_name','like',"%{$text}%")->update([$key=>$p/10]);
+       if(!$rs) return response()->json(['status'=>'error']);
+        $rs = BaseArea::where('merger_name','like',"%{$text}%")->get(['id']);
+        $ds = [];
+
+        foreach ($rs as $r){
+            $ds[] = $r['id'];
+        }
+
+        $rs = Communities::whereIn('area_id',$ds)->update([$key=>$p/10]);
+
+        if ($rs)
+        {
+            return response()->json(['status'=>'ok']);
+        }
+        return response()->json(['status'=>'error']);
+    }
+
+}

+ 80 - 0
app/Admin/Controllers/DocterTeamController.php

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

+ 31 - 49
app/Admin/Controllers/DoctorManagementController.php

xqd xqd xqd
@@ -2,6 +2,8 @@
 
 namespace App\Admin\Controllers;
 
+use App\Admin\Actions\backstage\Docters\SignUp;
+use App\Admin\Actions\backstage\Docters\Team;
 use App\Models\Docter;
 use App\Models\DocterOrganization;
 use App\Models\Organization;
@@ -29,26 +31,39 @@ class DoctorManagementController extends AdminController
     {
         $grid = new Grid(new Docter());
 
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->like('name','昵称');
+            $filter->equal('status','工作状态')->select([
+                0    => '禁用',
+                1    => '启用',
+            ]);
+
+        });
+
+        $grid->actions(function ($actions) {
+            // 去掉编辑
+            $actions->disableEdit();
+            // 去掉查看
+            $actions->disableView();
+            //签约管理
+            $actions->add(new SignUp());
+            //团队管理
+            $actions->add(new Team());
+        });
+
         $grid->column('id', __('Id'))->sortable();
         $grid->column('name', __('姓名'));
         $grid->column('avatar', __('头像'))->image('',50,50);
         $grid->column('score', __('评分'));
         $grid->column('service_persons', __('服务人数'));
-        $grid->column('DocterOrganization', __('所属机构'));
-//        $grid->column('DocterOrganization', __('所属机构'))->pluck('organization_id')->display(function ($organization_id){
-//            $str = '';
-//            foreach ($organization_id as $value)
-//            {
-//                $name = Organization::where('id',$value)->value('name');
-//                $str = $str.','.$name;
-//            }
-//            $str = ltrim($str, ",");
-//            return $str;
-//        });
-        $grid->column('teamdocter.team_id', __('团队id'));
-
-        $grid->column('label', __('标签'))->label(info);
-
+        $states = [
+            'on'  => ['value' => 1, 'text' => '启用', 'color' => 'primary'],
+            'off' => ['value' => 0, 'text' => '禁用', 'color' => 'danger'],
+        ];
+        $grid->column('status', __('工作状态'))->switch($states);
+        $grid->column('is_then', __('认证状态'))->using([0=>'未认证',1=>'已认证']);
+        $grid->column('label', __('标签'))->label('info');
         return $grid;
     }
 
@@ -111,40 +126,7 @@ class DoctorManagementController extends AdminController
     {
         $form = new Form(new Docter());
 
-        $form->switch('type', __('Type'));
-        $form->text('name', __('Name'));
-        $form->mobile('phone', __('Phone'));
-        $form->switch('sex', __('Sex'));
-        $form->text('birthday', __('Birthday'));
-        $form->image('avatar', __('Avatar'));
-        $form->switch('status', __('Status'))->default(1);
-        $form->text('label', __('Label'));
-        $form->text('sign', __('Sign'));
-        $form->text('intro', __('Intro'));
-        $form->number('office_id', __('Office id'));
-        $form->number('qualification_id', __('Qualification id'));
-        $form->decimal('score', __('Score'))->default(0.0);
-        $form->number('service_persons', __('Service persons'));
-        $form->number('eva_num', __('Eva num'));
-        $form->number('service_days', __('Service days'));
-        $form->number('phone_minutes', __('Phone minutes'));
-        $form->number('chat_price', __('Chat price'));
-        $form->number('phone_price', __('Phone price'));
-        $form->number('appoint_price', __('Appoint price'));
-        $form->switch('is_chat', __('Is chat'))->default(1);
-        $form->switch('is_phone', __('Is phone'))->default(1);
-        $form->switch('is_appoint', __('Is appoint'))->default(1);
-        $form->decimal('latitude', __('Latitude'))->default(0.0000000);
-        $form->decimal('longitude', __('Longitude'))->default(0.0000000);
-        $form->number('user_id', __('User id'));
-        $form->password('password', __('Password'));
-        $form->number('is_then', __('Is then'));
-        $form->text('practice', __('Practice'));
-        $form->text('card_photo', __('Card photo'));
-        $form->text('is_quail', __('Is quail'));
-        $form->text('card_id', __('Card id'));
-        $form->number('receiving_time', __('Receiving time'));
-
+        $form->switch('status', __('状态'));
         return $form;
     }
 }

+ 0 - 64
app/Admin/Controllers/QualificationController.php

xqd
@@ -1,64 +0,0 @@
-<?php
-
-namespace App\Admin\Controllers;
-
-use App\Models\Qualification;
-use Encore\Admin\Controllers\AdminController;
-use Encore\Admin\Form;
-use Encore\Admin\Grid;
-use Encore\Admin\Show;
-
-class QualificationController extends AdminController
-{
-    /**
-     * Title for current resource.
-     *
-     * @var string
-     */
-    protected $title = '资质列表';
-
-    /**
-     * Make a grid builder.
-     *
-     * @return Grid
-     */
-    protected function grid()
-    {
-        $grid = new Grid(new Qualification());
-
-        $grid->column('id', __('ID'));
-        $grid->column('name', __('资质名称'));
-        $grid->column('created_at', __('创建时间'));
-        $grid->column('updated_at', __('更新时间'));
-
-        return $grid;
-    }
-
-    /**
-     * Make a show builder.
-     *
-     * @param mixed $id
-     * @return Show
-     */
-    protected function detail($id)
-    {
-        $show = new Show(Qualification::findOrFail($id));
-
-
-        return $show;
-    }
-
-    /**
-     * Make a form builder.
-     *
-     * @return Form
-     */
-    protected function form()
-    {
-        $form = new Form(new Qualification());
-
-        $form->text('name', __('资质名称'));
-
-        return $form;
-    }
-}

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

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

+ 84 - 0
app/Admin/Controllers/SignUpController.php

xqd
@@ -0,0 +1,84 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\Models\DocterOrganization;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class SignUpController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '签约管理';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new DocterOrganization());
+        $docter_id = \request('docter_id');
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->equal('docter_id','医生');
+        });
+        $grid->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('created_at', __('创建时间'));
+        $grid->column('updated_at', __('更新时间'));
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(DocterOrganization::findOrFail($id));
+
+        $show->field('id', __('Id'));
+        $show->field('docter_id', __('Docter id'));
+        $show->field('organization_id', __('Organization id'));
+        $show->field('offices_id', __('Offices id'));
+        $show->field('qualifications_id', __('Qualifications id'));
+        $show->field('state', __('State'));
+        $show->field('created_at', __('Created at'));
+        $show->field('updated_at', __('Updated at'));
+
+        return $show;
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        $form = new Form(new DocterOrganization());
+
+        $form->number('docter_id', __('Docter id'));
+        $form->number('organization_id', __('Organization id'));
+        $form->number('offices_id', __('Offices id'));
+        $form->number('qualifications_id', __('Qualifications id'));
+        $form->number('state', __('State'));
+
+        return $form;
+    }
+}

+ 114 - 0
app/Admin/Controllers/UserEvaluatesController.php

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

+ 1 - 2
app/Admin/Controllers/UserPatientsController.php

xqd xqd
@@ -2,6 +2,7 @@
 
 namespace App\Admin\Controllers;
 
+use App\Admin\Actions\backstage\User\MapDepot;
 use App\Admin\Actions\backstage\User\Suggests;
 use App\Models\Patient;
 use Encore\Admin\Controllers\AdminController;
@@ -40,8 +41,6 @@ class UserPatientsController extends AdminController
             $actions->disableEdit();
             //服务包
             $actions->add(new service());
-            //病例意见单
-            $actions->add(new Suggests());
 
         });
         $grid->column('id', __('档案id'));

+ 3 - 0
app/Admin/Controllers/UserServiceController.php

xqd xqd
@@ -5,6 +5,7 @@ namespace App\Admin\Controllers;
 use App\Models\Order;
 use App\Models\OrderPack;
 use App\Models\Patient;
+use App\Admin\Actions\backstage\User\Insurance ;
 use Encore\Admin\Controllers\AdminController;
 use Encore\Admin\Form;
 use Encore\Admin\Grid;
@@ -41,6 +42,8 @@ class UserServiceController extends AdminController
 
             // 去掉编辑
             $actions->disableEdit();
+            //保险单链接
+            $actions->add(new Insurance());
         });
 
         $grid->column('orderPack.id', __('Id'));

+ 18 - 1
app/Admin/routes.php

xqd xqd xqd xqd
@@ -16,7 +16,6 @@ Route::group([
     $router->resource('/cdms_user', CdmsController::class);
     $router->resource('/organizations', OrganizationController::class);
     $router->resource('/docters', DocterController::class);
-    $router->resource('/qualifications', QualificationController::class);
     $router->resource('/docters_approve', ApproveController::class);
     $router->resource('banners', BannerController::class);
     $router->resource('servebanners', ServebannerController::class);
@@ -27,8 +26,14 @@ Route::group([
     $router->resource('docters_management', DoctorManagementController::class);
     $router->resource('users', UserListController::class);
     $router->resource('user_patients', UserPatientsController::class);
+
     //电话咨询
     $router->resource('phone_service',PhoneServiceController::class);
+
+
+    $router->resource('service_applys',ServiceapplysController::class);
+    //电话咨询认证
+
     $router->resource('phone_service_cc',PhoneServiceCCController::class);
     //图文咨询认证
     $router->resource('reply_service',ReplyServiceController::class);
@@ -37,6 +42,10 @@ Route::group([
     $router->resource('outpatient_service_cc',OutpatientServiceCCController::class);
     $router->resource('outpatient_service',OutpatientServiceController::class);
 
+    $router->resource('/setting', 'Config\ConfigController');
+    $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);
 
@@ -44,5 +53,13 @@ Route::group([
     $router->resource('user_coupons', UserCouponsController::class);
     //用户管理->病例意见单
     $router->resource('user_suggests', UserSuggestsController::class);
+    //评价管理
+    $router->resource('evaluates', UserEvaluatesController::class);
+    //职称类别
+    $router->resource('qualifications', QualificationsController::class);
+    //医生管理->签约管理
+    $router->resource('sign_up', SignUpController::class);
+    //医生管理->团队管理
+    $router->resource('docter_team', DocterTeamController::class);
 });
 

+ 32 - 3
app/Community/Controllers/ApiController.php

xqd
@@ -57,12 +57,41 @@ class ApiController extends Controller
         //入职公司:{{keyword4.DATA}}
         //报到时间:{{keyword5.DATA}}
         //{{remark.DATA}}
+
+
+
+//        oVxTzvgYlGktIDZXwfLMLQ01Tr5s 自己 oVxTzvhu4gs4RyCt4kJDRWOgsUXw周璐 oVxTzvgu4XnI5F2aF7DcrbJIp5fI 间行 oVxTzvl8DYQblYmLCIK3UXW_8jAY 落雨桐
         $renyuan = ['oVxTzvhu4gs4RyCt4kJDRWOgsUXw','oVxTzvgYlGktIDZXwfLMLQ01Tr5s']; //周璐
-        $renyuan = ['oVxTzvvTnnbjEE9jsalOYj4mtp6U','oVxTzvgu4XnI5F2aF7DcrbJIp5fI']; //简行
+//        $renyuan = ['oVxTzvvTnnbjEE9jsalOYj4mtp6U','oVxTzvgu4XnI5F2aF7DcrbJIp5fI']; //简行
         $app = Factory::officialAccount($config );
-        $res = $app->broadcasting->sendText("大家好!欢迎使用 EasyWeChat。",$renyuan);
-
+//        $res = $app->broadcasting->status(3147483751);
+//
+//  "errcode" => 0
+//  "errmsg" => "send job submission success"
+//  "msg_id" => 3147483751
+//  "msg_data_id" => 2247484953
+//        ^ array:2 [▼
+//  "errcode" => 40003
+//  "errmsg" => "invalid openid rid: 5fc35ef3-7f3b3ef9-14537bc7"
+//]
+        $user = $app->user->get('oVxTzvgYlGktIDZXwfLMLQ01Tr5s');
+        dd($user);
+        $res = $app->template_message->send([
+            'touser' => 'oVxTzvgYlGktIDZXwfLMLQ01Tr5s',
+            'template_id' => '3LUhWGlyiljxrT3Jh8orwQZ2LSHjfRs9SIHaB40O6q0',
+//            'url' => 'https://t5.9026.com',
+            'data' => [
+                'first'=>'社区通知',
+                'keyword1' => '王海军',
+                'keyword2' => 18719141830,
+                'keyword3' => '开发工程师',
+                'keyword4' => '思维定制',
+                'keyword5' => '2020-12-12',
+            ],
+        ]);
         dd($res);
+        $res = $app->broadcasting->sendText("测试发送,测试发送",$renyuan);
+
     }
 
 

+ 20 - 38
app/Community/Controllers/DocterChatController.php

xqd xqd xqd xqd xqd
@@ -4,6 +4,7 @@ namespace App\Community\Controllers;
 
 use App\Admin\Actions\Community\Docter\Chat;
 use App\Admin\Actions\Community\Notice\sendNotice;
+use App\Admin\Actions\Community\Order\Detail;
 use App\Models\Docter;
 use App\Models\Order;
 use Encore\Admin\Controllers\AdminController;
@@ -33,15 +34,13 @@ class DocterChatController extends AdminController
         $grid = new Grid(new Order());
 
         $user = Admin::user();
+        $org_id = $user->org_id;
+        $docter_id = $user->docter_id;
         $is_admin = Admin::user()->inRoles(['administrator','devloper']);
         $grid->batchActions(function ($batch) {
             $batch->add(new sendNotice());
         });
         if(!$is_admin){
-            $org_id = $user->org_id;
-            $docter_id = $user->docter_id;
-
-
             $grid->model()->whereHas('orders',function ($query) use ($org_id,$docter_id) {
                 $where['organization_id']=$org_id;
                 if($docter_id){
@@ -57,8 +56,11 @@ class DocterChatController extends AdminController
         $grid->column('orderPatient.birthday', __('患者年龄'))->display(function ($w){
             return birthday_to_age($w);
         });
-        $grid->actions(function ($actions){
-           $actions->add( new Chat());
+        $grid->actions(function ($actions) use($docter_id) {
+            if($docter_id){
+                $actions->add( new Chat());
+            }
+            $actions->add(new Detail());
            $actions->disableDelete();
            $actions->disableView();
            $actions->disableEdit();
@@ -81,26 +83,7 @@ class DocterChatController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(Order::findOrFail($id));
-
-        $show->field('id', __('Id'));
-        $show->field('user_id', __('User id'));
-        $show->field('docter_id', __('Docter id'));
-        $show->field('patient_id', __('Patient id'));
-        $show->field('organization_id', __('Organization id'));
-        $show->field('order_sn', __('Order sn'));
-        $show->field('payment_type', __('Payment type'));
-        $show->field('product_type', __('Product type'));
-        $show->field('order_status', __('Order status'));
-        $show->field('payment_status', __('Payment status'));
-        $show->field('total_amount', __('Total amount'));
-        $show->field('payment_amount', __('Payment amount'));
-        $show->field('discount_amount', __('Discount amount'));
-        $show->field('payment_time', __('Payment time'));
-        $show->field('created_at', __('Created at'));
-        $show->field('updated_at', __('Updated at'));
-
-        return $show;
+        return '';
     }
 
     /**
@@ -110,24 +93,23 @@ class DocterChatController extends AdminController
      */
     protected function form()
     {
-
-        $content = new Content();
-        $form = new Form();
-        $user = Admin::user();
-        $org_id = $user->org_id;
-        $docter_id = $user->docter_id;
-        $form->setView('chat');
-        return $form;
+       return '';
     }
 
     function chats(Content $content){
-        $content->title('儿保排班');
-        $content->description('医生用户可以接受接受预约');
+        $content->title('咨询订单 ');
+        $content->description('医生用户可以接受预约');
         $user = Admin::user();
         $org_id = $user->org_id;
         $docter_id = $user->docter_id;
-        $content->view('chat',['docter_id'=>$docter_id]);
+        $content->body('<iframe src="/cdms/chat_view" style="width: 100%;height:800px;border: none"></iframe>');
         return $content;
-        return view('chat', ['data' =>'foo']);
     }
+
+    public function chat_view()
+    {
+        return view('cdms.chat');
+    }
+
+
 }

+ 1 - 0
app/Community/Controllers/DocterOrgController.php

xqd
@@ -51,6 +51,7 @@ class DocterOrgController extends AdminController
 //        $grid->column('docter.email', __('邮箱'));
         $grid->column('docter.card_id', __('身份证号'));
         $grid->column('docter.type', __('成员身份'))->display(function ($w){
+            if(empty($w)) return '未知';
             $type = DocterOrganization::$_doct_type;
             return $type[$w];
         });

+ 51 - 18
app/Community/Controllers/HomeController.php

xqd
@@ -3,32 +3,65 @@
 namespace App\Community\Controllers;
 
 use App\Http\Controllers\Controller;
+use App\Models\Order;
+use App\Models\SchedulePeriod;
 use Encore\Admin\Controllers\Dashboard;
 use Encore\Admin\Layout\Column;
 use Encore\Admin\Layout\Content;
 use Encore\Admin\Layout\Row;
+use Encore\Admin\Widgets\InfoBox;
 
 class HomeController extends Controller
 {
-    public function index(Content $content)
+    public function index(){
+        return redirect('/cdms/home');
+    }
+    public function home(Content $content)
     {
         return $content
-            ->title('Dashboard')
-            ->description('Description...')
-            ->row(Dashboard::title())
-            ->row(function (Row $row) {
-
-                $row->column(4, function (Column $column) {
-                    $column->append(Dashboard::environment());
-                });
-
-                $row->column(4, function (Column $column) {
-                    $column->append(Dashboard::extensions());
-                });
-
-                $row->column(4, function (Column $column) {
-                    $column->append(Dashboard::dependencies());
-                });
-            });
+            ->title('数据概况')
+            ->description('社区段实时数据')
+            ->row($this->real_data())
+            ->row($this->vaccine_data())
+            ->row($this->nurse_data())
+            ->row($this->schedule_data());
+    }
+
+    public function real_data()
+    {
+        $data = StatController::service();
+        return view('cdms.real_data',compact('data'));
+    }
+
+    public function vaccine_data()
+    {
+        $data = StatController::vaccine();
+        return view('cdms.vaccine_data',compact('data'));
+    }
+
+    public function nurse_data()
+    {
+        $data = StatController::nurse();
+        return view('cdms.nurse_data',compact('data'));
+    }
+
+    public function schedule_data()
+    {
+        $data = StatController::schedule();
+        return view('cdms.schedule_data',compact('data'));
+    }
+
+    public function order_detail()
+    {
+        $id = request('id');
+        if(empty($id)){
+            return redirect('/cdms/docter_chats');
+        }
+        $data = Order::where('id',$id)->with('orderPatient')->first();
+        $content = new Content();
+        $status = Order::getStatus();
+        $content->view('cdms.order_detail',compact('data','status'));
+
+        return $content;
     }
 }

+ 10 - 9
app/Community/Controllers/NoticeController.php

xqd xqd
@@ -5,6 +5,7 @@ namespace App\Community\Controllers;
 use App\Models\Notice;
 use App\Models\User;
 use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Facades\Admin;
 use Encore\Admin\Form;
 use Encore\Admin\Grid;
 use Encore\Admin\Layout\Content;
@@ -26,17 +27,17 @@ class NoticeController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new Notice());
 
-        $grid->column('id', __('Id'));
-        $grid->column('org_id', __('Org id'));
-        $grid->column('title', __('Title'));
-        $grid->column('content', __('Content'));
-        $grid->column('remark', __('Remark'));
-        $grid->column('created_at', __('Created at'));
-        $grid->column('updated_at', __('Updated at'));
+        $content = new Content();
 
-        return $grid;
+    $content->title('通知公告')
+        ->description('公告列表');
+        $user = Admin::user();
+        $org_id = $user->org_id;
+        $docter_id = $user->docter_id;
+        $notice = Notice::get();
+        $content->view('cdms.notice',['notice'=>$notice]);
+        return $content;
     }
 
     /**

+ 21 - 2
app/Community/Controllers/NurseController.php

xqd xqd xqd
@@ -2,8 +2,11 @@
 
 namespace App\Community\Controllers;
 
+use App\Models\Docter;
+use App\Models\DocterOrganization;
 use App\Models\Nurse;
 use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Facades\Admin;
 use Encore\Admin\Form;
 use Encore\Admin\Grid;
 use Encore\Admin\Show;
@@ -28,13 +31,20 @@ class NurseController extends AdminController
         $grid->disableCreateButton(false);
         $grid->column('id', __('ID'));
         $grid->column('name', __('项目名称'))->editable();
-        $grid->column('stock','库存')->editable();
         $grid->column('used', __('已使用'))->display(function ($w){
             return $w??0;
         });
         $grid->column('today', __('今日预约'));
+        $grid->column('docters','服务医生')->display(function ($ids){
+           $docters = Docter::whereIn('id',$ids)->pluck('name')->toArray();
+           if(count($docters) > 3) return $docters[0].','.$docters[1].','.$docters[2].'...';
+           return implode(',',$docters);
+        });
         $grid->column('price', __('价格'))->editable();
         $grid->column('remark', __('备注'))->editable('textarea');
+        $grid->actions(function ($actions){
+            $actions->disableView();
+        });
         return $grid;
     }
 
@@ -66,9 +76,18 @@ class NurseController extends AdminController
     protected function form()
     {
         $form = new Form(new Nurse());
-
+        $user = Admin::user();
+        $org_id = $user->org_id;
         $form->text('name', __('项目名称'));
         $form->text('price', __('价格'));
+        $form->multipleSelect('docters','服务医生')->options(function () use ($org_id) {
+            if(empty($org_id)){
+                return  Docter::pluck('name','id');
+            }
+            $ids = DocterOrganization::where('organization_id',$org_id)->pluck('docter_id');
+            if(empty($ids)) return [];
+            return  Docter::whereIn('id',$ids)->pluck('name','id');
+        });
         $form->textarea('remark', __('备注'));
         $form->setWidth(6);
 

+ 6 - 4
app/Community/Controllers/OrderNurseController.php

xqd xqd xqd
@@ -5,6 +5,7 @@ namespace App\Community\Controllers;
 use App\Admin\Actions\Community\Nurse\DelNurse;
 use App\Admin\Actions\Community\Nurse\Finished;
 use App\Models\Docter;
+use App\Models\DocterOrganization;
 use App\Models\Order;
 use App\Models\OrderNurse;
 use App\User;
@@ -33,18 +34,18 @@ class OrderNurseController extends AdminController
         $grid = new Grid(new OrderNurse());
 
         $user = Admin::user();
-        $is_admin = Admin::user()->inRoles(['administrator','devloper']);
+        $is_admin = Admin::user()->inRoles(['administrator','developer']);
 
         if(!$is_admin){
             $org_id = $user->org_id;
             $docter_id = $user->docter_id;
 
-
             $grid->model()->whereHas('orders',function ($query) use ($org_id,$docter_id) {
-                $where['organization_id']=$org_id;
                 if($docter_id){
                     $where['docter_id'] = $docter_id;
-                 }
+                 } else {
+                    $where['organization_id']=$org_id;
+                }
                 $query->where($where);
             });
         }
@@ -136,6 +137,7 @@ class OrderNurseController extends AdminController
         $form->display('nurse_name', __('项目名称'));
         $form->text('nurse_price', __('订单价格'));
         $form->textarea('nurse_remark', __('备注'))->rows(5);
+
         $form->setWidth(6);
 
         return $form;

+ 41 - 11
app/Community/Controllers/StatController.php

xqd
@@ -5,40 +5,70 @@ namespace App\Community\Controllers;
 
 
 use App\Http\Controllers\Controller;
+use App\Models\Docter;
 use App\Models\Order;
+use App\Models\Schedule;
+use App\Models\SchedulePeriod;
 use App\Models\Vaccine;
+use Illuminate\Support\Facades\DB;
 
 class StatController extends  Controller
 {
 
     //疫苗统计
-    public function vaccine()
+    public static function vaccine()
     {
-      $data ['count'] = Vaccine::count();
-      $data['have'] = Vaccine::sum('state');
-      $data['today_spend'] = Order::where(['']);
-      return $data;
+        $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();//接诊患者(人次)
+        return $data;
 
     }
 
 
 
     //实时数据
-    public function service()
+    public static function  service()
     {
-        $data['success'] = 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_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();
+//        $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();//接诊患者(人次)
+
+return $data;
+
 
     }
 
     //儿保概况
-    public function nurse()
+    public static function nurse()
     {
-
+     $nurse_num = Order::where('product_type',5)->where('created_at','>',strtotime('today'))->count();
+     return $nurse_num;
     }
 
     //排班统计
-    public function schedule()
+    public static function schedule()
     {
-
+        $ids = SchedulePeriod::where('schedule_date',date("Y-m-d"))->distinct('docter_id')->pluck('docter_id');
+        $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');
+        foreach ($docters as $key => $val){
+            if($key === 1){
+                $data['clinic_num'] = count($val);
+            } else if($key == 2){
+                $data['vaccine_num'] = count($val);
+            } else if($key == 3){
+                $data['nurse_num'] = count($val);
+            }
+        }
+        return $data;
     }
 }

+ 120 - 0
app/Community/Controllers/UserNoticeController.php

xqd
@@ -0,0 +1,120 @@
+<?php
+
+namespace App\Community\Controllers;
+
+use App\Admin\Actions\Community\Notice\sendNotice;
+use App\Models\Order;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class UserNoticeController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '群发通知';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new Order());
+
+        $grid->model()->GroupBy('patient_id');
+        $user = Admin::user();
+        if(empty(request('product_type'))){
+            $user_ids = Order::whereIn('product_type',[4,5])->distinct()->pluck('user_id');
+            $grid->model()->whereIn('user_id',$user_ids)->distinct();
+        }
+
+        $grid->column('orderUser.nickname', __('用户'));
+        $grid->column('orderPatient.name', __('患者'));
+        $grid->column('orderPatient.relationship_type', __('关系'))->using([1=>'父亲',2=>'母亲',3=>'祖父',4=>'祖母',5=>'外祖父',6=>'外祖母',7=>'叔侄',8=>'其他']);
+        $grid->column('orderPatient.phone', __('用户手机号'));
+        $grid->column('orderPatient.birthday', __('出生日期'));
+
+        $grid->filter(function ($flter){
+            $flter->like('orderPatient.name','请输入用户姓名');
+            $flter->like('orderUser.nickname','请输入监护人姓名');
+            $flter->between('orderUser.birthday','生日')->datetime();
+            $flter->equal('product_type','用户类型')->select([4=>'计免',5=>'儿保']);
+        });
+
+        $grid->actions(function ($actions){
+            $actions->disableView();
+            $actions->disableDelete();
+            $actions->disableEdit();
+        });
+
+        $grid->batchActions(function ($batch) {
+            $batch->disableDelete();
+            $batch->add(new sendNotice());
+        });
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(Order::findOrFail($id));
+
+        $show->field('id', __('Id'));
+        $show->field('user_id', __('User id'));
+        $show->field('docter_id', __('Docter id'));
+        $show->field('patient_id', __('Patient id'));
+        $show->field('organization_id', __('Organization id'));
+        $show->field('order_sn', __('Order sn'));
+        $show->field('payment_type', __('Payment type'));
+        $show->field('product_type', __('Product type'));
+        $show->field('order_status', __('Order status'));
+        $show->field('payment_status', __('Payment status'));
+        $show->field('total_amount', __('Total amount'));
+        $show->field('payment_amount', __('Payment amount'));
+        $show->field('discount_amount', __('Discount amount'));
+        $show->field('payment_time', __('Payment time'));
+        $show->field('created_at', __('Created at'));
+        $show->field('updated_at', __('Updated at'));
+
+        return $show;
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        $form = new Form(new Order());
+
+        $form->number('user_id', __('User id'));
+        $form->number('docter_id', __('Docter id'));
+        $form->number('patient_id', __('Patient id'));
+        $form->number('organization_id', __('Organization id'));
+        $form->text('order_sn', __('Order sn'));
+        $form->switch('payment_type', __('Payment type'))->default(1);
+        $form->switch('product_type', __('Product type'))->default(1);
+        $form->switch('order_status', __('Order status'))->default(1);
+        $form->switch('payment_status', __('Payment status'))->default(1);
+        $form->number('total_amount', __('Total amount'));
+        $form->number('payment_amount', __('Payment amount'));
+        $form->number('discount_amount', __('Discount amount'));
+        $form->number('payment_time', __('Payment time'));
+
+        return $form;
+    }
+}

+ 11 - 5
app/Community/Controllers/VaccineController.php

xqd xqd xqd
@@ -2,6 +2,7 @@
 
 namespace App\Community\Controllers;
 
+use App\Models\Order;
 use App\Models\Vaccine;
 use Encore\Admin\Controllers\AdminController;
 use Encore\Admin\Form;
@@ -26,12 +27,17 @@ class VaccineController extends AdminController
     {
         $grid = new Grid(new Vaccine());
 
+        $grid->disableCreateButton(false);
         $grid->column('id', __('ID'));
         $grid->column('name', __('疫苗名称'));
         $grid->column('type', __('类别'))->editable('select',[1=>'一类',2=>'二类']);
-        $grid->column('num', __('剩余库存'));
-        $grid->column('num', __('已使用量'));
-        $grid->column('num', __('今日预约'));
+        $grid->column('stock', __('剩余库存'))->editable();
+        $grid->column('used_num', __('已使用量'))->display(function (){
+            Order::where(['product_type'=>4,'organization_id'=>$org_id])->wherehas('orderVaccine',function ($query){
+
+            });
+        });
+        $grid->column('today_num', __('今日预约'));
         $grid->column('price', __('价格'))->editable();
         $grid->column('remark', __('备注'))->editable('textarea');
         $grid->column('supplier', __('厂家'));
@@ -84,10 +90,10 @@ class VaccineController extends AdminController
         $form = new Form(new Vaccine());
 
         $form->select('type', __('类型'))->options([1=>'一类',2=>'二类']);
-        $form->number('price', __('价格'));
         $form->text('name', __('疫苗名称'));
-        $form->textarea('remark', __('备注'));
         $form->text('supplier', __('厂家'));
+        $form->number('price', __('价格'));
+        $form->textarea('remark', __('备注'));
 
         return $form;
     }

+ 11 - 1
app/Community/routes.php

xqd xqd
@@ -1,6 +1,7 @@
 <?php
 //常规路由
 Route::get('/', 'HomeController@index');
+Route::get('/home', 'HomeController@home');
 Route::resource('nurses', NurseController::class);
 Route::resource('nurse_users', NurseUserController::class);
 Route::resource('order_nurses', OrderNurseController::class);
@@ -15,10 +16,19 @@ Route::resource('docter_verifies', DocterVerifyController::class);
 Route::resource('cdms_roles', PermissionController::class);
 Route::resource('docter_account', DocterAccountController::class);
 Route::resource('docter_chats', DocterChatController::class);
-Route::resource('notices', NoticeController::class);
+
+
+//社区通告
+Route::get('notices', 'NoticeController@grid');
+
+//群发通知
+Route::resource('user_notices', UserNoticeController::class);
+
 Route::get('send_notices', 'NoticeController@send');
 Route::resource('/docter_chats', DocterChatController::class);
 Route::get('/chats', 'DocterChatController@chats');
+Route::get('/chat_view', 'DocterChatController@chat_view');
+Route::get('/order_detail', 'HomeController@order_detail');
 //api
 Route::get('/api/getDocter', 'ApiController@getDocter');
 Route::put('/api/paitent_remark', 'ApiController@paitent_remark');

+ 317 - 25
app/Http/Controllers/ScheDuleController.php

xqd xqd
@@ -6,10 +6,20 @@ namespace App\Http\Controllers;
 
 
 use App\Models\CommunitySchedule;
+use App\Models\Docter;
+use App\Models\DocterOrganization;
+use App\Models\Order;
+use App\Models\Organization;
 use App\Models\Schedule;
 use App\Models\SchedulePeriod;
+use App\Models\SystemConfig;
 use App\Models\TimePeriod;
+use Carbon\Carbon;
+use Encore\Admin\Admin;
 use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Log;
+use mysql_xdevapi\Exception;
+use phpDocumentor\Reflection\DocBlock\Description;
 
 class ScheDuleController  extends Controller
 {
@@ -17,43 +27,325 @@ class ScheDuleController  extends Controller
     public function getComSchedule()
     {
 
-        $time  = TimePeriod::get(['id','start_time_period','end_time_period']);
-        $arrays = [1,3,4,12,16,10,20];
+        $set_time = request('Schedulingtime');//时间
+        $org_id = request('mechanism');//机构
+        $docter_id = request('docter_id');//医生
+
+
+        $set_time = '2020-11-30至2020-12-06';
         $org_id = 1;
-        $docter_id = 1;
-        $community = CommunitySchedule::where('org_id',$org_id)->orderBy('day_type')->pluck('times_id','day_type');
-        $time_array = [[],[],[],[],[],[],[]];
-        foreach ($community as $key => $ids){
-            $time = TimePeriod::whereIn('id',$ids)->get(['id','start_time_period','end_time_period']);
-            $time_info = [];
-            foreach ($time as $val){
-                if(!in_array(intval($val->id),$arrays)){
-                    $time_info[] = ['id'=>$val->id,'time'=>$val->start_time_period.'-'.$val->end_time_period];
+        $docter_id = 47;
+        $role = 1;
+
+        if(empty($set_time) || empty($org_id) || empty($docter_id)){
+            return json_encode(['status'=>601,'msg'=>'缺少必要参数','data'=>'']);
+        } else{
+            echo 'what happend';
+        }
+
+
+        $all_time = explode('至',$set_time);
+        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]));
+//        DB::enableQueryLog();
+        $sche_dule = Schedule::whereBetween('schedule_day',[$start_time,$end_time])
+                                ->where(['docter_id'=>$docter_id])
+                                ->pluck('id')
+                                ->toArray();
+//        echo '<pre>';
+//        print_r(DB::getQueryLog());
+//        echo '</pre>';
+        //dd($sche_dule);
+
+        $sche_dule_arr = [
+            [
+                'date'=>"上午",
+                'mondy'=>true,
+                'tuesday'=>true,
+                'wednesday'=>true,
+                'thursday'=>true,
+                'friday'=>true,
+                'saturday'=>true,
+                'sunday'=>true,
+            ],
+            [
+                'date'=>"下午",
+                'mondy'=>true,
+                'tuesday'=>true,
+                'wednesday'=>true,
+                'thursday'=>true,
+                'friday'=>true,
+                'saturday'=>true,
+                'sunday'=>true,
+            ],
+            [
+                'date'=>"晚上",
+                'mondy'=>true,
+                'tuesday'=>true,
+                'wednesday'=>true,
+                'thursday'=>true,
+                'friday'=>true,
+                'saturday'=>true,
+                'sunday'=>true,
+            ]
+        ];
+
+        //周字段映射
+        $week_arr = ['mondy','tuesday','wednesday','thursday','friday','saturday','sunday'];
+
+        //时段区间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();
+        if(empty($sche_dule)){
+            return ['status'=>200,'msg'=>'ok','data'=>['schedule'=>$sche_dule_arr,'org_id'=>$org_id,'docter_id'=>$docter_id]];
+        }
+
+        $role = 2;
+        if($role == 1){
+            $ids = DocterOrganization::where(['organization_id'=>$org_id])->pluck('docter_id');
+            $list = Docter::whereIn('id',$ids)->get(['id','name'])->toArray();
+            $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();
+                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();
+                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();
+                if($is_ev_have){
+                    $sche_dule_arr[2][$week_arr[$j]] = 'other';
                 }
             }
-            $time_array[$key-1] = $time_info;
-        }
-        $data['community'] = $time_array;
-        $firstday = date('Y-m-d', strtotime("this week"));
-        $scd_id = Schedule::where(['schedule_date'=>$firstday,'docter_id'=>$docter_id,'organization_id'=>$org_id])->value('id');
-        $docter_schedule = $time_array;
-        if(!empty($scd_id)){
-            $sche_dule = SchedulePeriod::where('schedule_id',$scd_id)->get(['time_period_id','schedule_date'])->GroupBy('schedule_date')->toArray();
-            foreach ($sche_dule as $val){
-                if($val){
-                    $i = 0;
-                    $new_sche_dule[$i] = array_column($val,'time_period_id');
-                    $i++;
+
+
+        } else {
+            $ids = DocterOrganization::where(['docter_id'=>$docter_id])->pluck('organization_id');
+            $list = Organization::whereIn('id',$ids)->get(['id','name'])->toArray();
+            $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);
+                //检测上午
+                $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();
+                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();
+                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();
+                if($is_ev_have){
+                    $sche_dule_arr[2][$week_arr[$j]] = 'other';
                 }
             }
         }
-        $data['docter'] = $docter_schedule;
+
+
+        //  "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['list'] = array_column($list,'name','id');
+        $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');
+        $role = request('role');
+        $set_time = request('schdule_date');
+        $shcdule_id = request('schdule_id');
+        $set_time = '2020-11-30至2020-12-06';
 
+        $all_time = explode('至',$set_time);
+        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]));
+        //周字段映射
+        $week_arr = ['mondy','tuesday','wednesday','thursday','friday','saturday','sunday'];
+
+
+        $data = [
+            [
+                'date'=>"上午",
+                'mondy'=>true,
+                'tuesday'=>true,
+                'wednesday'=>true,
+                'thursday'=>true,
+                'friday'=>true,
+                'saturday'=>true,
+                'sunday'=>true,
+            ],
+            [
+                'date'=>"下午",
+                'mondy'=>true,
+                'tuesday'=>true,
+                'wednesday'=>true,
+                'thursday'=>true,
+                'friday'=>true,
+                'saturday'=>true,
+                'sunday'=>true,
+            ],
+            [
+                'date'=>"晚上",
+                'mondy'=>true,
+                'tuesday'=>true,
+                'wednesday'=>true,
+                'thursday'=>true,
+                'friday'=>true,
+                'saturday'=>true,
+                'sunday'=>true,
+            ]
+        ];
+
+
+        //时段区间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();
+
+
+        $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);
+            }
+
+            unset($schedule_insert['schedule_day']);
+
+            $schedule_insert['schedule_id'] =$shcdule_id;
+            for ($i = 0 ;$i<=2;$i++){
+                $mo_schedule = array_values($data[$i]);
+                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;
+                    $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'=>1,'docter_id'=>$docter_id,'schedule_date'=>$real_time]);
+                        if(!$is_have){
+                            $time_insert['time_period_id'] = $time_id;
+                            $info[] = $time_insert;
+                            SchedulePeriod::insert($time_insert);
+                        }
+                    }
+                    if($val){
+                        $data['schedule_date'] = $start_time ;
+                    }
+                }
+            }
+            DB::commit();
+        } catch (Exception $e){
+            DB::rollBack();
+            Log::info($e->getMessage());
+        }
+        return json_encode(['status'=>200,'msg'=>'插入成功','data'=>count($info)]);
+    }
+
+    public function getScheduleInfo ()
+    {
+        $docter_id = request('docter_id');
+        $org_id = request('org_id');
+        $docter_id = 47;
+        $org_id = 1;
+        $role = 1;
+        if($role == 1){
+            $ids = DocterOrganization::where(['docter_id'=>$docter_id])->pluck('organization_id');
+            $list = Organization::whereIn('id',$ids)->get(['id','name'])->toArray();
+            $user_id = $org_id;
+        } else {
+            $ids = DocterOrganization::where(['docter_id'=>$docter_id])->pluck('organization_id');
+            $list = Organization::whereIn('id',$ids)->get(['id','name'])->toArray();
+            $user_id = $docter_id;
+
+        }
+        $data['user_id'] = $user_id;
+        $data['role'] = $role;
+        $data['list'] = $list;
+        return (json_encode(['code'=>200,'msg'=>'ok','data'=>$data]));
+    }
+
+    public function get_chat_order()
+    {
+        $org_id = 1;
+        $docter_id = 1;
+        $list = Order::where(['organization_id'=>$org_id,'docter_id'=>$docter_id,'order_status'=>3])->with('orderUser')->distinct('user_id')->get('user_id');
+        foreach ($list as $val){
+            $user_list[] = [
+                'user_id'=>$val->user_id,
+                'avatar'=>$val->orderUser->avatar,
+                'name'=>$val->orderUser->nickname,
+            ];
+        }
+        $data['docter_id'] = $docter_id;
+        $data['order_list'] = $user_list;
+        return  (json_encode(['code'=>200,'msg'=>'ok','data'=>$data]));
     }
 }

+ 17 - 0
app/Models/CommunitySchedule.php

xqd
@@ -0,0 +1,17 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class CommunitySchedule extends Model
+{
+    //
+
+    public function getTimesIdAttribute($value)
+    {
+        return explode(',', $value);
+    }
+
+
+}

+ 10 - 0
app/Models/Nurse.php

xqd
@@ -16,4 +16,14 @@ class Nurse extends BaseModel
     {
         return OrderNurse::where(['nurse_id' => $this->id, 'created_at' => ['>', date('Y-m-d 00:00:00', time())]])->count();
     }
+
+    public function getDoctersAttribute($value)
+    {
+        return explode(',',$value);
+    }
+
+    public function setDoctersAttribute($value)
+    {
+        $this->attributes['docters'] = implode(',', $value);
+    }
 }

+ 1 - 1
app/Models/Order.php

xqd
@@ -21,7 +21,7 @@ class Order extends BaseModel
     ];
 
     //获取订单状态
-    public function getStatus()
+    public static  function getStatus()
     {
         return self::$_order_status;
     }

+ 5 - 0
app/Models/SchedulePeriod.php

xqd
@@ -19,4 +19,9 @@ class SchedulePeriod extends BaseModel
     {
         return $this->belongsTo(TimePeriod::class)->select(['id', 'start_time_period', 'end_time_period']);
     }
+
+    public function docter()
+    {
+        return $this->hasOne(Docter::class,'id','docter_id');
+    }
 }

+ 78 - 0
app/Models/SystemConfig.php

xqd
@@ -0,0 +1,78 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * Class System_Config
+ * @package App
+ */
+
+class SystemConfig extends Model
+{
+    //
+    protected $table = "system_config";
+    protected $guarded = [];
+    static $groups = [
+        'ali_config'=>'阿里云',
+        'docter_config'=>'医生',
+        'user_config'=>'用户',
+        'schedule_config'=>'排班'
+    ];
+    const Field_textarea = 0,Filed_richText = 1,Field_Json = 2,
+        Field_Switch = 3,Field_Time = 4,Field_File = 5,
+        Field_Checkbox = 6,Field_Json_Array = 7,Field_Image = 8;
+
+    private static $_fieldType = [
+        self::Field_textarea =>'纯文本',
+        self::Filed_richText =>'富文本',
+        self::Field_Json =>'JSON',
+        self::Field_Switch =>'开关',
+        self::Field_Time =>'时间',
+        self::Field_File =>'文件',
+        self::Field_Checkbox =>'选择框',
+        self::Field_Json_Array =>'数组JSON',
+        self::Field_Image =>'图片',
+    ];
+
+    protected static function getType(){
+        return self::$_fieldType;
+    }
+    protected static function getGroup(){
+        return self::$groups;
+    }
+
+    /**
+     * @param String $group
+     * @param String $key
+     * @param String $default
+     * @return array|String
+     */
+    public static function get(string $group, string $key = '', string $default = "")
+    {
+        $query = self::where('group', $group);
+        if ($key) {
+            $res = $query->where('key', $key)->first(['value'])->value ?? $default;
+            return $res;
+        } else {
+            $res =  $query->get(['key', 'value']);
+            $arr = [];
+            foreach ($res as $index => $item) {
+                $arr[$item['key']] = $item['value'];
+            }
+            return $arr;
+        }
+    }
+
+    /**
+     * @param String $group
+     * @param String $key
+     * @param String $value
+     * @return int
+     */
+    public static function set(string $group, string $key, string $value)
+    {
+        return self::where([['group', $group], ['key', $key]])->update(['value' => $value]);
+    }
+}

+ 0 - 0
resources/views/chat.blade.php → resources/views/cdms/chat.blade.php


+ 87 - 0
resources/views/cdms/notice.blade.php

xqd
@@ -0,0 +1,87 @@
+
+<style type="text/css">
+
+    .big_body{
+        display: flex;
+        justify-content: center;
+        background-color: #D7D7D7;
+    }
+    .big_div {
+
+        width: 98%;
+        display: block;
+        margin-top: 20px;
+        border: 1px solid #E4E4E4;
+        box-shadow: 0 26rpx 40rpx 0 rgba(255, 255, 255, 0.31);
+        background-color: #FFF;
+        padding: 50px;
+
+    }
+    .title_div{
+        display: flex;
+        justify-content: space-between;
+        /*	用下外边距和信息内容分开*/
+        margin-bottom: 30px;
+    }
+    /*	标题*/
+    .title{
+        font-size: 30px;
+        display: flex;
+        align-items: flex-end;
+    }
+
+    /*	信息*/
+    .inf_div{
+        padding: 20px;
+        display: flex;
+        justify-content: space-around;
+
+    }
+    /*	一条信息 包括icon和文字*/
+
+    .inf{
+        width: 50%;
+        height: 100px;
+
+        display: flex;
+        align-content: center;
+    }
+    /*	icon*/
+    .inf_icon{
+        height: 80px;
+        width: 80px;
+        margin-right: 100px;
+        border-radius: 50%;
+        border: 0.5px solid #000000;
+    }
+    .inf_text{
+        /*		两边加边距*/
+        margin-left: 50px;
+        margin-right: 50px;
+
+    }
+    .inf_text_num{
+        width: auto;
+        text-align: center;
+        margin-bottom: 5px;
+        font-size: 38px;
+    }
+    .inf_text_ms{
+
+    }
+
+</style>
+@foreach($notice as $val)
+<div class="big_div">
+    <!--		标题和时间-->
+    <div class="title_div">
+        <div class="title">
+            <div style="margin-right: 20px;">{{$val->title}}</div>
+{{--            <div style="font-size: 18px;text">通知类型</div>--}}
+        </div>
+        <div class="tiem">{{date('Y年m月d日 H:i:s',strtotime($val->created_at))}}</div>
+    </div>
+    <div>{{$val->content}}</div>
+</div>
+@endforeach
+

+ 98 - 0
resources/views/cdms/nurse_data.blade.php

xqd
@@ -0,0 +1,98 @@
+<style type="text/css">
+
+    .big_body{
+        display: flex;
+        justify-content: center;
+        background-color: #D7D7D7;
+    }
+    .big_div {
+
+        width: 98%;
+        border: 1px solid #E4E4E4;
+        box-shadow: 0 26rpx 40rpx 0 rgba(255, 255, 255, 0.31);
+        background-color: #FFF;
+        padding: 50px;
+
+    }
+    .title_div{
+        display: flex;
+        justify-content: space-between;
+        /*	用下外边距和信息内容分开*/
+        margin-bottom: 30px;
+    }
+    /*	标题*/
+    .title{
+        font-size: 30px;
+    }
+
+    /*	信息*/
+    .inf_div{
+        padding: 20px;
+        display: flex;
+        justify-content: space-around;
+
+    }
+    /*	一条信息 包括icon和文字*/
+
+    .inf{
+        width: 50%;
+        height: 100px;
+
+        display: flex;
+        align-content: center;
+    }
+    /*	icon*/
+    .inf_icon{
+        height: 80px;
+        width: 80px;
+        margin-right: 100px;
+        border-radius: 50%;
+        border: 0.5px solid #000000;
+    }
+    .inf_text{
+        /*		两边加边距*/
+        margin-left: 50px;
+        margin-right: 50px;
+
+    }
+    .inf_text_num{
+        width: auto;
+        text-align: center;
+        margin-bottom: 5px;
+        font-size: 38px;
+    }
+    .inf_text_ms{
+
+    }
+
+</style>
+<body class="big_body">
+<div class="big_div">
+    <!--		标题和时间-->
+    <div class="title_div">
+        <div class="title">实时数据</div>
+        <div class="tiem">更新时间:{{date("Y-m-d H:i:s")}}</div>
+    </div>
+    <!--		信息-->
+    <div class="inf_div">
+        <!--			一段信息-->
+        <div class="inf">
+            <!--				icon-->
+            <div class="inf_icon" style="text-align: center">
+                icon
+            </div>
+            <!--				文字-->
+            <div class="inf_text">
+                <!--数字  要大-->
+                <div class="inf_text_num">{{$data}}</div>
+                <!--描述  要小-->
+                <div class="inf_text_ms">今日预约(人次)</div>
+            </div>
+
+        </div>
+        <div class="inf">
+
+        </div>
+
+    </div>
+</div>

+ 52 - 0
resources/views/cdms/order_detail.blade.php

xqd
@@ -0,0 +1,52 @@
+<style>
+    .contet {
+        width: 100%;
+        margin: 0 auto;
+        padding: 10px 20px;
+        background-color: white;
+    }
+    .center{
+        margin: 0 200px;
+        width: 800px;
+    }
+
+    .a_btn  {
+         padding: 5px;
+         border: grey solid 1px;
+         border-radius: 10%;
+         text-decoration: none;
+    }
+
+    .m-l-30{
+        margin-left: 30px;
+    }
+
+    .center span{
+        font-size: 18px;
+        padding: 10px 0px 5px 0px;
+        display: block;
+    }
+
+</style>
+
+<div class="contet">
+    <div class="center">
+        <h2 style="display: inline-block">订单详情</h2>
+        <a class = "a_btn m-l-30" href="/cdms/chats">会话</a>
+        <a class = "a_btn m-l-30" href="javascript:void(0)">完成</a>
+    </div>
+    <div class="center">
+        <span>订单号:{{$data->order_sn}}</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]}}接单</span>
+        <span>病情描述:{{$data->orderPatient->symptoms}}</span>
+        <span>图片:{{$data->orderPatient->medical_imgs}}</span>
+    </div>
+</div>
+
+<script>
+
+</script>

+ 121 - 0
resources/views/cdms/real_data.blade.php

xqd
@@ -0,0 +1,121 @@
+<style type="text/css">
+
+    .big_body{
+        display: flex;
+        justify-content: center;
+        background-color: #D7D7D7;
+    }
+    .big_div {
+
+        width: 98%;
+        border: 1px solid #E4E4E4;
+        box-shadow: 0 26rpx 40rpx 0 rgba(255, 255, 255, 0.31);
+        background-color: #FFF;
+        padding: 50px;
+
+    }
+    .title_div{
+        display: flex;
+        justify-content: space-between;
+        /*	用下外边距和信息内容分开*/
+        margin-bottom: 30px;
+    }
+    /*	标题*/
+    .title{
+        font-size: 30px;
+    }
+
+    /*	信息*/
+    .inf_div{
+        padding: 20px;
+        display: flex;
+        justify-content: space-around;
+
+    }
+    /*	一条信息 包括icon和文字*/
+
+    .inf{
+        width: 50%;
+        height: 100px;
+
+        display: flex;
+        align-content: center;
+    }
+    /*	icon*/
+    .inf_icon{
+        height: 80px;
+        width: 80px;
+        margin-right: 100px;
+        border-radius: 50%;
+        border: 0.5px solid #000000;
+    }
+    .inf_text{
+        /*		两边加边距*/
+        margin-left: 50px;
+        margin-right: 50px;
+
+    }
+    .inf_text_num{
+        width: auto;
+        text-align: center;
+        margin-bottom: 5px;
+        font-size: 38px;
+    }
+    .inf_text_ms{
+
+    }
+
+</style>
+<body class="big_body">
+<div class="big_div">
+    <!--		标题和时间-->
+    <div class="title_div">
+        <div class="title">实时数据</div>
+        <div class="tiem">更新时间:{{date("Y-m-d H:i:s")}}</div>
+    </div>
+    <!--		信息-->
+    <div class="inf_div">
+        <!--			一段信息-->
+        <div class="inf">
+            <!--				icon-->
+            <div class="inf_icon" style="text-align: center">
+                icon
+            </div>
+            <!--				文字-->
+            <div class="inf_text">
+                <!--数字  要大-->
+                <div class="inf_text_num">{{$data['schedule_paitent']}}</div>
+                <!--描述  要小-->
+                <div class="inf_text_ms">今日预约(人)</div>
+            </div>
+            <div class="inf_text">
+                <!--数字  要大-->
+                <div class="inf_text_num">{{$data['schedule_docter']}}</div>
+                <!--描述  要小-->
+                <div class="inf_text_ms">今日排班(人)</div>
+            </div>
+
+        </div>
+        <div class="inf">
+            <!--				icon-->
+            <div class="inf_icon" style="text-align: center">
+                icon
+            </div>
+            <!--				文字-->
+            <div class="inf_text">
+                <!--数字  要大-->
+                <div class="inf_text_num">{{$data['paitent_num']}}</div>
+                <!--描述  要小-->
+                <div class="inf_text_ms">接诊患者(人数)</div>
+            </div>
+            <div class="inf_text">
+                <!--数字  要大-->
+                <div class="inf_text_num">{{$data['schedule_docter']}}</div>
+                <!--描述  要小-->
+                <div class="inf_text_ms">今日排班</div>
+            </div>
+
+        </div>
+
+    </div>
+</div>

+ 110 - 0
resources/views/cdms/schedule_data.blade.php

xqd
@@ -0,0 +1,110 @@
+<style type="text/css">
+
+    .big_body{
+        display: flex;
+        justify-content: center;
+        background-color: #D7D7D7;
+    }
+    .big_div {
+
+        width: 98%;
+        margin-top: 30px;
+        border: 1px solid #E4E4E4;
+        box-shadow: 0 26rpx 40rpx 0 rgba(255, 255, 255, 0.31);
+        background-color: #FFF;
+        padding: 50px;
+
+    }
+    .title_div{
+        display: flex;
+        justify-content: space-between;
+        /*	用下外边距和信息内容分开*/
+        margin-bottom: 30px;
+    }
+    /*	标题*/
+    .title{
+        font-size: 30px;
+    }
+
+    /*	信息*/
+    .inf_div{
+        padding: 20px;
+        display: flex;
+        justify-content: space-around;
+
+    }
+    /*	一条信息 包括icon和文字*/
+
+    .inf{
+        width: 50%;
+        height: 100px;
+
+        display: flex;
+        align-content: center;
+    }
+    /*	icon*/
+    .inf_icon{
+        height: 80px;
+        width: 80px;
+        margin-right: 100px;
+        border-radius: 50%;
+        border: 0.5px solid #000000;
+    }
+    .inf_text{
+        /*		两边加边距*/
+        margin-left: 50px;
+        margin-right: 50px;
+
+    }
+    .inf_text_num{
+        width: auto;
+        text-align: center;
+        margin-bottom: 5px;
+        font-size: 38px;
+    }
+    .inf_text_ms{
+
+    }
+
+</style>
+<div class="big_div">
+    <!--		标题和时间-->
+    <div class="title_div">
+        <div class="title">疫苗概况</div>
+        <div class="tiem">更新时间:{{date("Y-m-d H:i:s")}}</div>
+    </div>
+    <!--		信息-->
+    <div class="inf_div">
+        <!--			一段信息-->
+        <div class="inf">
+            <!--				icon-->
+            <div class="inf_icon" style="text-align: center">
+                icon
+            </div>
+            <!--				文字-->
+            <div class="inf_text">
+                <!--数字  要大-->
+                <div class="inf_text_num">{{$data['vaccine_num']}}</div>
+                <!--描述  要小-->
+                <div class="inf_text_ms">计免医生(人)</div>
+            </div>
+            <div class="inf_text">
+                <!--数字  要大-->
+                <div class="inf_text_num">{{$data['nurse_num']}}</div>
+                <!--描述  要小-->
+                <div class="inf_text_ms">儿保医生(人)</div>
+            </div>
+
+        </div>
+        <div class="inf">
+            <div class="inf_text">
+                <!--数字  要大-->
+                <div class="inf_text_num">{{$data['clinic_num']}}</div>
+                <!--描述  要小-->
+                <div class="inf_text_ms">门诊医生(人)</div>
+            </div>
+
+        </div>
+
+    </div>
+</div>

+ 116 - 0
resources/views/cdms/vaccine_data.blade.php

xqd
@@ -0,0 +1,116 @@
+<style type="text/css">
+
+    .big_body{
+        display: flex;
+        justify-content: center;
+        background-color: #D7D7D7;
+    }
+    .big_div {
+
+        width: 98%;
+        border: 1px solid #E4E4E4;
+        box-shadow: 0 26rpx 40rpx 0 rgba(255, 255, 255, 0.31);
+        background-color: #FFF;
+        padding: 50px;
+
+    }
+    .title_div{
+        display: flex;
+        justify-content: space-between;
+        /*	用下外边距和信息内容分开*/
+        margin-bottom: 30px;
+    }
+    /*	标题*/
+    .title{
+        font-size: 30px;
+    }
+
+    /*	信息*/
+    .inf_div{
+        padding: 20px;
+        display: flex;
+        justify-content: space-around;
+
+    }
+    /*	一条信息 包括icon和文字*/
+
+    .inf{
+        width: 50%;
+        height: 100px;
+
+        display: flex;
+        align-content: center;
+    }
+    /*	icon*/
+    .inf_icon{
+        height: 80px;
+        width: 80px;
+        margin-right: 100px;
+        border-radius: 50%;
+        border: 0.5px solid #000000;
+    }
+    .inf_text{
+        /*		两边加边距*/
+        margin-left: 50px;
+        margin-right: 50px;
+
+    }
+    .inf_text_num{
+        width: auto;
+        text-align: center;
+        margin-bottom: 5px;
+        font-size: 38px;
+    }
+</style>
+<div class="big_div">
+    <!--		标题和时间-->
+    <div class="title_div">
+        <div class="title">实时数据</div>
+        <div class="tiem">更新时间:{{date("Y-m-d H:i:s")}}</div>
+    </div>
+    <!--		信息-->
+    <div class="inf_div">
+        <!--			一段信息-->
+        <div class="inf">
+            <!--				icon-->
+            <div class="inf_icon" style="text-align: center">
+                icon
+            </div>
+            <!--				文字-->
+            <div class="inf_text">
+                <!--数字  要大-->
+                <div class="inf_text_num">{{$data['sum_num']}}</div>
+                <!--描述  要小-->
+                <div class="inf_text_ms">疫苗种类(种)</div>
+            </div>
+            <div class="inf_text">
+                <!--数字  要大-->
+                <div class="inf_text_num">{{$data['less_num']}}</div>
+                <!--描述  要小-->
+                <div class="inf_text_ms">疫苗缺苗(种)</div>
+            </div>
+            <div class="inf_text">
+                <!--数字  要大-->
+                <div class="inf_text_num">{{$data['have_num']}}</div>
+                <!--描述  要小-->
+                <div class="inf_text_ms">剩余库存(支)</div>
+            </div>
+
+        </div>
+        <div class="inf">
+            <div class="inf_text">
+                <!--数字  要大-->
+                <div class="inf_text_num">{{$data['today_schedule']}}</div>
+                <!--描述  要小-->
+                <div class="inf_text_ms">今日预约(人支)</div>
+            </div>
+
+            <div class="inf_text">
+                <!--数字  要大-->
+                <div class="inf_text_num">{{$data['today_vaccine']}}</div>
+                <!--描述  要小-->
+                <div class="inf_text_ms">预计今日消耗(支)</div>
+            </div>
+        </div>
+    </div>
+</div>

+ 2 - 0
routes/web.php

xqd
@@ -17,4 +17,6 @@ Route::get('/', function () {
 
 
 Route::get('/api/getComSchedule', 'ScheDuleController@getComSchedule');
+Route::get('/api/getChatOrder', 'ScheDuleController@get_chat_order');
+Route::get('/api/setDocChedule', 'ScheDuleController@setDocChedule');