fix(dashboard): 优化控制台财务与运营口径,彻底消除误导信息并实现实时待办防漏单
这个提交包含在:
@@ -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');
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户