From 9172bee75736ae49a920242af6325b31163b7f32 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Thu, 18 Dec 2025 15:04:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Admin/StatisticsController.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Admin/StatisticsController.php b/app/Http/Controllers/Admin/StatisticsController.php index 1741d78..ea79690 100755 --- a/app/Http/Controllers/Admin/StatisticsController.php +++ b/app/Http/Controllers/Admin/StatisticsController.php @@ -21,6 +21,7 @@ use App\Models\Orders; use App\Models\Paramedic; use App\Models\Product; use App\Models\ProductItems; +use App\Models\ProductParamedicLevel; use App\Models\Project; use App\Models\Recharge; use App\Models\Refund; @@ -476,6 +477,9 @@ class StatisticsController extends CommonController $product = Product::where('project_id', $project_id)->first(); $productItem = ProductItems::where('product_id', $product->id)->get(); $factor = FactorItems::where('factor_id', $product->statistic_factor_id)->get(); + // 护工等级加价:取该产品下最小的护工级别加价,作为统计时的基础护工价 + $min_paramedic_price = (float) ProductParamedicLevel::where('product_id', $product->id)->min('price'); + $sumOrderTotal = 0; foreach ($data as $item) { // 获取所有床位id @@ -487,7 +491,7 @@ class StatisticsController extends CommonController ->sum('total'); $sumOrderTotal += $item->order_total; // 子项 - $item->lies = $this->getLies($bedIds, $productItem, $factor, $month); + $item->lies = $this->getLies($bedIds, $productItem, $factor, $month, $min_paramedic_price); } // 获取所有列(包含价格和 factor_item 名称) $lie = []; @@ -502,7 +506,7 @@ class StatisticsController extends CommonController /** * 获取动态列 */ - public function getLies($bedIds, $productItem, $factor, $month) + public function getLies($bedIds, $productItem, $factor, $month, $min_paramedic_price = 0) { $list = []; @@ -532,8 +536,11 @@ class StatisticsController extends CommonController $total = $query->sum('total'); - // 修复:明确计算价格总和,避免运算符优先级问题 - $totalPrice = (float) $item->price + (float) $factor_item->price; + // 价格逻辑与下单保持一致(近似): + // 基础价 = 产品子项价格 + 最低护工级别加价 + // 列对应的因子价 = 当前统计因子的价格 + // 最终表头价格 = 基础价 + 当前因子价 + $totalPrice = (float) $item->price + (float) $min_paramedic_price + (float) $factor_item->price; $list[] = [ 'name' => $totalPrice . '元/天',