diff --git a/app/Domains/Company/Http/Controllers/OrderController.php b/app/Domains/Company/Http/Controllers/OrderController.php index 9adadfa0..1893b0c3 100644 --- a/app/Domains/Company/Http/Controllers/OrderController.php +++ b/app/Domains/Company/Http/Controllers/OrderController.php @@ -63,7 +63,6 @@ class OrderController extends Controller $order_at = Carbon::parse($res->last()->order_at); $conditions['starttime'] = $order_at->copy()->startOfMonth()->startOfDay()->format('Y-m-d H:i:s'); $conditions['endtime'] = $order_at->copy()->endOfMonth()->endOfDay()->format('Y-m-d H:i:s'); - $count = $this->orderService->count($conditions); $count['starttime'] = $conditions['starttime']; @@ -84,4 +83,18 @@ class OrderController extends Controller return res($res, '下单成功'); } + + /** + * 取消订单 + */ + public function cancel() + { + $ids = $this->request->ids(); + + foreach ($ids as $id) { + $res = $this->orderService->cancel($id); + } + + return res(true, '取消成功'); + } } diff --git a/app/Domains/Company/Routes/api.php b/app/Domains/Company/Routes/api.php index fcfbf3b7..22219f24 100644 --- a/app/Domains/Company/Routes/api.php +++ b/app/Domains/Company/Routes/api.php @@ -27,5 +27,6 @@ $router->group(['prefix' => 'companies', 'as' => 'companies'], function ($router $router->get('/orders/paginate', ['as' => 'orders/paginate', 'uses' => 'OrderController@paginate']); $router->post('/orders/store', ['as' => 'orders/store', 'uses' => 'OrderController@store']); + $router->post('/orders/cancel', ['as' => 'orders/cancel', 'uses' => 'OrderController@cancel']); }); }); diff --git a/app/Domains/Virtual/Services/OrderService.php b/app/Domains/Virtual/Services/OrderService.php index 6b054c78..5f4e72ef 100644 --- a/app/Domains/Virtual/Services/OrderService.php +++ b/app/Domains/Virtual/Services/OrderService.php @@ -141,6 +141,21 @@ class OrderService extends Service */ public function cancel($id) { + if (!$node = $this->orderRepository->find($id)) { + throw new NotExistException('订单不存在或已删除'); + } + + if ($node->order_status !== 0) { + throw new NotExistException('订单已出库,不能取消'); + } + + if ($node->transaction_status !== 0) { + throw new NotExistException('订单已付款,不能取消'); + } + + $this->orderRepository->setModel($node)->update(['order_status' => 1]); + + return $node; } /**