where('state', 1) // 固定条件:state=1 ->field('sum(money) as total'); // 聚合计算总金额 // 添加分类条件 if (!is_null($classify)) { $query->where('classify', $classify); } // 添加时间条件 if (!is_null($flag)) { switch ($flag) { case 1: // 按日匹配(精确到天) $query->whereRaw("date_format(create_time, '%Y-%m-%d') = date_format(?, '%Y-%m-%d')", [$time]); break; case 2: // 按月匹配(精确到月) $query->whereRaw("date_format(create_time, '%Y-%m') = date_format(?, '%Y-%m')", [$time]); break; case 3: // 按年匹配(精确到年) $query->whereRaw("date_format(create_time, '%Y') = date_format(?, '%Y')", [$time]); break; default: // 无效flag,不添加时间条件 break; } } // 添加支付分类条件 if (!is_null($payClassify) && $payClassify != 0) { $query->where('pay_classify', $payClassify); } return $query; })->find(); return $result['total'] ?? 0.0; } }