finish
This commit is contained in:
parent
fb9b11a57c
commit
f1668c3aa5
|
|
@ -256,16 +256,18 @@ class Worker extends Backend
|
|||
$builder = new OrderDispatch();
|
||||
$fields = [
|
||||
'worker_id',
|
||||
// 使用 IFNULL 确保结果为 null 时返回 0
|
||||
"IFNULL(COUNT(*), 0) AS dispatch_count", //分配数
|
||||
// "IFNULL(COUNT(CASE WHEN status NOT IN (0,-30, -10) THEN 1 END), 0) AS get_count", //接单数
|
||||
|
||||
"IFNULL(COUNT(CASE WHEN status IN (30, 60) THEN 1 END), 0) AS get_js_count", //接单数
|
||||
//"COUNT(CASE WHEN status IN (60) THEN 1 END) AS finish_count", //完成数
|
||||
"IFNULL(COUNT(CASE WHEN status IN (-10) THEN 1 END), 0) AS refuse_count", //拒绝数
|
||||
"IFNULL(COUNT(arrive_time), 0) AS arrive_count", //上门数
|
||||
"IFNULL(AVG(CASE WHEN status = 60 AND arrive_time IS NOT NULL THEN UNIX_TIMESTAMP(arrive_time) - UNIX_TIMESTAMP(create_time) END), 0) AS avg_time_diff", //联系时效
|
||||
// 分配数,COUNT(*) 不可能为 NULL
|
||||
"COUNT(*) AS dispatch_count",
|
||||
// 接单数,状态为 30 或 60
|
||||
"COUNT(CASE WHEN status IN (30, 60) THEN 1 END) AS get_js_count",
|
||||
// 拒绝数,状态为 -10
|
||||
"COUNT(CASE WHEN status = -10 THEN 1 END) AS refuse_count",
|
||||
// 上门数,统计非 NULL 的 arrive_time
|
||||
"COUNT(arrive_time) AS arrive_count",
|
||||
// 联系时效,平均时间差,保留 IFNULL 防止 NULL
|
||||
"IFNULL(AVG(CASE WHEN status = 60 AND arrive_time IS NOT NULL THEN UNIX_TIMESTAMP(arrive_time) - UNIX_TIMESTAMP(create_time) END), 0) AS avg_time_diff",
|
||||
];
|
||||
|
||||
$builder->field($fields);
|
||||
|
||||
if(!empty($filter['start_time'])){
|
||||
|
|
@ -299,22 +301,23 @@ class Worker extends Backend
|
|||
//"COUNT(CASE WHEN status IN (".$orderValid.") THEN 1 END) AS ing_num",
|
||||
$fields = [
|
||||
'worker_id',
|
||||
// 使用 IFNULL 确保结果为 null 时返回 0
|
||||
"IFNULL(COUNT(CASE WHEN status > 10 THEN 1 END), 0) AS get_count", //完成数
|
||||
"IFNULL(COUNT(CASE WHEN status = 60 THEN 1 END), 0) AS finish_num", //完成数
|
||||
//"COUNT(CASE WHEN status IN (".$orderValid.") THEN 1 END) AS count_num", //总订单数 (排除取消 和草稿)
|
||||
"IFNULL(SUM(CASE WHEN status = 60 THEN total END), 0) AS total", //成效额
|
||||
"IFNULL(SUM(CASE WHEN status = 60 THEN performance END), 0) AS performance", //业绩
|
||||
"IFNULL(SUM(CASE WHEN status = 60 THEN cost END), 0) AS cost", //成效额
|
||||
|
||||
// "SUM(CASE WHEN status = 60 THEN (cost + material_cost) END) AS cost_total", //总成本
|
||||
|
||||
"IFNULL(SUM(CASE WHEN status = 60 THEN (refund_amount + worker_refund_amount) END), 0) AS refund_total", //退款总数
|
||||
"IFNULL(COUNT(CASE WHEN refund_amount > 0 OR worker_refund_amount > 0 THEN 1 END), 0) AS refund_count", //退款订单数量
|
||||
//"AVG(CASE WHEN status > 10 THEN UNIX_TIMESTAMP(dispatch_time) - UNIX_TIMESTAMP(create_time) END) AS avg_time_diff", //派单时效
|
||||
// "SUM(CASE WHEN status = 60 THEN (field1 + field2) END) AS performance",
|
||||
// 接单数,状态 > 10
|
||||
"COUNT(CASE WHEN status > 10 THEN 1 END) AS get_count",
|
||||
// 完成数,状态 = 60
|
||||
"COUNT(CASE WHEN status = 60 THEN 1 END) AS finish_num",
|
||||
// 成效额,状态 = 60,SUM可能为NULL,保留IFNULL
|
||||
"IFNULL(SUM(CASE WHEN status = 60 THEN total END), 0) AS total",
|
||||
// 业绩,状态 = 60
|
||||
"IFNULL(SUM(CASE WHEN status = 60 THEN performance END), 0) AS performance",
|
||||
// 成本,状态 = 60
|
||||
"IFNULL(SUM(CASE WHEN status = 60 THEN cost END), 0) AS cost",
|
||||
// 退款总数,状态 = 60
|
||||
"IFNULL(SUM(CASE WHEN status = 60 THEN (refund_amount + worker_refund_amount) END), 0) AS refund_total",
|
||||
// 退款订单数量
|
||||
"COUNT(CASE WHEN refund_amount > 0 OR worker_refund_amount > 0 THEN 1 END) AS refund_count",
|
||||
];
|
||||
|
||||
|
||||
$builder = (new Order())->field($fields);
|
||||
|
||||
if(!empty($filter['start_time'])){
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user