修改退款的错误
This commit is contained in:
parent
33e4dd43f2
commit
28cdc83da0
@ -36,14 +36,11 @@ class RefundOrderService
|
||||
throw new BusinessException('订单不能退款');
|
||||
}
|
||||
$orderCartInfoWhere = ['oid' => $order['id']];
|
||||
$refundNum = 0;
|
||||
if (!empty($params['product_arr'])) {
|
||||
$orderCartInfoWhere['product_id'] = array_column($params['product_arr'], 'product_id');
|
||||
$refundNum = count($params['product_arr']);
|
||||
}
|
||||
if (!empty($params['old_cart_id'])) {
|
||||
$orderCartInfoWhere['id'] = $params['old_cart_id'];
|
||||
$refundNum = count($params['old_cart_id']);
|
||||
$params['product_arr'] = StoreOrderCartInfo::field('product_id,cart_num')->where($orderCartInfoWhere)->select()->toArray();
|
||||
}
|
||||
$orderCartProducts = StoreOrderCartInfo::where($orderCartInfoWhere)->select();
|
||||
@ -63,7 +60,7 @@ class RefundOrderService
|
||||
$this->refundMoney($order, $refundAmount);
|
||||
$this->updateProductStock($orderCartProducts, $productInfo);
|
||||
$this->updateOrderCartInfo($order, $orderCartProducts, $refundAmount, $productInfo);
|
||||
$this->updateOrderStatus($order, $refundAmount, $refundNum);
|
||||
$this->updateOrderStatus($order, $refundAmount);
|
||||
$this->resetStoreFinanceFlow($order, $orderCartProducts, $productInfo);
|
||||
// if ($order->status == 2 && $order->is_writeoff == 1) {
|
||||
// $this->financeSettle($order);
|
||||
@ -116,6 +113,8 @@ class RefundOrderService
|
||||
continue;
|
||||
}
|
||||
$number = $productInfo[$product['product_id']]['cart_num'];
|
||||
$maxNumber = bcsub($product['cart_num'], $product['refund_num'], 2);
|
||||
$number = min($number, $maxNumber);
|
||||
$storeBranchProductId = StoreBranchProduct::where('store_id', $product['store_id'])
|
||||
->where('product_id', $product['product_id'])
|
||||
->withTrashed()->value('id');
|
||||
@ -133,7 +132,8 @@ class RefundOrderService
|
||||
/**
|
||||
* 更新订单商品状态
|
||||
* @param $order
|
||||
* @param $orderCartIds
|
||||
* @param $orderCartProducts
|
||||
* @param $refundAmount
|
||||
* @param $productInfo
|
||||
* @return void
|
||||
* @throws DbException
|
||||
@ -178,14 +178,13 @@ class RefundOrderService
|
||||
* 更新订单状态
|
||||
* @param $order
|
||||
* @param $refundAmount
|
||||
* @param $refundNum
|
||||
* @return void
|
||||
* @throws DbException
|
||||
*/
|
||||
public function updateOrderStatus($order, $refundAmount, $refundNum): void
|
||||
public function updateOrderStatus($order, $refundAmount): void
|
||||
{
|
||||
$order->refund_price = bcadd($order['refund_price'], $refundAmount, 2);
|
||||
$order->refund_num += $refundNum;
|
||||
$order->refund_num = StoreOrderCartInfo::where('oid', $order['id'])->where('refund_num', '>', 0)->count();
|
||||
if ($order->pay_price == $order->refund_price) {
|
||||
// 全部退款完成,订单状态改为已退款
|
||||
$order->refund_status = OrderEnum::REFUND_STATUS_FINISH;
|
||||
|
Loading…
x
Reference in New Issue
Block a user