167 lines
5.0 KiB
PHP
167 lines
5.0 KiB
PHP
<?php
|
|
|
|
namespace admin\controllers\drug;
|
|
|
|
use admin\components\BaseAdminController;
|
|
use admin\models\forms\drug\ChineseForm;
|
|
use admin\models\forms\drug\ImportForm;
|
|
use common\models\oldDb\SystemConfig;
|
|
use moonland\phpexcel\Excel;
|
|
use yii\db\Exception;
|
|
use yii\web\UploadedFile;
|
|
|
|
/**
|
|
* @doc-module 中药饮片库
|
|
*/
|
|
class ChineseController extends BaseAdminController
|
|
{
|
|
/**
|
|
* @doc-name 煎法列表
|
|
*/
|
|
public function actionDecotion()
|
|
{
|
|
return [
|
|
['key'=>0,'value'=>'先煎'],
|
|
['key'=>1,'value'=>'后下'],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @doc-name 新增中药
|
|
* @doc-param string drug_name 药名
|
|
* @doc-param string pinyin_simple 拼音首拼
|
|
* @doc-param string drug_number 编号
|
|
* @doc-param string drug_alias 别名 / optional
|
|
* @doc-param int unit_id 单位
|
|
* @doc-param int status 状态1草稿2下架3上架
|
|
* @doc-param string place 产地 / optional
|
|
* @doc-param string instruction 说明书图片 / optional
|
|
* @doc-param json drugstore[{"drugstore_id":1,"price":100,"type":1,"stock":100},{"drugstore_id":2,"price":100,"type":1,"stock":200}] 仓库
|
|
*/
|
|
public function actionSave()
|
|
{
|
|
$post=\Yii::$app->request->post();
|
|
|
|
$ChineseForm=new ChineseForm();
|
|
$ChineseForm->attributes=$post;
|
|
return $ChineseForm->save();
|
|
}
|
|
|
|
/**
|
|
* @doc-name 修改中药
|
|
* @doc-param int id 药品ID
|
|
* @doc-param string drug_name 药名 / optional
|
|
* @doc-param string pinyin_simple 拼音首拼 / optional
|
|
* @doc-param string drug_number 编号/ optional
|
|
* @doc-param string drug_alias 别名 / optional
|
|
* @doc-param int unit_id 单位 / optional
|
|
* @doc-param int status 状态1草稿2下架3上架 / optional
|
|
* @doc-param string place 产地 / optional
|
|
* @doc-param string instruction 说明书图片 / optional
|
|
*/
|
|
public function actionUpdate()
|
|
{
|
|
$post=\Yii::$app->request->post();
|
|
$this->requestValidate($post,[
|
|
['id','required']
|
|
]);
|
|
$ChineseForm=new ChineseForm();
|
|
$ChineseForm->attributes=$post;
|
|
return $ChineseForm->update();
|
|
}
|
|
/**
|
|
* @doc-name 查看中药
|
|
* @doc-param int id 药品ID
|
|
*/
|
|
public function actionInfo()
|
|
{
|
|
$get=\Yii::$app->request->get();
|
|
$this->requestValidate($get,[
|
|
['id','required']
|
|
]);
|
|
$ChineseForm=new ChineseForm();
|
|
$ChineseForm->attributes=$get;
|
|
return $ChineseForm->info();
|
|
}
|
|
|
|
/**
|
|
* @doc-name 导入中药
|
|
* @doc-param file file 文件
|
|
*/
|
|
public function actionChineseImport()
|
|
{
|
|
$request = \Yii::$app->request;
|
|
if ($request->isPost) {
|
|
//设置最大执行时间
|
|
ini_set("max_execution_time", "360");
|
|
|
|
$file = UploadedFile::getInstanceByName('file');
|
|
if ($file->size > 5 * 1024 * 1024) {
|
|
return ['excel文件不能超过5M!'];
|
|
}
|
|
|
|
//文件名
|
|
$filename = date('His') . $file->getBaseName() . mt_rand(1000, 9999) . '.' . $file->getExtension();
|
|
|
|
//保存文件
|
|
$file->saveAs( $filename);
|
|
|
|
$data = Excel::import($filename, [
|
|
'setFirstRecordAsKeys' => true,
|
|
'getOnlySheet' => 'Sheet1',
|
|
]);
|
|
|
|
$ImportForm=new ImportForm();
|
|
return $ImportForm->ChineseImport($data);
|
|
} else {
|
|
throw new Exception('请求方式错误');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @doc-name 设置代煎费
|
|
* @doc-param int value 值
|
|
* @doc-param int type 类型1中药2西药3配方颗粒
|
|
* @doc-param int id id
|
|
*/
|
|
public function actionDaijianPrice()
|
|
{
|
|
$post=\Yii::$app->request->post();
|
|
$this->requestValidate($post,[
|
|
[['id','type','value'],'required']
|
|
]);
|
|
$t=\Yii::$app->db->beginTransaction();
|
|
|
|
$SystemConfig=SystemConfig::find()->where([
|
|
'id'=>$post['id'],'config_type'=>1,'type'=>$post['type']
|
|
])->one();
|
|
if (!$SystemConfig) throw new Exception('配置不存在');
|
|
|
|
$SystemConfig->value=$post['value'];
|
|
if (!$SystemConfig->saveOrFail()){
|
|
$t->rollBack();
|
|
throw new Exception('设置失败');
|
|
}
|
|
|
|
$t->commit();
|
|
return ['设置成功'];
|
|
}
|
|
|
|
/**
|
|
* @doc-name 配置
|
|
* @doc-return mixed @List{id,name-string-name,config-int-配置类型1代煎费配置2包邮配置,type-int-类型1中药3配方颗粒,value-int-值} 配置
|
|
* @doc-return mixed @Pagination{total-int-总数量,totalPage-int-总页数,pageSize-int-每页条数} 分页数据
|
|
*/
|
|
public function actionSystemConfig()
|
|
{
|
|
$get = \Yii::$app->request->get();
|
|
$query = SystemConfig::find();
|
|
$this->field = [
|
|
SystemConfig::class => [
|
|
'id', 'name', 'type', 'value','config_type','rule'
|
|
]
|
|
];
|
|
return $this->create($query, $get);
|
|
}
|
|
|
|
} |