<?php 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								/**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								 *
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								 */
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								include_once(SERVER_ROOT . "/model/mBase.php");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								class mCase extends mBase {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								    private $obj;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								    private $tbl;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								    private $case_herb_tbl;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								    private $herb_tbl;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								    private $collect_log_tbl;
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    private $case_use_log_tbl;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								    public function __construct() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $this->obj = new dCase();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $this->tbl = 'tcm_case';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $this->case_herb_tbl = 'tcm_case_herb';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $this->herb_tbl = 'tcm_herb';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $this->collect_log_tbl = 'tcm_collect_log';
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        $this->case_use_log_tbl = 'tcm_case_use_log';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function createCase($name, $source, $original, $method, $herbs) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        if (empty($name)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $this->setError('药方名称不能为空');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        if (empty($source)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $this->setError('药方来源不能为空');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        if (empty($original)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $this->setError('药方原方不能为空');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        if (empty($method)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $this->setError('药方用法不能为空');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        if (empty($herbs)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $this->setError('药方药材不能为空');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        $id = $this->obj->insert($this->tbl, array('name' => $name, 'source' => $source, 'original' => $original, 'method' => $method));
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        if (!$id) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $this->setError('添加失败');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        //格式化药方对应的药材数据
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $case_herb = $this->formatCaseHerb($id, $herbs);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        //创建药方对应的药材
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $this->createCaseHerb($case_herb);
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        return $id;
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function updateCase($id, $name, $source, $original, $method, $herbs) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        if (empty($herbs)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $this->setError('药方药材不能为空');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $data = array();
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        if (!empty($name)) $data['name'] = $name;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        if (!empty($source)) $data['source'] = $source;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        if (!empty($original)) $data['original'] = $original;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        if (!empty($method)) $data['method'] = $method;
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        $res = $this->obj->update($this->tbl, $data, array('sql' => '`id`=?', 'vals' => array($id)));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        if (!$res) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $this->setError('更新失败');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        //格式化药方对应的药材数据
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $case_herb = $this->formatCaseHerb($id, $herbs);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        //更新药方对应的药材
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $this->compareCaseHerb($id, $case_herb);
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        return true;
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function formatCaseHerb($case_id, $herbs) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        $case_herb = array();
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        foreach ($herbs as $key => $item) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            $temp = array();
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            $temp['case_id'] = $case_id;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $temp['num'] = $item['num'];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $temp['sort'] = $key;
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $herb = $this->getHerbByName($item['name']);
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            if ($herb) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								                $temp['herb_id'] = $herb['id'];
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            } else {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								                $temp['herb_id'] = $this->createHerb(array('name' => $item['name']));
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $case_herb[] = $temp;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        return $case_herb;
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function getHerbByName($name) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        return $this->obj->select($this->herb_tbl, array('sql' => '`name`=?', 'vals' => array($name)));
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function createHerb($info) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        $herb_id = $this->obj->insert($this->herb_tbl, $info);
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        if (empty($herb_id)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $this->setError('添加药材失败');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        return $herb_id;
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function createCaseHerb($info) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        $res = $this->obj->mutiInsert($this->case_herb_tbl, $info);
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        if (!$res) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $this->setError('添加药方药材失败');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        return true;
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function compareCaseHerb($id, $new_data) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        $old_data = $this->getCaseHerbByCaseId($id);
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $old_num = count($old_data);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $new_num = count($new_data);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        if ($old_num >= $new_num) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            //需要删除药方对应的药材
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            foreach ($old_data as $key => $value) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								                if (!isset($new_data[$key])) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                    $res = $this->obj->delete($this->case_herb_tbl, array('sql' => '`id`=?', 'vals' => array($value['id'])));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                    if (!$res) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                        $this->setError('删除药方药材失败');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                        return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                $res = $this->obj->update($this->case_herb_tbl, $new_data[$key], array('sql' => '`id`=?', 'vals' => array($value['id'])));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                if (!$res) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                    $this->setError('更新药方药材失败');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                    return false;
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								                }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        } else {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            //需要增加药方对应的药材
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            foreach ($new_data as $key => $value) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								                if (!isset($old_data[$key])) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								                    $res = $this->obj->insert($this->case_herb_tbl, $value);
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								                    if (!$res) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                        $this->setError('添加药方药材失败');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                        return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                $res = $this->obj->update($this->case_herb_tbl, $value, array('sql' => '`id`=?', 'vals' => array($old_data[$key]['id'])));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                if (!$res) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                    $this->setError('更新药方药材失败');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								                    return false;
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								                }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        return true;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function getCaseHerbByCaseId($case_id) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        return $this->obj->selectAll($this->case_herb_tbl, array('sql' => '`case_id`=?', 'vals' => array($case_id)), 'sort asc ');
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function getCaseByName($uid, $name, $page_num, $page_size) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        $offset = ($page_num - 1) * $page_size;
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        $sql = "select c.id,c.name,c.source,c.original,c.method,u.use_num,c.sort from {$this->tbl} as c left join {$this->case_use_log_tbl} as u on c.id=u.case_id and u.uid={$uid} where c.`name` like '%{$name}%' order by u.use_num desc,c.sort desc limit {$offset},{$page_size}";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        return $this->obj->execute($sql, true, true);
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function getCaseByNameTotal($name) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        $where = array();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        if(!empty($name))  {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $sql = " `name` like '%{$name}%'";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $where = array('sql' => $sql, 'vals' => array());
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        return $this->obj->count($this->tbl, $where);
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function getCaseInfo($id) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        //药方信息
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $case = $this->getCaseById($id);
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        if (empty($case)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $this->setError('查询不到此药方');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        //药方药材信息
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $case_herb = $this->getCaseHerbByCaseId($case['id']);
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        if (empty($case_herb)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $this->setError('药方药材查询失败');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        //药材名称
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        $herb_ids = array_column($case_herb, 'herb_id');
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        $herb = $this->getHerbByIds($herb_ids);
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        if (empty($herb)) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $this->setError('药材名称查询失败');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        return array(
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            'case' => $case,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            'case_herb' => $case_herb,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            'herb' => array_column($herb,null,'id'),
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        );
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function getCaseById($id) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        return $this->obj->select($this->tbl, array('sql' => '`id`=?', 'vals' => array($id)));
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function getHerbByIds($ids) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        return $this->obj->selectIn($this->herb_tbl, array('id' => $ids));
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function getCaseByIds($ids) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        return $this->obj->selectIn($this->tbl, array('id' => $ids));
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function updateCaseUseLog($uid, $case_id) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $res = $this->obj->increase($this->case_use_log_tbl, array('sql' => '`uid`=? and `case_id`=?', 'vals' => array($uid, $case_id)), 'use_num');
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        if (!$res) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            $tool_obj = new qTool();
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            $tool_obj->trackLog('tcm', $uid . "|" . $case_id, sprintf(LOG_TRACK_SAVE_PATH, date('Y-m-d'), 'tcm_case_use_num'));
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								            $this->setError('药方使用次数更新失败');
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            return false;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        return true;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function getCollectLog($page_num, $page_size) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        $offset = ($page_num - 1) * $page_size;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        return $this->obj->selectAll($this->collect_log_tbl, array(), 'collect_time desc ', array($offset, $page_size));
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    public function getCollectLogTotal() {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								        return $this->obj->count($this->collect_log_tbl);
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								}