From 85299fcada426a99be768bf9b1ff3b675f92ff00 Mon Sep 17 00:00:00 2001 From: liapples Date: Fri, 20 Aug 2021 17:58:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=90=86=E5=95=86=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BA=93=E5=AD=98=EF=BC=8C=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E5=9F=9F=E5=90=8D=E6=8B=BC=E6=8E=A5=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=90=8C=E6=97=B6=E5=88=A4=E6=96=AD=E5=BD=93?= =?UTF-8?q?=E5=89=8Duser=5Fid=EF=BC=8C=E4=BB=98=E5=AE=9A=E9=87=91=E6=88=96?= =?UTF-8?q?=E9=A6=96=E6=AC=BE=E4=B8=8D=E5=85=81=E8=AE=B8=E9=80=80=E6=AC=BE?= =?UTF-8?q?=EF=BC=8C=E9=80=80=E6=AC=BE=E4=BF=A1=E6=81=AF=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?old=5Fstatus=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/OrderController.php | 24 +++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/Api/OrderController.php b/app/Http/Controllers/Api/OrderController.php index 098c7eb..6a1fe32 100644 --- a/app/Http/Controllers/Api/OrderController.php +++ b/app/Http/Controllers/Api/OrderController.php @@ -17,6 +17,7 @@ use GuzzleHttp\Exception\GuzzleException; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use App\Common\OrderStatus as Status; +use Illuminate\Support\Facades\Storage; /** * 订单 @@ -111,7 +112,7 @@ class OrderController extends Controller if (!$ap || !$ap->product) { $this->error('产品不存在'); } - if ($ap->product->stock < $formData['num']) { + if ($ap->stock < $formData['num'] || $ap->product->stock < $formData['num']) { $this->error('对不起,库存不足'); } @@ -131,8 +132,10 @@ class OrderController extends Controller //供应商产品表加销量、减库存 // $ap->product->sale += $formData['num']; TODO 支付成功之后再增加销量 - $ap->product->stock -= $formData['num']; - $ap->product->save(); + $ap->product->decrement('stock', $formData['num']); + + //代理商产品表减库存 + $ap->decrement('stock', $formData['num']); // 存入订单表 $order = Order::query()->create([ @@ -187,22 +190,27 @@ class OrderController extends Controller ]); //去掉图片地址前的域名 - $host = env('APP_URL'); + $prefix = Storage::disk('public')->url(''); foreach ($formData['pictures'] as &$v) { - $v = str_replace($host, '', $v); + $v = str_replace($prefix, '', $v); } //TODO 需要后台处理,然后向微信发起退款申请 - $order = Order::find($formData['id']); - if (!in_array($order->status, [Status::PAY_EARNEST, Status::PAID, Status::PAID_RETAINAGE])) { + $order = Order::firstWhere(['id' => $formData['id'], 'user_id' => $this->user_id]); + if (!$order) { + return $this->error('订单不存在'); + } + //订金/定金/首付款不允许退款,只有付全款才能申请退款 + if (!in_array($order->status, [Status::PAID, Status::PAID_RETAINAGE])) { return $this->error('当前订单状态不允许退款'); } - $order->status = Status::REFUNDING; $order->refund_info = [ 'desc' => strip_tags($formData['desc']), 'refund_no' => $this->getOrderNo(), //退款单号 'pictures' => $formData['pictures'] ?? [], + 'old_status' => $order->status, ]; + $order->status = Status::REFUNDING; $order->save(); return $this->success();