Ver Fonte

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

zilong há 4 anos atrás
pai
commit
f74044066f
27 ficheiros alterados com 727 adições e 179 exclusões
  1. 51 0
      app/Admin/Actions/backstage/Notice/MassDistribution.php
  2. 3 0
      app/Admin/Controllers/ArticleManagement/ArticleController.php
  3. 154 0
      app/Admin/Controllers/Chart/OrderChart.php
  4. 4 0
      app/Admin/Controllers/CommunityNotice/CommunityNotices.php
  5. 64 11
      app/Admin/Controllers/HomeController.php
  6. 1 0
      app/Admin/Controllers/OrdersManagement/ServicePackOrderController.php
  7. 2 0
      app/Admin/Controllers/OrganizationController.php
  8. 27 48
      app/Admin/Controllers/ServicePacksManagment/ServicePacksController.php
  9. 43 0
      app/Admin/Controllers/Sta.php
  10. 4 1
      app/Admin/Controllers/UserManagement/BmUser/UserPatientsController.php
  11. 8 9
      app/Admin/Controllers/VaccinesManagement/VaccinesController.php
  12. 24 0
      app/Community/Actions/Clinc/Finished.php
  13. 34 0
      app/Community/Actions/Clinc/OrderCancel.php
  14. 27 0
      app/Community/Actions/Clinc/Reserved.php
  15. 39 11
      app/Community/Controllers/HomeController.php
  16. 13 9
      app/Community/Controllers/NurseController.php
  17. 26 23
      app/Community/Controllers/OrderController.php
  18. 2 2
      app/Community/Controllers/OrderVaccinesController.php
  19. 46 1
      app/Community/Controllers/StatController.php
  20. 1 1
      app/Community/Controllers/Vaccine/OrganizationVaccineController.php
  21. 22 7
      app/Http/Controllers/Api/V1/CommonController.php
  22. 18 4
      app/Http/Controllers/Api/V2/DoctorController.php
  23. 47 51
      app/Http/Controllers/Api/V2/PatientController.php
  24. 1 0
      app/Models/CommunityNotice.php
  25. 1 0
      composer.json
  26. 58 1
      composer.lock
  27. 7 0
      config/echarts.php

+ 51 - 0
app/Admin/Actions/backstage/Notice/MassDistribution.php

xqd
@@ -0,0 +1,51 @@
+<?php
+
+namespace App\Admin\Actions\backstage\Notice;
+
+use App\Models\CommunityNotice;
+use App\Models\Organization;
+use Encore\Admin\Actions\Action;
+use Encore\Admin\Form;
+use Illuminate\Http\Request;
+use Encore\Admin\Facades\Admin;
+
+class MassDistribution extends Action
+{
+    public $name = '群发社区通告';
+    protected $selector = '.mass-distribution';
+
+    public function handle(Request $request)
+    {
+        // $request ...
+        $title = request('title');
+        $organization_id = request('organization_id');
+        $type = request('type');
+        $content = request('content');
+        $admin_id = Admin::user()->id;
+        $arr = [
+            'title' =>$title,
+            'organization_id' =>0,
+            'type' =>$type,
+            'content' =>$content,
+            'admin_id' =>$admin_id,
+        ];
+        foreach ($organization_id as $value)
+        {
+            $arr['organization_id'] = $value;
+            CommunityNotice::create($arr);
+        }
+        return $this->response()->success('群发社区通告成功')->refresh();
+    }
+    public function form(){
+        $this->text('title','标题')->required();
+        $this->multipleSelect('organization_id','机构')->options(Organization::pluck('name','id')->toArray())->required();
+        $this->select('type','类型')->options([1=>'社区通告'])->required();
+        $this->textarea('content','内容')->required();
+    }
+    public function html()
+    {
+        return <<<HTML
+        <a class="btn btn-sm btn-default mass-distribution">群发社区通告</a>
+HTML;
+    }
+}

+ 3 - 0
app/Admin/Controllers/ArticleManagement/ArticleController.php

xqd
@@ -25,6 +25,9 @@ class ArticleController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new Article());
+        $grid->actions(function ($actions){
+           $actions->disableView();
+        });
         $grid->model()->orderBy('id','desc');
         $grid->column('id', __('Id'));
         $grid->column('type', __('分类'))->using([1=>'健康科普',2=>'疫苗科普']);

+ 154 - 0
app/Admin/Controllers/Chart/OrderChart.php

