diff --git a/app/Model/DoctorInquiryPriceRecord.php b/app/Model/DoctorInquiryPriceRecord.php index fcc49e4..cef5aa2 100644 --- a/app/Model/DoctorInquiryPriceRecord.php +++ b/app/Model/DoctorInquiryPriceRecord.php @@ -57,4 +57,14 @@ class DoctorInquiryPriceRecord extends Model { return self::where($params)->count(); } + + /** + * 新增 + * @param array $data + * @return DoctorInquiryPriceRecord|\Hyperf\Database\Model\Model + */ + public static function addRecord(array $data): \Hyperf\Database\Model\Model|DoctorInquiryPriceRecord + { + return self::create($data); + } } diff --git a/app/Services/DoctorInquiryService.php b/app/Services/DoctorInquiryService.php index 0254046..9eda2c5 100644 --- a/app/Services/DoctorInquiryService.php +++ b/app/Services/DoctorInquiryService.php @@ -41,14 +41,14 @@ class DoctorInquiryService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, "请先进行实名认证"); } - if ($doctor['idcard_status'] != 1){ - return fail(HttpEnumCode::HTTP_ERROR, "请先进行实名认证"); - } - if ($doctor['iden_auth_status'] != 1){ return fail(HttpEnumCode::HTTP_ERROR, "请先进行身份认证"); } + if ($doctor['is_bind_bank'] != 1){ + return fail(HttpEnumCode::HTTP_ERROR, "请先进行绑定结算银行卡"); + } + // 接诊开关 $result['info']['is_open'] = 0; if ($inquiry_type == 1){ @@ -148,14 +148,14 @@ class DoctorInquiryService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, "请先进行实名认证"); } - if ($doctor['idcard_status'] != 1){ - return fail(HttpEnumCode::HTTP_ERROR, "请先进行实名认证"); - } - if ($doctor['iden_auth_status'] != 1){ return fail(HttpEnumCode::HTTP_ERROR, "请先进行身份认证"); } + if ($doctor['is_bind_bank'] != 1){ + return fail(HttpEnumCode::HTTP_ERROR, "请先进行绑定结算银行卡"); + } + // 医生接诊配置表 $params = array(); $params['doctor_id'] = $user_info['client_user_id']; @@ -254,14 +254,14 @@ class DoctorInquiryService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, "请先进行实名认证"); } - if ($doctor['idcard_status'] != 1){ - return fail(HttpEnumCode::HTTP_ERROR, "请先进行实名认证"); - } - if ($doctor['iden_auth_status'] != 1){ return fail(HttpEnumCode::HTTP_ERROR, "请先进行身份认证"); } + if ($doctor['is_bind_bank'] != 1){ + return fail(HttpEnumCode::HTTP_ERROR, "请先进行绑定结算银行卡"); + } + // 系统问诊配置表 $params = array(); $params['inquiry_type'] = $inquiry_type; @@ -310,7 +310,45 @@ class DoctorInquiryService extends BaseService Db::rollBack(); return fail(HttpEnumCode::SERVER_ERROR); } + + // 记录修改记录 + $data = array(); + $data['doctor_id'] = $user_info['client_user_id']; + $data['inquiry_config_id'] = $doctor_inquiry_config['inquiry_config_id']; + $data['old_price'] = 0; + $data['new_price'] = $inquiry_price; + $doctor_inquiry_price_record = DoctorInquiryPriceRecord::addRecord($data); + if (empty($doctor_inquiry_price_record)){ + Db::rollBack(); + return fail(HttpEnumCode::SERVER_ERROR); + } }else{ + // 在线问诊限制在线问诊验证修改次数 + if ($inquiry_type == 1 && $doctor_inquiry_config['inquiry_price'] != $inquiry_price){ + // 获取月份内总调整次数 + $params = array(); + $params[] = ['doctor_id','=',$user_info['client_user_id']]; + $params[] = ['inquiry_config_id','=',$doctor_inquiry_config['inquiry_config_id']]; + $params[] = ['created_at','>',date('Y-m-01',time())]; + $modify_month_count = DoctorInquiryPriceRecord::getCount($params); + if ($modify_month_count >= 5){ + // 每自然月仅限调整5次 + Db::rollBack(); + return fail(HttpEnumCode::HTTP_ERROR,"问诊价格每自然月仅限调整5次"); + } + + $params = array(); + $params[] = ['doctor_id','=',$user_info['client_user_id']]; + $params[] = ['inquiry_config_id','=',$doctor_inquiry_config['inquiry_config_id']]; + $params[] = ['created_at','>',date('Y-m-d',time())]; + $modify_month_count = DoctorInquiryPriceRecord::getCount($params); + if ($modify_month_count >= 1){ + // 问诊价格每日仅限调整1次 + Db::rollBack(); + return fail(HttpEnumCode::HTTP_ERROR,"问诊价格每日仅限调整1次"); + } + } + // 修改 if ($doctor_inquiry_config['work_num_day'] != $work_num_day || $doctor_inquiry_config['inquiry_price'] != $inquiry_price){ $params = array(); @@ -321,6 +359,18 @@ class DoctorInquiryService extends BaseService $data['inquiry_price'] = $inquiry_price; DoctorInquiryConfig::editInquiryConfig($params,$data); + + // 记录修改记录 + $data = array(); + $data['doctor_id'] = $user_info['client_user_id']; + $data['inquiry_config_id'] = $doctor_inquiry_config['inquiry_config_id']; + $data['old_price'] = $doctor_inquiry_config['inquiry_price']; + $data['new_price'] = $inquiry_price; + $doctor_inquiry_price_record = DoctorInquiryPriceRecord::addRecord($data); + if (empty($doctor_inquiry_price_record)){ + Db::rollBack(); + return fail(HttpEnumCode::SERVER_ERROR); + } } } diff --git a/config/routes.php b/config/routes.php index 8cbbbf8..a5abaae 100644 --- a/config/routes.php +++ b/config/routes.php @@ -74,6 +74,12 @@ Router::addGroup('/doctor', function () { // 修改医生问诊配置 Router::put('/config', [UserDoctorController::class, 'putInquiryConfig']); }); + + //银行卡 + Router::addGroup('/bank', function () { + // 获取医生银行卡 + Router::get('/card', [UserDoctorController::class, 'getInquiryConfig']); + }); });