Browse Source

取消订单

gorden 7 months ago
parent
commit
01381eda9b
2 changed files with 46 additions and 0 deletions
  1. 45 0
      app/admin/controller/order/WholeController.php
  2. 1 0
      route/admin.php

+ 45 - 0
app/admin/controller/order/WholeController.php

@@ -1152,6 +1152,9 @@ class WholeController extends Curd
         }
     }
 
+    /**
+     * 删除订单
+     */
     public function delete(Request $request): Response
     {
         $params = $request->post();
@@ -1214,6 +1217,48 @@ class WholeController extends Curd
         }
     }
 
+    /**
+     * 取消订单
+     */
+    public function cancelOrder(Request $request)
+    {
+        $orderId = $request->post('order_id','');
+        if (!$orderId){
+            return json_fail('参数异常');
+        }
+
+        Db::beginTransaction();
+        try{
+            $order = Order::where('order_id',$orderId)->first();
+            if (empty($order)){
+                return json_fail('订单数据异常');
+            }
+            if ($order->order_status_system != 'PAYING' || $order->order_category != 'DISHES'){
+                return json_fail('仅未支付的餐饮订单可以取消!');
+            }
+            // sheet 表
+            OrderSheet::where('join_sheet_order_id',$orderId)->update(['order_sheet_status'=>'CANCEL']);
+            // payDetail 表
+            PayDetail::where('join_pay_order_id',$order->order_groupby)->update([
+                'pay_status'=>'CANCEL',
+                'pay_extend_json' => json_encode(['cancel_times'=>date('Y-m-d H:i:s')])
+            ]);
+
+            $order->order_is_complete = 'Y';
+            $order->order_status_system = 'CANCEL';
+            $order->order_status_payment = 'CANCEL';
+            $order->save();
+                
+            Db::commit();
+
+            return json_success('');
+        }catch(\Exception $e){
+            Db::rollBack();
+
+            return json_fail('订单取消失败');
+        }
+    }
+
     public function insert(Request $request): Response
     {
         $params = $request->post();

+ 1 - 0
route/admin.php

@@ -858,6 +858,7 @@ Route::group('/admin', function () {
             Route::post('/addDishes', [\app\admin\controller\order\WholeController::class, 'addDishes']);
             Route::post('/cutMeals', [\app\admin\controller\order\WholeController::class, 'cutMeals']);
             Route::post('/customPrinter', [\app\admin\controller\order\WholeController::class, 'customPrinter']);
+            Route::post('/cancelOrder', [\app\admin\controller\order\WholeController::class, 'cancelOrder']);
         })->middleware([
             \app\middleware\AdminAuthCheck::class
         ]);