xqd
@@ -0,0 +1,154 @@
+<?php
+
+
+namespace App\Admin\Controllers\Chart;
+use Encore\Admin\Widgets\Box;
+use Encore\Admin\Widgets\Echarts\Echarts;
+use Encore\Admin\Widgets\Form;
+use Encore\Admin\Layout\Row;
+use Encore\Admin\Layout\Column;
+use Encore\Admin\Widgets\Collapse;
+use App\Models\Order;
+
+class OrderChart
+{
+    public  function chart(Row $row)
+    {
+        $row->column(12,function (Column $column){
+
+            $form = new Form();
+            $form->disableReset();
+            $form->disableSubmit();
+            $ry = request('year');
+            $rm = request('month');
+            //是否是初始化
+            $isb = request('b');
+            $year = range(2000,2099);
+            $month = range(1,12);
+            $nowYear = date('Y');
+            $nowMonth = date('m');
+
+            //默认数据获取方式 1默认选择当前月份 2根据时间
+            $type = 2;
+            if(empty($ry) && empty($rm)){
+                $type = 1;
+            }
+
+            //判断是否是初始化
+            if(empty($isb)){
+                $ry = $nowYear;
+                $rm = $nowMonth;
+            } else {
+                $type = 2;
+            }
+
+            foreach ($year as $v){
+                $realYear[$v]=$v;
+            }
+            foreach ($month as $v){
+                $realMonth[$v]=$v;
+            }
+
+            $chartData =self::getData($ry,$rm,$type);
+
+            $filter_content = new Row(function (Column $col)use ($form,$type,$realYear,$ry,$rm,$realMonth){
+                $col->row(function (Row $row)use ($form,$type,$realYear,$ry,$rm,$realMonth){
+                    $form->method('get');
+                    $form->select('year','年份')->options($realYear)->default($ry);
+                    $form->select('month','月份')->options($realMonth)->default($rm);
+                    $form->hidden('b')->default(1);
+                    $form->html("<button type='submit'  class='btn btn-success'>筛选</button><a style='margin-left: 20px;' href='/admin'  class='btn btn-danger'>重置</a>");
+                    $form->action('/admin');
+                    $row->column(6,$form->render());
+                });
+            });
+            $col = new Collapse();
+            $col->add('日期筛选',$filter_content->render());
+
+            $column->append($col->render());
+            $column->row(function (Row $row)use ($chartData){
+                $row->column(12,function (Column $column)use ($chartData){
+                    $echarts = (new Echarts('订单走势图', '','user_change'))
+                        ->setData($chartData['d'])
+                        ->bindLegend($chartData['h'])->setShowToolbox(true);
+                    return $column->append(new  Box('',$echarts));
+                });
+            });
+        });
+    }
+
+    public function getData($year,$month,$type)
+    {
+
+        //type 1默认选择当前月份 2根据时间+
+        $month >10??$month = '0'.$month;
+
+        if($type == 1){
+            //查找天
+
+            $data = Order::query()
+                ->selectRaw('DATE_FORMAT(created_at,"%m-%d") as day')
+                ->selectRaw('COUNT(*) as count')
+                ->where('created_at', '>=', $year.'-'.$month)
+                ->where('created_at', '<', $year.'-'.($month+1))
+                ->groupBy('day')
+                ->get()->toArray();
+            $data = self::getFomateData($data,3);
+            return $data;
+        }
+
+        if(empty($year) && empty($month)){
+            //查找年
+            $data = Order::query()
+                ->selectRaw('DATE_FORMAT(created_at,"%Y") as day')
+                ->selectRaw('COUNT(*) as count')
+                ->where('created_at', '>', '2000-')
+                ->where('created_at', '<', '2099-')
+                ->groupBy('day')
+                ->get()->toArray();
+            $data = self::getFomateData($data,1);
+            return $data;
+        }
+
+        if($year && $month){
+            //查找天
+            $data = Order::query()
+                ->selectRaw('DATE_FORMAT(created_at,"%m-%d") as day')
+                ->selectRaw('COUNT(*) as count')
+                ->where('created_at', '>', $year.'-'.$month)
+                ->where('created_at', '<', $year.'-'.($month+1))
+                ->groupBy('day')
+                ->get()->toArray();
+            $data = self::getFomateData($data,3);
+
+            return $data;
+
+        }
+
+        if($year){
+            //查找月
+            $data = Order::query()
+                ->selectRaw('DATE_FORMAT(created_at,"%m") as day')
+                ->selectRaw('COUNT(*) as count')
+                ->where('created_at', '>=', $year.'-')
+                ->where('created_at', '<', ($year+1).'-')
+                ->groupBy('day')
+                ->get()->toArray();
+            $data = self::getFomateData($data,2);
+            return $data;
+        }
+        return self::getFomateData([],3);
+
+    }
+
+    public static function getFomateData($data,$type)
+    {
+        $typeArr = [1=>'年',2=>'月',3=>'日'];
+        $chartData['d'] = [];
+        foreach ($data as $v){
+            $chartData['d'][] = ['day'=>$v['day'].$typeArr[$type],'count'=>$v['count']];
+        }
+        $chartData['h'] = ['day'=>$typeArr[$type],'count'=>'订单数'];
+        return $chartData;
+    }
+}

+ 4 - 0
app/Admin/Controllers/CommunityNotice/CommunityNotices.php

xqd xqd
@@ -2,6 +2,7 @@
 
 namespace App\Admin\Controllers\CommunityNotice;
 
+use App\Admin\Actions\backstage\Notice\MassDistribution;
 use App\Models\CommunityNotice;
 use App\Models\Organization;
 use Encore\Admin\Auth\Database\Administrator;
@@ -28,6 +29,9 @@ class CommunityNotices extends AdminController
     protected function grid()
     {
         $grid = new Grid(new CommunityNotice());
+        $grid->tools(function (Grid\Tools $tools) {
+            $tools->append(new MassDistribution());
+        });
         $grid->model()->orderBy('id','desc');
         $grid->column('id', __('Id'))->sortable();
         $grid->column('organization.name', __('发放社区'));

+ 64 - 11
app/Admin/Controllers/HomeController.php

xqd
@@ -2,33 +2,86 @@
 
 namespace App\Admin\Controllers;
 
+use App\Admin\Controllers\Chart\OrderChart;
 use App\Http\Controllers\Controller;
 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)
     {
         return $content
-            ->title('Dashboard')
-            ->description('Description...')
-            ->row(Dashboard::title())
+            ->title('欢迎进入后台管理系统')
+            ->description('后台数据中心')
+            ->row('<h1 text-align="center">订单概况</h1>')
             ->row(function (Row $row) {
-
-                $row->column(4, function (Column $column) {
-                    $column->append(Dashboard::environment());
+                // 产品类型(1.电话咨询 2.图文咨询 3.门诊预约 4.疫苗接种预约 5.儿保预约 6.服务包 7.充值)
+                $row->column(3, function (Column $column) {
+                    $column->append(infoBox('新增电话咨询订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(1)));
+                });
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('新增图文咨询订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(2)));
                 });
 
-                $row->column(4, function (Column $column) {
-                    $column->append(Dashboard::extensions());
+                $row->column(3, function (Column $column) {
+                    $column->append(infoBox('新增门诊预约订单', 'user-plus', '/admin/withdraw?status=0', 'green',Sta::getOrderCount(3)));
                 });
 
-                $row->column(4, function (Column $column) {
-                    $column->append(Dashboard::dependencies());
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('新增计免预约订单', 'user-plus', '/admin/withdraw?status=0', 'green', Sta::getOrderCount(4)));
+                });
+            })
+            ->row(function (Row $row) {
+                //产品类型(1.电话咨询 2.图文咨询 3.门诊预约 4.疫苗接种预约 5.儿保预约 6.服务包 7.充值)
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('新增儿保订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(5)));
+                });
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('历史总订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(0)));
+                });
+            })
+            ->row('<h1 text-align="center">订单走势</h1>')
+            ->row(function (Row $row) {
+                //产品类型(1.电话咨询 2.图文咨询 3.门诊预约 4.疫苗接种预约 5.儿保预约 6.服务包 7.充值)
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('今日订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(7,1)));
                 });
-            });
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('昨日订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(7,-1)));
+                });
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('进七日订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(7,7)));
+                });
+                $row->column(3, function (Column $column) {
+                    $column->append(\App\Admin\Controllers\infoBox('近三十日订单', 'dropbox', '/admin/deliver?status=1', 'green', Sta::getOrderCount(7,30)));
+                });
+//                1=>'今日订单总数(单)',
+//                        1=>'昨日订单总数(单)',
+//                        1=>'近七日订单总数(单)',
+//                        1=>'订单总数(单)',
+            })
+            ->row(function (Row $row){
+                (new OrderChart())->chart($row);
+            })
+            ;
     }
