request->get(); $this->requestValidate($post,[ ['status','required'] ]); $name=$post['name']; $mobile=$post['mobile']; $depart_id=$post['depart_id']; $title_id=$post['title_id']; $identity=$post['identity']; switch ($post['status']){ case 0: $query = ServiceUser::find()->alias('su')->where([ 'su.role' => UserRoleEnum::DRUG, 'su.status' => UserStatusEnum::WAIT_JH, 'su.is_delete' => 0 ]); break; case 1: $query = ServiceUser::find()->alias('su')->where([ 'su.role' => UserRoleEnum::DRUG, 'su.status' => UserStatusEnum::WAIT_SH, 'su.is_delete' => 0 ]); break; case 2: $query = ServiceUser::find()->alias('su')->where([ 'su.role' => UserRoleEnum::DRUG, 'su.status' => UserStatusEnum::OK, 'su.is_delete' => 0 ]); break; case 3: $query = ServiceUser::find()->alias('su')->where([ 'su.role' => UserRoleEnum::DRUG, 'su.status' => UserStatusEnum::REFUSED, 'su.is_delete' => 0 ]); break; case 4: $query = ServiceUser::find()->alias('su')->where([ 'su.role' => UserRoleEnum::DRUG, 'su.status' =>[ UserStatusEnum::REFUSED,UserStatusEnum::OK, UserStatusEnum::WAIT_SH], 'su.is_delete' => 0 ]); break; default: throw new \yii\db\Exception('参数错误'); } $departs = Department::find()->select('id,name')->where(['<>', 'id', 0])->asArray()->all(); $id = 0; foreach ($departs as $v) { if (in_array($depart_id, $v) == true) { $id = $v['id']; } } $query->joinWith(['drugInfo' => function ($q) use ($name,$id,$mobile, $depart_id, $title_id,$identity) { $q->alias('d'); if (!empty($name)) {//搜索姓名 $q->andWhere(['like', 'd.name', $name]); } if (!empty($mobile)) {//手机号 $q->andWhere(['d.mobile'=>$mobile]); } if (!empty($depart_id)) {//科室 $q->andWhere(['d.depart_id'=>$depart_id]); } if (!empty($title_id)) {//职称搜索 $q->andWhere(['d.title_id' => $title_id]); } if (!empty($identity)) {//身份1中医2西医 $q->andWhere(['d.identity' => $identity]); } }]); $this->field = [ ServiceUser::class => [ 'id','reason','status','created_at','updated_at', 'identity'=>'drugInfo.identity', 'depart_id'=>'drugInfo.depart_id', 'avatar' => 'drugInfo.avatar', 'name' => 'drugInfo.name', 'mobile', 'depart' => 'drugInfo.depart.name', 'title1' => 'drugInfo.titles.name', 'drugIdentity' => 'drugIdentity', 'drugPracticing' => 'drugPracticing', 'type'=>'drugInfo.type', 'id_card'=>'drugInfo.idcard' ], ]; return $this->create($query, $post); } /** * @doc-name 药师审核通过操作+拒绝操作(入驻) * @doc-desc 当status为2时必填reason * @doc-param int status 状态1审核通过2拒绝操作 * @doc-param string reason 拒绝的原因 / optional * @doc-param int drug_id 药师id */ public function actionIntoCheck() { $post = \Yii::$app->request->get(); $this->requestValidate($post,[ [['status','drug_id'],'required'] ]); $is_exist = ServiceUser::find()->alias('su')->where([ 'id'=>$post['drug_id'], 'su.role' => UserRoleEnum::DRUG, 'su.status' => UserStatusEnum::WAIT_SH, 'su.is_delete' => 0 ])->one(); switch ($post['status']){ case 1: if (!$is_exist){ throw new \Exception('药师不存在'); } $is_exist->status=UserStatusEnum::OK; $is_exist->updated_at=time(); if (!$is_exist->saveOrFail()){ throw new \Exception('error'); } return ['药师审核通过']; case 2: if (!$is_exist){ throw new \Exception('药师不存在'); } if (empty($post['reason'])){ throw new \Exception('拒绝原因不能为空'); } $is_exist->status=UserStatusEnum::REFUSED; $is_exist->updated_at=time(); $is_exist->reason=$post['reason']; $is_exist->saveOrFail(); return ['药师审核拒绝']; default: throw new \yii\db\Exception('参数错误'); } } /** * @doc-name 药师详情 * @doc-param int drug_id 药师id */ public function actionInfo() { $post = \Yii::$app->request->post(); $this->requestValidate($post,[ ['drug_id','required'] ]); $ServiceUser = ServiceUser::find()->alias('su')->where([ 'id'=>$post['drug_id'], 'su.role' => UserRoleEnum::DRUG, 'su.is_delete' => 0 ])->with(['drugInfo','drugIdentity','drugPracticing'])->asArray()->one(); if (!$ServiceUser){ throw new \Exception('药师不存在'); }; return $ServiceUser; } /** * @doc-name 设置药师初审或复审 * @doc-param int drug_id 药师ID * @doc-param int type 1初审2复审 */ public function actionSetFirstAgain() { $get= \Yii::$app->request->get(); $this->requestValidate($get,[ [['drug_id','type'],'required'] ]); $ServiceUser = ServiceUser::find()->alias('su')->where([ 'id'=>$get['drug_id'], 'su.role' => UserRoleEnum::DRUG, 'status'=>UserStatusEnum::OK, 'su.is_delete' => 0 ])->one(); if (!$ServiceUser){ throw new \Exception('药师不存在'); } $PharmacistrInfo=PharmacistrInfo::find()->where([ 'su_id'=>$get['drug_id'] ])->one(); if (!$PharmacistrInfo){ throw new \Exception('药师没完善信息'); } $PharmacistrInfo->type=$get['type']; $PharmacistrInfo->saveOrFail(); return ['设置成功']; } }