更新
This commit is contained in:
@@ -1068,7 +1068,9 @@ class ConversionLogic
|
||||
->leftJoin('tcm_diagnosis dg', 'dg.id = po.diagnosis_id')
|
||||
->whereNull('po.delete_time')
|
||||
->where('po.payment_slip_audit_status', 1)
|
||||
->where('po.create_time', 'between', [$startTimestamp, $endTimestamp])
|
||||
->where('po.create_time', 'between', [$startTimestamp, $endTimestamp]);
|
||||
YejiStatsLogic::applyPrescriptionOrderEffectiveAmountQuery($completedQuery, 'po');
|
||||
$completedQuery
|
||||
->fieldRaw("{$completedSourceExpr} AS source_admin_id, SUM(CASE WHEN po.prescription_audit_status = 1 THEN 1 ELSE 0 END) AS order_count, SUM(CASE WHEN po.prescription_audit_status = 1 THEN po.amount ELSE 0 END) AS total_amount")
|
||||
->group($completedSourceExpr);
|
||||
|
||||
@@ -1104,7 +1106,7 @@ class ConversionLogic
|
||||
->leftJoin('tcm_diagnosis dg', 'dg.id = po.diagnosis_id')
|
||||
->whereNull('po.delete_time')
|
||||
->where('po.create_time', 'between', [$startTimestamp, $endTimestamp]);
|
||||
YejiStatsLogic::applyPrescriptionOrderNotCancelledForPerformanceQuery($businessQuery, 'po');
|
||||
YejiStatsLogic::applyPrescriptionOrderEffectiveAmountQuery($businessQuery, 'po');
|
||||
$businessQuery
|
||||
->fieldRaw("{$businessSourceExpr} AS source_admin_id, SUM(po.amount) AS total_amount")
|
||||
->group($businessSourceExpr);
|
||||
|
||||
@@ -433,7 +433,7 @@ class DoctorDailyStatsLogic
|
||||
->join('tcm_prescription rx', 'rx.id = o.prescription_id AND rx.delete_time IS NULL', 'INNER')
|
||||
->whereNull('o.delete_time')
|
||||
->whereBetween('o.create_time', [$startTs, $endTs]);
|
||||
YejiStatsLogic::applyPrescriptionOrderNotCancelledForPerformanceQuery($q, 'o');
|
||||
YejiStatsLogic::applyPrescriptionOrderEffectiveAmountQuery($q, 'o');
|
||||
$q->whereIn('rx.creator_id', $doctorIds)
|
||||
->where('o.diagnosis_id', '>', 0);
|
||||
|
||||
|
||||
@@ -3893,6 +3893,18 @@ class YejiStatsLogic
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 有效金额统计:在业绩履约状态口径上,再排除任何已发生退款(含部分退款)的订单。
|
||||
*
|
||||
* @param \think\db\BaseQuery|\think\Model $query
|
||||
*/
|
||||
public static function applyPrescriptionOrderEffectiveAmountQuery($query, string $tableAlias = ''): void
|
||||
{
|
||||
self::applyPrescriptionOrderNotCancelledForPerformanceQuery($query, $tableAlias);
|
||||
$refundField = $tableAlias !== '' ? "{$tableAlias}.refund_amount" : 'refund_amount';
|
||||
$query->whereRaw("({$refundField} IS NULL OR {$refundField} <= 0)");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \think\db\BaseQuery|\think\Model $query
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user