获取剩余药品数量修改

This commit is contained in:
2024-04-24 17:46:30 +08:00
parent 5103fe875f
commit ace286e096
5 changed files with 164 additions and 108 deletions
+41 -12
View File
@@ -1962,7 +1962,7 @@ class UserDoctorService extends BaseService
$res = $producer->produce($message);
if (!$res) {
Db::rollBack();
return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败");
return fail(HttpEnumCode::SERVER_ERROR, "接诊失败");
}
Db::commit();
@@ -1977,7 +1977,8 @@ class UserDoctorService extends BaseService
$params['doctor_id'] = $order_inquiry['doctor_id'];
$user_doctor = UserDoctor::getOne($params);
if (empty($user_doctor)) {
return success([],HttpEnumCode::HTTP_SUCCESS,"医生数据错误");
Log::getInstance('UserDoctorService-addDoctorInquiry')->error("医生数据错误");
return success();
}
// 获取病例数据
@@ -1985,7 +1986,8 @@ class UserDoctorService extends BaseService
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$order_inquiry_case = OrderInquiryCase::getOne($params);
if (empty($order_inquiry_case)){
return success([],HttpEnumCode::HTTP_SUCCESS,"患者病例错误");
Log::getInstance('UserDoctorService-addDoctorInquiry')->error("患者病例错误");
return success();
}
// 发送IM消息-医生接诊
@@ -2002,6 +2004,24 @@ class UserDoctorService extends BaseService
// 获取服务包订单编号-通过问诊订单id
$order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']);
// 获取服务包订单
$params = array();
$params['order_service_no'] = $order_service_no;
$order_service_package = OrderServicePackage::getOne($params);
if (empty($order_service_package)){
Log::getInstance('UserDoctorService-addDoctorInquiry')->error("服务包订单错误");
return success();
}
// 获取服务包订单详情
$params = array();
$params['order_service_id'] = $order_service_package['order_service_id'];
$order_service_package_detail = OrderServicePackageDetail::getOne($params);
if (empty($order_service_package_detail)){
Log::getInstance('UserDoctorService-addDoctorInquiry')->error("服务包订单详情错误");
return success();
}
// 检测问诊是否服务包首次问诊
$is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_no);
if ($is_first){
@@ -2012,14 +2032,23 @@ class UserDoctorService extends BaseService
// 患者-通知患者医生已接诊服务包相关问诊订单
$MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['inquiry_no']);
$MessagePush->patientAcceptedServicePackageInquiry();
}
// 检测患者服务包内是否还存在剩余药品
$res = $OrderServicePackageService->checkOrderServiceRemainingProduct($order_service_no);
if ($res){
// 患者-通知患者服务包药品未使用完
$MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['inquiry_no']);
$MessagePush->patientServicePackageHaveProduct();
if ($order_service_package['order_service_type'] == 1){
$remaining_quantity = 0;
// 获取服务包内所有药品
$health_package_products = $OrderServicePackageService->getOrderServiceProduct($order_service_package_detail['package_id']);
foreach ($health_package_products as $health_package_product) {
// 获取服务包内某一药品的剩余数量
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$health_package_product['product_id'],$health_package_product['quantity']);
}
if ($remaining_quantity > 0){
// 患者-通知患者服务包药品未使用完
$MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['inquiry_no']);
$MessagePush->patientServicePackageHaveProduct($remaining_quantity);
}
}
}
}else{
// 发送站内、订阅、短信消息-医生已接诊
@@ -2027,7 +2056,8 @@ class UserDoctorService extends BaseService
$MessagePush->patientAcceptedInquiry();
}
}catch(\Exception $e){
return success([],HttpEnumCode::HTTP_SUCCESS,$e->getMessage());
Log::getInstance('UserDoctorService-addDoctorInquiry')->error($e->getMessage());
return success();
}
return success();
@@ -2866,7 +2896,6 @@ class UserDoctorService extends BaseService
return $result;
}
/**
* 获取医生是否可处方图标展示状态
* @param string $doctor_id 医生id