|
@ -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 '); |
|
|
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)); |
|
|
$data = $this->obj->selectIn($this->formula_herb_tbl, array('formula_id' => $formula_ids)); |
|
|
if (empty($data)) return array(); |
|
|
if (empty($data)) return array(); |
|
|
return array_column($data, null, 'id'); |
|
|
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) { |
|
|
public function getFormulaByName($uid, $page_num, $page_size, $name) { |
|
|
$offset = ($page_num - 1) * $page_size; |
|
|
$offset = ($page_num - 1) * $page_size; |
|
|
|
|
|
|
|
@ -237,26 +295,27 @@ class mFormula extends mBase { |
|
|
$da['formula'] = $formula_arr[$da['id']]; |
|
|
$da['formula'] = $formula_arr[$da['id']]; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$original = array(); |
|
|
if (!empty($da['original'])) { |
|
|
if (!empty($da['original'])) { |
|
|
$original = json_decode($da['original'], true); |
|
|
$original = json_decode($da['original'], true); |
|
|
$original = array_column($original, null, 'name'); |
|
|
$original = array_column($original, null, 'name'); |
|
|
|
|
|
} |
|
|
|
|
|
unset($da['original']); |
|
|
|
|
|
|
|
|
foreach ($da['formula'] as &$v) { |
|
|
foreach ($da['formula'] as &$v) { |
|
|
if (isset($original[$v['name']])) { |
|
|
//药方克重为0 去查询原方 |
|
|
$v['num'] = $original[$v['name']]['num']; |
|
|
if (isset($original[$v['name']]) && $v['num'] == 0) { |
|
|
$v['desc'] = $original[$v['name']]['desc']; |
|
|
$v['num_str'] = $original[$v['name']]['num']; |
|
|
} |
|
|
$v['desc'] = $original[$v['name']]['desc']; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
unset($da['original']); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return $data; |
|
|
return $data; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public function getFormulaHerbData($formula_ids) { |
|
|
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'); |
|
|
$herb_ids = array_column($formula_herbs, 'herb_id'); |
|
|
$herbs = $this->getHerbs($herb_ids); |
|
|
$herbs = $this->getHerbs($herb_ids); |
|
@ -264,18 +323,13 @@ class mFormula extends mBase { |
|
|
|
|
|
|
|
|
$formula_arr = array(); |
|
|
$formula_arr = array(); |
|
|
foreach ($formula_herbs as $formula_herb) { |
|
|
foreach ($formula_herbs as $formula_herb) { |
|
|
$temp = array( |
|
|
$formula_arr[$formula_herb['formula_id']][] = array( |
|
|
'id' => $formula_herb['herb_id'], |
|
|
'id' => $formula_herb['herb_id'], |
|
|
'name' => '', |
|
|
'name' => $herb_arr[$formula_herb['herb_id']]['name'], |
|
|
'num' => $formula_herb['num'], |
|
|
'num' => $formula_herb['num'], |
|
|
'desc' => $formula_herb['desc'], |
|
|
'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; |
|
|
return $formula_arr; |
|
|
} |
|
|
} |
|
@ -291,7 +345,7 @@ class mFormula extends mBase { |
|
|
return $num; |
|
|
return $num; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public function getFormulaInfo($id, $uid = 0) { |
|
|
public function getFormulaInfo($id, $uid) { |
|
|
//药方信息 |
|
|
//药方信息 |
|
|
$formula = $this->getFormulaById($id); |
|
|
$formula = $this->getFormulaById($id); |
|
|
if (empty($formula)) { |
|
|
if (empty($formula)) { |
|
@ -299,26 +353,34 @@ class mFormula extends mBase { |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if ($uid > 0 && $formula['uid'] != $uid) { |
|
|
//uid==0 不判断药方归属 |
|
|
|
|
|
if ($uid > 0 && $formula['uid'] > 0 && $formula['uid'] != $uid) { |
|
|
$this->setError('这不是你的药方'); |
|
|
$this->setError('这不是你的药方'); |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
$formula['formula'] = $this->getFormulaHerbData($formula['id'])[$formula['id']]; |
|
|
|
|
|
|
|
|
|
|
|
if (!empty($formula['original'])) { |
|
|
if (!empty($formula['original'])) { |
|
|
$original = json_decode($formula['original'], true); |
|
|
$original = json_decode($formula['original'], true); |
|
|
$original = array_column($original, null, 'name'); |
|
|
$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']])) { |
|
|
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']; |
|
|
$v['desc'] = $original[$v['name']]['desc']; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$formulaHerb = $ar; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
unset($formula['original']); |
|
|
$formula['formula'] = $formulaHerb; |
|
|
|
|
|
|
|
|
return $formula; |
|
|
return $formula; |
|
|
} |
|
|
} |
|
|