+
+}
+/**
+ * 消息框
+ * @param $name
+ * @param $icon
+ * @param $link
+ * @param $color
+ * @param $info
+ * @return string HTML
+ */
+
+function infoBox($name, $icon, $link, $color, $info)
+{
+    return (new InfoBox($name, $icon, $color, $link, $info))->render();
 }

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

xqd
@@ -63,6 +63,7 @@ class ServicePackOrderController extends AdminController
         });
         $grid->model()->orderBy('id','desc');
         $grid->column('id', __('Id'))->sortable();
+        $grid->column('order_sn', __('订单编号'));
         $grid->column('user.nickname', __('用户姓名'));
         $grid->column('orderPatient.name', __('患者姓名'));
         $grid->column('orderPatient.patient_id', __('患者id'))->hide();

+ 2 - 0
app/Admin/Controllers/OrganizationController.php

xqd
@@ -41,6 +41,8 @@ class OrganizationController extends AdminController
                     2=>'二级',
                     3=>'三级'
                 ]);
+                $filter->like('name','名称');
+
             });
             $filter->column(1/2, function ($filter) {
                 $filter->equal('province_id','省份')->select(Area::where('level',1)->pluck('name','id'));

+ 27 - 48
app/Admin/Controllers/ServicePacksManagment/ServicePacksController.php

xqd
@@ -99,54 +99,33 @@ class ServicePacksController extends AdminController
         $form->radio('is_need_insure', __('服务包是否包含保险'))->options([
             0=>'否',
             1=>'是'
-        ])->rules('required',['required'=>'请选择是否包含保险']);;
-        $form->radio('has_team','是否包含团队')->options([
-           0=>'否',
-           1=>'是'
-        ])->when(0,function (Form $form){
-            $form->checkbox('label','服务类型')
-                ->options([
-                    1 => '图文',
-                    2 => '电话',
-                    3 => '门诊',
-                    4 => '计免',
-                    5 => '儿保'
-                ])->when('has',1,function (Form $form){
-                    $form->number('chat_num', __('图文次数'))->default(0);
-                })->when('has',2,function (Form $form){
-                    $form->number('phone_minutes', __('电话次数'))->default(0);
-                })->when('has',3,function (Form $form){
-                    $form->number('appoint_num', __('门诊次数'))->default(0);
-                })->when('has',4,function (Form $form){
-                    $form->number('vaccine_limit_amount', __('计免次数'))->default(0);
-                })->when('has',5,function (Form $form){
-                    //暂未完成,这里展示所有的自费的儿保项目
-                    $form->select('product', __('儿保项目'))->options(Nurse::where('type',2)->pluck('name','id'));
-                })->rules('required',['required'=>'请选择服务类型']);
-        })->when(1,function (Form $form)
-        {
-            $form->multipleSelect('team_id', __('团队选择'))->options(Team::all()->pluck('name','id'));
-            $form->checkbox('label','服务类型')
-                ->options([
-                    1 => '图文',
-                    2 => '电话',
-                    3 => '门诊',
-                    4 => '计免',
-                    5 => '儿保'
-                ])->when('has',1,function (Form $form){
-                    $form->number('chat_num', __('图文次数'))->default(0);
-                })->when('has',2,function (Form $form){
-                    $form->number('phone_minutes', __('电话次数'))->default(0);
-                })->when('has',3,function (Form $form){
-                    $form->number('appoint_num', __('门诊次数'))->default(0);
-                })->when('has',4,function (Form $form){
-                    $form->number('vaccine_limit_amount', __('计免次数'))->default(0);
-                })->when('has',5,function (Form $form){
-                    $form->select('product', __('儿保项目'))->options(Nurse::where('type',$form->team_id)->pluck('name','id'));
-                })->rules('required',['required'=>'请选择服务类型']);
-
-        })->rules('required',['required'=>'请选择是否包含团队']);;
-        $form->ignore('has_team');
+        ])->rules('required',['required'=>'请选择是否包含保险']);
+        $form->radio('is_need_team', __('是否包含团队'))->options([
+            0=>'否',
+            1=>'是'
+        ])->when(1,function (Form $form){
+            $form->multipleSelect('team_id', __('团队选择'))->options(Team::all()->pluck('name','id'))->rules('required',['required'=>'请选择团队']);;
+        })->rules('required',['required'=>'请选择是否包含团队']);
+        $form->checkbox('label','服务类型')
+            ->options([
+                1 => '图文',
+                2 => '电话',
+                3 => '门诊',
+                4 => '计免',
+                5 => '儿保'
+            ])->when('has',1,function (Form $form){
+                $form->number('chat_num', __('图文次数'))->default(0);
+            })->when('has',2,function (Form $form){
+                $form->number('phone_minutes', __('电话次数'))->default(0);
+            })->when('has',3,function (Form $form){
+                $form->number('appoint_num', __('门诊次数'))->default(0);
+            })->when('has',4,function (Form $form){
+                $form->number('vaccine_limit_amount', __('儿保金额'))->default(0);
+            })->when('has',5,function (Form $form){
+                //暂未完成,这里展示所有的自费的儿保项目
+                $form->number('nurses_limit_amount', __('计免金额'))->default(0);
+//                $form->select('product', __('儿保项目'))->options(Nurse::where('type',2)->pluck('name','id'));
+            })->rules('required',['required'=>'请选择服务类型']);
         $form->text('effective_days', __('服务时长(天)'))->default(0);
         $form->saving(function (Form $form){
             $form->price = $form->price*100;

+ 43 - 0
app/Admin/Controllers/Sta.php

xqd
@@ -0,0 +1,43 @@
+<?php
+
+
+namespace App\Admin\Controllers;
+
+
+use App\Http\Controllers\Controller;
+use App\Models\Order;
+
+class Sta extends Controller
+{
+
+    /*
+     *
+     * 获取今日预约订单数目
+     *@param
+     * $type int 订单类型
+     */
+    public static function getOrderCount($type,$day=1)
+    {
+//        产品类型(1.电话咨询 2.图文咨询 3.门诊预约 4.疫苗接种预约 5.儿保预约 6.服务包 7.充值)
+//        订单状态(1.未支付 2.待接单 3.进行中 4.已完成 5.已取消 6.已超时)
+          if($type == 0) return Order::count();
+        if($type != 7)
+            return Order::where(['product_type'=>$type])
+                ->where('order_status','>=',2)
+                ->where('created_at','>=',date('Y-m-d H:i:s',strtotime('today')))
+                ->count();
+          if($day == 1)
+          return Order::where('order_status','>=',2)
+                        ->where('created_at','>=',date('Y-m-d H:i:s',strtotime('today')))
+                        ->count();
+          if($day == -1)
+//              echo date('Y-m-d H:i:s',strtotime('-2 days')).'--'.date('Y-m-d H:i:s',strtotime('-1 days'));
+              return Order::where('order_status','>=',2)
+                  ->whereBetween('created_at',[date('Y-m-d H:i:s',strtotime('-2 days')),date('Y-m-d H:i:s',strtotime('-1 days'))])
+                  ->count();
+          if($day > 1)
+              return Order::where('order_status','>=',2)
+                  ->whereBetween('created_at',[date('Y-m-d H:i:s',strtotime('-'.$day.' days')),date('Y-m-d H:i:s',strtotime('today'))])
+                  ->count();
+    }
+}

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

xqd
@@ -33,9 +33,12 @@ class UserPatientsController extends AdminController
         $uesr_id = \request('user_id');
         $grid->filter(function ($filter){
             $filter->disableIdFilter();
-            $filter->equal('id','患者id');
             $filter->like('userspatient.nickname','用户姓名');
             $filter->like('name','患者姓名');
+            $filter->equal('phone','联系电话');
+            $filter->like('guardian_name','监护人姓名');
+            $filter->between('created_at', "创建时间")->datetime();
+            $filter->between('updated_at', "更新时间")->datetime();
         });
         $grid->disableActions();
         $grid->model()->orderBy('id','desc');

+ 8 - 9
app/Admin/Controllers/VaccinesManagement/VaccinesController.php

xqd xqd xqd xqd
@@ -54,7 +54,6 @@ class VaccinesController extends AdminController
         });
 
         $grid->column('kc','库存');
