Browse Source

后台取消订单,候补上位,发邮件和whatsapp

lizhen_gitee 7 months ago
parent
commit
30b812d2dd
1 changed files with 45 additions and 2 deletions
  1. 45 2
      application/admin/controller/Lessonorder.php

+ 45 - 2
application/admin/controller/Lessonorder.php

@@ -216,7 +216,14 @@ class Lessonorder extends Backend
     //候补上位
     private function lesson_order_wait($lesson_order,$slot){
         //找到所有的候补单
-        $houbu_list = Db::name('lesson_order')->where('slot_id',$lesson_order['slot_id'])->where('jointype',2)->order('id asc')->select();
+        $houbu_list = Db::name('lesson_order')->alias('order')
+            ->field('order.*,user.firstname,user.lastname,user.email,user.whatsapp,lesson.name_en')
+            ->join('user','order.user_id = user.id','LEFT')
+            ->join('lesson','order.lesson_id = lesson.id','LEFT')
+            ->where('order.slot_id',$lesson_order['slot_id'])->where('order.jointype',2)->order('order.id asc')->select();
+
+        $coach_name = Db::name('coach')->where('id',$slot['coach_ids'])->value('nickname');
+
         if(!empty($houbu_list)){
 
             $up_usernumber = 0; //此次循环转正的人数
@@ -234,7 +241,7 @@ class Lessonorder extends Backend
                         'order_status' => 1,
                         'use_status'   => 1, //已激活的
                     ];
-                    $package_order = Db::name('package_order')->where($map)->where('find_in_set(:lesson_ids,lesson_ids)', ['lesson_ids' => $slot['lesson_id']])->order('endtime asc')->find();
+                    $package_order = Db::name('package_order')->where($map)->where('find_in_set(:lesson_ids,lesson_ids)', ['lesson_ids' => $slot['lesson_id']])->order('endtime asc')->lock(true)->find();
                     if(!$package_order){
                         continue;
                     }
@@ -271,6 +278,42 @@ class Lessonorder extends Backend
 
                     //加上本次转正的人数
                     $up_usernumber += $order['usernumber'];
+
+                    //额外的通知
+                    $obj = new Email();
+                    try {
+                        //给这些用户发邮件
+                        $result = $obj
+                            ->to($order['email'])
+                            ->subject('Elin Dance Studio 您候补预订的课程已转为正式预约')
+                            ->message('Hi,'.$order['firstname']. ' ' .$order['lastname'].',您候补预定的课程['.$order['name_en'].']即时起已转为正式预约,时间:'.date('Y-m-d H:i',$slot['starttime']).',请及时来上课!')
+                            ->send();
+
+                        //发whatsapp
+                        $parameters = [
+                            [
+                                'type' => 'text',
+                                'text' => $order['firstname'].' '.$order['lastname'],
+                            ],
+                            [
+                                'type' => 'text',
+                                'text' => $order['name_en'],
+                            ],
+                            [
+                                'type' => 'text',
+                                'text' => $coach_name,
+                            ],
+                            [
+                                'type' => 'text',
+                                'text' => date('Y-m-d H:i',$slot['starttime']),
+                            ],
+                        ];
+                        $this->whatapp($order['whatsapp'],'lessonorder_alternate_to_booking','en_US',$parameters);
+
+                    } catch (Exception $e) {
+
+                    }
+                    //额外的通知
                 }else{
                     break;//跳出
                 }