调整售后
parent
743134fffb
commit
56673badd4
|
|
@ -2,11 +2,13 @@
|
||||||
|
|
||||||
namespace App\Admin\Forms;
|
namespace App\Admin\Forms;
|
||||||
|
|
||||||
|
use App\Exceptions\BizException;
|
||||||
use App\Models\AfterSale;
|
use App\Models\AfterSale;
|
||||||
use App\Services\AfterSaleService;
|
use App\Services\AfterSaleService;
|
||||||
use Dcat\Admin\Contracts\LazyRenderable;
|
use Dcat\Admin\Contracts\LazyRenderable;
|
||||||
use Dcat\Admin\Traits\LazyWidget;
|
use Dcat\Admin\Traits\LazyWidget;
|
||||||
use Dcat\Admin\Widgets\Form;
|
use Dcat\Admin\Widgets\Form;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Throwable;
|
use Throwable;
|
||||||
|
|
||||||
|
|
@ -40,6 +42,10 @@ class AfterSaleVerify extends Form implements LazyRenderable
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
$afterSale = AfterSale::where('state', AfterSale::STATE_VERIFY)->findOrFail($this->payload['id']);
|
$afterSale = AfterSale::where('state', AfterSale::STATE_VERIFY)->findOrFail($this->payload['id']);
|
||||||
if ($input['state'] == 3) {//审核通过
|
if ($input['state'] == 3) {//审核通过
|
||||||
|
$amount = Arr::get($input, 'amount', 0);
|
||||||
|
if ($amount > $afterSale->orderProduct->total_amount) {
|
||||||
|
throw new BizException('退款金额不能大于商品实付金额');
|
||||||
|
}
|
||||||
$afterSaleService->verify($afterSale, $input['remarks3'], (int) $input['amount']);
|
$afterSaleService->verify($afterSale, $input['remarks3'], (int) $input['amount']);
|
||||||
} elseif ($input['state'] == 1) {//需要补充资料
|
} elseif ($input['state'] == 1) {//需要补充资料
|
||||||
$afterSaleService->backApply($afterSale, $input['remarks1']);
|
$afterSaleService->backApply($afterSale, $input['remarks1']);
|
||||||
|
|
|
||||||
|
|
@ -329,22 +329,23 @@ class AfterSaleService
|
||||||
if ($this->isWaitFinance($afterSale)) {
|
if ($this->isWaitFinance($afterSale)) {
|
||||||
$order = $afterSale->order;
|
$order = $afterSale->order;
|
||||||
if (in_array($afterSale->type, [AfterSale::TYPE_REFUND_AND_RETURN, AfterSale::TYPE_REFUND])) {
|
if (in_array($afterSale->type, [AfterSale::TYPE_REFUND_AND_RETURN, AfterSale::TYPE_REFUND])) {
|
||||||
//todo-执行实际退款操作;
|
//执行实际退款操作;
|
||||||
$order->refundLogs()->create([
|
if ($afterSale->amount > 0) {//退款金额大于0才做实际退款
|
||||||
'sn' => OrderHelper::serialNumber(),
|
$order->refundLogs()->create([
|
||||||
'amount' => $afterSale->amount,
|
'sn' => OrderHelper::serialNumber(),
|
||||||
'reason' => '取消订单',
|
'amount' => $afterSale->amount,
|
||||||
]);
|
'reason' => '售后退款',
|
||||||
|
]);
|
||||||
|
}
|
||||||
} elseif (in_array($afterSale->type, [AfterSale::TYPE_CHANGE])) {//换货流程
|
} elseif (in_array($afterSale->type, [AfterSale::TYPE_CHANGE])) {//换货流程
|
||||||
//todo -- 换货单的分润记录;
|
|
||||||
|
|
||||||
//复制一个订单(存商品价格,支付价格为0;)
|
//复制一个订单(存商品价格,支付价格为0;)
|
||||||
$changeOrder = new Order();
|
$changeOrder = new Order();
|
||||||
$changeOrder->user_id = $order->user_id;
|
$changeOrder->user_id = $order->user_id;
|
||||||
$changeOrder->sn = OrderHelper::serialNumber();
|
$changeOrder->sn = OrderHelper::serialNumber();
|
||||||
$changeOrder->products_total_amount = $afterSale->amount;
|
$changeOrder->products_total_amount = bcmul($afterSale->orderProduct->sell_price, $afterSale->num);
|
||||||
$changeOrder->coupon_discount_amount = 0;
|
$changeOrder->coupon_discount_amount = 0;
|
||||||
$changeOrder->vip_discount_amount = 0;
|
$changeOrder->vip_discount_amount = bcmul(($afterSale->orderProduct->sell_price-$afterSale->orderProduct->vip_price), $afterSale->num);
|
||||||
$changeOrder->reduced_amount = 0;
|
$changeOrder->reduced_amount = 0;
|
||||||
$changeOrder->shipping_fee = 0;
|
$changeOrder->shipping_fee = 0;
|
||||||
$changeOrder->total_amount = 0;
|
$changeOrder->total_amount = 0;
|
||||||
|
|
@ -370,7 +371,7 @@ class AfterSaleService
|
||||||
'vip_price' => $afterSale->orderProduct->vip_price,
|
'vip_price' => $afterSale->orderProduct->vip_price,
|
||||||
'quantity' => $afterSale->num,
|
'quantity' => $afterSale->num,
|
||||||
'coupon_discount_amount'=> 0,
|
'coupon_discount_amount'=> 0,
|
||||||
'vip_discount_amount' => 0,
|
'vip_discount_amount' => $afterSale->orderProduct->sell_price - $afterSale->orderProduct->vip_price,
|
||||||
'reduced_amount' => 0,
|
'reduced_amount' => 0,
|
||||||
'total_amount' => $afterSale->amount,
|
'total_amount' => $afterSale->amount,
|
||||||
]);
|
]);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue