6
0
Fork 0

调整售后流程

release
vine_liutk 2021-12-13 09:59:51 +08:00
parent df17196b3f
commit 9757b5a19e
3 changed files with 47 additions and 23 deletions

View File

@ -82,7 +82,7 @@ class AfterSaleController extends Controller
*/
public function show($id, Request $request)
{
$afterSale = $request->user()->afterSales()->find($id);
$afterSale = $request->user()->afterSales()->findOrFail($id);
return AfterSaleResource::make($afterSale);
}

View File

@ -97,7 +97,7 @@ class AfterSale extends Model
}
/**
* 取消日志
* 取消售后订单日志
*
* @return void
*/
@ -110,6 +110,20 @@ class AfterSale extends Model
]);
}
/**
* 完成售后订单日志
*
* @return void
*/
protected function createFinishLog()
{
$this->logs()->create([
'after_sale_id' => $this->id,
'name' => '售后完成',
'desc' => '售后已结束',
]);
}
/**
* {@inheritdoc}
*/
@ -124,6 +138,10 @@ class AfterSale extends Model
if ($afterSale->state == self::STATE_CANCEL) {
$afterSale->createCancelLog();
}
//如果完成订单
if ($afterSale->state == self::STATE_FINISH) {
$afterSale->createFinishLog();
}
});
}

View File

@ -224,28 +224,39 @@ class AfterSaleService
{
if ($this->isWaitAgree($afterSale)) {
switch ($afterSale->type) {
case AfterSale::TYPE_REFUND:
if (isset($params['tracking_number'])) {
unset($params['tracking_number']);
}
case AfterSale::TYPE_REFUND_AND_RETURN:
$afterSale->update([
'tracking_number'=>$params['tracking_number'],
'remarks'=> $remarks,
'state' => AfterSale::STATE_SHIPPING,
]);
break;
case AfterSale::TYPE_REFUND://退款订单
$afterSale->update([
'remarks'=> $remarks,
'state' => AfterSale::STATE_FINANCE,
]);
break;
case AfterSale::TYPE_CHANGE:
$afterSale->update([
'remarks' => $remarks.',已为您生成新订单,请注意查收。',
'state' => AfterSale::STATE_FINISH,
]);
//todo - 生成新订单以及发货单;
break;
case AfterSale::TYPE_FILL:
if (isset($params['tracking_number'])) {
unset($params['tracking_number']);
}
break;
default:
$afterSale->update([
'remarks' => $remarks,
'state' => AfterSale::STATE_FINISH,
]);
break;
}
$afterSale->update(array_merge($params, [
'remarks' => $remarks,
]));
AfterSaleLog::create([
'after_sale_id' => $afterSale->id,
'name' => '客户确认',
'desc' => $remarks,
]);
return $afterSale;
} else {
throw new BizException('售后订单状态异常,请稍后再试');
}
@ -286,19 +297,14 @@ class AfterSaleService
//todo-执行实际退款操作;
$afterSale->update([
'state' => $afterSale::STATE_FINISH,
'remarks' => $remarks,
]);
AfterSaleLog::create([
'after_sale_id' => $afterSale->id,
'name' => '财务审核',
'desc' => $remarks,
]);
AfterSaleLog::create([
'after_sale_id' => $afterSale->id,
'name' => '售后完成',
'desc' => '售后已结束',
$afterSale->update([
'state' => $afterSale::STATE_FINISH,
'remarks' => $remarks,
]);
} else {
throw new BizException('该售后订单状态异常');