-        $grid->column('states','状态')->switch($states);
         $grid->column('updated_at', __('更新时间'));
 
         $grid->filter(function($filter){
@@ -66,10 +65,10 @@ class VaccinesController extends AdminController
             // 在这里添加字段过滤器
             $filter->column(1/2, function ($filter) {
                 $filter->equal('type', '类型')->select(Vaccines::$_post_type);
-                $filter->equal('supplier','厂家');
+//                $filter->equal('supplier','厂家');
             });
             $filter->column(1/2, function ($filter) {
-               $filter->equal('name','疫苗名称');
+               $filter->like('name','疫苗名称');
                 $filter->equal('organizationvaccines.org_id','机构')->select(Organization::pluck('name','id'));
             });
         });
@@ -82,7 +81,7 @@ class VaccinesController extends AdminController
                     ->orwhere('supplier','like',"%{$query}%")
                     ->orwhere('remark','like',"{$query}");
             //});
-        })->placeholder('请输入疫苗id/名称/厂家/备注');
+        })->placeholder('请输入疫苗id/名称');
 
         $grid->export(function ($export) {
             //文件名
@@ -140,11 +139,11 @@ class VaccinesController extends AdminController
 //        $form->text('price', __('价格'));
 //        $form->text('remark', __('备注'));
 //        $form->text('supplier', __('厂家'))->rules('required',['required'=>'请填写厂家!']);
-        $states = [
-            'off' => ['value' => 0, 'text' => '禁用', 'color' => 'danger'],
-            'on'  => ['value' => 1, 'text' => '启用', 'color' => 'success'],
-        ];
-        $form->switch('states','状态')->states($states)->default(1);
+//        $states = [
+//            'off' => ['value' => 0, 'text' => '禁用', 'color' => 'danger'],
+//            'on'  => ['value' => 1, 'text' => '启用', 'color' => 'success'],
+//        ];
+//        $form->switch('states','状态')->states($states)->default(1);
         $form->saving(function ($f){
             $f->price *=100;
         });

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

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

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

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

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

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

+ 39 - 11
app/Community/Controllers/HomeController.php

xqd xqd xqd xqd
@@ -20,7 +20,7 @@ class HomeController extends Controller
     }
     public function home(Content $content)
     {
-        if(!Admin::user()->isAdministrator()){
+        if(!Admin::user()->inroles(['administrator','manager'])){
             return redirect('/cdms/notices');
         }
         return $content
@@ -28,28 +28,36 @@ class HomeController extends Controller
             ->description('社区段实时数据')
             ->row(function (Row $row){
                    return $row->column(12,'<p style="font-family:Arial,Helvetica,sans-serif; font-size:1.2em; margin-top20px;vertical-align:middle; font-weight:normal ">实时概况</p>');
-            })->row(function (Row $row){
+            })
+            ->row(function (Row $row){
                 $data = StatController::service();
-                $row->column(3,new InfoBox('今日预约(人)', 'users', 'aqua', '/cdms/home', $data['schedule_paitent']));
+                $row->column(3,new InfoBox('今日预约数量(人)', 'users', 'aqua', '/cdms/home', $data['schedule_paitent']));
                 $row->column(3,new InfoBox('今日排班(人)', 'calendar-check-o', 'aqua', '/cdms/home', $data['schedule_docter']));
                 $row->column(3,new InfoBox('接诊患者(人次)', 'user', 'aqua', '/cdms/home', $data['paitent_num']));
             })
             ->row(function (Row $row){
                 return $row->column(12,'<p style="font-family:Arial,Helvetica,sans-serif; font-size:1.2em; margin-top20px;vertical-align:middle; font-weight:normal ">疫苗概况</p>');
-            })->row(function (Row $row){
+            })
+            ->row(function (Row $row){
                 $data = StatController::vaccine();
-                $row->column(3,new InfoBox('疫苗种类(种)', 'eyedropper', 'aqua', '/cdms/home', $data['sum_num']));
-                $row->column(3,new InfoBox('库存剩余(支)', 'home', 'aqua', '/cdms/home', $data['have_num']));
-                $row->column(3,new InfoBox('疫苗缺苗(种)', 'genderless', 'aqua', '/cdms/home', $data['less_num']));
+                $row->column(3,new InfoBox('今日预约数量(人次)', 'users', 'aqua', '/cdms/home', $data['today_schedule']));
+//                $row->column(3,new InfoBox('疫苗种类(种)', 'eyedropper', 'aqua', '/cdms/home', $data['sum_num']));
+                $row->column(3,new InfoBox('疫苗库存量)', 'home', 'aqua', '/cdms/home', $data['have_num']));
+                $row->column(3,new InfoBox('疫苗库存告急(种)', 'genderless', 'aqua', '/cdms/home', $data['less_num']));
+
             })
             ->row(function (Row $row){
                 $data = StatController::vaccine();
-                $row->column(3,new InfoBox('今日预约(人支)', 'hospital-o', 'aqua', '/cdms/home', $data['today_schedule']));
-                $row->column(3,new InfoBox('预计今日消耗(支)', 'calendar', 'aqua', '/cdms/home', $data['today_vaccine']));
+                $row->column(3,new InfoBox('昨日接种量(人次)', 'genderless', 'aqua', '/cdms/home', $data['less_num']));
+                $row->column(3,new InfoBox('明日预约量(人次)', 'genderless', 'aqua', '/cdms/home', $data['less_num']));
+
+//                $row->column(3,new InfoBox('今日预约(人支)', 'hospital-o', 'aqua', '/cdms/home', $data['today_schedule']));
+//                $row->column(3,new InfoBox('预计今日消耗(支)', 'calendar', 'aqua', '/cdms/home', $data['today_vaccine']));
             })
             ->row(function (Row $row){
                 return $row->column(12,'<p style="font-family:Arial,Helvetica,sans-serif; font-size:1.2em; margin-top20px;vertical-align:middle; font-weight:normal ">订单概况</p>');
-            })->row(function (Row $row){
+            })
+            ->row(function (Row $row){
                 $data = StatController::nurse();
                 $row->column(3,new InfoBox('门诊订单(个)', 'first-order', 'aqua', '/cdms/home', $data[0]));
                 $row->column(3,new InfoBox('计免订单(个)', 'first-order', 'aqua', '/cdms/home', $data[1]));
@@ -57,7 +65,9 @@ class HomeController extends Controller
             })
             ->row(function (Row $row){
                 return $row->column(12,'<p style="font-family:Arial,Helvetica,sans-serif; font-size:1.2em; margin-top20px;vertical-align:middle; font-weight:normal ">今日排班         </p>');
-            })->row(function (Row $row){
+            })
+            ->row(function (Row $row){
+                $data = StatController::clinc();
                 $data = StatController::schedule();
                 $row->column(3,new InfoBox('计免医生(人)', 'hospital-o', 'aqua', '/cdms/home', $data['vaccine_num']));
                 $row->column(3,new InfoBox('儿保医生(人)', 'hospital-o', 'aqua', '/cdms/home', $data['nurse_num']));
@@ -69,6 +79,24 @@ class HomeController extends Controller
 //            ->row($this->schedule_data());
     }
 
+
+//1. 门诊预约
+//(1) 今日预约数量
+//(2) 今日排班(人)
+//(3) 昨日预约数
+//(4) 昨日接诊人数
+//2. 计免预约
+//(1) 今日预约数量(人次)
+//(2) 疫苗库存量
+//(3) 疫苗库存告急(种)
+//(4) 昨日接种量(人次)
+//(5) 明日预约量(人次)
+//3. 儿保预约
+//(1) 今日预约数量(人次)
+//(2) 昨日预约数量(人次)
+//(3) 昨日服务数量(人次)
+//(4) 明日预约数量(人次)
+
     public function real_data()
     {
         $data = StatController::service();

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

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

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

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

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

xqd
@@ -71,9 +71,9 @@ class OrderVaccinesController extends AdminController
             return implode(',',$vaccine_name);
 
         });
-        $grid->column('docter.name', __('排班医生'));
+//        $grid->column('docter.name', __('排班医生'));
         $grid->column('order_status', __('订单状态'))->using(Order::getStatus())->label('info');
-        $grid->column('payment_status', __('支付状态'))->using([1=>'待付款',2=>'已付款',3=>'退款中',4=>'已退款'])->label('info');
+//        $grid->column('payment_status', __('支付状态'))->using([1=>'待付款',2=>'已付款',3=>'退款中',4=>'已退款'])->label('info');
 
         $grid->filter(function ($filter)  {
             $filter->column(1/2, function ($filter) {

+ 46 - 1
app/Community/Controllers/StatController.php

xqd xqd xqd xqd
@@ -29,6 +29,19 @@ class StatController extends  Controller
         if(self::$org_id){
             $where['organization_id']=self::$org_id;
         }
+        $order = Order::where(['product_type'=>4])->where($where);
+
+        $today = $order->whereHas('orderPatient',function ($query){
+            $query->whereBetween('appoint_start_time',[strtotime('today'),strtotime('+1days')]);
+        })->count();
+
+        $tomorrow = $order->whereHas('orderPatient',function ($query){
+            $query->whereBetween('appoint_start_time',[date('Y-m-d',strtotime('-1days')),date('Y-m-d',time())]);
+        })->whereNotIn('order_status',[1,5,6])->count();
+
+        //昨日接诊人数
+        $today = $order->whereBetween('end_time',[strtotime('-1days'),strtotime('today')])->where('order_status',4)->count();
+
         $data ['sum_num'] = Vaccine::where($where)->count();
         $data['have_num'] = Vaccine::where($where)->sum('stock');
         $data['less_num'] = Vaccine::where($where)->where(['stock'=>0])->count();//取苗钟数
@@ -47,6 +60,7 @@ class StatController extends  Controller
         if(self::$org_id){
             $where['organization_id']=self::$org_id;
         }
+
         $data['schedule_paitent'] = Order::where(['order_status'=>1])->where($where)->whereIn('product_type',[3,4,5])->where('created_at','>',date('Y-m-d H:i:s',time()))->count();
         $data['schedule_docter'] = SchedulePeriod::distinct('docter_id')->where($where)->where('schedule_date',date('Y-m-d H:i:s',time()))->count();
 //        $data['paitent_num'] = Order::where(['order_status'=>1])->distinct()->count()->BgroupBy('patient_id');
@@ -54,7 +68,7 @@ class StatController extends  Controller
             $query->where(['appoint_start_time'=>strtotime('today')]);
         })->where(['product_type'=>4])->where($where)->count();//接诊患者(人次)
 
-return $data;
+        return $data;
 
 
     }
@@ -98,4 +112,35 @@ return $data;
         }
         return $data;
     }
+
+    //门诊统计
+    public static function clinc()
+    {
+        $where = [];
+        if(self::$org_id){
+            $where['organization_id']=self::$org_id;
+        }
+        $order = Order::where(['product_type'=>3])->where($where);
+
+        //今日预约数
+        $today = $order->where('created_at','>=',date('Y-m-d'))->whereNotIn('order_status',[1,5,6])->count();
+
+        //医生排班人数
+        $docters = SchedulePeriod::where(['schedule_date'=>date('Y-m-d',time())])->distinct('docter_id')->count('docter_id');
+
+        //昨日接诊人数
+        $yesterday = $order->whereBetween('end_time',[strtotime('-1days'),strtotime('today')])->where('order_status',4)->count();
+
+        //明日预约数
+        $tomorrow = $order->whereHas('orderPatient',function ($query){
+            $query->whereBetween('appoint_start_time',[strtotime('today'),strtotime('+1days')]);
+        })->whereNotIn('order_status',[1,5,6])->count();
+
+        $data['today'] = $today;
+        $data['yesterday'] = $yesterday;
+        $data['docters'] = $docters;
+        $data['tomorrow'] = $tomorrow;
+
+        return $data;
+    }
 }

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

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

+ 22 - 7
app/Http/Controllers/Api/V1/CommonController.php

xqd xqd xqd xqd xqd xqd
@@ -11,6 +11,7 @@ namespace App\Http\Controllers\Api\V1;
 use App\Http\Controllers\Controller;
 use App\Models\Area;
 use App\Models\HelpInfo;
+use App\Models\Icons;
 use App\Models\Order;
 use App\Models\OrderPatient;
 use App\Models\User;
@@ -24,6 +25,8 @@ class CommonController extends Controller
         $req = request()->post();
         $this->validate(request(), [
             'wechat_code' => 'required',
+            'iv' => 'required',
+            'encryptData' => 'required',
             'phone|手机号' => 'max:20',
             'verify_code|验证码' => 'integer',
             'nickname|昵称' => 'max:50',
@@ -53,8 +56,8 @@ class CommonController extends Controller
 
         $session_key = !empty($data['session_key']) ? $data['session_key'] : '';
         $user = User::select(['id', 'status', 'phone', 'nickname', 'avatar'])->where('openid', $data['openid'])->first();
-        if($req['iv'] && $req['encryptData']) {
-            $decryptedData = $app->encryptor->decryptData($data['session_key'], $req['iv'], $req['encryptData']);
+        if(!empty($req['iv']) && !empty($req['encryptData'])) {
+            $decryptedData = $app->encryptor->decryptData($session_key, $req['iv'], $req['encryptData']);
             \Log::info($decryptedData);
             if(isset($decryptedData['unionId']))$data['unionid'] = $decryptedData['unionId'];
         }
@@ -372,7 +375,7 @@ class CommonController extends Controller
         $msgType = request('type',3); //1公众号 2医生端小程序 3 用户端小程序
         $orderId = request('order_id'); //订单id
         if(empty($orderId)){
-            return apiReturn(601,'请输入参数');
+            return out('',601,'请输入参数');
         }
         $config = [
             1=>[
@@ -394,8 +397,9 @@ class CommonController extends Controller
 
 
         $order = Order::where(['id'=>$orderId])->first();
-        if(empty($order)) return apiReturn(602,'无效订单');
-        if(empty($order->user_id)) return apiReturn(602,'此订单用户不存在');
+        if(empty($order)) return out('',602,'无效订单');
+;
+        if(empty($order->user_id)) return out('',602,'无效订单');
         $user = \App\User::where('id',$order->user_id)->first();
         //获取unionid
         $uid = $user->unionid;
@@ -463,8 +467,19 @@ class CommonController extends Controller
             ]);
         }
 
-        if($res['errcode'] == 0) return apiReturn(200,'发送成功');
-        return apiReturn($res['errcode'],$res['errmsg']);
+        if($res['errcode'] == 0) return out('',200,'发送成功') ;
+        return out('',$res['errcode'],$res['errmsg']);
+    }
+
+    public function icons()
+    {
+
+        $type = request('type',1); //位置  1.首页 2.文章中心 3.个人中心
+        $pType = request('ptype',1);//平台类型 1.用户端 2.医生端
+        $data = Icons::where(['type'=>$type,'status'=>1,'type_cl'=>$pType])->orderBy('laval','desc')
+            ->get(['id','name','image','laval'])->toArray();
+        return  out($data,200,'OK');
+
     }
 
 }

+ 18 - 4
app/Http/Controllers/Api/V2/DoctorController.php

xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -592,17 +592,24 @@ class DoctorController extends AuthController
                 // 此时可能有两个医院,为一个数组,一个一个入库
                 if (isset($data['is_appoint']) && !empty($data['is_appoint'])) {
                     $save_data = $data['is_appoint'];
+
+
                     $setting_data = [];
                     $times_data = [];
                     // 查询除本地来
                     $edutime = DocterSetting::where(['docter_id' => $doctor_id, 'type' => 1])->get();
                     if ($edutime) {
+                        $is_neworg = [];
                         $newedu = [];
                         foreach ($edutime as $k => $v) {
                             $newedu[$k]['org_id'] = $v['org_id'];
                             $newedu[$k]['service_times'] = $v['service_times'];
+                            $is_neworg[] = $v['org_id'];
                         }
                         $flag_arr = [];
+                        if (!in_array($save_data[0]['org_id'],$is_neworg)){
+                            $flag_arr[] = $save_data[0]['org_id'];
+                        }
                         foreach ($newedu as $k => $v) {
                             foreach ($save_data as $kk => $vv) {
                                 if ($v['org_id'] == $vv['org_id']) {
@@ -614,6 +621,8 @@ class DoctorController extends AuthController
                         }
                         $flag = !empty($flag_arr) ? $flag_arr : false;
                     }
+
+
                     foreach ($save_data as $k => $v) {
                         if (!isset($v['service_times'])||empty($v['service_times'])){
                             unset($save_data[$k]);
@@ -656,8 +665,9 @@ class DoctorController extends AuthController
                     }
 
                     if($setting_data){
+
                         if ($flag != false) {
-                            foreach ($times_data as $k => $v) {
+                            foreach ($times_data as $v){
                                 TimePeriod::insert($v);
                             }
                         }
@@ -691,7 +701,7 @@ class DoctorController extends AuthController
                         $wheres['schedule_type'] = 1;
                         $wheres[] = ['schedule_date','>=',date('Y-m-d',time())];
                         $list = SchedulePeriod::where($wheres)->whereIn('organization_id', $flag)->orderBy('schedule_date','asc')->get();
-                        SchedulePeriod::where($wheres)->delete();
+                        SchedulePeriod::where($wheres)->whereIn('organization_id', $flag)->delete();
                         if ($list) {
                             $list = $list->toArray();
                             $selfList = [];
@@ -782,7 +792,6 @@ class DoctorController extends AuthController
         return out();
     }
 
-
     /**
      * 计算24小时的时间区间段
      * @param $minute 分钟比如:15
@@ -1862,6 +1871,7 @@ class DoctorController extends AuthController
         } else {
             return false;
         }
+
         if ($type == 1) {
             $morningWhere[] = ['start_time_period', '>=', $zaoTimes[0]];
             $morningWhere[] = ['end_time_period', '<=', $zaoTimes[1]];
@@ -1873,6 +1883,7 @@ class DoctorController extends AuthController
             }
             $morning = array_column($morningd, 'id');
 
+
             return $morning;
         } elseif ($type == 2) {
             $afternoondWhere[] = ['start_time_period', '>=', $zhongTimes[0]];
@@ -2054,6 +2065,7 @@ class DoctorController extends AuthController
             }
 
             $scheduleLists = [];
+
             foreach ($schedule_ids as $kk => $vv) {
                 foreach ($data as $k => $v) {
                     if ($schedule[$kk]['week'] == $v['week']) {
@@ -2112,6 +2124,8 @@ class DoctorController extends AuthController
 
 
 
+
+
     /**
      * 修改某一天的数据
      * @author Liu-Yh
@@ -2144,7 +2158,7 @@ class DoctorController extends AuthController
             $where['schedule_date'] = $req['schedule_date'];
             $where['docter_id'] = $doctor_id;
             $where['schedule_type'] = 1;
-            $where['organization_id'] = $req['organization_id'];
+//            $where['organization_id'] = $req['organization_id'];
 
             if ($type_data['mon']==0&&$type_data['aft']==0&&$type_data['nig']==0){
                 // 进行删除

+ 47 - 51
app/Http/Controllers/Api/V2/PatientController.php

xqd xqd xqd
@@ -526,16 +526,13 @@ class PatientController extends AuthController
             return out('',500,'患者电话不存在');
         }
         $phone = $find['order_patient']['phone'];
-
         if($docter_phone==$phone){
             return out('',500,'医生和患者电话号不能一样!');
-
         }
         $wheres['docter_id'] = $docter_id;
         $wheres['user_id'] = $req['user_id'];
         $commons = new Commons();
         $finds = Axb::where($wheres)->orderBy('id','desc')->first();
-
         if ($finds){
             $querylok = $commons->QuerySubsId($finds['xphone']);
             if ($querylok['Code']=='OK'){
@@ -543,66 +540,38 @@ class PatientController extends AuthController
                 $new_arr = explode(',',$querylok['SubsId']);
                 foreach ($new_arr as $v){
                     $queryCallStatus = $commons->QuerySubscriptionDetail($finds['xphone'],$v);
-                    if ($queryCallStatus['Code']=='OK'){
-                        if ($queryCallStatus['Code']=="OK"){
-                            if ($queryCallStatus['SecretBindDetailDTO']['PhoneNoA']==$docter_phone&&$queryCallStatus['SecretBindDetailDTO']['PhoneNoB']==$phone){
-                                return out($finds['xphone']);
-                            }else{
-                                if ($phone){
-                                    $callModel = $commons->BindAxb($docter_phone,$phone);
-                                    if ($callModel['Code']=="OK"){
-                                        Axb::create([
-                                            'docter_id'=>$docter_id,
-                                            'user_id'=>$req['user_id'],
-                                            'xphone'=>$callModel['SecretBindDTO']['SecretNo'],
-                                            'subs_id'=>$callModel['SecretBindDTO']['SubsId'],
-                                            'createtime'=>time(),
-                                        ]);
-                                        return out($callModel['SecretBindDTO']['SecretNo']);
-                                    }
-                                }else{
-                                    return out('',500,'患者电话不存在');
-                                }
-                            }
+                    if ($queryCallStatus['Code']=="OK"){
+                        if ($queryCallStatus['SecretBindDetailDTO']['PhoneNoA']==$docter_phone&&$queryCallStatus['SecretBindDetailDTO']['PhoneNoB']==$phone){
+                            return out($finds['xphone']);
                         }else{
                             if ($phone){
-                                $callModel = $commons->BindAxb($docter_phone,$phone);
-                                if ($callModel['Code']=="OK"){
-                                    Axb::create([
-                                        'docter_id'=>$docter_id,
-                                        'user_id'=>$req['user_id'],
-                                        'xphone'=>$callModel['SecretBindDTO']['SecretNo'],
-                                        'subs_id'=>$callModel['SecretBindDTO']['SubsId'],
-                                        'createtime'=>time(),
-                                    ]);
-                                    return out($callModel['SecretBindDTO']['SecretNo']);
-                                }
+                                Axb::where('id',$finds['id'])->delete();
+                                return $this->createCall($phone,$docter_phone,$docter_id,$req['user_id']);
                             }else{
                                 return out('',500,'患者电话不存在');
                             }
                         }
+                    }else{
+                        if ($phone){
+                            Axb::where('id',$finds['id'])->delete();
+                            return $this->createCall($phone,$docter_phone,$docter_id,$req['user_id']);
+                        }else{
+                            return out('',500,'患者电话不存在');
+                        }
                     }
                 }
-
-
+            }else{
+                if ($phone){
+                    Axb::where('id',$finds['id'])->delete();
+                    return $this->createCall($phone,$docter_phone,$docter_id,$req['user_id']);
+                }else{
+                    return out('',500,'患者电话不存在');
+                }
             }
 
         }else{
             if ($phone){
-                $callModel = $commons->BindAxb($docter_phone,$phone);
-
-                if ($callModel['Code']=="OK"){
-                    Axb::create([
-                        'docter_id'=>$docter_id,
-                        'user_id'=>$req['user_id'],
-                        'xphone'=>$callModel['SecretBindDTO']['SecretNo'],
-                        'subs_id'=>$callModel['SecretBindDTO']['SubsId'],
-                        'createtime'=>time(),
-                    ]);
-                    return out($callModel['SecretBindDTO']['SecretNo']);
-                }else{
-                    return out($callModel);
-                }
+                return $this->createCall($phone,$docter_phone,$docter_id,$req['user_id']);
             }else{
                 return out('',500,'患者电话不存在');
             }
@@ -610,6 +579,33 @@ class PatientController extends AuthController
 
     }
 
+    /**
+     * 创建电话
+     * @param $phone
+     * @param $docter_phone
+     * @param $docter_id
+     * @param $user_id
+     * @return \Illuminate\Http\JsonResponse
+     */
+    protected function createCall($phone,$docter_phone,$docter_id,$user_id){
+        $commons = new Commons();
+        $callModel = $commons->BindAxb($docter_phone,$phone);
+        if ($callModel['Code']=="OK"){
+            Axb::create([
+                'docter_id'=>$docter_id,
+                'user_id'=>$user_id,
+                'xphone'=>$callModel['SecretBindDTO']['SecretNo'],
+                'subs_id'=>$callModel['SecretBindDTO']['SubsId'],
+                'createtime'=>time(),
+            ]);
+            return out($callModel['SecretBindDTO']['SecretNo']);
+        }else{
+            return out($callModel);
+        }
+
+    }
+
+
 
     /**
      * 电话随访

+ 1 - 0
app/Models/CommunityNotice.php

xqd
@@ -8,6 +8,7 @@ class CommunityNotice extends Model
 {
     //
     protected $table = 'community_notice';
+    protected $fillable = ['title','organization_id','type','content','admin_id'];
     public function organization(){
         return $this->hasOne(Organization::class,'id','organization_id');
     }

+ 1 - 0
composer.json

xqd
@@ -11,6 +11,7 @@
         "php": "^7.2",
         "alibabacloud/client": "^1.5",
         "alibabacloud/sdk": "^1.8",
+        "cyd622/laravel-admin-ext-echarts": "^1.0",
         "encore/laravel-admin": "^1.8",
         "fideloper/proxy": "^4.0",
         "jxlwqq/wang-editor2": "^1.0",

+ 58 - 1
composer.lock

xqd xqd
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "61821a1c04dd903188d4c13d668a8a02",
+    "content-hash": "e2f149e707808f6be188434b4ef1ce91",
     "packages": [
         {
             "name": "adbario/php-dot-notation",
@@ -434,6 +434,63 @@
             },
             "time": "2020-07-20T20:39:25+00:00"
         },
+        {
+            "name": "cyd622/laravel-admin-ext-echarts",
+            "version": "v1.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/cyd622/laravel-admin-ext-echarts.git",
+                "reference": "4311388d499a9f1c68f5c645a6e9352f36fa6e92"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/cyd622/laravel-admin-ext-echarts/zipball/4311388d499a9f1c68f5c645a6e9352f36fa6e92",
+                "reference": "4311388d499a9f1c68f5c645a6e9352f36fa6e92",
+                "shasum": ""
+            },
+            "require": {
+                "encore/laravel-admin": "~1.6",
+                "php": ">=7.0.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~6.0"
+            },
+            "type": "library",
+            "extra": {
+                "laravel": {
+                    "providers": [
+                        "Encore\\Admin\\Widgets\\Echarts\\EchartsServiceProvider"
+                    ]
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Encore\\Admin\\Widgets\\Echarts\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "cyd622",
+                    "email": "luffywang622@gmail.com"
+                }
+            ],
+            "description": "Use Echarts in laravel-admin",
+            "homepage": "https://github.com/cyd622/laravel-admin-ext-echarts",
+            "keywords": [
+                "echarts",
+                "extension",
+                "laravel-admin"
+            ],
+            "support": {
+                "issues": "https://github.com/cyd622/laravel-admin-ext-echarts/issues",
+                "source": "https://github.com/cyd622/laravel-admin-ext-echarts/tree/v1.0.1"
+            },
+            "time": "2019-04-10T08:24:24+00:00"
+        },
         {
             "name": "danielstjules/stringy",
             "version": "3.1.0",

+ 7 - 0
config/echarts.php

xqd
@@ -0,0 +1,7 @@
+<?php
+
+return [
+    'view' => 'echarts::index',
+    'water_mark_text' => '宝妈数据中心',
+    'theme' => 'shine',
+];