diff --git a/model/mFormula.php b/model/mFormula.php index 6024160..904a298 100644 --- a/model/mFormula.php +++ b/model/mFormula.php @@ -26,25 +26,29 @@ class mFormula extends mBase { $offset = ($page_num - 1) * $page_size; $where = "1=1"; + $use_limit = ""; if (!empty($condition)) { foreach ($condition as $key => $val) { if ($key == 'name') { $where .= " and s.{$key} like '%{$val}%'"; + } elseif ($key == 'uid' && is_array($val)) { + $val = implode(',', $val); + + $where .= " and s.{$key} in ({$val})"; + + //兼容查药方只计算当前用户对药方的使用次数 + $use_limit .= " and u.uid in ({$val})"; } else { $where .= " and s.{$key}={$val}"; } } } - $sql = "select s.*,COALESCE(SUM(u.use_num), 0) AS use_num from {$this->tbl} as s left join {$this->formula_use_log_tbl} as u on s.id=u.formula_id where {$where} group by s.id order by use_num desc,s.sort desc,s.id desc limit {$offset},{$page_size}"; - -// echo "
";
-//        print_r($sql);
-//        exit;
+        $sql = "select s.*,COALESCE(SUM(u.use_num), 0) AS use_num from {$this->tbl} as s left join {$this->formula_use_log_tbl} as u on s.id=u.formula_id {$use_limit} where {$where} group by s.id order by use_num desc,s.sort desc,s.id desc limit {$offset},{$page_size}";
         return $this->obj->execute($sql, true, true);
     }
 
-    public function getAllFormulaList($condition, $page_num, $page_size) {
+    public function getFormulaList($condition, $page_num, $page_size) {
         $data = $this->getFormulaByCondition($condition, $page_num, $page_size);
 
         $formula_ids = array_column($data, 'id');
@@ -75,7 +79,7 @@ class mFormula extends mBase {
         return $data;
     }
 
-    public function getAllFormulaTotal($condition) {
+    public function getFormulaTotal($condition) {
         $where = "1=1";
         if (!empty($condition)) {
             foreach ($condition as $key => $val) {
@@ -94,126 +98,142 @@ class mFormula extends mBase {
         return $num;
     }
 
-    public function createFormula($uid, $name, $source, $method, $herbs) {
-        if (empty($name)) {
-            $this->setError('药方名称不能为空');
-            return false;
-        }
-        $herbs = json_decode($herbs, true);
-        if (empty($herbs)) {
-            $this->setError('药方药材不能为空');
-            return false;
-        }
-
-        $data = array(
-            'uid' => $uid,
-            'name' => $name,
-            'source' => $source,
-        );
+    public function getFormulaById($id) {
+        return $this->obj->select($this->tbl, array('sql' => '`id`=?', 'vals' => array($id)));
+    }
 
-        //录入药方
-        if ($uid == 0) {
-            $org_herb = array();
-            foreach ($herbs as $key => $herb) {
-                $org_herb[$key] = array(
-                    'name' => trim($herb['name']),
-                    'num' => $this->convertToNum(trim($herb['name']), trim($herb['num'])),
-                    //'desc' => trim($herb['desc']),
-                );
-            }
+    public function getHerbs($ids) {
+        return $this->obj->selectIn($this->herb_tbl, array('id' => $ids));
+    }
 
-            //更新原方和用法
-            $data['original'] = json_encode($org_herb, JSON_UNESCAPED_UNICODE);
-            $data['method'] = $method;
-        }
+    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');
+    }
 
-        //格式化药方对应的药材数据
-        $formula_herb = $this->dealForulaHerb($uid, $herbs);
-        if (!$formula_herb) {
-            $this->writeLog('formula', 'insert_error_log', '添加药方,药材初始化失败|' . $uid . '|' . json_encode($herbs, JSON_UNESCAPED_UNICODE));
-            return false;
-        }
+    public function getFormulaHerbData($formula_ids) {
+        $formula_herbs = $this->getFormulasHerb($formula_ids);
 
-        $id = $this->insertFormula($data);
-        if (!$id) {
-            $this->writeLog('formula', 'insert_error_log', '添加药方失败|' . $uid . '|' . json_encode($data, JSON_UNESCAPED_UNICODE));
-            return false;
-        }
+        $herb_ids = array_column($formula_herbs, 'herb_id');
+        $herbs = $this->getHerbs($herb_ids);
+        $herb_arr = array_column($herbs, null, 'id');
 
-        //创建药方对应的药材
-        foreach ($formula_herb as &$item) {
-            $item['formula_id'] = $id;
-        }
-        $res = $this->insertFormulaHerb($formula_herb);
-        if (!$res) {
-            $this->writeLog('formula', 'insert_error_log', '添加药方,药材关联失败|' . $uid . '|' . json_encode($formula_herb, JSON_UNESCAPED_UNICODE));
-            return false;
+        $formula_arr = array();
+        foreach ($formula_herbs as $formula_herb) {
+            $formula_arr[$formula_herb['formula_id']][] = array(
+                'id' => $formula_herb['herb_id'],
+                'name' => $herb_arr[$formula_herb['herb_id']]['name'],
+                'num' => $formula_herb['num'],
+                //'desc' => $formula_herb['desc'],
+                'num_str' => $formula_herb['num'] . 'g',
+            );
         }
-
-        return $id;
+        return $formula_arr;
     }
 
-    public function saveFormula($uid, $id, $name, $source, $method, $herbs) {
-        $herbs = json_decode($herbs, true);
-        if (empty($herbs)) {
-            $this->setError('药方药材不能为空');
-            return false;
-        }
-
+    public function getFormulaInfo($id, $uid) {
+        //药方信息
         $formula = $this->getFormulaById($id);
         if (empty($formula)) {
             $this->setError('查询不到此药方');
             return false;
         }
-        if ($formula['uid'] > 0 && $formula['uid'] != $uid) {
+
+        //自拟药方 判断药方归属
+        if ($uid > 0 && $formula['uid'] > 0 && $formula['uid'] != $uid) {
             $this->setError('这不是你的药方');
             return false;
         }
 
-        $data = array();
-        if (!empty($name)) $data['name'] = $name;
-        if (!empty($source)) $data['source'] = $source;
+        //获取药方药材信息
+        $formula_arr = $this->getFormulaHerbData(array($formula['id']));
+        $formulaHerb = $formula_arr[$formula['id']];
 
-        //录入药方
-        if (!$uid) {
-            $org_herb = array();
-            foreach ($herbs as $key => $herb) {
-                $org_herb[$key] = array(
-                    'name' => trim($herb['name']),
-                    'num' => $this->convertToNum(trim($herb['name']), trim($herb['num'])),
-                    'desc' => trim($herb['desc']),
-                );
-            }
+        //原方信息
+        $original = $formula['original'];
+        unset($formula['original']);
 
-            //更新原方和用法
-            $data['original'] = json_encode($org_herb, JSON_UNESCAPED_UNICODE);
-            $data['method'] = $method;
+        if (empty($original)) {
+            $formula['formula'] = $formulaHerb;
+            return $formula;
         }
 
-        //格式化药方对应的药材数据
-        $formula_herb = $this->dealForulaHerb($uid, $herbs);
-        if (!$formula_herb) {
-            $this->writeLog('formula', 'update_error_log', '更新药方,药材初始化失败|' . $uid . '|' . json_encode($herbs, JSON_UNESCAPED_UNICODE));
-            return false;
+        $original = json_decode($original, true);
+        $original = array_column($original, null, 'name');
+        foreach ($formulaHerb as &$v) {
+            //药方克重为0 去查询原方
+            if (isset($original[$v['name']])) {
+                $v['num_str'] = $original[$v['name']]['num'];
+                //$v['desc'] = $original[$v['name']]['desc'];
+            }
         }
 
-        $res = $this->updateFormula($id, $data);
-        if (!$res) {
-            $this->writeLog('formula', 'update_error_log', '更新药方失败|' . $uid . '|' . json_encode($data, JSON_UNESCAPED_UNICODE));
-            return false;
+        $formula['formula'] = $formulaHerb;
+        return $formula;
+    }
+
+    public function convertToNum($herb_name, $str, $onlyconertNum = true, $from = '汉') {
+        $num_list = $GLOBALS['num_list'];
+        $num_list_arr = array_merge(array_keys($GLOBALS['num_list']['num']), array_keys($GLOBALS['num_list']['unit']));
+
+        $weight_list = $GLOBALS['weight_list'][$from];
+        $weight_list_arr = array_keys($GLOBALS['weight_list'][$from]);
+
+        //计量数字
+        $num_str = str_replace($weight_list_arr, '', $str);
+
+        //计量单位
+        $unit = str_replace($num_list_arr, '', $str);
+        //计量单位
+        $unit = str_replace($num_str, '', $unit);
+
+        //非数字转换
+        $num = $num_str;
+        if (!is_numeric($num) && $num) {
+            $num = 0;
+            $temp = 0;
+
+            $length = mb_strlen($num_str);
+            for ($i = 0; $i < $length; $i++) {
+                $char = mb_substr($num_str, $i, 1);
+                if (isset($num_list['num'][$char])) {
+                    $temp += $num_list['num'][$char];
+                } elseif (isset($num_list['unit'][$char])) {
+                    $temp = ($temp == 0 ? 1 : $temp) * $num_list['unit'][$char];
+                    $num += $temp; // 将临时结果累加到最终结果中
+                    $temp = 0; // 重置临时结果
+                }
+            }
+
+            $num += $temp;
         }
 
-        //批量更新药方药材关联关系
-        foreach ($formula_herb as &$item) {
-            $item['formula_id'] = $id;
+        //只将汉字数字转换成number
+        if ($onlyconertNum) {
+            return $num . $unit;
         }
-        $res = $this->mutiUpdateFormulaHerb($id, $formula_herb);
-        if (!$res) {
-            $this->writeLog('formula', 'update_error_log', '更新药方,药材关联失败|' . $uid . '|' . $id . '|' . json_encode($formula_herb, JSON_UNESCAPED_UNICODE));
+
+        //单位换算 直接换算成克数
+        $weight = isset($weight_list[$unit]) ? $weight_list[$unit] : 0;
+        if (isset($weight[$herb_name])) $weight = $weight[$herb_name];
+        if (!is_numeric($weight)) $weight = 0;
+
+        return $num * $weight;
+    }
+
+    public function getHerb($name) {
+        return $this->obj->select($this->herb_tbl, array('sql' => '`name`=?', 'vals' => array($name)));
+    }
+
+    public function insertHerb($info) {
+        $herb_id = $this->obj->insert($this->herb_tbl, $info);
+        if (!$herb_id) {
+            $this->setError('添加药材失败');
             return false;
         }
 
-        return true;
+        return $herb_id;
     }
 
     public function dealForulaHerb($uid, $herbs) {
@@ -266,55 +286,6 @@ class mFormula extends mBase {
         return $formula_herb;
     }
 
-    public function convertToNum($herb_name, $str, $onlyconertNum = true, $from = '汉') {
-        $num_list = $GLOBALS['num_list'];
-        $num_list_arr = array_merge(array_keys($GLOBALS['num_list']['num']), array_keys($GLOBALS['num_list']['unit']));
-
-        $weight_list = $GLOBALS['weight_list'][$from];
-        $weight_list_arr = array_keys($GLOBALS['weight_list'][$from]);
-
-        //计量数字
-        $num_str = str_replace($weight_list_arr, '', $str);
-
-        //计量单位
-        $unit = str_replace($num_list_arr, '', $str);
-        //计量单位
-        $unit = str_replace($num_str, '', $unit);
-
-        //非数字转换
-        $num = $num_str;
-        if (!is_numeric($num) && $num) {
-            $num = 0;
-            $temp = 0;
-
-            $length = mb_strlen($num_str);
-            for ($i = 0; $i < $length; $i++) {
-                $char = mb_substr($num_str, $i, 1);
-                if (isset($num_list['num'][$char])) {
-                    $temp += $num_list['num'][$char];
-                } elseif (isset($num_list['unit'][$char])) {
-                    $temp = ($temp == 0 ? 1 : $temp) * $num_list['unit'][$char];
-                    $num += $temp; // 将临时结果累加到最终结果中
-                    $temp = 0; // 重置临时结果
-                }
-            }
-
-            $num += $temp;
-        }
-
-        //只将汉字数字转换成number
-        if ($onlyconertNum) {
-            return $num . $unit;
-        }
-
-        //单位换算 直接换算成克数
-        $weight = isset($weight_list[$unit]) ? $weight_list[$unit] : 0;
-        if (isset($weight[$herb_name])) $weight = $weight[$herb_name];
-        if (!is_numeric($weight)) $weight = 0;
-
-        return $num * $weight;
-    }
-
     public function insertFormula($info) {
         $id = $this->obj->insert($this->tbl, $info);
         if (empty($id)) {
@@ -325,44 +296,89 @@ class mFormula extends mBase {
         return $id;
     }
 
-    public function updateFormula($id, $info) {
-        $res = $this->obj->update($this->tbl, $info, array('sql' => '`id`=?', 'vals' => array($id)));
+    public function insertFormulaHerb($info) {
+        $res = $this->obj->mutiInsert($this->formula_herb_tbl, $info);
         if (!$res) {
-            $this->setError('更新失败');
+            $this->setError('添加药方药材失败');
             return false;
         }
 
         return true;
     }
 
-    public function getHerbById($id) {
-        return $this->obj->select($this->herb_tbl, array('sql' => '`id`=?', 'vals' => array($id)));
-    }
+    public function createFormula($uid, $name, $source, $method, $herbs) {
+        if (empty($name)) {
+            $this->setError('药方名称不能为空');
+            return false;
+        }
+        $herbs = json_decode($herbs, true);
+        if (empty($herbs)) {
+            $this->setError('药方药材不能为空');
+            return false;
+        }
 
-    public function getHerb($name) {
-        return $this->obj->select($this->herb_tbl, array('sql' => '`name`=?', 'vals' => array($name)));
-    }
+        $data = array(
+            'uid' => $uid,
+            'name' => $name,
+            'source' => $source,
+        );
 
-    public function insertHerb($info) {
-        $herb_id = $this->obj->insert($this->herb_tbl, $info);
-        if (!$herb_id) {
-            $this->setError('添加药材失败');
+        //录入药方
+        if ($uid == 0) {
+            $org_herb = array();
+            foreach ($herbs as $key => $herb) {
+                $org_herb[$key] = array(
+                    'name' => trim($herb['name']),
+                    'num' => $this->convertToNum(trim($herb['name']), trim($herb['num'])),
+                    //'desc' => trim($herb['desc']),
+                );
+            }
+
+            //更新原方和用法
+            $data['original'] = json_encode($org_herb, JSON_UNESCAPED_UNICODE);
+            $data['method'] = $method;
+        }
+
+        //格式化药方对应的药材数据
+        $formula_herb = $this->dealForulaHerb($uid, $herbs);
+        if (!$formula_herb) {
+            $this->writeLog('formula', 'insert_error_log', '添加药方,药材初始化失败|' . $uid . '|' . json_encode($herbs, JSON_UNESCAPED_UNICODE));
             return false;
         }
 
-        return $herb_id;
+        $id = $this->insertFormula($data);
+        if (!$id) {
+            $this->writeLog('formula', 'insert_error_log', '添加药方失败|' . $uid . '|' . json_encode($data, JSON_UNESCAPED_UNICODE));
+            return false;
+        }
+
+        //创建药方对应的药材
+        foreach ($formula_herb as &$item) {
+            $item['formula_id'] = $id;
+        }
+        $res = $this->insertFormulaHerb($formula_herb);
+        if (!$res) {
+            $this->writeLog('formula', 'insert_error_log', '添加药方,药材关联失败|' . $uid . '|' . json_encode($formula_herb, JSON_UNESCAPED_UNICODE));
+            return false;
+        }
+
+        return $id;
     }
 
-    public function insertFormulaHerb($info) {
-        $res = $this->obj->mutiInsert($this->formula_herb_tbl, $info);
+    public function updateFormula($id, $info) {
+        $res = $this->obj->update($this->tbl, $info, array('sql' => '`id`=?', 'vals' => array($id)));
         if (!$res) {
-            $this->setError('添加药方药材失败');
+            $this->setError('更新失败');
             return false;
         }
 
         return true;
     }
 
+    public function getFormulaHerb($formula_id) {
+        return $this->obj->selectAll($this->formula_herb_tbl, array('sql' => '`formula_id`=?', 'vals' => array($formula_id)), 'sort asc ');
+    }
+
     public function mutiUpdateFormulaHerb($id, $new_data) {
         $old_data = $this->getFormulaHerb($id);
 
@@ -406,198 +422,71 @@ class mFormula extends mBase {
         return true;
     }
 
-    public function getFormulaHerb($formula_id) {
-        return $this->obj->selectAll($this->formula_herb_tbl, array('sql' => '`formula_id`=?', 'vals' => array($formula_id)), 'sort asc ');
-    }
-
-    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;
-        $sql = "select s.id,s.uid,s.name,s.source,COALESCE(u.use_num, 0) AS use_num,s.sort,s.create_time from {$this->tbl} as s left join {$this->formula_use_log_tbl} as u on s.id=u.formula_id and u.uid={$uid} where s.uid={$uid} order by use_num desc,s.sort desc,s.id desc limit {$offset},{$page_size}";
-        return $this->obj->execute($sql, true, true);
-    }
-
-    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['create_time'] = date('Y-m-d', strtotime($da['create_time']));
-            $da['formula'] = $formula_arr[$da['id']];
+    public function saveFormula($uid, $id, $name, $source, $method, $herbs) {
+        $herbs = json_decode($herbs, true);
+        if (empty($herbs)) {
+            $this->setError('药方药材不能为空');
+            return false;
         }
 
-        return $data;
-    }
-
-    public function getUserFormulaTotal($uid) {
-        return $this->obj->count($this->tbl, array('sql' => '`uid`=?', 'vals' => array($uid)));
-    }
-
-    public function getUserFormulaInfo($id, $uid) {
-        //药方信息
         $formula = $this->getFormulaById($id);
         if (empty($formula)) {
             $this->setError('查询不到此药方');
             return false;
         }
-        //自拟药方药方归属
-        if ($formula['uid'] != $uid) {
+        if ($formula['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 getFormulaByName($uid, $page_num, $page_size, $name) {
-        $offset = ($page_num - 1) * $page_size;
-
-        $where = $uid > 0 ? "s.uid in (0,{$uid})" : "s.uid=0";
-        if ($name) {
-            $where .= " and s.`name` like '%{$name}%'";
-        }
-
-        $sql = "select s.id,s.uid,s.name,s.source,s.original,s.method,COALESCE(u.use_num, 0) AS use_num,s.sort from {$this->tbl} as s left join {$this->formula_use_log_tbl} as u on s.id=u.formula_id and u.uid={$uid} where {$where} order by use_num desc,s.sort desc,s.id desc limit {$offset},{$page_size}";
-        return $this->obj->execute($sql, true, true);
-    }
-
-    public function getSearchFormulaList($uid, $page_num, $page_size, $name = '') {
-        $data = $this->getFormulaByName($uid, $page_num, $page_size, $name);
-
-        $formula_ids = array_column($data, 'id');
-
-        $formula_arr = $this->getFormulaHerbData($formula_ids);
-
-        foreach ($data as &$da) {
-            if (isset($formula_arr[$da['id']])) {
-                $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']);
+        $data = array();
+        if (!empty($name)) $data['name'] = $name;
+        if (!empty($source)) $data['source'] = $source;
 
-            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'];
-                }
+        //录入药方
+        if (!$uid) {
+            $org_herb = array();
+            foreach ($herbs as $key => $herb) {
+                $org_herb[$key] = array(
+                    'name' => trim($herb['name']),
+                    'num' => $this->convertToNum(trim($herb['name']), trim($herb['num'])),
+                    'desc' => trim($herb['desc']),
+                );
             }
-        }
-
-        return $data;
-    }
-
-    public function getFormulaHerbData($formula_ids) {
-        $formula_herbs = $this->getFormulasHerb($formula_ids);
-
-        $herb_ids = array_column($formula_herbs, 'herb_id');
-        $herbs = $this->getHerbs($herb_ids);
-        $herb_arr = array_column($herbs, null, 'id');
-
-        $formula_arr = array();
-        foreach ($formula_herbs as $formula_herb) {
-            $formula_arr[$formula_herb['formula_id']][] = array(
-                'id' => $formula_herb['herb_id'],
-                'name' => $herb_arr[$formula_herb['herb_id']]['name'],
-                'num' => $formula_herb['num'],
-                //'desc' => $formula_herb['desc'],
-                'num_str' => $formula_herb['num'] . 'g',
-            );
-        }
-        return $formula_arr;
-    }
 
-    public function getSearchFormulaTotal($uid, $name = '') {
-        $where = $uid > 0 ? "uid in (0,{$uid})" : "uid=0";
-        if ($name) {
-            $where .= " and `name` like '%{$name}%'";
+            //更新原方和用法
+            $data['original'] = json_encode($org_herb, JSON_UNESCAPED_UNICODE);
+            $data['method'] = $method;
         }
 
-        $sql = "select count(*) as count from $this->tbl where {$where}";
-        $res = $this->obj->execute($sql, true, true);
-        $num = $res[0]['count'];
-
-        return $num;
-    }
-
-    public function getFormulaInfo($id, $uid) {
-        //药方信息
-        $formula = $this->getFormulaById($id);
-        if (empty($formula)) {
-            $this->setError('查询不到此药方');
+        //格式化药方对应的药材数据
+        $formula_herb = $this->dealForulaHerb($uid, $herbs);
+        if (!$formula_herb) {
+            $this->writeLog('formula', 'update_error_log', '更新药方,药材初始化失败|' . $uid . '|' . json_encode($herbs, JSON_UNESCAPED_UNICODE));
             return false;
         }
 
-        //自拟药方 判断药方归属
-        if ($formula['uid'] > 0 && $formula['uid'] != $uid) {
-            $this->setError('这不是你的药方');
+        $res = $this->updateFormula($id, $data);
+        if (!$res) {
+            $this->writeLog('formula', 'update_error_log', '更新药方失败|' . $uid . '|' . json_encode($data, JSON_UNESCAPED_UNICODE));
             return false;
         }
 
-        if (!empty($formula['original'])) {
-            $original = json_decode($formula['original'], true);
-            $original = array_column($original, null, 'name');
+        //批量更新药方药材关联关系
+        foreach ($formula_herb as &$item) {
+            $item['formula_id'] = $id;
         }
-        unset($formula['original']);
-
-        $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;
+        $res = $this->mutiUpdateFormulaHerb($id, $formula_herb);
+        if (!$res) {
+            $this->writeLog('formula', 'update_error_log', '更新药方,药材关联失败|' . $uid . '|' . $id . '|' . json_encode($formula_herb, JSON_UNESCAPED_UNICODE));
+            return false;
         }
 
-        $formula['formula'] = $formulaHerb;
-
-        return $formula;
-    }
-
-    public function getFormulaById($id) {
-        return $this->obj->select($this->tbl, array('sql' => '`id`=?', 'vals' => array($id)));
+        return true;
     }
 
-    public function getHerbs($ids) {
-        return $this->obj->selectIn($this->herb_tbl, array('id' => $ids));
+    public function getHerbById($id) {
+        return $this->obj->select($this->herb_tbl, array('sql' => '`id`=?', 'vals' => array($id)));
     }
 
     public function getFormulaByIds($ids) {