feat: sku
This commit is contained in:
@@ -93,15 +93,16 @@ class OrderGoodStockConsumer extends ConsumerMessage
|
||||
$this->log->debug('OrderGoodStockConsumer:error:NoSkuData:'.json_encode(array_column($this->orderGoodArr, 'sku_id')));
|
||||
return Result::ACK;
|
||||
}
|
||||
$this->skuArr = array_column($this->skuArr, null,'id');
|
||||
|
||||
$this->updateArr = [];
|
||||
|
||||
try {
|
||||
//todo 是否做个优化 截单后 不再增加库存
|
||||
match ($data['type']) {
|
||||
OrderCode::WAIT_PAY => $this->waitPaySubStock(),
|
||||
OrderCode::UNCOMPLETED_REFUND => $this->unFinishRefundAddStock(),
|
||||
OrderCode::CANCEL => $this->cancelAddStock(),
|
||||
OrderCode::FINISH_REFUND => $this->finishRefundUpdateData(),
|
||||
OrderCode::FINISH_REFUND,OrderCode::UNCOMPLETED_REFUND => $this->RefundUpdateData($data),
|
||||
default => throw new Exception('OrderGoodStockConsumer:error:无效的订单类型')
|
||||
};
|
||||
|
||||
@@ -130,20 +131,28 @@ class OrderGoodStockConsumer extends ConsumerMessage
|
||||
foreach ($this->orderGoodArr as $orderGood) {
|
||||
$this->updateArr[] = [
|
||||
'id' => $orderGood['sku_id'],
|
||||
''
|
||||
'sales_num' => ($this->skuArr[$orderGood['sku_id']]['sales_num'] ?? 0) + $orderGood['quantity'],
|
||||
'order_num' => ($this->skuArr[$orderGood['sku_id']]['order_num'] ?? 0) + 1,
|
||||
'surplus_stock' => ($this->skuArr[$orderGood['sku_id']]['surplus_stock'] ?? 0) - $orderGood['quantity'],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $data
|
||||
* @return void
|
||||
* @throws Exception
|
||||
*/
|
||||
private function unFinishRefundAddStock(): void
|
||||
private function RefundUpdateData($data): void
|
||||
{
|
||||
foreach ($this->orderGoodArr as $orderGood) {
|
||||
if (empty($data['refund_goods'])) throw new Exception('OrderGoodStockConsumer:error:UpdateSkuDataFail:'.json_encode($data));
|
||||
|
||||
foreach ($data['refund_goods'] as $orderGood) {
|
||||
$this->updateArr[] = [
|
||||
'id' => $orderGood['sku_id'],
|
||||
''
|
||||
'refund_num' => ($this->skuArr[$orderGood['sku_id']]['refund_num'] ?? 0) + $orderGood['quantity'],
|
||||
'order_num' => ($this->skuArr[$orderGood['sku_id']]['order_num'] ?? 0) - 1,
|
||||
'surplus_stock' => ($this->skuArr[$orderGood['sku_id']]['surplus_stock'] ?? 0) + $orderGood['quantity'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -156,20 +165,9 @@ class OrderGoodStockConsumer extends ConsumerMessage
|
||||
foreach ($this->orderGoodArr as $orderGood) {
|
||||
$this->updateArr[] = [
|
||||
'id' => $orderGood['sku_id'],
|
||||
''
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
private function finishRefundUpdateData(): void
|
||||
{
|
||||
foreach ($this->orderGoodArr as $orderGood) {
|
||||
$this->updateArr[] = [
|
||||
'id' => $orderGood['sku_id'],
|
||||
''
|
||||
'cancel_num' => ($this->skuArr[$orderGood['sku_id']]['cancel_num'] ?? 0) + $orderGood['quantity'],
|
||||
'order_num' => ($this->skuArr[$orderGood['sku_id']]['order_num'] ?? 0) - 1,
|
||||
'surplus_stock' => ($this->skuArr[$orderGood['sku_id']]['surplus_stock'] ?? 0) + $orderGood['quantity'],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user