fix(dashboard): 优化控制台财务与运营口径,彻底消除误导信息并实现实时待办防漏单

这个提交包含在:
chen
2026-09-17 14:22:12 +08:00
父节点 2ccd69b9e7
当前提交 464f8b2f38
共有 5 个文件被更改,包括 564 次插入 和 448 次删除

查看文件

@@ -50,21 +50,24 @@ class ActiveService
public function activeUserIds($start, $end, $extraWhere = [])
{
$baseQuery = \think\Db::name('shopro_commission_agent')
->where('status', 'in', ['normal', 'freeze'])
->where('level', '>=', 1);
foreach ($extraWhere as $field => $value) {
$baseQuery->where($field, $value);
}
$createBaseQuery = function () use ($extraWhere) {
$q = \think\Db::name('shopro_commission_agent')
->where('status', 'in', ['normal', 'freeze'])
->where('level', '>=', 1);
foreach ($extraWhere as $field => $value) {
$q->where($field, $value);
}
return $q;
};
// 1. 优先通过 last_self_order_time 索引快速命中
$hitUserIds = (clone $baseQuery)->where(function ($q) use ($start, $end) {
$hitUserIds = $createBaseQuery()->where(function ($q) use ($start, $end) {
$q->where('last_self_order_time', '>=', $start)
->where('last_self_order_time', '<=', $end);
})->column('user_id');
// 2. 容错:查找 last_self_order_time 为空或为 0 的代理商
$nullUserIds = (clone $baseQuery)->where(function ($q) {
$nullUserIds = $createBaseQuery()->where(function ($q) {
$q->whereNull('last_self_order_time')->whereOr('last_self_order_time', 0);
})->column('user_id');