Browse Source

药方相关模型层

pull/1/head
pengda 8 months ago
parent
commit
7edec341b9
  1. 110
      model/mFormula.php

110
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;
}

Loading…
Cancel
Save