Parcourir la source

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

zilong il y a 4 ans
Parent
commit
e8943bed25

+ 3 - 2
app/Admin/Actions/backstage/Refund/RefundCompleteAction.php

xqd
@@ -15,12 +15,13 @@ class RefundCompleteAction extends RowAction
 
     public function handle(Model $model)
     {
+        $money = Order::where('id',$this->row->order_id)->value('payment_amount');
         Order::where('id',$this->row->order_id)->update(['payment_status'=> 4]);
         RefundApplication::where('id',$this->row->id)->update([ 'end_time'=>date('Y-m-d H:i:s',time()),
                                                                 'financial_auditor'=>\Admin::user()->id,
-                                                                'status'=>2]);
+                                                                'status'=>2,
+                                                                'refund_amount'=> $money]);
         $user_id = Order::where('id',$this->row->order_id)->value('user_id');
-        $money = Order::where('id',$this->row->order_id)->value('payment_amount');
         $balance = User::where('id',$user_id)->value('balance');
         $new_balance = $balance+$money;
         User::where('id',$user_id)->update(['balance'=>$new_balance]);

+ 58 - 0
app/Admin/Actions/backstage/Refund/RefundPartCompleteAction.php

xqd
@@ -0,0 +1,58 @@
+<?php
+
+namespace App\Admin\Actions\backstage\Refund;
+
+use App\Models\Order;
+use App\Models\RefundApplication;
+use App\Models\UserBalanceLog;
+use App\User;
+use Encore\Admin\Actions\RowAction;
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Http\Request;
+
+class RefundPartCompleteAction extends RowAction
+{
+    public $name = '部分退款完成';
+
+    public function handle(Model $model,Request $request)
+    {
+        $num = request('num');
+        $num = $num*100;
+        $total =  Order::where('id',$this->row->order_id)->value('payment_amount');
+        if ($num>=$total)
+        {
+            return $this->response()->error('部分退款金额不得大于订单金额')->refresh();
+        }
+        if ($num<0)
+        {
+            return $this->response()->error('部分退款金额不得小于0')->refresh();
+        }
+        Order::where('id',$this->row->order_id)->update(['payment_status'=> 4]);
+        RefundApplication::where('id',$this->row->id)->update([ 'end_time'=>date('Y-m-d H:i:s',time()),
+            'financial_auditor'=>\Admin::user()->id,
+            'status'=>2,
+            'refund_amount'=> $num
+        ]);
+        $user_id = Order::where('id',$this->row->order_id)->value('user_id');
+        $balance = User::where('id',$user_id)->value('balance');
+        $new_balance = $balance+$num;
+        User::where('id',$user_id)->update(['balance'=>$new_balance]);
+        $balance_log = [
+            'user_id' => $user_id,
+            'admin_user_id' => \Admin::user()->id,
+            'type' => 4,
+            'relation_id' => $this->row->order_id,
+            'before_balance' => $balance,
+            'change_balance' => '+'.$num,
+            'after_balance' => $new_balance,
+            'remark'=>'订单部分退款'
+        ];
+        UserBalanceLog::create($balance_log);
+        return $this->response()->success('退款成功')->refresh();
+    }
+    public function form(){
+        $total =  Order::where('id',$this->row->order_id)->value('payment_amount');
+        $this->text('total','当前订单金额')->value($total/100)->disable();
+        $this->text('num','部分退款金额')->help('部分退款金额应小于订单金额');
+    }
+}

+ 22 - 1
app/Admin/Controllers/OrdersManagement/BookingOrderController.php

xqd xqd
@@ -3,6 +3,8 @@
 namespace App\Admin\Controllers\OrdersManagement;
 
 use App\Admin\Actions\backstage\Orders\Evaluate;
+use App\Admin\Actions\backstage\Orders\RefundApplicationAction;
+use App\Admin\Actions\backstage\Refund\RefundCompleteAction;
 use App\Models\Order;
 use App\Admin\Actions\backstage\Orders\OrderDetails;
 use App\Models\OrderPack;
@@ -69,7 +71,26 @@ class BookingOrderController extends AdminController
             });
         });
 
-        $grid->disableActions();
+        $grid->actions(function ($actions){
+            // 1.门诊预约和儿保预约有退款操作
+            $actions->disableView();
+            $actions->disableEdit();
+            $actions->disableDelete();
+            if ($actions->row->product_type == 3 || $actions->row->product_type == 5)
+            {
+                if (
+                    //已取消 待退款
+                    ($actions->row->order_status == 5 && $actions->row->payment_status == 5)||
+                    //已超时 已支付
+                    ($actions->row->order_status == 6 && $actions->row->payment_status == 2)){
+                    $actions->add(new RefundApplicationAction());
+                }
+            }
+            //有问题 未支付是订单状态,这里冲突了
+//            if ($actions->row->product_type == 5 && $actions->row->order_status == 5 && $actions->row->payment_status == 2){
+//
+//            }
+        });
         $grid->model()->orderBy('id','desc');
         $grid->column('id', __('Id'))->sortable();
         $grid->column('user.nickname', __('用户姓名'));

+ 3 - 7
app/Admin/Controllers/OrdersManagement/ConsultingOrdersController.php

xqd xqd xqd
@@ -79,10 +79,6 @@ class ConsultingOrdersController extends AdminController
             $actions->disableView();
             $actions->disableEdit();
             $actions->disableDelete();
-           if ($actions->row->order_status == 6 && $actions->row->payment_status !=3 &&$actions->row->payment_status !=4)
-           {
-               $actions->add(new RefundApplicationAction());
-           }
         });
         $grid->model()->orderBy('id','desc');
         $grid->column('id', __('Id'))->sortable();
@@ -91,7 +87,7 @@ class ConsultingOrdersController extends AdminController
         $grid->column('orderPatient.name', __('患者姓名'));
         $grid->column('orderPatient.patient_phone', __('患者电话'));
         $grid->column('orderPatient.symptoms', __('患者描述'));
-        $grid->column('product_type', __('产品类型'))->using([1=>'电话咨询',2=>'图文咨询']);
+        $grid->column('product_type', __('产品类型'))->using([1=>'电话咨询',2=>'图文咨询',3=>'门诊预约',4=>'疫苗接种预约',5=>'儿保预约',6=>'服务包',7=>'充值',8=>'快速预约']);
         $grid->column('payment_type', __('支付方式'))->display(function ($payment_type){
             if ($payment_type == 1)
             {
@@ -106,8 +102,8 @@ class ConsultingOrdersController extends AdminController
                 return '服务包支付('.$name[0].')';
             }
         });
-        $grid->column('order_status', __('订单状态'))->using([1=>'未支付',2=>'待接单',3=>'进行中',4=>'已完成',5=>'已取消',6=>'已超时']);
-        $grid->column('payment_status', __('支付状态'))->using([1=>'待付款',2=>'已付款',3=>'退款中',4=>'已退款']);
+        $grid->column('order_status', __('订单状态'))->using([1=>'未支付',2=>'待接单',3=>'进行中',4=>'已完成',5=>'已取消',6=>'已超时',7=>'已预约']);
+        $grid->column('payment_status', __('支付状态'))->using([1=>'待付款',2=>'已付款',3=>'退款中',4=>'已退款',5=>'待退款']);
         $grid->column('total_amount', __('订单总金额'))->display(function ($money){
             return $money/100;
         });

+ 9 - 14
app/Admin/Controllers/OrdersManagement/RefundApplicationController.php

xqd xqd xqd xqd
@@ -3,6 +3,7 @@
 namespace App\Admin\Controllers\OrdersManagement;
 
 use App\Admin\Actions\backstage\Refund\RefundCompleteAction;
+use App\Admin\Actions\backstage\Refund\RefundPartCompleteAction;
 use App\Models\Organization;
 use App\Models\Patient;
 use App\Models\RefundApplication;
@@ -41,6 +42,7 @@ class RefundApplicationController extends AdminController
            {
                if (\Admin::user()->isRole('financial_staff')){
                    $actions->add(new RefundCompleteAction());
+                   $actions->add(new RefundPartCompleteAction());
                }
            }
         });
