request->getAttribute("userInfo") ?? []; // 获取医生已选择专长 $doctor_selected_expertise = $this->getDoctorSelectedExpertise($user_info['client_user_id']); $expertise_ids = []; if (!empty($doctor_selected_expertise)){ $expertise_ids = array_column($doctor_selected_expertise,'expertise_id'); } // 获取全部专长 $fields = [ 'expertise_id', 'expertise_name', 'expertise_sort', ]; $disease_class_expertise = DiseaseClassExpertise::getOrderList([],$fields); foreach ($disease_class_expertise as &$item){ $item['is_selected'] = 0; if (in_array($item['expertise_id'],$expertise_ids)){ $item['is_selected'] = 1; } } return success($disease_class_expertise); } /** * 获取医生已选择专长 * @param string $doctor_id * @return array */ public function getDoctorSelectedExpertise(string $doctor_id): array { if (empty($doctor_id)){ throw new BusinessException("缺少医生id"); } $params = array(); $params['doctor_id'] = $doctor_id; $doctor_expertise = DoctorExpertise::getDiseaseClassExpertiseList($params); if (!empty($doctor_expertise)){ foreach ($doctor_expertise as &$data){ if (!empty($data['DiseaseClassExpertise'])){ $data['expertise_name'] = $data['DiseaseClassExpertise']['expertise_name']; } unset($data['DiseaseClassExpertise']); } } return $doctor_expertise->toArray(); } }