From 7729392f32781fc30d03f455fa7d616fdcdb2c92 Mon Sep 17 00:00:00 2001 From: pengda <10266652509@qq.com> Date: Mon, 9 Sep 2024 11:25:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8D=AF=E6=96=B9=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=95=B0=E6=8D=AE=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/mCase.php | 89 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 71 insertions(+), 18 deletions(-) diff --git a/model/mCase.php b/model/mCase.php index 90b778d..04fb83a 100644 --- a/model/mCase.php +++ b/model/mCase.php @@ -218,39 +218,67 @@ class mCase extends mBase { } public function getCaseList($uid, $name, $page_num, $page_size) { - $case = $this->getCaseByName($uid, $name, $page_num, $page_size); - if (empty($case)) { + $case_data = $this->getCaseByName($uid, $name, $page_num, $page_size); + if (empty($case_data)) { $this->setError('查询不到此药方'); return false; } - $case_ids = array(); - foreach ($case as &$item) { - $item['original'] = json_decode($item['original'], true); - $case_ids[] = $item['id']; - } - + $case_ids = array_column($case_data, 'id'); //药方药材信息 $case_herbs = $this->getCaseHerbByCaseIds($case_ids); if (empty($case_herbs)) { $this->setError('药方药材查询失败'); return false; } + $herb_ids = array_column($case_herbs, 'herb_id'); //药材名称 - $herb_ids = array_column($case_herbs, 'herb_id'); $herb = $this->getHerbByIds($herb_ids); if (empty($herb)) { $this->setError('药材名称查询失败'); return false; } + $herb_list = array_column($herb, null, 'id'); + + $case_list = array(); + foreach ($case_data as $item) { + $case = array( + 'id' => $item['id'], + 'name' => $item['name'], + 'source' => $item['source'], + 'method' => $item['method'], + 'use_num' => $item['use_num'], + 'sort' => $item['sort'], + 'case_herb' => array() + ); + + $original = json_decode($item['original'], true); + foreach ($case_herbs as $value) { + if ($item['id'] != $value['case_id']) continue; + + + $temp = array( + 'name' => $herb_list[$value['herb_id']]['name'], + 'num' => $value['num'], + 'org_num' => '', + 'desc' => $value['desc'], + 'org_desc' => '', + ); + + foreach ($original as $v) { + if ($temp['name'] == $v['name']) { + $temp['org_num'] = $v['num']; + $temp['org_desc'] = $v['desc']; + } + } + $case['case_herb'][] = $temp; + } - $case_herb = array(); - foreach ($case_herbs as $v) { - $case_herb[$v['case_id']][] = $v; + $case_list[] = $case; } - return array('case' => $case, 'case_herb' => $case_herb, 'herb' => array_column($herb, null, 'id')); + return $case_list; } public function getCaseByNameTotal($name) { @@ -270,24 +298,49 @@ class mCase extends mBase { $this->setError('查询不到此药方'); return false; } - $case['original'] = json_decode($case['original'], true); //药方药材信息 - $case_herb = $this->getCaseHerbByCaseId($case['id']); - if (empty($case_herb)) { + $case_herb_date = $this->getCaseHerbByCaseId($case['id']); + if (empty($case_herb_date)) { $this->setError('药方药材查询失败'); return false; } //药材名称 - $herb_ids = array_column($case_herb, 'herb_id'); + $herb_ids = array_column($case_herb_date, 'herb_id'); $herb = $this->getHerbByIds($herb_ids); if (empty($herb)) { $this->setError('药材名称查询失败'); return false; } + $herb_list = array_column($herb, null, 'id'); + + $original = json_decode($case['original'], true); + unset($case['original']); + + $case_herb = array(); + foreach ($case_herb_date as $item) { + $temp = array( + 'name' => $herb_list[$item['herb_id']]['name'], + 'num' => $item['num'], + 'org_num' => '', + 'desc' => $item['desc'], + 'org_desc' => '', + ); + + foreach ($original as $v) { + if ($temp['name'] == $v['name']) { + $temp['org_num'] = $v['num']; + $temp['org_desc'] = $v['desc']; + } + } + + $case_herb[] = $temp; + } + + $case['case_herb'] = $case_herb; - return array('case' => $case, 'case_herb' => $case_herb, 'herb' => array_column($herb, null, 'id')); + return $case; } public function getCaseById($id) {