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; 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']);

View File

@ -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,
]); ]);