From 97a7a6dcf9c57e9307f45e7e58fbe557f3d4a402 Mon Sep 17 00:00:00 2001 From: wucongxing <815046773@qq.com> Date: Tue, 10 Oct 2023 17:03:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8C=BB=E7=94=9F=E7=AB=AF-?= =?UTF-8?q?=E5=8C=BB=E7=94=9F=E9=97=AE=E8=AF=8A=E5=BC=80=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=BC=80=E5=90=AF=E9=97=AE?= =?UTF-8?q?=E8=AF=8A=E9=85=8D=E7=BD=AE=E5=AD=97=E6=AE=B5=EF=BC=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/DoctorInquiryService.php | 101 +++++++++++--------------- 1 file changed, 44 insertions(+), 57 deletions(-) diff --git a/app/Services/DoctorInquiryService.php b/app/Services/DoctorInquiryService.php index 290d267..db8cd3a 100644 --- a/app/Services/DoctorInquiryService.php +++ b/app/Services/DoctorInquiryService.php @@ -163,75 +163,62 @@ class DoctorInquiryService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, "请先进行绑定结算银行卡"); } - // 医生接诊配置表 - $params = array(); - $params['doctor_id'] = $user_info['client_user_id']; - $params['inquiry_type'] = $inquiry_type; - $params['inquiry_mode'] = $inquiry_mode; - $doctor_inquiry_config = DoctorInquiryConfig::getOne($params); - if (empty($doctor_inquiry_config)) { - if ($inquiry_type != 2) { - // 快速问诊可能会存在未创建的情况 - return fail(HttpEnumCode::HTTP_ERROR, "请先完善问诊配置"); - } - } - Db::beginTransaction(); + try { + // 医生接诊配置表 $params = array(); $params['doctor_id'] = $user_info['client_user_id']; + $params['inquiry_type'] = $inquiry_type; + $params['inquiry_mode'] = $inquiry_mode; + $doctor_inquiry_config = DoctorInquiryConfig::getOne($params); + if (empty($doctor_inquiry_config)) { + // 无问诊配置,快速问诊创建问诊配置并打开问诊。其余类型直接返回错误 + if ($inquiry_type != 2){ + // 快速问诊可能会存在未创建的情况 + Db::rollBack(); + return fail(HttpEnumCode::HTTP_ERROR, "请先完善问诊配置"); + } - $data = array(); - if ($inquiry_type == 1) { - // 专家 - $data['is_img_expert_reception'] = $is_open; - $data['is_online'] = $is_open; - } elseif ($inquiry_type == 2) { - // 快速 - $data['is_img_quick_reception'] = $is_open; - } elseif ($inquiry_type == 3) { - // 公益 - $data['is_img_welfare_reception'] = $is_open; - } - - UserDoctor::editUserDoctor($params, $data); - - if ($inquiry_type == 2 && $is_open == 1) { + // 获取系统问诊配置表 $params = array(); - $params['doctor_id'] = $user_info['client_user_id']; $params['inquiry_type'] = $inquiry_type; $params['inquiry_mode'] = $inquiry_mode; - $doctor_inquiry_config = DoctorInquiryConfig::getOne($params); - if (empty($doctor_inquiry_config)) { - // 系统问诊配置表 - $params = array(); - $params['inquiry_type'] = $inquiry_type; - $params['inquiry_mode'] = $inquiry_mode; - $system_inquiry_config = SystemInquiryConfig::getOne($params); - if (empty($system_inquiry_config)) { - Db::rollBack(); - return fail(HttpEnumCode::SERVER_ERROR); - } - - // 快速问诊,需创建 - $data = array(); - $data['doctor_id'] = $user_info['client_user_id']; - $data['system_inquiry_config_id'] = $system_inquiry_config['system_inquiry_config_id']; - $data['inquiry_type'] = $inquiry_type; - $data['inquiry_mode'] = $inquiry_mode; - $data['work_num_day'] = $system_inquiry_config['max_work_num_day'] ?: 0; - $data['inquiry_price'] = $system_inquiry_config['inquiry_price']; - - $doctor_inquiry_config = DoctorInquiryConfig::addInquiryConfig($data); - if (empty($doctor_inquiry_config)) { - Db::rollBack(); - return fail(HttpEnumCode::SERVER_ERROR); - } + $system_inquiry_config = SystemInquiryConfig::getOne($params); + if (empty($system_inquiry_config)) { + Db::rollBack(); + return fail(HttpEnumCode::SERVER_ERROR); } + + // 快速问诊,需创建 + $data = array(); + $data['doctor_id'] = $user_info['client_user_id']; + $data['system_inquiry_config_id'] = $system_inquiry_config['system_inquiry_config_id']; + $data['inquiry_type'] = $inquiry_type; + $data['inquiry_mode'] = $inquiry_mode; + $data['is_enable'] = 1; // 是否启用(0:否 1:是) + $data['last_enable_method'] = 1; // 最后开启方式(1:自己 2:后台) + $data['work_num_day'] = $system_inquiry_config['max_work_num_day'] ?: 0; + $data['inquiry_price'] = $system_inquiry_config['inquiry_price']; + + $doctor_inquiry_config = DoctorInquiryConfig::addInquiryConfig($data); + if (empty($doctor_inquiry_config)) { + Db::rollBack(); + return fail(HttpEnumCode::SERVER_ERROR); + } + }else{ + // 已存在问诊配置,进行修改 + $params = array(); + $params['inquiry_config_id'] = $doctor_inquiry_config["inquiry_config_id"]; + + $data = array(); + $data['is_enable'] = $is_open; + $data['last_enable_method'] = 1; + DoctorInquiryConfig::editInquiryConfig($params,$data); } Db::commit(); - } catch (\Exception $e) { + }catch (\Throwable $e){ Db::rollBack(); return fail(HttpEnumCode::HTTP_ERROR, $e->getMessage()); }