|
|
|
@ -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(); |
|
|
|
|