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 '); 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;
} }

Loading…
Cancel
Save