|
@@ -3,7 +3,8 @@
|
|
|
namespace app\admin\controller;
|
|
|
|
|
|
use app\common\controller\Backend;
|
|
|
-
|
|
|
+use think\Db;
|
|
|
+use app\common\library\Email;
|
|
|
|
|
|
* 每日课时
|
|
|
*
|
|
@@ -70,4 +71,90 @@ class Lessonslot extends Backend
|
|
|
return $this->view->fetch();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ * 取消
|
|
|
+ */
|
|
|
+ public function cancel(){
|
|
|
+ $id = input('id');
|
|
|
+ $info = Db::name('lesson_slot')->where('id',$id)->where('status',0)->find();
|
|
|
+ if(!$info){
|
|
|
+ $this->error('请刷新重试');
|
|
|
+ }
|
|
|
+
|
|
|
+ if($this->request->isPost()){
|
|
|
+ $remark = input('remark','');
|
|
|
+ $cancel_reason = input('cancel_reason','');
|
|
|
+ $cancel_time = strtotime(input('cancel_time',''));
|
|
|
+
|
|
|
+ Db::startTrans();
|
|
|
+ $update = [
|
|
|
+ 'remark' => $remark,
|
|
|
+ 'cancel_reason' => $cancel_reason,
|
|
|
+ 'cancel_time' => $cancel_time
|
|
|
+ ];
|
|
|
+
|
|
|
+ $rs1 = Db::name('lesson_slot')->where('id',$id)->where('status',0)->update($update);
|
|
|
+ if($rs1 === false){
|
|
|
+ Db::rollback();
|
|
|
+ $this->error('取消失败,请刷新重试');
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ $lesson_order_list = Db::name('lesson_order')->where('slot_id',$id)->where('order_status',10)->lock(true)->select();
|
|
|
+ if(!empty($lesson_order_list)){
|
|
|
+ foreach($lesson_order_list as $lesson_order){
|
|
|
+
|
|
|
+ if($lesson_order['paytype'] == 1){
|
|
|
+ $package_order = Db::name('package_order')->where('id',$lesson_order['package_order_id'])->lock(true)->find();
|
|
|
+ $update = [
|
|
|
+ 'remain' => $package_order['remain'] + $lesson_order['usernumber'],
|
|
|
+ 'updatetime' => time(),
|
|
|
+ ];
|
|
|
+ $rs_remain = Db::name('package_order')->where('id',$lesson_order['package_order_id'])->update($update);
|
|
|
+ if($rs_remain === false){
|
|
|
+ Db::rollback();
|
|
|
+ $this->error('取消失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ $update = [
|
|
|
+ 'order_status' => 30,
|
|
|
+ 'cancel_time' => $cancel_time,
|
|
|
+ 'cancel_reason' => $cancel_reason,
|
|
|
+ ];
|
|
|
+ if($lesson_order['paytype'] == 1){
|
|
|
+ $update['order_status'] = 40;
|
|
|
+ }
|
|
|
+
|
|
|
+ $rs = Db::name('lesson_order')->where('id',$lesson_order['id'])->update($update);
|
|
|
+ if($rs === false){
|
|
|
+ Db::rollback();
|
|
|
+ $this->error('取消失败');
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ $user_info = Db::name('user')->where('id',$lesson_order['user_id'])->find();
|
|
|
+ if($user_info['notice_email'] == 1 && !empty($user_info['email'])){
|
|
|
+ $obj = new Email();
|
|
|
+ $result = $obj
|
|
|
+ ->to($user_info['email'])
|
|
|
+ ->subject('Elin Dance Studio 订单取消!')
|
|
|
+ ->message('Hi,'.$user_info['firstname']. ' ' .$user_info['lastname'].',您预约的'.date('Y-m-d H:i:s',$info['starttime']).'的课程已被取消,原因:'.$cancel_reason.'!')
|
|
|
+ ->send();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Db::commit();
|
|
|
+ $this->success('取消完成');
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ $this->view->assign('row',$info);
|
|
|
+ return $this->view->fetch();
|
|
|
+ }
|
|
|
+
|
|
|
}
|