diff --git a/app/Domains/Virtual/Services/OrderService.php b/app/Domains/Virtual/Services/OrderService.php index 6d864910..4b80ccda 100644 --- a/app/Domains/Virtual/Services/OrderService.php +++ b/app/Domains/Virtual/Services/OrderService.php @@ -219,6 +219,34 @@ class OrderService extends Service } } + $updates = []; + + // 改订单时间 + if (isset($attributes['order_at']) && $attributes['order_at' != $node->order_at]) { + $updates['order_at'] = $attributes['order_at']; + } + + // 改套餐 + if (isset($attributes['package_id']) && $attributes['package_id' != $node->package_id]) { + $updates['package_id'] = $attributes['package_id']; + } + + // 改价格 + if (isset($attributes['unit_price']) && $attributes['unit_price' != $node->unit_price]) { + $updates['unit_price'] = $attributes['unit_price']; + } + + if (isset($updates['package_id']) || isset($updates['unit_price'])) { + $updates['package_id'] = $updates['package_id'] ?? $node->package_id; + $updates['unit_price'] = $updates['unit_price'] ?? $node->unit_price; + + $product = ProductService::getProduct($node->type, $attributes['company_id'] ?? $node->company_id, $updates['package_id'], $updates['unit_price']); + } + + if (!empty($updates)) { + OrderCardPartition::where('type', $node->type)->update($updates); + } + $this->orderRepository->setModel($node)->update($attributes); if (isset($attributes['unit_price'])) {