diff --git a/app/Services/DoctorInquiryService.php b/app/Services/DoctorInquiryService.php index 9fae325..7180ce6 100644 --- a/app/Services/DoctorInquiryService.php +++ b/app/Services/DoctorInquiryService.php @@ -286,21 +286,6 @@ class DoctorInquiryService extends BaseService return fail(HttpEnumCode::SERVER_ERROR); } - // 验证-每日接诊数量 - if ($work_num_day > $system_inquiry_config['max_work_num_day']) { - return fail(HttpEnumCode::HTTP_ERROR, "超出每日最大接诊数量"); - } - - // 验证-问诊价格 - // 义诊时不判断,义诊为选择价格,价格后台可调节 - if ($inquiry_type == 3) { - if (!empty($system_inquiry_config['min_inquiry_price']) && !empty($system_inquiry_config['max_inquiry_price'])) { - if ($inquiry_price > $system_inquiry_config['max_inquiry_price'] || $inquiry_price < $system_inquiry_config['min_inquiry_price']) { - return fail(HttpEnumCode::HTTP_ERROR, "问诊价格填写错误"); - } - } - } - // 开启事务锁 Db::beginTransaction(); try { @@ -311,6 +296,19 @@ class DoctorInquiryService extends BaseService $params['inquiry_mode'] = $inquiry_mode; $doctor_inquiry_config = DoctorInquiryConfig::getOne($params); if (empty($doctor_inquiry_config)) { + if ($work_num_day > $system_inquiry_config['max_work_num_day']) { + return fail(HttpEnumCode::HTTP_ERROR, "超出每日最大接诊数量"); + } + + // 验证问诊价格 义诊时不判断,义诊为选择价格,价格后台可调节 + if ($inquiry_type != 3) { + if (!empty($system_inquiry_config['min_inquiry_price']) && !empty($system_inquiry_config['max_inquiry_price'])) { + if ($inquiry_price > $system_inquiry_config['max_inquiry_price'] || $inquiry_price < $system_inquiry_config['min_inquiry_price']) { + return fail(HttpEnumCode::HTTP_ERROR, "问诊价格填写错误"); + } + } + } + // 创建 $data = array(); $data['doctor_id'] = $user_info['client_user_id']; @@ -364,15 +362,35 @@ class DoctorInquiryService extends BaseService } } - // 修改 - if ($doctor_inquiry_config['work_num_day'] != $work_num_day || $doctor_inquiry_config['inquiry_price'] != $inquiry_price) { - $params = array(); - $params['inquiry_config_id'] = $doctor_inquiry_config['inquiry_config_id']; + $params = array(); + $params['inquiry_config_id'] = $doctor_inquiry_config['inquiry_config_id']; - $data = array(); + $data = array(); + + if ($doctor_inquiry_config['work_num_day'] != $work_num_day){ + // 新设置的每日接诊数量大于了系统配置的最高接诊数量 + if ($work_num_day > $system_inquiry_config['max_work_num_day']){ + Db::rollBack(); + return fail(HttpEnumCode::HTTP_ERROR, "超出每日最大接诊数量"); + } $data['work_num_day'] = $work_num_day; - $data['inquiry_price'] = $inquiry_price; + } + if ($doctor_inquiry_config['inquiry_price'] != $inquiry_price){ + // 验证问诊价格 义诊时不判断,义诊为选择价格,价格后台可调节 + if ($inquiry_type != 3) { + if (!empty($system_inquiry_config['min_inquiry_price']) && !empty($system_inquiry_config['max_inquiry_price'])) { + if ($inquiry_price > $system_inquiry_config['max_inquiry_price'] || $inquiry_price < $system_inquiry_config['min_inquiry_price']) { + Db::rollBack(); + return fail(HttpEnumCode::HTTP_ERROR, "问诊价格填写错误"); + } + } + } + + $data['inquiry_price'] = $inquiry_price; + } + + if (!empty($data)){ DoctorInquiryConfig::editInquiryConfig($params, $data); // 记录修改记录