['patient_name'], '=' => ['patient_id', 'gender', 'diagnosis_type', 'syndrome_type', 'assistant_id', 'status'], 'between_time' => ['diagnosis_date'], ]; } /** * @notes 获取列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function lists(): array { // 获取当前管理员的角色ID $roleIds = AdminRole::where('admin_id', $this->adminId)->column('role_id'); // 构建查询 $query = Diagnosis::where($this->searchWhere); // 如果是医助角色(role_id=2),只显示自己添加的患者 if (in_array(2, $roleIds)) { $query->where('assistant_id', $this->adminId); } $lists = $query ->with(['DiagnosisViewRecord']) ->field(['id', 'patient_id', 'patient_name', 'id_card', 'phone', 'gender', 'age', 'diagnosis_date', 'diagnosis_type', 'syndrome_type', 'assistant_id', 'status', 'create_time', 'update_time']) ->append(['gender_desc', 'status_desc', 'diagnosis_date_text']) ->order(['id' => 'desc']) ->limit($this->limitOffset, $this->limitLength) ->select() ->toArray(); return $lists; } /** * @notes 获取数量 * @return int */ public function count(): int { // 获取当前管理员的角色ID $roleIds = AdminRole::where('admin_id', $this->adminId)->column('role_id'); // 构建查询 $query = Diagnosis::where($this->searchWhere); // 如果是医助角色(role_id=2),只显示自己添加的患者 if (in_array(2, $roleIds)) { $query->where('assistant_id', $this->adminId); } return $query->count(); } }