浏览代码

售课预约订单,取消

lizhen_gitee 1 年之前
父节点
当前提交
fb0fbfc8d9

+ 48 - 57
application/admin/controller/Lessonorder.php

@@ -3,7 +3,8 @@
 namespace app\admin\controller;
 
 use app\common\controller\Backend;
-
+use think\Db;
+use app\common\library\Email;
 /**
  * 售课预约订单
  *
@@ -76,77 +77,67 @@ class Lessonorder extends Backend
      */
     public function cancel(){
         $id = input('id');
-        $info = Db::name('lesson_order')->where('id',$id)->where('status',0)->find();
+        $info = Db::name('lesson_order')->where('id',$id)->where('order_status',10)->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 = [
-                'status' => 30,
-                'remark' => $remark,
+
+            //找到所有的已报名订单
+            $info = Db::name('lesson_order')->where('id',$id)->where('order_status',10)->lock(true)->find();
+            if(empty($info)){
+                Db::rollback();
+                $this->error('请刷新重试');
+            }
+
+            //套餐给加回去
+            if($info['paytype'] == 1){
+                $package_order = Db::name('package_order')->where('id',$info['package_order_id'])->lock(true)->find();
+                $update = [
+                    'remain' => $package_order['remain'] + $info['usernumber'],
+                    'updatetime' => time(),
+                ];
+                $rs_remain = Db::name('package_order')->where('id',$info['package_order_id'])->update($update);
+                if($rs_remain === false){
+                    Db::rollback();
+                    $this->error('取消失败');
+                }
+            }
+            //现金支付不给退,线下处理
+
+            //取消预约单
+            $update2 = [
+                'order_status' => 30,
+                'cancel_time' => $cancel_time,
                 'cancel_reason' => $cancel_reason,
-                'cancel_time' => $cancel_time
             ];
+            if($info['paytype'] == 1){
+                $update2['order_status'] = 40;
+            }
+
 
-            $rs1 = Db::name('lesson_slot')->where('id',$id)->where('status',0)->update($update);
-            if($rs1 === false){
+            $rs = Db::name('lesson_order')->where('id',$info['id'])->update($update2);
+            if($rs === false){
                 Db::rollback();
-                $this->error('取消失败,请刷新重试');
+                $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();
-                    }
-
-                }
+            $slot_info = Db::name('lesson_slot')->where('id',$info['slot_id'])->find();
+
+            //给用户发通知
+            $user_info = Db::name('user')->where('id',$info['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',$slot_info['starttime']).'的课程已被取消,原因:'.$cancel_reason.'!')
+                    ->send();
             }
 
             Db::commit();

+ 1 - 1
application/admin/controller/Lessonslot.php

@@ -142,7 +142,7 @@ class Lessonslot extends Backend
                         $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.'!')
+                            ->message('Hi,'.$user_info['firstname']. ' ' .$user_info['lastname'].',您预约的'.date('Y-m-d H:i',$info['starttime']).'的课程已被取消,原因:'.$cancel_reason.'!')
                             ->send();
                     }
 

+ 10 - 31
application/admin/view/lessonorder/cancel.html

@@ -30,23 +30,12 @@
             <input id="c-order_amount" disabled  class="form-control" step="0.01"  type="number" value="{$row.order_amount|htmlentities}">
         </div>
     </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Order_status')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            
-            <div class="radio">
-            {foreach name="orderStatusList" item="vo"}
-            <label for="row[order_status]-{$key}"><input id="row[order_status]-{$key}" name="row[order_status]" type="radio" value="{$key}" {in name="key" value="$row.order_status"}checked{/in} /> {$vo}</label> 
-            {/foreach}
-            </div>
 
-        </div>
-    </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Paytype')}:</label>
         <div class="col-xs-12 col-sm-8">
                         
-            <select  id="c-paytype" disabled  class="form-control selectpicker" name="row[paytype]">
+            <select  id="c-paytype" disabled  class="form-control selectpicker" ">
                 {foreach name="paytypeList" item="vo"}
                     <option value="{$key}" {in name="key" value="$row.paytype"}selected{/in}>{$vo}</option>
                 {/foreach}
@@ -57,55 +46,45 @@
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Paytime')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-paytime" disabled  class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[paytime]" type="text" value="{:$row.paytime?datetime($row.paytime):''}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Finishtime')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-finishtime"  class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[finishtime]" type="text" value="{:$row.finishtime?datetime($row.finishtime):''}">
+            <input id="c-paytime" disabled  class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" type="text" value="{:$row.paytime?datetime($row.paytime):''}">
         </div>
     </div>
+
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Usernumber')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-usernumber"  disabled class="form-control" name="row[usernumber]" type="number" value="{$row.usernumber|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Usernumber_sign')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-usernumber_sign"  class="form-control" name="row[usernumber_sign]" type="number" value="{$row.usernumber_sign|htmlentities}">
+            <input id="c-usernumber"  disabled class="form-control"  type="number" value="{$row.usernumber|htmlentities}">
         </div>
     </div>
+
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Userremark')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-userremark"  class="form-control" name="row[userremark]" type="text" value="{$row.userremark|htmlentities}">
+            <input id="c-userremark" disabled class="form-control"  type="text" value="{$row.userremark|htmlentities}">
         </div>
     </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Package_order_id')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-package_order_id" disabled  class="form-control" name="row[package_order_id]" type="text" value="{$row.package_order_id|htmlentities}">
+            <input id="c-package_order_id" disabled  class="form-control"  type="text" value="{$row.package_order_id|htmlentities}">
         </div>
     </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Package_remark')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-package_remark" disabled class="form-control" name="row[package_remark]" type="text" value="{$row.package_remark|htmlentities}">
+            <input id="c-package_remark" disabled class="form-control"  type="text" value="{$row.package_remark|htmlentities}">
         </div>
     </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Cancel_reason')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-cancel_reason" class="form-control" name="row[cancel_reason]" type="text" value="{$row.cancel_reason|htmlentities}">
+            <input id="c-cancel_reason" class="form-control" name="cancel_reason" type="text" value="{$row.cancel_reason|htmlentities}">
         </div>
     </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Cancel_time')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-cancel_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[cancel_time]" type="text" value="{:$row.cancel_time?datetime($row.cancel_time):''}">
+            <input id="c-cancel_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="cancel_time" type="text" value="{:$row.cancel_time?datetime($row.cancel_time):''}">
         </div>
     </div>
     <div class="form-group layer-footer">

+ 1 - 1
public/assets/js/backend/lessonorder.js

@@ -67,7 +67,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                     url:'lessonorder/cancel/id/{ids}?dialog=1',
                                     target:'_self',
                                     hidden:function(row){
-                                        return row.status==10 ? false : true;
+                                        return row.order_status==10 ? false : true;
                                     }
                                 }
                             ],