Files
xk-api-yii/admin/controllers/drug/ChineseController.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);
}
}