|
@@ -13,7 +13,7 @@ class Plantask extends Controller
|
|
|
|
|
|
////////////////////////////////////////下面都是计划任务方法///////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////下面都是计划任务方法///////////////////////////////////////////////////////////////
|
|
|
|
|
|
- //明天有课,通知。计划任务1小时执行一次
|
|
|
|
|
|
+ //明天有课,通知。计划任务10分钟执行一次
|
|
public function auto_lesson_slot_notice(){
|
|
public function auto_lesson_slot_notice(){
|
|
$starttime = strtotime(date('Y-m-d')) + 86400;
|
|
$starttime = strtotime(date('Y-m-d')) + 86400;
|
|
$endtime = $starttime + 86399;
|
|
$endtime = $starttime + 86399;
|
|
@@ -38,7 +38,7 @@ class Plantask extends Controller
|
|
];
|
|
];
|
|
|
|
|
|
$order_list = Db::name('lesson_order')->alias('order')
|
|
$order_list = Db::name('lesson_order')->alias('order')
|
|
- ->field('lesson.name,lesson.name_en,user.firstname,user.lastname,user.email,user.lang,user.notice_type,user.whatsapp')
|
|
|
|
|
|
+ ->field('lesson.name,lesson.name_en,user.firstname,user.lastname,user.email,user.lang,user.whatsapp')
|
|
->join('user','order.user_id = user.id','LEFT')
|
|
->join('user','order.user_id = user.id','LEFT')
|
|
->join('lesson','order.lesson_id = lesson.id','LEFT')
|
|
->join('lesson','order.lesson_id = lesson.id','LEFT')
|
|
->where($map)->order('order.id asc')->select();
|
|
->where($map)->order('order.id asc')->select();
|
|
@@ -48,30 +48,34 @@ class Plantask extends Controller
|
|
}
|
|
}
|
|
|
|
|
|
//给这些预约单的用户发邮件
|
|
//给这些预约单的用户发邮件
|
|
- $obj = new Email();
|
|
|
|
- foreach($order_list as $order){
|
|
|
|
- $result = $obj
|
|
|
|
- ->to($order['email'])
|
|
|
|
- ->subject('Don’t forget about your class tomorrow!')
|
|
|
|
- ->message('Hi,'.$order['firstname']. ' ' .$order['lastname'].',您预约的['.$order['name'].']将于'.date('Y-m-d H:i',$slot['starttime']).'开课,请合理安排时间,准时来上课哦!')
|
|
|
|
- ->send();
|
|
|
|
|
|
+ try {
|
|
|
|
+ $obj = new Email();
|
|
|
|
+ foreach($order_list as $order){
|
|
|
|
+ $result = $obj
|
|
|
|
+ ->to($order['email'])
|
|
|
|
+ ->subject('Don’t forget about your class tomorrow!')
|
|
|
|
+ ->message('Hi,'.$order['firstname']. ' ' .$order['lastname'].',您预约的['.$order['name'].']将于'.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' => date('Y-m-d H:i',$slot['starttime']),
|
|
|
|
+ ],
|
|
|
|
+ ];
|
|
|
|
+ $this->whatapp($order['whatsapp'],'the_class_will_start_tomorrow','en_US',$parameters);
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception $e) {
|
|
|
|
|
|
- //发whatsapp
|
|
|
|
- $parameters = [
|
|
|
|
- [
|
|
|
|
- 'type' => 'text',
|
|
|
|
- 'text' => $order['firstname'].' '.$order['lastname'],
|
|
|
|
- ],
|
|
|
|
- [
|
|
|
|
- 'type' => 'text',
|
|
|
|
- 'text' => $order['name_en'],
|
|
|
|
- ],
|
|
|
|
- [
|
|
|
|
- 'type' => 'text',
|
|
|
|
- 'text' => date('Y-m-d H:i',$slot['starttime']),
|
|
|
|
- ],
|
|
|
|
- ];
|
|
|
|
- $this->whatapp($order['whatsapp'],'the_class_will_start_tomorrow','en_US',$parameters);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
//这节课时,任务完成
|
|
//这节课时,任务完成
|
|
@@ -83,14 +87,10 @@ class Plantask extends Controller
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- //课程取消,通知。计划任务1小时执行一次
|
|
|
|
|
|
+ //课程取消,通知。计划任务5分钟执行一次
|
|
public function auto_lesson_slot_cancel(){
|
|
public function auto_lesson_slot_cancel(){
|
|
- $starttime = strtotime(date('Y-m-d')) + 86400;
|
|
|
|
- $endtime = $starttime + 86399;
|
|
|
|
-
|
|
|
|
$map = [
|
|
$map = [
|
|
'status' => 30,
|
|
'status' => 30,
|
|
-// 'starttime' => ['BETWEEN',[$starttime,$endtime]],
|
|
|
|
'cancel_notice_status' => 0,
|
|
'cancel_notice_status' => 0,
|
|
];
|
|
];
|
|
|
|
|
|
@@ -108,7 +108,7 @@ class Plantask extends Controller
|
|
];
|
|
];
|
|
|
|
|
|
$order_list = Db::name('lesson_order')->alias('order')
|
|
$order_list = Db::name('lesson_order')->alias('order')
|
|
- ->field('lesson.name,lesson.name_en,user.firstname,user.lastname,user.email,user.lang,user.notice_type,user.whatsapp')
|
|
|
|
|
|
+ ->field('lesson.name,lesson.name_en,user.firstname,user.lastname,user.email,user.lang,user.whatsapp')
|
|
->join('user','order.user_id = user.id','LEFT')
|
|
->join('user','order.user_id = user.id','LEFT')
|
|
->join('lesson','order.lesson_id = lesson.id','LEFT')
|
|
->join('lesson','order.lesson_id = lesson.id','LEFT')
|
|
->where($map)->order('order.id asc')->select();
|
|
->where($map)->order('order.id asc')->select();
|
|
@@ -118,14 +118,35 @@ class Plantask extends Controller
|
|
}
|
|
}
|
|
|
|
|
|
//给这些预约单的用户发邮件
|
|
//给这些预约单的用户发邮件
|
|
- $obj = new Email();
|
|
|
|
- foreach($order_list as $order){
|
|
|
|
|
|
+ try {
|
|
|
|
+ $obj = new Email();
|
|
|
|
+ foreach($order_list as $order){
|
|
|
|
+
|
|
|
|
+ $result = $obj
|
|
|
|
+ ->to($order['email'])
|
|
|
|
+ ->subject('Class is Cancelled!')
|
|
|
|
+ ->message('Hi,'.$order['firstname']. ' ' .$order['lastname'].',您预约的['.$order['name'].']将于'.date('Y-m-d H:i:s',$slot['starttime']).'开课,请合理安排时间,准时来上课哦!')
|
|
|
|
+ ->send();
|
|
|
|
+
|
|
|
|
+ //发whatsapp
|
|
|
|
+ $parameters = [
|
|
|
|
+ [
|
|
|
|
+ 'type' => 'text',
|
|
|
|
+ 'text' => $order['firstname'].' '.$order['lastname'],
|
|
|
|
+ ],
|
|
|
|
+ [
|
|
|
|
+ 'type' => 'text',
|
|
|
|
+ 'text' => $order['name_en'],
|
|
|
|
+ ],
|
|
|
|
+ [
|
|
|
|
+ 'type' => 'text',
|
|
|
|
+ 'text' => date('Y-m-d H:i',$slot['starttime']),
|
|
|
|
+ ],
|
|
|
|
+ ];
|
|
|
|
+ $this->whatapp($order['whatsapp'],'the_class_cancelled','en_US',$parameters);
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception $e) {
|
|
|
|
|
|
- $result = $obj
|
|
|
|
- ->to($order['email'])
|
|
|
|
- ->subject('Class is Cancelled!')
|
|
|
|
- ->message('Hi,'.$order['firstname']. ' ' .$order['lastname'].',您预约的['.$order['name'].']将于'.date('Y-m-d H:i:s',$slot['starttime']).'开课,请合理安排时间,准时来上课哦!')
|
|
|
|
- ->send();
|
|
|
|
}
|
|
}
|
|
|
|
|
|
//这节课时,任务完成
|
|
//这节课时,任务完成
|
|
@@ -136,6 +157,47 @@ class Plantask extends Controller
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //购买新套餐之后,通知。计划任务5分钟执行一次
|
|
|
|
+ public function auto_after_buy_package(){
|
|
|
|
+ $map = [
|
|
|
|
+ 'order.order_status' => 1,
|
|
|
|
+ 'order.buy_notice_status' => 0,
|
|
|
|
+ 'order.is_gift' => 0,
|
|
|
|
+ ];
|
|
|
|
+ $task_list = Db::name('package_order')->alias('order')
|
|
|
|
+ ->field('order.id,order.endtime,p.name,p.name_en,user.firstname,user.lastname,user.email,user.lang,user.whatsapp')
|
|
|
|
+ ->join('lesson_package p','order.package_id = p.id','LEFT')
|
|
|
|
+ ->join('user','order.user_id = user.id','LEFT')
|
|
|
|
+ ->where($map)->order('order.paytime asc')->limit(1)->select();
|
|
|
|
+
|
|
|
|
+ if(empty($task_list)){
|
|
|
|
+ echo 'empty';
|
|
|
|
+ exit;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $obj = new Email();
|
|
|
|
+ foreach($task_list as $order){
|
|
|
|
+ try {
|
|
|
|
+ //给这些用户发邮件
|
|
|
|
+ $result = $obj
|
|
|
|
+ ->to($order['email'])
|
|
|
|
+ ->subject('Elin Dance Studio 套餐一个月内到期提醒!')
|
|
|
|
+ ->message('Hi,'.$order['firstname']. ' ' .$order['lastname'].',您购买的套餐['.$order['name'].']将于'.date('Y-m-d H:i:s',$order['endtime']).'过期,建议您在过期内使用完毕!')
|
|
|
|
+ ->send();
|
|
|
|
+
|
|
|
|
+ } catch (Exception $e) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //任务完成
|
|
|
|
+ $update = [
|
|
|
|
+ 'notice_status' => 1,//月通知已发送
|
|
|
|
+ ];
|
|
|
|
+ Db::name('package_order')->where('id',$order['id'])->update($update);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
//套餐将要到期,一个月,两周,一周,逐级通知,提醒三次。计划任务分别一小时执行一次
|
|
//套餐将要到期,一个月,两周,一周,逐级通知,提醒三次。计划任务分别一小时执行一次
|
|
public function auto_package_order_notice_mon(){
|
|
public function auto_package_order_notice_mon(){
|
|
|
|
|
|
@@ -147,25 +209,29 @@ class Plantask extends Controller
|
|
];
|
|
];
|
|
|
|
|
|
$task_list = Db::name('package_order')->alias('order')
|
|
$task_list = Db::name('package_order')->alias('order')
|
|
- ->field('order.id,order.endtime,p.name,p.name_en,user.firstname,user.lastname,user.email,user.lang,user.notice_type,user.whatsapp')
|
|
|
|
|
|
+ ->field('order.id,order.endtime,p.name,p.name_en,user.firstname,user.lastname,user.email,user.lang,user.whatsapp')
|
|
->join('lesson_package p','order.package_id = p.id','LEFT')
|
|
->join('lesson_package p','order.package_id = p.id','LEFT')
|
|
->join('user','order.user_id = user.id','LEFT')
|
|
->join('user','order.user_id = user.id','LEFT')
|
|
- ->where($map)->order('endtime asc')->limit(5)->select();
|
|
|
|
|
|
+ ->where($map)->order('endtime asc')->limit(1)->select();
|
|
|
|
|
|
if(empty($task_list)){
|
|
if(empty($task_list)){
|
|
echo 'empty';
|
|
echo 'empty';
|
|
exit;
|
|
exit;
|
|
}
|
|
}
|
|
|
|
+
|
|
$obj = new Email();
|
|
$obj = new Email();
|
|
foreach($task_list as $order){
|
|
foreach($task_list as $order){
|
|
|
|
+ try {
|
|
|
|
+ //给这些用户发邮件
|
|
|
|
+ $result = $obj
|
|
|
|
+ ->to($order['email'])
|
|
|
|
+ ->subject('Elin Dance Studio 套餐一个月内到期提醒!')
|
|
|
|
+ ->message('Hi,'.$order['firstname']. ' ' .$order['lastname'].',您购买的套餐['.$order['name'].']将于'.date('Y-m-d H:i:s',$order['endtime']).'过期,建议您在过期内使用完毕!')
|
|
|
|
+ ->send();
|
|
|
|
|
|
- //给这些用户发邮件
|
|
|
|
|
|
+ } catch (Exception $e) {
|
|
|
|
|
|
- $result = $obj
|
|
|
|
- ->to($order['email'])
|
|
|
|
- ->subject('Elin Dance Studio 套餐一个月内到期提醒!')
|
|
|
|
- ->message('Hi,'.$order['firstname']. ' ' .$order['lastname'].',您购买的套餐['.$order['name'].']将于'.date('Y-m-d H:i:s',$order['endtime']).'过期,建议您在过期内使用完毕!')
|
|
|
|
- ->send();
|
|
|
|
|
|
+ }
|
|
|
|
|
|
//任务完成
|
|
//任务完成
|
|
$update = [
|
|
$update = [
|
|
@@ -185,7 +251,7 @@ class Plantask extends Controller
|
|
];
|
|
];
|
|
|
|
|
|
$task_list = Db::name('package_order')->alias('order')
|
|
$task_list = Db::name('package_order')->alias('order')
|
|
- ->field('order.id,order.endtime,p.name,p.name_en,user.firstname,user.lastname,user.email,user.lang,user.notice_type,user.whatsapp')
|
|
|
|
|
|
+ ->field('order.id,order.endtime,p.name,p.name_en,user.firstname,user.lastname,user.email,user.lang,user.whatsapp')
|
|
->join('lesson_package p','order.package_id = p.id','LEFT')
|
|
->join('lesson_package p','order.package_id = p.id','LEFT')
|
|
->join('user','order.user_id = user.id','LEFT')
|
|
->join('user','order.user_id = user.id','LEFT')
|
|
->where($map)->order('endtime asc')->limit(5)->select();
|
|
->where($map)->order('endtime asc')->limit(5)->select();
|
|
@@ -194,16 +260,21 @@ class Plantask extends Controller
|
|
echo 'empty';
|
|
echo 'empty';
|
|
exit;
|
|
exit;
|
|
}
|
|
}
|
|
|
|
+
|
|
$obj = new Email();
|
|
$obj = new Email();
|
|
foreach($task_list as $order){
|
|
foreach($task_list as $order){
|
|
|
|
|
|
- //给这些用户发邮件
|
|
|
|
|
|
+ try {
|
|
|
|
+ //给这些用户发邮件
|
|
|
|
+
|
|
|
|
+ $result = $obj
|
|
|
|
+ ->to($order['email'])
|
|
|
|
+ ->subject('Elin Dance Studio 套餐两周内到期提醒!')
|
|
|
|
+ ->message('Hi,'.$order['firstname']. ' ' .$order['lastname'].',您购买的套餐['.$order['name'].']将于'.date('Y-m-d H:i:s',$order['endtime']).'过期,建议您在过期内使用完毕!')
|
|
|
|
+ ->send();
|
|
|
|
+ } catch (Exception $e) {
|
|
|
|
|
|
- $result = $obj
|
|
|
|
- ->to($order['email'])
|
|
|
|
- ->subject('Elin Dance Studio 套餐两周内到期提醒!')
|
|
|
|
- ->message('Hi,'.$order['firstname']. ' ' .$order['lastname'].',您购买的套餐['.$order['name'].']将于'.date('Y-m-d H:i:s',$order['endtime']).'过期,建议您在过期内使用完毕!')
|
|
|
|
- ->send();
|
|
|
|
|
|
+ }
|
|
|
|
|
|
//任务完成
|
|
//任务完成
|
|
$update = [
|
|
$update = [
|
|
@@ -221,7 +292,7 @@ class Plantask extends Controller
|
|
];
|
|
];
|
|
|
|
|
|
$task_list = Db::name('package_order')->alias('order')
|
|
$task_list = Db::name('package_order')->alias('order')
|
|
- ->field('order.id,order.endtime,p.name,p.name_en,user.firstname,user.lastname,user.email,user.lang,user.notice_type,user.whatsapp')
|
|
|
|
|
|
+ ->field('order.id,order.endtime,p.name,p.name_en,user.firstname,user.lastname,user.email,user.lang,user.whatsapp')
|
|
->join('lesson_package p','order.package_id = p.id','LEFT')
|
|
->join('lesson_package p','order.package_id = p.id','LEFT')
|
|
->join('user','order.user_id = user.id','LEFT')
|
|
->join('user','order.user_id = user.id','LEFT')
|
|
->where($map)->order('endtime asc')->limit(5)->select();
|
|
->where($map)->order('endtime asc')->limit(5)->select();
|
|
@@ -233,13 +304,16 @@ class Plantask extends Controller
|
|
$obj = new Email();
|
|
$obj = new Email();
|
|
foreach($task_list as $order){
|
|
foreach($task_list as $order){
|
|
|
|
|
|
- //给这些用户发邮件
|
|
|
|
|
|
+ try {
|
|
|
|
+ //给这些用户发邮件
|
|
|
|
+ $result = $obj
|
|
|
|
+ ->to($order['email'])
|
|
|
|
+ ->subject('Elin Dance Studio 套餐一周内到期提醒!')
|
|
|
|
+ ->message('Hi,'.$order['firstname']. ' ' .$order['lastname'].',您购买的套餐['.$order['name'].']将于'.date('Y-m-d H:i:s',$order['endtime']).'过期,建议您在过期内使用完毕!')
|
|
|
|
+ ->send();
|
|
|
|
+ } catch (Exception $e) {
|
|
|
|
|
|
- $result = $obj
|
|
|
|
- ->to($order['email'])
|
|
|
|
- ->subject('Elin Dance Studio 套餐一周内到期提醒!')
|
|
|
|
- ->message('Hi,'.$order['firstname']. ' ' .$order['lastname'].',您购买的套餐['.$order['name'].']将于'.date('Y-m-d H:i:s',$order['endtime']).'过期,建议您在过期内使用完毕!')
|
|
|
|
- ->send();
|
|
|
|
|
|
+ }
|
|
|
|
|
|
//任务完成
|
|
//任务完成
|
|
$update = [
|
|
$update = [
|