新增检测是否可创建服务包问诊订单
This commit is contained in:
parent
245397dfa7
commit
f83580508a
@ -58,4 +58,15 @@ class OrderServicePackageController extends AbstractController
|
||||
$data = $OrderServicePackageService->addServiceInquiryOrder();
|
||||
return $this->response->json($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检测是否可创建服务包问诊订单
|
||||
* @return ResponseInterface
|
||||
*/
|
||||
public function getServicePackageInquiryCheck(): ResponseInterface
|
||||
{
|
||||
$OrderServicePackageService = new OrderServicePackageService();
|
||||
$data = $OrderServicePackageService->getServicePackageInquiryCheck();
|
||||
return $this->response->json($data);
|
||||
}
|
||||
}
|
||||
@ -215,6 +215,7 @@ class OrderServicePackageService extends BaseService
|
||||
return fail(HttpEnumCode::CLIENT_HTTP_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
// 检测家庭成员是否存在
|
||||
$params = array();
|
||||
$params['family_id'] = $request_params['family_id'];
|
||||
@ -1007,6 +1008,111 @@ class OrderServicePackageService extends BaseService
|
||||
return success($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检测是否可创建服务包问诊订单
|
||||
* @return array
|
||||
*/
|
||||
public function getServicePackageInquiryCheck(): array
|
||||
{
|
||||
$user_info = $this->request->getAttribute("userInfo") ?? [];
|
||||
|
||||
$order_no = $this->request->route("order_no");
|
||||
|
||||
$result = array();
|
||||
$result['status'] = 1;
|
||||
$result['message'] = "";
|
||||
$result['data'] = NULL;
|
||||
|
||||
try {
|
||||
// 检测患者是否购买服务包
|
||||
$params = array();
|
||||
$params['order_service_no'] = $order_no;
|
||||
$order_service_package = OrderServicePackage::getOne($params);
|
||||
if (empty($order_service_package)) {
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "患者未购买服务包");
|
||||
}
|
||||
|
||||
// 检测服务包订单订单状态
|
||||
if ($order_service_package['order_service_status'] == 1) {
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "服务包未支付");
|
||||
}
|
||||
|
||||
if ($order_service_package['order_service_status'] == 2) {
|
||||
$result['status'] = 2;
|
||||
$result['message'] = "已发起问诊,请耐心等待接诊";
|
||||
$result['data']['order_no'] = $order_service_package['order_service_no'];
|
||||
return success($result);
|
||||
}
|
||||
|
||||
// 获取服务包订单详情
|
||||
$params = array();
|
||||
$params['order_service_no'] = $order_service_package['order_service_no'];
|
||||
$order_service_package_detail = OrderServicePackageDetail::getOne($params);
|
||||
if (empty($order_service_package_detail)) {
|
||||
return fail(HttpEnumCode::SERVER_ERROR);
|
||||
}
|
||||
|
||||
// 处理问诊类型
|
||||
if ($order_service_package['order_service_type'] == 1) {
|
||||
$inquiry_mode = 8;
|
||||
} else {
|
||||
$inquiry_mode = 9;
|
||||
}
|
||||
|
||||
// 检测是否存在同类型未完成的问诊订单
|
||||
$PatientOrderService = new PatientOrderService();
|
||||
$order_inquiry_id = $PatientOrderService->getNotFinishedOrderInquiry(1, $inquiry_mode, $user_info['client_user_id']);
|
||||
if (!empty($order_inquiry_id)) {
|
||||
// 获取问诊订单数据
|
||||
$params = array();
|
||||
$params['order_inquiry_id'] = $order_inquiry_id;
|
||||
$order_inquiry = OrderInquiry::getOne($params);
|
||||
if (empty($order_inquiry)) {
|
||||
return fail(HttpEnumCode::SERVER_ERROR);
|
||||
}
|
||||
|
||||
$result['status'] = 4;
|
||||
$result['message'] = "存在进行中的问诊订单,无法再次使用";
|
||||
$result['data']['order_no'] = $order_inquiry['inquiry_no'];
|
||||
$result['data']['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
|
||||
return success($result);
|
||||
}
|
||||
|
||||
// 检测当前医生是否和患者存在未完成问诊订单
|
||||
$InquiryService = new InquiryService();
|
||||
$order_inquiry = $InquiryService->checkPatientDoctorProgressInquiry($user_info['client_user_id'], $order_service_package['doctor_id']);
|
||||
if (!empty($order_inquiry)) {
|
||||
$result['status'] = 4;
|
||||
$result['message'] = "您和当前医生存在问诊中订单,无法再次使用";
|
||||
$result['data']['order_no'] = $order_inquiry['inquiry_no'];
|
||||
$result['data']['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
|
||||
return success($result);
|
||||
}
|
||||
|
||||
// 检测问诊次数
|
||||
// 3.5号购买,每月2次问诊次数。今天5.3,属于第几个月,这个月的开始时间和结束时间
|
||||
if ($order_service_package_detail['monthly_frequency'] != 0) {
|
||||
// 获取服务包当月已问诊次数
|
||||
$month_inquiry_count = $this->getCurrentMonthInquiryCount($order_service_package['start_time'],$order_service_package['order_service_type'],$user_info['client_user_id'], $order_service_package['doctor_id']);
|
||||
|
||||
if ($month_inquiry_count >= $order_service_package_detail['monthly_frequency']) {
|
||||
// 超出当月问诊次数
|
||||
$result['status'] = 3;
|
||||
$result['message'] = "超出服务包所包含的当月问诊次数";
|
||||
$result['data']['order_no'] = $order_service_package['order_service_no'];
|
||||
return success($result);
|
||||
}
|
||||
}
|
||||
}catch (\Throwable $e){
|
||||
return fail(HttpEnumCode::SERVER_ERROR,$e->getMessage());
|
||||
}
|
||||
|
||||
// 未超出当月问诊次数或次数无限制
|
||||
$result['message'] = "已购买,未超出当月问诊次数";
|
||||
$result['data']['order_no'] = $order_service_package['order_service_no'];
|
||||
return success($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消未支付检测订单
|
||||
* @param string|int $order_no
|
||||
|
||||
@ -616,6 +616,9 @@ Router::addGroup('/patient', function () {
|
||||
|
||||
// 创建服务包问诊订单
|
||||
Router::post('/inquiry/{order_no}', [OrderServicePackageController::class, 'addServiceInquiryOrder']);
|
||||
|
||||
// 检测是否可创建服务包问诊订单
|
||||
Router::get('/check/{order_no}', [OrderServicePackageController::class, 'getServicePackageInquiryCheck']);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user