diff --git a/app/Http/Controllers/Admin/StatisticsController.php b/app/Http/Controllers/Admin/StatisticsController.php index ea79690..bd5a5b5 100755 --- a/app/Http/Controllers/Admin/StatisticsController.php +++ b/app/Http/Controllers/Admin/StatisticsController.php @@ -477,8 +477,6 @@ 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) { @@ -491,7 +489,7 @@ class StatisticsController extends CommonController ->sum('total'); $sumOrderTotal += $item->order_total; // 子项 - $item->lies = $this->getLies($bedIds, $productItem, $factor, $month, $min_paramedic_price); + $item->lies = $this->getLies($bedIds, $productItem, $factor, $month); } // 获取所有列(包含价格和 factor_item 名称) $lie = []; @@ -506,7 +504,7 @@ class StatisticsController extends CommonController /** * 获取动态列 */ - public function getLies($bedIds, $productItem, $factor, $month, $min_paramedic_price = 0) + public function getLies($bedIds, $productItem, $factor, $month) { $list = []; @@ -534,13 +532,14 @@ class StatisticsController extends CommonController // - '$[*].factor_item_id': JSON 路径表达式,匹配数组中所有元素的 factor_item_id 字段 $query->whereRaw("JSON_SEARCH(factors, 'one', ?, NULL, '$[*].factor_item_id') IS NOT NULL", [$factorItemId]); - $total = $query->sum('total'); + // 使用真实订单子项数据: + // 1. 总收入:该列下所有子订单的 total 求和 + // 2. 列表头价格:取该列下任意一条子订单的 total 作为真实单价 + $totalQuery = clone $query; + $total = (float) $totalQuery->sum('total'); - // 价格逻辑与下单保持一致(近似): - // 基础价 = 产品子项价格 + 最低护工级别加价 - // 列对应的因子价 = 当前统计因子的价格 - // 最终表头价格 = 基础价 + 当前因子价 - $totalPrice = (float) $item->price + (float) $min_paramedic_price + (float) $factor_item->price; + $sampleItem = $query->first(); + $totalPrice = $sampleItem ? (float) $sampleItem->total : 0; $list[] = [ 'name' => $totalPrice . '元/天',