6
0
Fork 0

调整售后

release
vine_liutk 2021-12-24 20:52:09 +08:00
parent 743134fffb
commit 56673badd4
2 changed files with 17 additions and 10 deletions

View File

@ -2,11 +2,13 @@
namespace App\Admin\Forms;
use App\Exceptions\BizException;
use App\Models\AfterSale;
use App\Services\AfterSaleService;
use Dcat\Admin\Contracts\LazyRenderable;
use Dcat\Admin\Traits\LazyWidget;
use Dcat\Admin\Widgets\Form;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
use Throwable;
@ -40,6 +42,10 @@ class AfterSaleVerify extends Form implements LazyRenderable
DB::beginTransaction();
$afterSale = AfterSale::where('state', AfterSale::STATE_VERIFY)->findOrFail($this->payload['id']);
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']);
} elseif ($input['state'] == 1) {//需要补充资料
$afterSaleService->backApply($afterSale, $input['remarks1']);

View File

@ -329,22 +329,23 @@ class AfterSaleService
if ($this->isWaitFinance($afterSale)) {
$order = $afterSale->order;
if (in_array($afterSale->type, [AfterSale::TYPE_REFUND_AND_RETURN, AfterSale::TYPE_REFUND])) {
//todo-执行实际退款操作;
$order->refundLogs()->create([
'sn' => OrderHelper::serialNumber(),
'amount' => $afterSale->amount,
'reason' => '取消订单',
]);
//执行实际退款操作;
if ($afterSale->amount > 0) {//退款金额大于0才做实际退款
$order->refundLogs()->create([
'sn' => OrderHelper::serialNumber(),
'amount' => $afterSale->amount,
'reason' => '售后退款',
]);
}
} elseif (in_array($afterSale->type, [AfterSale::TYPE_CHANGE])) {//换货流程
//todo -- 换货单的分润记录;
//复制一个订单存商品价格支付价格为0;
$changeOrder = new Order();
$changeOrder->user_id = $order->user_id;
$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->vip_discount_amount = 0;
$changeOrder->vip_discount_amount = bcmul(($afterSale->orderProduct->sell_price-$afterSale->orderProduct->vip_price), $afterSale->num);
$changeOrder->reduced_amount = 0;
$changeOrder->shipping_fee = 0;
$changeOrder->total_amount = 0;
@ -370,7 +371,7 @@ class AfterSaleService
'vip_price' => $afterSale->orderProduct->vip_price,
'quantity' => $afterSale->num,
'coupon_discount_amount'=> 0,
'vip_discount_amount' => 0,
'vip_discount_amount' => $afterSale->orderProduct->sell_price - $afterSale->orderProduct->vip_price,
'reduced_amount' => 0,
'total_amount' => $afterSale->amount,
]);