Selaa lähdekoodia

社区群发模板消息,取消订单模板消息,快速预约

whj 4 vuotta sitten
vanhempi
commit
9f8ad51d4b

+ 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){