瀏覽代碼

消息群发

Swdz-WangHaiJun 4 年之前
父節點
當前提交
1552bf7350

+ 30 - 0
app/Admin/Actions/Community/Notice/sendNotice.php

xqd
@@ -0,0 +1,30 @@
+<?php
+
+namespace App\Admin\Actions\Community\Notice;
+
+use App\User;
+use Encore\Admin\Actions\BatchAction;
+use Illuminate\Database\Eloquent\Collection;
+
+class sendNotice extends BatchAction
+{
+    public $name = '群发通知';
+
+    public function handle(Collection $collection)
+    {
+        foreach ($collection as $model) {
+            $openid = User::where('id',$model->id)->value('openid');
+            if(empty($openid)) continue;
+        }
+
+        return $this->response()->success('Success message...')->refresh();
+    }
+
+    public function form()
+    {
+        $this->text('title','标题')->value('社区通州')->disable();
+        $this->textarea('content','内容')->value('社区通州')->rows(4);
+        $this->textarea('remark','备注')->value('社区通州')->rows(3);
+    }
+
+}

+ 164 - 0
app/Admin/Controllers/DocterController.php

xqd
@@ -0,0 +1,164 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\Models\Docter;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class DocterController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '医生';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new Docter());
+
+        $grid->column('id', __('Id'));
+        $grid->column('type', __('Type'));
+        $grid->column('name', __('Name'));
+        $grid->column('phone', __('Phone'));
+        $grid->column('sex', __('Sex'));
+        $grid->column('birthday', __('Birthday'));
+        $grid->column('avatar', __('Avatar'));
+        $grid->column('status', __('Status'));
+        $grid->column('label', __('Label'));
+        $grid->column('sign', __('Sign'));
+        $grid->column('intro', __('Intro'));
+        $grid->column('office_id', __('Office id'));
+        $grid->column('qualification_id', __('Qualification id'));
+        $grid->column('score', __('Score'));
+        $grid->column('service_persons', __('Service persons'));
+        $grid->column('eva_num', __('Eva num'));
+        $grid->column('service_days', __('Service days'));
+        $grid->column('phone_minutes', __('Phone minutes'));
+        $grid->column('chat_price', __('Chat price'));
+        $grid->column('phone_price', __('Phone price'));
+        $grid->column('appoint_price', __('Appoint price'));
+        $grid->column('is_chat', __('Is chat'));
+        $grid->column('is_phone', __('Is phone'));
+        $grid->column('is_appoint', __('Is appoint'));
+        $grid->column('latitude', __('Latitude'));
+        $grid->column('longitude', __('Longitude'));
+        $grid->column('created_at', __('Created at'));
+        $grid->column('updated_at', __('Updated at'));
+        $grid->column('user_id', __('User id'));
+        $grid->column('password', __('Password'));
+        $grid->column('is_then', __('Is then'));
+        $grid->column('practice', __('Practice'));
+        $grid->column('card_photo', __('Card photo'));
+        $grid->column('is_quail', __('Is quail'));
+        $grid->column('card_id', __('Card id'));
+        $grid->column('receiving_time', __('Receiving time'));
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(Docter::findOrFail($id));
+
+        $show->field('id', __('Id'));
+        $show->field('type', __('Type'));
+        $show->field('name', __('Name'));
+        $show->field('phone', __('Phone'));
+        $show->field('sex', __('Sex'));
+        $show->field('birthday', __('Birthday'));
+        $show->field('avatar', __('Avatar'));
+        $show->field('status', __('Status'));
+        $show->field('label', __('Label'));
+        $show->field('sign', __('Sign'));
+        $show->field('intro', __('Intro'));
+        $show->field('office_id', __('Office id'));
+        $show->field('qualification_id', __('Qualification id'));
+        $show->field('score', __('Score'));
+        $show->field('service_persons', __('Service persons'));
+        $show->field('eva_num', __('Eva num'));
+        $show->field('service_days', __('Service days'));
+        $show->field('phone_minutes', __('Phone minutes'));
+        $show->field('chat_price', __('Chat price'));
+        $show->field('phone_price', __('Phone price'));
+        $show->field('appoint_price', __('Appoint price'));
+        $show->field('is_chat', __('Is chat'));
+        $show->field('is_phone', __('Is phone'));
+        $show->field('is_appoint', __('Is appoint'));
+        $show->field('latitude', __('Latitude'));
+        $show->field('longitude', __('Longitude'));
+        $show->field('created_at', __('Created at'));
+        $show->field('updated_at', __('Updated at'));
+        $show->field('user_id', __('User id'));
+        $show->field('password', __('Password'));
+        $show->field('is_then', __('Is then'));
+        $show->field('practice', __('Practice'));
+        $show->field('card_photo', __('Card photo'));
+        $show->field('is_quail', __('Is quail'));
+        $show->field('card_id', __('Card id'));
+        $show->field('receiving_time', __('Receiving time'));
+
+        return $show;
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        $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'));
+
+        return $form;
+    }
+}

+ 20 - 0
app/Community/Controllers/ApiController.php

xqd xqd
@@ -7,6 +7,8 @@ namespace App\Community\Controllers;
 use App\Http\Controllers\Controller;
 use App\Models\Docter;
 use App\Models\PatientRemark;
+use App\Models\Schedule;
+use App\Models\TimePeriod;
 use EasyWeChat\Factory;
 
 class ApiController extends Controller
@@ -49,4 +51,22 @@ class ApiController extends Controller
         dd($res);
     }
 
