Files
xk-api-yii/admin/controllers/base/DiagnoseController.php

116 lines
3.3 KiB
PHP

<?php
namespace admin\controllers\base;
use admin\components\BaseAdminController;
use admin\models\forms\drug\DiagnoseForm;
use common\modelsgii\oldDb\Disease;
use moonland\phpexcel\Excel;
use yii\db\Exception;
use yii\web\UploadedFile;
/**
* @doc-module 诊断症状
*/
class DiagnoseController extends BaseAdminController
{
/**
* @doc-name 诊断症状列表
* @doc-param string name 名称 / optional
* @doc-param string major_number 主编号 / optional
* @doc-param string ref_number 次编号 / optional
*/
public function actionList()
{
$get = \Yii::$app->request->get();
$query = Disease::find()->where(['is_delete' => 0]);
if (!empty($get['name'])){
$query->andWhere([
'like', 'name',$get['name']
]);
}
if (!empty($get['major_number'])){
$query->andWhere([
'major_number'=>$get['major_number']
]);
}
if (!empty($get['ref_number'])){
$query->andWhere([
'ref_number'=>$get['ref_number']
]);
}
$this->field = [
Disease::class => [
'id', 'diagnose_code','name', 'major_number', 'ref_number'
]
];
return $this->create($query, $get);
}
/**
* @doc-name 新增或编辑诊断症状
* @doc-desc 传ID则编辑
* @doc-param int ID 症状id / optional
* @doc-param string name 名字
* @doc-param string diagnose_code 疾病诊断代码 / optional
* @doc-param string major_number 主编号 / optional
* @doc-param string ref_number 次编号 / optional
*/
public function actionSave()
{
$post = \Yii::$app->request->post();
$DiagnoseForm = new DiagnoseForm();
$DiagnoseForm->attributes = $post;
return $DiagnoseForm->save();
}
/**
* @doc-name 删除诊断症状
* @doc-param int id 诊断症状ID
*/
public function actionDel()
{
$post = \Yii::$app->request->post();
$this->requestValidate($post, [
['id', 'required']
]);
$DiagnoseForm = new DiagnoseForm();
$DiagnoseForm->attributes = $post;
return $DiagnoseForm->del();
}
/**
* @doc-name 导入诊断症状
* @doc-param file file 文件
*/
public function actionImport()
{
$request = \Yii::$app->request;
if ($request->isPost) {
//设置最大执行时间
ini_set("max_execution_time", "360");
$file = UploadedFile::getInstanceByName('file');
if ($file->size > 5 * 1024 * 1024) {
throw new Exception('excel文件不能超过5M!');
}
//文件名
$filename = date('His') . md5($file->getBaseName()) . mt_rand(1000, 9999) . '.' . $file->getExtension();
//保存文件
$file->saveAs($filename);
$data = Excel::import($filename, [
'setFirstRecordAsKeys' => true,
'getOnlySheet' => 'Sheet1',
]);
$DiagnoseForm = new DiagnoseForm();
return $DiagnoseForm->export($data);
} else {
throw new Exception('请求方式错误');
}
}
}