新增未开发路由

This commit is contained in:
2023-03-08 11:44:02 +08:00
parent 8829a29da3
commit 1f83f44eed
11 changed files with 568 additions and 170 deletions
+85 -83
View File
@@ -38,27 +38,27 @@ class DoctorInquiryService extends BaseService
return fail(HttpEnumCode::HTTP_ERROR, "未知医生");
}
if ($doctor['idcard_status'] != 1){
if ($doctor['idcard_status'] != 1) {
return fail(HttpEnumCode::HTTP_ERROR, "请先进行实名认证");
}
if ($doctor['iden_auth_status'] != 1){
if ($doctor['iden_auth_status'] != 1) {
return fail(HttpEnumCode::HTTP_ERROR, "请先进行身份认证");
}
if ($doctor['is_bind_bank'] != 1){
if ($doctor['is_bind_bank'] != 1) {
return fail(HttpEnumCode::HTTP_ERROR, "请先进行绑定结算银行卡");
}
// 接诊开关
$result['info']['is_open'] = 0;
if ($inquiry_type == 1){
if ($inquiry_type == 1) {
// 专家
$result['info']['is_open'] = $doctor['is_img_expert_reception'];
}elseif ($inquiry_type == 2){
} elseif ($inquiry_type == 2) {
// 快速
$result['info']['is_open'] = $doctor['is_img_quick_reception'];
}elseif ($inquiry_type == 3){
} elseif ($inquiry_type == 3) {
// 公益
$result['info']['is_open'] = $doctor['is_img_welfare_reception'];
}
@@ -74,7 +74,7 @@ class DoctorInquiryService extends BaseService
$params['inquiry_type'] = $inquiry_type;
$params['inquiry_mode'] = $inquiry_mode;
$system_inquiry_config = SystemInquiryConfig::getOne($params);
if (empty($system_inquiry_config)){
if (empty($system_inquiry_config)) {
return fail(HttpEnumCode::SERVER_ERROR);
}
@@ -84,19 +84,19 @@ class DoctorInquiryService extends BaseService
$params['inquiry_type'] = $inquiry_type;
$params['inquiry_mode'] = $inquiry_mode;
$doctor_inquiry_config = DoctorInquiryConfig::getOne($params);
if (empty($doctor_inquiry_config)){
if (empty($doctor_inquiry_config)) {
// 接诊价格
$result['info']['inquiry_price'] = $system_inquiry_config['inquiry_price'] ?: 0;
if ($inquiry_type == 3){
if ($inquiry_type == 3) {
// 公益问诊,存在价格档次,默认第一档
$inquiry_price = explode(',',$system_inquiry_config['inquiry_price']);
$inquiry_price = explode(',', $system_inquiry_config['inquiry_price']);
$result['info']['inquiry_price'] = $inquiry_price[0];
}
}else{
} else {
// 接诊价格
$result['info']['inquiry_price'] = $doctor_inquiry_config['inquiry_price'] ?: 0;
if ($inquiry_type == 2){
if ($inquiry_type == 2) {
// 快速-系统配置
$result['info']['inquiry_price'] = $system_inquiry_config['inquiry_price'];
}
@@ -124,9 +124,8 @@ class DoctorInquiryService extends BaseService
// 系统价格(公益问诊)
$result['config']['system_inquiry_price'] = [];
if ($inquiry_type == 3)
{
$result['config']['system_inquiry_price'] = explode(',',$system_inquiry_config['inquiry_price']);
if ($inquiry_type == 3) {
$result['config']['system_inquiry_price'] = explode(',', $system_inquiry_config['inquiry_price']);
}
return success($result);
@@ -152,15 +151,15 @@ class DoctorInquiryService extends BaseService
return fail(HttpEnumCode::HTTP_ERROR, "未知医生");
}
if ($doctor['idcard_status'] != 1){
if ($doctor['idcard_status'] != 1) {
return fail(HttpEnumCode::HTTP_ERROR, "请先进行实名认证");
}
if ($doctor['iden_auth_status'] != 1){
if ($doctor['iden_auth_status'] != 1) {
return fail(HttpEnumCode::HTTP_ERROR, "请先进行身份认证");
}
if ($doctor['is_bind_bank'] != 1){
if ($doctor['is_bind_bank'] != 1) {
return fail(HttpEnumCode::HTTP_ERROR, "请先进行绑定结算银行卡");
}
@@ -170,8 +169,8 @@ class DoctorInquiryService extends BaseService
$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){
if (empty($doctor_inquiry_config)) {
if ($inquiry_type != 2) {
// 快速问诊可能会存在未创建的情况
return fail(HttpEnumCode::HTTP_ERROR, "请先完善问诊配置");
}
@@ -183,43 +182,50 @@ class DoctorInquiryService extends BaseService
$params['doctor_id'] = $user_info['client_user_id'];
$data = array();
if ($inquiry_type == 1){
if ($inquiry_type == 1) {
// 专家
$data['is_img_expert_reception'] = $is_open;
}elseif ($inquiry_type == 2){
} elseif ($inquiry_type == 2) {
// 快速
$data['is_img_quick_reception'] = $is_open;
}elseif ($inquiry_type == 3){
} elseif ($inquiry_type == 3) {
// 公益
$data['is_img_welfare_reception'] = $is_open;
}
UserDoctor::editUserDoctor($params,$data);
UserDoctor::editUserDoctor($params, $data);
if ($inquiry_type == 2){
// 系统问诊配置表
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;
$system_inquiry_config = SystemInquiryConfig::getOne($params);
if (empty($system_inquiry_config)){
Db::rollBack();
return fail(HttpEnumCode::SERVER_ERROR);
}
$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'];
// 快速问诊,需创建
$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);
$doctor_inquiry_config = DoctorInquiryConfig::addInquiryConfig($data);
if (empty($doctor_inquiry_config)) {
Db::rollBack();
return fail(HttpEnumCode::SERVER_ERROR);
}
}
}
@@ -245,7 +251,7 @@ class DoctorInquiryService extends BaseService
$inquiry_price = $this->request->input('inquiry_price');// 接诊价格
$work_num_day = $this->request->input('work_num_day');// 每日接诊数量
if ($inquiry_type == 2){
if ($inquiry_type == 2) {
// 快速问诊无需配置
return fail();
}
@@ -258,15 +264,15 @@ class DoctorInquiryService extends BaseService
return fail(HttpEnumCode::HTTP_ERROR, "未知医生");
}
if ($doctor['idcard_status'] != 1){
if ($doctor['idcard_status'] != 1) {
return fail(HttpEnumCode::HTTP_ERROR, "请先进行实名认证");
}
if ($doctor['iden_auth_status'] != 1){
if ($doctor['iden_auth_status'] != 1) {
return fail(HttpEnumCode::HTTP_ERROR, "请先进行身份认证");
}
if ($doctor['is_bind_bank'] != 1){
if ($doctor['is_bind_bank'] != 1) {
return fail(HttpEnumCode::HTTP_ERROR, "请先进行绑定结算银行卡");
}
@@ -275,21 +281,21 @@ class DoctorInquiryService extends BaseService
$params['inquiry_type'] = $inquiry_type;
$params['inquiry_mode'] = $inquiry_mode;
$system_inquiry_config = SystemInquiryConfig::getOne($params);
if (empty($system_inquiry_config)){
if (empty($system_inquiry_config)) {
return fail(HttpEnumCode::SERVER_ERROR);
}
// 验证-每日接诊数量
if ($work_num_day > $system_inquiry_config['max_work_num_day']){
return fail(HttpEnumCode::HTTP_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,"问诊价格填写错误");
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, "问诊价格填写错误");
}
}
}
@@ -303,7 +309,7 @@ class DoctorInquiryService extends BaseService
$params['inquiry_type'] = $inquiry_type;
$params['inquiry_mode'] = $inquiry_mode;
$doctor_inquiry_config = DoctorInquiryConfig::getOne($params);
if (empty($doctor_inquiry_config)){
if (empty($doctor_inquiry_config)) {
// 创建
$data = array();
$data['doctor_id'] = $user_info['client_user_id'];
@@ -314,7 +320,7 @@ class DoctorInquiryService extends BaseService
$data['inquiry_price'] = $inquiry_price;
$doctor_inquiry_config = DoctorInquiryConfig::addInquiryConfig($data);
if (empty($doctor_inquiry_config)){
if (empty($doctor_inquiry_config)) {
Db::rollBack();
return fail(HttpEnumCode::SERVER_ERROR);
}
@@ -326,39 +332,39 @@ class DoctorInquiryService extends BaseService
$data['old_price'] = 0;
$data['new_price'] = $inquiry_price;
$doctor_inquiry_price_record = DoctorInquiryPriceRecord::addRecord($data);
if (empty($doctor_inquiry_price_record)){
if (empty($doctor_inquiry_price_record)) {
Db::rollBack();
return fail(HttpEnumCode::SERVER_ERROR);
}
}else{
} else {
// 在线问诊限制在线问诊验证修改次数
if ($inquiry_type == 1 && $doctor_inquiry_config['inquiry_price'] != $inquiry_price){
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())];
$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){
if ($modify_month_count >= 5) {
// 每自然月仅限调整5次
Db::rollBack();
return fail(HttpEnumCode::HTTP_ERROR,"问诊价格每自然月仅限调整5次");
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())];
$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){
if ($modify_month_count >= 1) {
// 问诊价格每日仅限调整1次
Db::rollBack();
return fail(HttpEnumCode::HTTP_ERROR,"问诊价格每日仅限调整1次");
return fail(HttpEnumCode::HTTP_ERROR, "问诊价格每日仅限调整1次");
}
}
// 修改
if ($doctor_inquiry_config['work_num_day'] != $work_num_day || $doctor_inquiry_config['inquiry_price'] != $inquiry_price){
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'];
@@ -366,7 +372,7 @@ class DoctorInquiryService extends BaseService
$data['work_num_day'] = $work_num_day;
$data['inquiry_price'] = $inquiry_price;
DoctorInquiryConfig::editInquiryConfig($params,$data);
DoctorInquiryConfig::editInquiryConfig($params, $data);
// 记录修改记录
$data = array();
@@ -375,7 +381,7 @@ class DoctorInquiryService extends BaseService
$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)){
if (empty($doctor_inquiry_price_record)) {
Db::rollBack();
return fail(HttpEnumCode::SERVER_ERROR);
}
@@ -398,37 +404,33 @@ class DoctorInquiryService extends BaseService
* @param string|int $doctor_id 医生id
* @return int
*/
public function getDoctorInquiryPrice(string|int $inquiry_type, string|int $inquiry_mode,string|int $doctor_id): int
public function getDoctorInquiryPrice(string|int $inquiry_type, string|int $inquiry_mode, string|int $doctor_id): int
{
if (empty($doctor_id)){
throw new BusinessException();
}
// 接诊类型(1:专家问诊 2:快速问诊 3:公益问诊)
if ($inquiry_type == 1 || $inquiry_type == 3){
if ($inquiry_type == 1 || $inquiry_type == 3) {
// 专家-公益
$params = array();
$params['doctor_id'] = $doctor_id;
$params['inquiry_type'] = $inquiry_type;
$params['inquiry_mode'] = $inquiry_mode;
$doctor_inquiry_config = DoctorInquiryConfig::getOne($params);
if (empty($doctor_inquiry_config)){
throw new BusinessException( "当前医生未开通对应服务,请重新选择",HttpEnumCode::HTTP_ERROR);
if (empty($doctor_inquiry_config)) {
throw new BusinessException("当前医生未开通对应服务,请重新选择", HttpEnumCode::HTTP_ERROR);
}
$inquiry_price = $doctor_inquiry_config['inquiry_price'] ?: 0;
}elseif($inquiry_type == 2 || $inquiry_type == 4){
} elseif ($inquiry_type == 2 || $inquiry_type == 4) {
// 快速-购药
$params = array();
$params['inquiry_type'] = $inquiry_type;
$params['inquiry_mode'] = $inquiry_mode;
$system_inquiry_config = SystemInquiryConfig::getOne($params);
if (empty($system_inquiry_config)){
if (empty($system_inquiry_config)) {
throw new BusinessException();
}
$inquiry_price = $system_inquiry_config['inquiry_price'] ?: 0;
}else{
} else {
throw new BusinessException();
}