*/ public function toArray(Request $request = null): array { $department_lists = $this->getDepartmentLists(); $sort = collect($department_lists)->pluck('sort', 'dept_id'); $lists = []; foreach ($this->resource['response'] as $v) { $lists[] = [ 'dept_id' => $v['typeId'], 'dept_name' => $v['typeName'], // 'dept_intro' => $v['INTRODUCE'] ]; } // 根据科室的 sort 字段对 $lists 进行排序 usort($lists, function ($a, $b) use ($sort) { $sort_a = $sort[$a['dept_id']] ?? 0; $sort_b = $sort[$b['dept_id']] ?? 0; return $sort_b <=> $sort_a; // 倒序排序 }); return $lists; } /** * 获取医生列表 * @return array */ public function getDepartmentLists(): array { if (Redis::exists('department.lists')) { $department_lists = Redis::get('doctor.lists'); $department_lists = json_decode($department_lists, true); } else { $db = DB::connection('mysql_admin')->table('departments'); $department_lists = $db ->where('is_enable', 1) ->orderBy('sort', 'DESC') ->orderBy('id', 'ASC') ->get(); Redis::setex('department.lists', 4 * 3600, json_encode($department_lists, JSON_UNESCAPED_UNICODE)); } return $department_lists; } }