@@ -55,21 +57,16 @@ class RefundApplicationController extends AdminController
             $name = Patient::where('id',$id)->value('name');
             return $name;
         });
-        $grid->column('orders.organization_id', __('机构名'))->display(function ($id){
-            if ($id == 0 )
-            {
-                return '';
-            }
-            else
-            {
-                $name = Organization::where('id',$id)->value('name');
-                return $name;
-            }
+        $grid->column('orders.product_type','产品类型')->using([1=>'电话咨询',2=>'图文咨询',3=>'门诊预约',4=>'疫苗接种预约',5=>'儿保预约',6=>'服务包',7=>'充值',8=>'快速预约']);
+        $grid->column('orders.order_notes','取消备注');
+        $grid->column('orders.order_status','订单状态')->using([1=>'未支付',2=>'待接单',3=>'进行中',4=>'已完成',5=>'已取消']);
+        $grid->column('status', __('退款状态'))->using([1=>'退款中',2=>'已退款']);
+        $grid->column('orders.payment_amount', __('订单金额'))->display(function ($money){
+            return $money/100;
         });
-        $grid->column('orders.payment_amount', __('退款金额'))->display(function ($money){
+        $grid->column('refund_amount', __('退款金额'))->display(function ($money){
             return $money/100;
         });
-        $grid->column('status', __('退款状态'))->using([1=>'退款中',2=>'退款完成']);
         $grid->column('refund_applicant', __('退款申请人员'))->display(function ($id){
             $name = Administrator::where('id',$id)->value('name');
             return $name;
@@ -89,8 +86,6 @@ class RefundApplicationController extends AdminController
                 return $time;
             }
         });
-        $grid->column('updated_at', __('更新时间'));
-
         return $grid;
     }
 

+ 6 - 2
app/Admin/Controllers/ServicePacksManagment/ServicePacksController.php

xqd xqd xqd
@@ -2,8 +2,10 @@
 
 namespace App\Admin\Controllers\ServicePacksManagment;
 
+use App\Models\InsuranceAgreement;
 use App\Models\Nurse;
 use App\Models\ServicePack;
+use App\Models\SystemConfig;
 use App\Models\Team;
 use Encore\Admin\Controllers\AdminController;
 use Encore\Admin\Form;
@@ -69,7 +71,7 @@ class ServicePacksController extends AdminController
 
         $grid->column('image','图片')->lightbox(['width' =>'', 'height' => 30]);
         $grid->column('is_need_insure', __('是否包含保险'))->using([0=>'不包含',1=>'包含']);
-        $grid->column('insuranceagreement.name', __('保险协议名称'));
+        $grid->column('systemconfig.chinese', __('保险协议名称'));
         $grid->column('phone_minutes', __('电话次数'));
         $grid->column('chat_num', __('图文次数'));
         $grid->column('appoint_num', __('门诊次数'));
@@ -100,7 +102,9 @@ class ServicePacksController extends AdminController
         $form->radio('is_need_insure', __('服务包是否包含保险'))->options([
             0=>'否',
             1=>'是'
-        ])->rules('required',['required'=>'请选择是否包含保险']);
+        ])->when(1,function (Form $form){
+            $form->select('agreement_id','协议名称')->options(SystemConfig::where('group','insurance_agreement')->pluck('chinese','id'))->rules('required',['required'=>'请选择协议名称']);
+        })->rules('required',['required'=>'请选择是否包含保险']);
         $form->radio('is_need_team', __('是否包含团队'))->options([
             0=>'否',
             1=>'是'

+ 1 - 1
app/Admin/Controllers/WeChatProgram/UserManagement/IconsUserController.php

xqd
@@ -77,7 +77,7 @@ class IconsUserController extends AdminController
 
         $form->text('name', __('名称'))->rules('required' ,['required'=>'请填写名称!']);
         $form->image('image', __('图片'))->rules('required' ,['required'=>'请选择图片!']);
-        $form->text('url', __('点击地址'))->rules('required',['requried'=>'请填写点击地址']);
+        $form->text('url', __('点击地址'));
         $form->hidden('type_cl')->default(1);
         $form->select('type', __('分类'))->options(Icons::$_post_type)->default(1);
         $form->number('laval', __('顺序'));

+ 10 - 1
app/Community/Actions/Clinc/OrderCancel.php

xqd
@@ -14,13 +14,22 @@ class OrderCancel extends RowAction
     public function handle(Model $model)
     {
         $id = $this->row->id;
+        $sn = $this->row->order_sn;
+        $openid = $this->row->orderUser->openid;
+        if(empty($openid)) return true;
+        //$openid = 'oYmUA5A1OIqtpA1XSrw35tbjtv1w';
+        $time = $this->row->created_at;
+        $price = (intval($this->row->price) / 100).'元';
         DB::beginTransaction();
         try {
             //退还余额
             $res = Order::orderCancel($id);
+            $msg = [
+                $openid,'/pages/index/index','您有一个订单已取消',$sn,'门诊订单',$price,$time,'社区取消','如有疑问请联系客服'
+            ];
+            $ret = send_wechat_message(9,$msg,'','');
             DB::commit();
         } catch ( \Exception $e){
-            dd($e->getMessage());
             DB::rollBack();
             return $this->response()->error('操作失败!');
         }

+ 15 - 2
app/Community/Actions/Nurse/OrderCance.php

xqd
@@ -15,13 +15,26 @@ class OrderCance extends RowAction
     public function handle(Model $model)
     {
         $id = $this->row->order_id;
+        $order = Order::where(['id'=>$id])->with('orderUser')->first();
+        $sn = $order->order_sn;
+        if(empty($order->orderUser) || empty($order->orderUser->openid) ) return true;
+        $openid = $order->orderUser->openid;
+        //$openid = 'oYmUA5A1OIqtpA1XSrw35tbjtv1w';
+        $time = $this->row->created_at;
+        $price = (intval($this->row->price) / 100).'元';
+
         DB::beginTransaction();
         try {
             //退还余额
-            $res = Order::orderCancel($id);
+            $res = Order::orderCancel($id,'社区取消');
+            $msg = [
+                $openid,'/pages/index/index','您有一个订单已取消',$sn,'儿保订单',$price,$time,'社区取消','如有疑问请联系客服'
+            ];
+            $ret = send_wechat_message(9,$msg,'','');
+
             DB::commit();
         } catch ( \Exception $e){
-            dd($e->getMessage());
+            dump($e->getMessage());
             DB::rollBack();
             return $this->response()->error('操作失败!');
         }

+ 11 - 1
app/Community/Actions/Vaccine/OrderCance.php

xqd
@@ -15,13 +15,23 @@ class OrderCance extends RowAction
     public function handle(Model $model)
     {
         $id = $this->row->id;
+        $sn = $this->row->order_sn;
+        $openid = $this->row->orderUser->openid;
+        if(empty($openid)) return true;
+        //$openid = 'oYmUA5A1OIqtpA1XSrw35tbjtv1w';
+        $time = $this->row->created_at;
+        $price = (intval($this->row->price) / 100).'元';
+
         DB::beginTransaction();
         try {
             //退还余额
             $res = Order::orderCancel($id);
+            $msg = [
+                $openid,'/pages/index/index','您有一个订单已取消',$sn,'疫苗接种订单',$price,$time,'社区取消','如有疑问请联系客服'
+            ];
+            $ret = send_wechat_message(9,$msg,'','');
             DB::commit();
         } catch ( \Exception $e){
-            dd($e->getMessage());
             DB::rollBack();
             return $this->response()->error('操作失败!');
         }

+ 11 - 15
app/Community/Controllers/ApiController.php

xqd
@@ -98,27 +98,23 @@ class ApiController extends Controller
 
     public function getDateVaccine()
     {
-        $date = request('d');
+        $date = request('date');
         $org_id = Admin::user()->org_id;
-//        return [
-//            1=>'09:00',
-//            3=>'10:00',
-//            4=>'11:00',
-//            6=>'12:00',
-//            7=>'13:00',
-//        ];
-        $timeIds = SchedulePeriod::where(['organization_id'=>$org_id,'schedule_date'=>$date])->distinct('time_period_id')->get(['time_period_id'])->toArray();
+
+        $timeIds = SchedulePeriod::where(['organization_id'=>$org_id,'schedule_type'=>2])->whereDate('schedule_date',$date)->distinct('time_period_id')->pluck('time_period_id')->toArray();
         if(empty($timeIds)) return [];
-        $times = TimePeriod::whereIn('id',$timeIds)->where('start_time_period','>',date('H:i:s',time()))->get();
+        $times = TimePeriod::whereIn('id',$timeIds);
+
+        if(strtotime($date) === time()) {
+            $times = $times->where('start_time_period','>',date('H:i',time()));
+        }
+        $times = $times->get();
+
         $timer = [];
         foreach ($times as $info){
             $timer[$info['id']] = $info['start_time_period'].'-'.$info['end_time_period'];
         }
-//        return [
-//            ['id'=>1,'text'=>'09:00'],
-//            ['id'=>2,'text'=>'10:00'],
-//            ['id'=>3,'text'=>'11:00'],
-//        ];
+
         return $timer;
 
     }

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

xqd
@@ -53,7 +53,7 @@ class OrderNurseController extends AdminController
             });
         }
 
-        $grid->column('id', __('ID'));
+        $grid->column('orders.id', __('ID'));
         $grid->column('orders.user_id', __('预约用户'))->display(function($w){
             return User::where('id',$w)->value('nickname');
         });

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

xqd
@@ -92,8 +92,9 @@ class OrderVaccinesController extends AdminController
                 $actions->add(new OrderCance());
             }
 
-            if( $actions->row->order_status<= 3 ){
+            if(!empty($actions->row->order_status) &&  $actions->row->order_status<= 3 ){
                 $actions->add(new Finished());
+                $actions->add(new OrderCance());
                 $actions->add(new AddVaccine());
             }
 

+ 17 - 20
app/Community/Controllers/UserNoticeController.php

xqd xqd
@@ -4,6 +4,7 @@ namespace App\Community\Controllers;
 
 use App\Admin\Actions\Community\Notice\sendNotice;
 use App\Models\Order;
+use App\Models\Patient;
 use Encore\Admin\Controllers\AdminController;
 use Encore\Admin\Facades\Admin;
 use Encore\Admin\Form;
@@ -26,33 +27,29 @@ class UserNoticeController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new Order());
+        $grid = new Grid(new Patient());
 
-        $grid->model()->GroupBy('patient_id');
         $grid->model()->orderByDesc('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();
+        echo request('product_type');
+        if(!empty(request('product_type'))){
+            $user_ids = Order::whereIn('product_type',[4,5])->distinct('user_id')->pluck('user_id');
+            $grid->model()->whereIn('user_id',$user_ids);
         }
-        $grid->addColumn('ssss','id')->display(function (){
-            return 22;
-        })->hide();
 
-        $grid->column('orderUser.nickname', __('用户'));
-        $grid->column('sid','优惠卷')->hide();
-        $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->column('user.nickname', __('用户'));
+        $grid->column('name', __('患者'));
+        $grid->column('relationship_type', __('关系'))->using([1=>'父亲',2=>'母亲',3=>'祖父',4=>'祖母',5=>'外祖父',6=>'外祖母',7=>'叔侄',8=>'其他']);
+        $grid->column('phone', __('用户手机号'));
+        $grid->column('birthday', __('出生日期'));
 
         $grid->filter(function ($flter){
-            $flter->like('orderPatient.name','请输入用户姓名');
-            $flter->like('orderUser.nickname','请输入监护人姓名');
-            $flter->between('orderUser.birthday','生日')->datetime();
-            $flter->between('orderPatient.appoint_start_time','预约时间')->datetime();
-            $flter->equal('product_type','用户类型')->select([4=>'计免',5=>'儿保']);
+            $flter->like('name','请输入患者姓名');
+            $flter->like('nickname','请输入监护人姓名');
+            $flter->between('birthday','生日')->datetime();
+            $flter->between('orderpatient.appoint_start_time','预约时间')->datetime();
+            $flter->equal('order.product_type','用户类型')->select([4=>'计免',5=>'儿保']);
         });
 
         $grid->actions(function ($actions){

+ 79 - 0
app/Console/Commands/overTimeOrder.php

xqd
@@ -0,0 +1,79 @@
+<?php
+
+namespace App\Console\Commands;
+
+use App\Models\Order;
+use App\Models\SystemConfig;
+use Illuminate\Console\Command;
+use Illuminate\Support\Facades\Log;
+
+class overTimeOrder extends Command
+{
+    /**
+     * The name and signature of the console command.
+     *
+     * @var string
+     */
+    protected $signature = 'overOrder';
+
+    /**
+     * The console command description.
+     *
+     * @var string
+     */
+    protected $description = '超时';
+
+    /**
+     * Create a new command instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        parent::__construct();
+    }
+
+    /**
+     * Execute the console command.
+     *
+     * @return mixed
+     */
+    public function handle()
+    {
+        Log::info('超时命令'.date('Y-m-d H:is',time()).PHP_EOL);
+        return ;
+        $config_chat =  SystemConfig::get('docter_config','chat_complete_time');
+        $config_phone =  SystemConfig::get('docter_config','phone_complete_time');
+
+        // 换算为秒
+        $config_chat = $config_chat*60;
+        $config_phone = $config_phone*60;
+
+        $inOrder = Order::with('orderPatient')->where(['order_status'=>3,'payment_status'=>2])->get();
+        $catNewIds = [];
+        $menNewIds = [];
+        foreach ($inOrder as $k=>$v){
+            if ($v['product_type']==1){
+                if ((time()-$v['receiving_time'])>=$config_chat){
+                    $catNewIds[$k] = $v['id'];
+                }
+            }else if($v['product_type']==2){
+                if ((time()-$v['receiving_time'])>=$config_phone){
+                    $catNewIds[$k] = $v['id'];
+                }
+            }else if($v['product_type']==3){
+                if ((time()-$v['receiving_time'])>=(1*60*60*24)){
+                    $menNewIds[$k] = $v['id'];
+                }
+            }
+
+        }
+        if ($catNewIds || $menNewIds){
+            // 操作图文和电话订单为已完成
+            Order::whereIn('id',$catNewIds)->update(['order_status'=>4]);
+            // 操作门诊订单为已超时
+            Order::whereIn('id',$menNewIds)->update(['order_status'=>6]);
+        }
+
+    }
+}

+ 2 - 0
app/Console/Kernel.php

xqd xqd
@@ -2,6 +2,7 @@
 
 namespace App\Console;
 
+use App\Console\Commands\overTimeOrder;
 use Illuminate\Console\Scheduling\Schedule;
 use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
 
@@ -14,6 +15,7 @@ class Kernel extends ConsoleKernel
      */
     protected $commands = [
         //
+        'overOrder'=>overTimeOrder::class,
     ];
 
     /**

+ 2 - 2
app/Models/ServicePack.php

xqd
@@ -29,7 +29,7 @@ class ServicePack extends BaseModel
 
         return $data;
     }
-    public function insuranceagreement(){
-        return $this->hasOne(InsuranceAgreement::class,'id','agreement_id');
+    public function systemconfig(){
+        return $this->hasOne(SystemConfig::class,'id','agreement_id');
     }
 }

+ 2 - 1
app/Models/SystemConfig.php

xqd
@@ -18,7 +18,8 @@ class SystemConfig extends Model
         'ali_config'=>'阿里云',
         'docter_config'=>'医生',
         'user_config'=>'用户',
-        'schedule_config'=>'排班'
+        'schedule_config'=>'排班',
+        'insurance_agreement'=>'保单协议'
     ];
     const Field_textarea = 0,Filed_richText = 1,Field_Json = 2,
         Field_Switch = 3,Field_Time = 4,Field_File = 5,

+ 29 - 26
config/config.php

xqd xqd xqd xqd xqd xqd xqd xqd
@@ -704,16 +704,19 @@ return [
             'touser' => '%s',
             'url' => '%s',
             'data' => [
-                '订单编号' => [
+                'first' => [
+                    'value' => '您的订单即将过期',
+                ],
+                'keyword1' => [
                     'value' => '%s',
                 ],
-                '客户姓名' => [
+                'keyword2' => [
                     'value' => '%s',
                 ],
-                '客户联系方式' => [
+                'keyword3' => [
                     'value' => '%s',
                 ],
-                '订单创建时间' => [
+                'keyword4' => [
                     'value' => '%s',
                 ],
                 'remark' => [
@@ -731,19 +734,19 @@ return [
                 'first' => [
                     'value' => '尊敬的%s你有一个订单已被取消',
                 ]
-                ,'订单编号' => [
+                ,'keyword1' => [
                     'value' => '%s',
                 ],
-                '订单类型' => [
+                'keyword2' => [
                     'value' => '%s',
                 ],
-                '订单金额' => [
+                'keyword3' => [
                     'value' => '%s',
                 ],
-                '订单时间' => [
+                'keyword4' => [
                     'value' => '%s',
                 ],
-                '取消原因' => [
+                'keyword5' => [
                     'value' => '%s',
                 ],
                 'remark' => [
@@ -761,13 +764,13 @@ return [
                 'first' => [
                     'value' => '您有一条医生认证申请已提交成功!',
                 ]
-                ,'申请者' => [
+                ,'keyword1' => [
                     'value' => '%s',
                 ],
-                '申请类型' => [
+                'keyword2' => [
                     'value' => '%s',
                 ],
-                '申请时间' => [
+                'keyword3' => [
                     'value' => '%s',
                 ],
                 'remark' => [
@@ -784,10 +787,10 @@ return [
                 'first' => [
                     'value' => '您好,你的排班情况有所变动,请及时查看',
                 ]
-                ,'班种变动' => [
+                ,'keyword1' => [
                     'value' => '%s',
                 ],
-                '科室名称' => [
+                'keyword2' => [
                     'value' => '%s',
                 ],
                 'remark' => [
@@ -804,10 +807,10 @@ return [
                 'first' => [
                     'value' => '你在%s社区的认证还有一天到期,请及时续签!',
                 ]
-                ,'类型' => [
+                ,'keyword1' => [
                     'value' => '签约到期提醒',
                 ],
-                '时间' => [
+                'keyword2' => [
                     'value' => '%s',
                 ],
                 'remark' => [
@@ -824,16 +827,16 @@ return [
                 'first' => [
                     'value' => '尊敬的用户,你的咨询订单已被医生接单!',
                 ]
-                ,'订单编号' => [
+                ,'keyword1' => [
                     'value' => '%s',
                 ],
-                '服务项目' => [
+                'keyword2' => [
                     'value' => '%s',
                 ],
-                '接单时间' => [
+                'keyword3' => [
                     'value' => '%s',
                 ],
-                '联系号码' => [
+                'keyword4' => [
                     'value' => '%s',
                 ],
                 'remark' => [
@@ -850,13 +853,13 @@ return [
                 'first' => [
                     'value' => '你的咨询订单已被医生回复,请及时查看!',
                 ]
-                ,'医院' => [
+                ,'keyword1' => [
                     'value' => '%s',
                 ],
-                '医生' => [
+                'keyword2' => [
                     'value' => '%s',
                 ],
-                '就诊人' => [
+                'keyword3' => [
                     'value' => '%s',
                 ],
                 'remark' => [
@@ -873,13 +876,13 @@ return [
                 'first' => [
                     'value' => '尊敬的%s,您明天有新的门诊预约订单待处理!',
                 ]
-                ,'预约时间' => [
+                ,'keyword1' => [
                     'value' => '签约失效提醒',
                 ],
-                '预约类型' => [
+                'keyword2' => [
                     'value' => '%s',
                 ],
-                '预约事项' => [
+                'keyword3' => [
                     'value' => '就诊人数:%s个,就诊地点:%s医院',
                 ],
                 'remark' => [