master
cody 4 months ago
parent 9172bee757
commit 7bf771a7a1

@ -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 . '元/天',

Loading…
Cancel
Save