request->get(); if (!empty($get['start_time']) && !empty($get['end_time'])) { $start_time = strtotime($get['start_time'] . ' ' . '00:00:00'); $end_time = strtotime($get['end_time'] . ' ' . '23:59:59'); } $query = Drug::find()->alias('d')->orderBy(['id' => SORT_DESC]); $user = \Yii::$app->user->identity; if ($user->role == UserRoleEnum::STORE_ADMIN) { //门店 $query->joinWith(['drugStoreRelationes' => function ($drug) use ($user) { $drug->alias('ds'); $drug->andWhere(['ds.store_id' => $user->store_id,'ds.is_forbid'=>0,'ds.status'=>2]); }]); } $query->andWhere(['d.type' => 5]); if (!empty($get['name'])) { $query->andWhere([ 'or', ['like', 'drug_name', $get['name']], ['like', 'drug_number', $get['name']], ['like', 'bar_code', $get['name']], ['like', 'source', $get['name'] ], ['like', 'pinyin_simple', $get['name'] ], ['like', 'drug_alias', $get['name'] ], ]); } if (!empty($start_time) && !empty($end_time)) { if ($start_time==$end_time){//筛选当天 $time=FuncHelper::getDayBE($get['start_time']); $end_time=$time; } $query->andWhere(['between', 'd.created_at', $start_time,$end_time]); } if (!empty($get['type'])) { $query->andWhere(['type' => $get['type']]); } $this->field = [ Drug::class => [ 'id', 'pinyin_simple', 'drug_name', 'source', 'type', 'is_otc', 'category_first', 'category_second', 'small_info', 'info', 'content', 'usage', 'specification', 'image', 'status', 'drug_number', 'drug_alias', 'bar_code', 'guozi_no', 'place', 'function', 'instruction', 'decotion_id' => 'decotion', 'decotion' => 'drugUseWay.name', 'unit' => 'unit.name', 'store' => 'drugStoreRelationes.store_id', 'price' => 'drugStoreRelationes.price', 'buy_price' => 'drugStoreRelationes.buy_price', 'stock' => 'drugStoreRelationes.drugStoreDrug.stock', 'is_shalving' => 'drugStoreRelationes.status', 'type_id', 'frequency_id', 'unit_id', 'time_id', 'use_frequency' => 'drugUseFrequency.name', 'use_type' => 'drugUseType.name', 'use_time' => 'drugUseTime.name', 'is_forbid'=>'drugStoreRelationes.is_forbid', ], ]; return $this->create($query, $get); } /** * @doc-name 新增产品服务包库 * @doc-param string drug_name 药名 * @doc-param string pinyin_simple 拼音首拼 * @doc-param string drug_number 编号 * @doc-param string drug_alias 别名 * @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(); $post['type']=5; $GranularForm=new ServerForm(); $GranularForm->attributes=$post; return $GranularForm->save(); } /** * @doc-name 删除产品服务包库 * @doc-param int id 药品ID */ public function actionDelete() { $post=\Yii::$app->request->post(); $this->requestValidate($post,[ ['id','required'] ]); $GranularForm=new GranularForm(); $GranularForm->attributes=$post; return $GranularForm->del(); } /** * @doc-name 修改产品服务包库 * @doc-param int id 药品ID * @doc-param string drug_name 药名 * @doc-param string pinyin_simple 拼音首拼 * @doc-param string drug_number 编号 * @doc-param string drug_alias 别名 * @doc-param int unit_id 单位 * @doc-param string place 产地 / optional * @doc-param string instruction 说明书图片 / optional */ public function actionUpdate() { $post=\Yii::$app->request->post(); $this->requestValidate($post,[ ['id','required'] ]); $GranularForm=new GranularForm(); $GranularForm->attributes=$post; return $GranularForm->update(); } /** * @doc-name 查看产品服务包库 * @doc-param int id 药品ID */ public function actionInfo() { $get=\Yii::$app->request->get(); $this->requestValidate($get,[ ['id','required'] ]); $GranularForm=new GranularForm(); $GranularForm->attributes=$get; return $GranularForm->info(); } /** * @doc-name 导入产品服务包库 * @doc-param file file 文件 */ public function actionGranularImport() { $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') . md5($file->getBaseName()) . mt_rand(1000, 9999) . '.' . $file->getExtension(); //保存文件 $file->saveAs($filename); $data = Excel::import($filename, [ 'setFirstRecordAsKeys' => true, 'getOnlySheet' => 'Sheet1', ]); $ImportForm=new ImportForm(); return $ImportForm->GranularImport($data); } else { return ['请求方式错误']; } } }