From 7edec341b9536947a22aaf83eb6fe8c502daf22e Mon Sep 17 00:00:00 2001 From: pengda <10266652509@qq.com> Date: Sat, 14 Sep 2024 15:38:11 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8D=AF=E6=96=B9=E7=9B=B8=E5=85=B3=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/mFormula.php | 110 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 86 insertions(+), 24 deletions(-) diff --git a/model/mFormula.php b/model/mFormula.php index f6a15ae..28b2f78 100644 --- a/model/mFormula.php +++ b/model/mFormula.php @@ -207,12 +207,70 @@ class mFormula extends mBase { return $this->obj->selectAll($this->formula_herb_tbl, array('sql' => '`formula_id`=?', 'vals' => array($formula_id)), 'sort asc '); } - public function getFormulaHerbs($formula_ids) { + public function getFormulasHerb($formula_ids) { $data = $this->obj->selectIn($this->formula_herb_tbl, array('formula_id' => $formula_ids)); if (empty($data)) return array(); return array_column($data, null, 'id'); } + public function getUserFormulaByUid($uid, $page_num, $page_size) { + $offset = ($page_num - 1) * $page_size; + return $this->obj->selectAll($this->tbl, array('sql' => '`uid`=?', 'vals' => array($uid)), 'sort desc ', array($offset, $page_size)); + } + + public function getUserFormulaList($uid, $page_num, $page_size) { + $data = $this->getUserFormulaByUid($uid, $page_num, $page_size); + + $formula_ids = array_column($data, 'id'); + + $formula_arr = $this->getFormulaHerbData($formula_ids); + + foreach ($data as &$da) { + unset($da['original']); + + $da['formula'] = $formula_arr[$da['id']]; + } + + return $data; + } + + public function getUserFormulaInfo($id, $uid) { + //药方信息 + $formula = $this->getFormulaById($id); + if (empty($formula)) { + $this->setError('查询不到此药方'); + return false; + } + //uid==0 不判断药方归属 + if ($uid > 0 && $formula['uid'] != $uid) { + $this->setError('这不是你的药方'); + return false; + } + + $formulaHerb = array(); + + $formula_arr = $this->getFormulaHerbData(array($formula['id'])); + foreach ($formula_arr as $ar) { + foreach ($ar as &$v) { + //药方克重为0 去查询原方 + if (isset($original[$v['name']])) { + $v['num_str'] = $original[$v['name']]['num']; + $v['desc'] = $original[$v['name']]['desc']; + } + } + + $formulaHerb = $ar; + } + + $formula['formula'] = $formulaHerb; + + return $formula; + } + + public function getUserFormulaTotal($uid) { + return $this->obj->count($this->tbl, array('sql' => '`uid`=?', 'vals' => array($uid))); + } + public function getFormulaByName($uid, $page_num, $page_size, $name) { $offset = ($page_num - 1) * $page_size; @@ -237,26 +295,27 @@ class mFormula extends mBase { $da['formula'] = $formula_arr[$da['id']]; } + $original = array(); if (!empty($da['original'])) { $original = json_decode($da['original'], true); $original = array_column($original, null, 'name'); + } + unset($da['original']); - foreach ($da['formula'] as &$v) { - if (isset($original[$v['name']])) { - $v['num'] = $original[$v['name']]['num']; - $v['desc'] = $original[$v['name']]['desc']; - } + foreach ($da['formula'] as &$v) { + //药方克重为0 去查询原方 + if (isset($original[$v['name']]) && $v['num'] == 0) { + $v['num_str'] = $original[$v['name']]['num']; + $v['desc'] = $original[$v['name']]['desc']; } } - - unset($da['original']); } return $data; } public function getFormulaHerbData($formula_ids) { - $formula_herbs = $this->getFormulaHerbs($formula_ids); + $formula_herbs = $this->getFormulasHerb($formula_ids); $herb_ids = array_column($formula_herbs, 'herb_id'); $herbs = $this->getHerbs($herb_ids); @@ -264,18 +323,13 @@ class mFormula extends mBase { $formula_arr = array(); foreach ($formula_herbs as $formula_herb) { - $temp = array( + $formula_arr[$formula_herb['formula_id']][] = array( 'id' => $formula_herb['herb_id'], - 'name' => '', + 'name' => $herb_arr[$formula_herb['herb_id']]['name'], 'num' => $formula_herb['num'], 'desc' => $formula_herb['desc'], + 'num_str' => $formula_herb['num'] . 'g', ); - - if (isset($herb_arr[$formula_herb['herb_id']])) { - $temp['name'] = $herb_arr[$formula_herb['herb_id']]['name']; - } - - $formula_arr[$formula_herb['formula_id']][] = $temp; } return $formula_arr; } @@ -291,7 +345,7 @@ class mFormula extends mBase { return $num; } - public function getFormulaInfo($id, $uid = 0) { + public function getFormulaInfo($id, $uid) { //药方信息 $formula = $this->getFormulaById($id); if (empty($formula)) { @@ -299,26 +353,34 @@ class mFormula extends mBase { return false; } - if ($uid > 0 && $formula['uid'] != $uid) { + //uid==0 不判断药方归属 + if ($uid > 0 && $formula['uid'] > 0 && $formula['uid'] != $uid) { $this->setError('这不是你的药方'); return false; } - $formula['formula'] = $this->getFormulaHerbData($formula['id'])[$formula['id']]; - if (!empty($formula['original'])) { $original = json_decode($formula['original'], true); $original = array_column($original, null, 'name'); + } + unset($formula['original']); - foreach ($formula['formula'] as &$v) { + $formulaHerb = array(); + + $formula_arr = $this->getFormulaHerbData(array($formula['id'])); + foreach ($formula_arr as $ar) { + foreach ($ar as &$v) { + //药方克重为0 去查询原方 if (isset($original[$v['name']])) { - $v['num'] = (float)$original[$v['name']]['num']; + $v['num_str'] = $original[$v['name']]['num']; $v['desc'] = $original[$v['name']]['desc']; } } + + $formulaHerb = $ar; } - unset($formula['original']); + $formula['formula'] = $formulaHerb; return $formula; }