|
|
|
@ -62,8 +62,16 @@ class ComboItemController extends Controller
|
|
|
|
public function combo_info($hospital, $data)
|
|
|
|
public function combo_info($hospital, $data)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
$peis = new PEISApiController();
|
|
|
|
$peis = new PEISApiController();
|
|
|
|
$combo_info = $peis::Post('套餐详情查询', $hospital, $data)['data'][0];
|
|
|
|
// 假设 Post 方法调用正确,这里保持原有逻辑
|
|
|
|
//Yo::error_exit(['message'=>"res",'code'=>200,'data'=>$combo_info]);
|
|
|
|
$response = $peis::Post('套餐详情查询', $hospital, $data);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 增加简单的容错处理,防止数据为空报错
|
|
|
|
|
|
|
|
if (empty($response['data']) || !isset($response['data'][0])) {
|
|
|
|
|
|
|
|
return []; // 或者返回默认结构,视业务需求而定
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$combo_info = $response['data'][0];
|
|
|
|
|
|
|
|
|
|
|
|
$info = [
|
|
|
|
$info = [
|
|
|
|
'id' => $combo_info['Id'],
|
|
|
|
'id' => $combo_info['Id'],
|
|
|
|
'name' => $combo_info['名称'],
|
|
|
|
'name' => $combo_info['名称'],
|
|
|
|
@ -72,15 +80,51 @@ class ComboItemController extends Controller
|
|
|
|
'sex' => $combo_info['性别限制'],
|
|
|
|
'sex' => $combo_info['性别限制'],
|
|
|
|
'items' => [],
|
|
|
|
'items' => [],
|
|
|
|
];
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义指定的排序顺序
|
|
|
|
|
|
|
|
$sortOrder = [
|
|
|
|
|
|
|
|
"一般检查" => 1,
|
|
|
|
|
|
|
|
"内科" => 2,
|
|
|
|
|
|
|
|
"外科" => 3,
|
|
|
|
|
|
|
|
"眼科" => 4,
|
|
|
|
|
|
|
|
"心电图" => 5,
|
|
|
|
|
|
|
|
"妇科" => 6,
|
|
|
|
|
|
|
|
"检验科" => 7,
|
|
|
|
|
|
|
|
"超声科" => 8,
|
|
|
|
|
|
|
|
"DR" => 9,
|
|
|
|
|
|
|
|
"CT" => 10,
|
|
|
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
foreach ($combo_info['包含项目'] as $item) {
|
|
|
|
foreach ($combo_info['包含项目'] as $item) {
|
|
|
|
$info['items'][] = [
|
|
|
|
$info['items'][] = [
|
|
|
|
'id' => $item['Id'],
|
|
|
|
'id' => $item['Id'],
|
|
|
|
'name' => $item['名称'],
|
|
|
|
'name' => $item['名称'],
|
|
|
|
'price' => $item['价格'],
|
|
|
|
'price' => $item['价格'],
|
|
|
|
'jianjie' => $item['简介'],
|
|
|
|
'jianjie' => $item['简介'],
|
|
|
|
|
|
|
|
'keshi_name' => $item['科室名称'],
|
|
|
|
];
|
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 执行排序
|
|
|
|
|
|
|
|
usort($info['items'], function ($a, $b) use ($sortOrder) {
|
|
|
|
|
|
|
|
$deptA = $a['keshi_name'];
|
|
|
|
|
|
|
|
$deptB = $b['keshi_name'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取排名,如果不在列表中,赋予一个很大的值(排在最后)
|
|
|
|
|
|
|
|
$rankA = isset($sortOrder[$deptA]) ? $sortOrder[$deptA] : 9999;
|
|
|
|
|
|
|
|
$rankB = isset($sortOrder[$deptB]) ? $sortOrder[$deptB] : 9999;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果排名相同(例如都在列表中且相同,或都不在列表中),保持原有相对顺序或按名称排序(可选)
|
|
|
|
|
|
|
|
// 这里简单处理:如果排名一样,返回0
|
|
|
|
|
|
|
|
if ($rankA == $rankB) {
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ($rankA < $rankB) ? -1 : 1;
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
$info['count'] = count($info['items']);
|
|
|
|
$info['count'] = count($info['items']);
|
|
|
|
|
|
|
|
|
|
|
|
return $info;
|
|
|
|
return $info;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|