This commit is contained in:
2026-04-22 16:20:52 +08:00
parent a1a0b74596
commit 6ea61e9193
2 changed files with 96 additions and 132 deletions
@@ -2111,13 +2111,17 @@ class DiagnosisLogic extends BaseLogic
public static function getAssistants()
{
try {
// 通过中间表查询角色ID为2的管理员(医助)
$assistants = \app\common\model\auth\Admin::alias('a')
// 这里不要用 Admin 模型查询,否则会触发其 append(role_id/dept_id/jobs_id)
// 每行再发多次查询,形成严重 N+1,统计页会被拖慢到十几秒。
$assistants = \think\facade\Db::name('admin')
->alias('a')
->join('admin_role ar', 'a.id = ar.admin_id')
->where('ar.role_id', 2)
->where('a.disable', 0)
->whereNull('a.delete_time')
->field(['a.id', 'a.name', 'a.account'])
->order('a.id', 'asc')
->distinct(true)
->select()
->toArray();
@@ -2126,7 +2130,8 @@ class DiagnosisLogic extends BaseLogic
}
$adminIds = array_column($assistants, 'id');
$adminDepts = \app\common\model\auth\AdminDept::whereIn('admin_id', $adminIds)
$adminDepts = \think\facade\Db::name('admin_dept')
->whereIn('admin_id', $adminIds)
->select()
->toArray();
$adminToDeptIds = [];
@@ -2148,7 +2153,8 @@ class DiagnosisLogic extends BaseLogic
$allDeptIds = array_keys($allDeptIds);
$deptNameMap = [];
if ($allDeptIds !== []) {
$deptNameMap = \app\common\model\dept\Dept::whereIn('id', $allDeptIds)
$deptNameMap = \think\facade\Db::name('dept')
->whereIn('id', $allDeptIds)
->whereNull('delete_time')
->column('name', 'id');
}
@@ -2185,13 +2191,16 @@ class DiagnosisLogic extends BaseLogic
public static function getDoctors()
{
try {
// 通过中间表查询角色ID为1的管理员(医生)
$doctors = \app\common\model\auth\Admin::alias('a')
// 同 getAssistants,避免 Admin 模型 append 触发的 N+1。
$doctors = \think\facade\Db::name('admin')
->alias('a')
->join('admin_role ar', 'a.id = ar.admin_id')
->where('ar.role_id', 1)
->where('a.disable', 0)
->whereNull('a.delete_time')
->field(['a.id', 'a.name', 'a.account'])
->order('a.id', 'asc')
->distinct(true)
->select()
->toArray();