+
+
+    public function getComSchedule()
+    {
+
+        $time  = TimePeriod::get(['id','start_time_period','end_time_period']);
+        dd($time);
+        $data['community'] = [];
+        $data['docter'] = [];
+
+    }
+
+
+    public function setDocChedule()
+    {
+
+    }
+
 }

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

xqd
@@ -0,0 +1,143 @@
+<?php
+
+namespace App\Community\Controllers;
+
+use App\Admin\Actions\Community\Docter\Chat;
+use App\Admin\Actions\Community\Notice\sendNotice;
+use App\Models\Docter;
+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\Layout\Content;
+use Encore\Admin\Show;
+use App\Models\User;
+
+class DocterChatController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '咨询订单';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new Order());
+
+        $user = Admin::user();
+        $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){
+                    $where['docter_id'] = $docter_id;
+                }
+                $query->where($where);
+            });
+        }
+
+        $grid->column('order_sn', __('订单号'));
+        $grid->column('orderUser.nickname', __('咨询用户'));
+        $grid->column('orderPatient.name', __('咨询患者'));
+        $grid->column('orderPatient.birthday', __('患者年龄'))->display(function ($w){
+            return birthday_to_age($w);
+        });
+        $grid->actions(function ($actions){
+           $actions->add( new Chat());
+           $actions->disableDelete();
+           $actions->disableView();
+           $actions->disableEdit();
+        });
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->equal('order_status','订单状态')->select(Order::$_order_status);
+        });
+        $grid->column('order_status', __('订单状态'))->using(Order::$_order_status);
+        $grid->column('created_at', __('下单时间'));
+
+        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());
+        $content = new Content();
+        $form = new \Encore\Admin\Widgets\Form();
+        $params = request()->route()->parameters();
+        $id = $params['docter_chat'];
+        $user = Admin::user();
+        $org_id = $user->org_id;
+        if(!empty($org_id)){
+            $user = Order::where('organization_id',$org_id)->distinct()->pluck('user_id');
+        } else {
+            $user = Order::distinct()->pluck('user_id');
+        }
+        $user_info = User::whereIn('id',$user)->pluck('nickname','id');
+
+        $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;
+    }
+}

+ 100 - 0
app/Community/Controllers/NoticeController.php

xqd
@@ -0,0 +1,100 @@
+<?php
+
+namespace App\Community\Controllers;
+
+use App\Models\Notice;
+use App\Models\User;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Show;
+
+class NoticeController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '通告列表';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    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'));
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(Notice::findOrFail($id));
+
+        $show->field('id', __('Id'));
+        $show->field('org_id', __('Org id'));
+        $show->field('title', __('Title'));
+        $show->field('content', __('Content'));
+        $show->field('remark', __('Remark'));
+        $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 Notice());
+
+        $form->number('org_id', __('Org id'));
+        $form->text('title', __('Title'));
+        $form->text('content', __('Content'));
+        $form->text('remark', __('Remark'));
+
+        return $form;
+    }
+
+    public function send(Content $content)
+    {
+
+        $content->title('fasong');
+        $content->header('群发邮件');
+        $form = new \Encore\Admin\Widgets\Form();
+        $form->action('send');
+        $form->method('post');
+        $user = User::distinct()->pluck('nickname','id');
+        $form->multipleSelect('user_ids','用户')->options($user);
+        $form->text('title','标题')->rules('required',['requried'=>'请输入标题'])->placeholder('请输入标题,最多50个字');
+        $form->textarea('content','内容')->rules('required')->placeholder('请输入标题,最多200个字');
+        $form->textarea('remark','备注')->placeholder('请输入标题,最多200个字');;
+
+        $content->row($form);
+        $dibu = '<div>这是底部</div>';
+        $content->row($dibu);
+        return $content;
+
+    }
+}

+ 5 - 2
app/Community/Controllers/StatController.php

xqd
@@ -14,16 +14,19 @@ class StatController extends  Controller
     //疫苗统计
     public function vaccine()
     {
-
       $data ['count'] = Vaccine::count();
-      $data['success'] = Order::where('order_status',1)->count();
+      $data['have'] = Vaccine::sum('state');
+      $data['today_spend'] = Order::where(['']);
       return $data;
 
     }
 
+
+
     //实时数据
     public 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();
 
     }
 

+ 3 - 1
app/Community/routes.php

xqd
@@ -14,7 +14,9 @@ Route::resource('docter_org', DocterOrgController::class);
 Route::resource('docter_verifies', DocterVerifyController::class);
 Route::resource('cdms_roles', PermissionController::class);
 Route::resource('docter_account', DocterAccountController::class);
-Route::resource('docter_chat', DocterChatController::class);
+Route::resource('notices', NoticeController::class);
+Route::get('send_notices', 'NoticeController@send');
+Route::resource('/docter_wechats', DocterChatController::class);
 
 
 //api

+ 33 - 0
app/Http/Controllers/ScheDuleController.php

xqd
@@ -0,0 +1,33 @@
+<?php
+
+
+namespace App\Http\Controllers;
+
+
+
+use App\Models\TimePeriod;
+
+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];
+        foreach ($time as $key=>$val){
+            if(!in_array(intval($val->id),$arrays)){
+                $time_info[] = ['id'=>$val->id,'time'=>$val->start_time_period.'-'.$val->end_time_period];
+            }
+        }
+        $data['community'] = $time_info;
+        $data['docter'] = [];
+        return  (json_encode(['code'=>200,'msg'=>'ok','data'=>$data]));
+    }
+
+
+    public function setDocChedule()
+    {
+
+    }
+}

+ 10 - 0
app/Models/Notice.php

xqd
@@ -0,0 +1,10 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class Notice extends Model
+{
+    //
+}