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) public function show($id, Request $request)
{ {
$afterSale = $request->user()->afterSales()->find($id); $afterSale = $request->user()->afterSales()->findOrFail($id);
return AfterSaleResource::make($afterSale); return AfterSaleResource::make($afterSale);
} }

View File

@ -97,7 +97,7 @@ class AfterSale extends Model
} }
/** /**
* 取消日志 * 取消售后订单日志
* *
* @return void * @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} * {@inheritdoc}
*/ */
@ -124,6 +138,10 @@ class AfterSale extends Model
if ($afterSale->state == self::STATE_CANCEL) { if ($afterSale->state == self::STATE_CANCEL) {
$afterSale->createCancelLog(); $afterSale->createCancelLog();
} }
//如果完成订单
if ($afterSale->state == self::STATE_FINISH) {
$afterSale->createFinishLog();
}
}); });
} }

View File

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