增加站内、短信订阅消息推送,修改所有消息推送入参

This commit is contained in:
2024-04-19 15:46:38 +08:00
parent e92ccdcc5e
commit 5c0bf12896
16 changed files with 1240 additions and 133 deletions
+3 -3
View File
@@ -1218,11 +1218,11 @@ class InquiryService extends BaseService
$imService->inquiryEndEvaluation($order_inquiry, $user_doctor['user_id'], $order_inquiry['user_id']);
// 医生-发送通知消息-问诊结束
$MessagePush = new MessagePush($user_doctor['user_id'], $order_inquiry['order_inquiry_id']);
$MessagePush = new MessagePush($user_doctor['user_id'], $order_inquiry['inquiry_no']);
$MessagePush->finishInquiryToDoctor();
// 患者-发送通知消息-患者的问诊服务结束
$MessagePush = new MessagePush($order_inquiry['user_id'], $order_inquiry['order_inquiry_id']);
$MessagePush = new MessagePush($order_inquiry['user_id'], $order_inquiry['inquiry_no']);
$MessagePush->patientInquiryFinish();
} catch (\Throwable $e) {
Log::getInstance("InquiryService-putFinishInquiry")->error($e->getMessage());
@@ -1399,7 +1399,7 @@ class InquiryService extends BaseService
$imService->giveFreeRounds($order_inquiry, $user_doctor['user_id'], $order_inquiry['user_id'], $times_number, $give_expiration_time);
// 发送站内、订阅失败发送短信消息-患者-赠送回合数
$MessagePush = new MessagePush($order_inquiry['user_id'], $order_inquiry['order_inquiry_id']);
$MessagePush = new MessagePush($order_inquiry['user_id'], $order_inquiry['inquiry_no']);
$MessagePush->doctorGiveFreeRounds($times_number, $give_expiration_time);
} catch (\Throwable $e) {
Log::getInstance("InquiryService-addDoctorGiveInquiryOrder")->error($e->getMessage());
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -469,13 +469,13 @@ class OrderPrescriptionService extends BaseService
OrderPrescription::edit($params, $data);
// 医生-开具的处方审核未通过
/*// 医生-开具的处方审核未通过
$MessagePush = new MessagePush($doctor_user_id, $order_inquiry_id);
$MessagePush->prescriptionVerifyFail($order_prescription_id);
// 患者-处方审核未通过
$MessagePush = new MessagePush($patient_user_id, $order_inquiry_id);
$MessagePush->patientPrescriptionVerifyFail();
$MessagePush->patientPrescriptionVerifyFail();*/
} catch (\Exception $e) {
throw new BusinessException($e->getMessage());
+61 -5
View File
@@ -986,15 +986,25 @@ class OrderServicePackageService extends BaseService
// 等待医生接诊
$imService->waitDoctorInquiry($order_inquiry, $user_doctor['user_id'], $order_inquiry['user_id']);
// 发送站内、订阅失败发送短信消息-医生有新服务包订单
$MessagePush = new MessagePush($user_doctor['user_id'], $order_service_package['order_service_no']);
$MessagePush->doctorHaveNewServicePackage();
// 检测问诊是否服务包首次问诊
$OrderServicePackageService = new OrderServicePackageService();
$is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_no);
if ($is_first){
// 首次
// 发送站内、订阅失败发送短信消息-医生有新服务包订单
$MessagePush = new MessagePush($user_doctor['user_id'], $order_inquiry['inquiry_no']);
$MessagePush->doctorHaveNewServicePackage();
}else{
// 发送站内、订阅失败-医生有新的服务包问诊订单
$MessagePush = new MessagePush($user_doctor['user_id'], $order_inquiry['inquiry_no']);
$MessagePush->doctorHaveNewServicePackageInquiry();
}
// 加入xx时间未接诊通知队列
$data = array();
$data['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$time = 1000 * 60 * 60 * 2;
$time = 1000 * 60 * 60 * 24;
$message = new DoctorNotYetInquiryDelayDirectProducer($data);
$message->setDelayMs($time);
$producer = $this->container->get(Producer::class);
@@ -1260,7 +1270,7 @@ class OrderServicePackageService extends BaseService
}
/**
* 获取服务包剩余药品数量
* 获取服务包内某一药品的剩余数量
* @param string|int $order_service_id
* @param string|int $product_id
* @return int
@@ -1303,4 +1313,50 @@ class OrderServicePackageService extends BaseService
return false;
}
/**
* 获取服务包订单编号-通过问诊订单id
* @param string|int $inquiry_no
* @return string|int
*/
public function getOrderServiceNoByOrderInquiryId(string|int $inquiry_no): string|int
{
$params = array();
$params['inquiry_no'] = $inquiry_no;
$order_service_package_inquiry = OrderServicePackageInquiry::getOne($params);
if (empty($order_service_package_inquiry)){
throw new BusinessException("订单错误");
}
return $order_service_package_inquiry['order_service_no'];
}
/**
* 检测患者服务包内是否还存在剩余药品
* @param string|int $order_no
* @return bool
*/
public function checkOrderServiceRemainingProduct(string|int $order_no): bool
{
// 获取服务包关联商品
$params = array();
$params['order_service_no'] = $order_no;
$order_service_package = OrderServicePackage::getOne($params);
if (empty($order_service_package)){
return false;
}
$params = array();
$params['order_service_id'] = $order_service_package['order_service_id'];
$order_service_package_products = OrderServicePackageProduct::getList($params);
foreach ($order_service_package_products as $order_service_package_product){
$remaining_quantity = $order_service_package_product['quantity'] - $order_service_package_product['used_quantity'];
if ($remaining_quantity > 0){
return true;
}
}
return false;
}
}
+9 -9
View File
@@ -413,7 +413,7 @@ class PatientOrderService extends BaseService
}
// 推送医生-患者取消问诊
$MessagePush = new MessagePush($user_doctor['user_id'], $order_inquiry['order_inquiry_id']);
$MessagePush = new MessagePush($user_doctor['user_id'], $order_inquiry['inquiry_no']);
$MessagePush->patientCancelInquiryToDoctor();
}
} catch (\Exception $e) {
@@ -1241,7 +1241,7 @@ class PatientOrderService extends BaseService
$imService->waitDoctorInquiry($order_inquiry, $user_doctor['user_id'], $order_inquiry['user_id']);
// 发送站内、订阅失败发送短信消息-医生有新问诊
$MessagePush = new MessagePush($user_doctor['user_id'], $order_inquiry['order_inquiry_id']);
$MessagePush = new MessagePush($user_doctor['user_id'], $order_inquiry['inquiry_no']);
$MessagePush->doctorHaveNewInquiry();
// 加入xx时间未接诊通知队列
@@ -1503,7 +1503,7 @@ class PatientOrderService extends BaseService
$amount_total = 0;
foreach ($product_datas as &$product_data){
// 获取服务包剩余药品数量
// 获取服务包内某一药品的剩余数量
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductRemainingQuantity($order_service_package_inquiry['order_service_id'],$product_data['product_id']);
// 可用数量大于处方商品数量,此情况把商品价格置为0
@@ -2014,7 +2014,7 @@ class PatientOrderService extends BaseService
$amount_total = 0;
foreach ($product_datas as &$product_data){
// 获取服务包剩余药品数量
// 获取服务包内某一药品的剩余数量
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductRemainingQuantity($order_service_package_inquiry['order_service_id'],$product_data['product_id']);
// 可用数量大于处方商品数量,此情况把商品价格置为0
@@ -2667,7 +2667,7 @@ class PatientOrderService extends BaseService
$user_doctor = UserDoctor::getOne($params);
if (!empty($user_doctor)) {
// 推送医生-患者取消问诊
$MessagePush = new MessagePush($user_doctor['user_id'], $order_inquiry['order_inquiry_id']);
$MessagePush = new MessagePush($user_doctor['user_id'], $order_inquiry['inquiry_no']);
$MessagePush->patientCancelInquiryToDoctor();
}
}
@@ -2680,7 +2680,7 @@ class PatientOrderService extends BaseService
$order_detection = OrderDetection::getOne($params);
if (!empty($order_detection)) {
// 推送患者-订单取消成功通知
$MessagePush = new MessagePush($order_detection['user_id']);
$MessagePush = new MessagePush($order_detection['user_id'],$order_detection['detection_no']);
$MessagePush->patientCancelDetectionOrderSuccess($order_detection['order_detection_id']);
}
@@ -2707,9 +2707,9 @@ class PatientOrderService extends BaseService
$params['doctor_id'] = $order_service_package['doctor_id'];
$user_doctor = UserDoctor::getOne($params);
if (!empty($user_doctor)) {
// 推送医生-患者取消问诊
$MessagePush = new MessagePush($user_doctor['user_id'], $order_service_package_inquiry['order_inquiry_id']);
$MessagePush->patientCancelInquiryToDoctor();
// 医生-患者取消服务包订单
$MessagePush = new MessagePush($user_doctor['user_id'], $order_service_package_inquiry['inquiry_no']);
$MessagePush->doctorPatientCancelServicePackage();
}
}
+31 -3
View File
@@ -1985,9 +1985,37 @@ class UserDoctorService extends BaseService
// 发送IM消息-患者病例
$imService->patientCase($order_inquiry,$user_doctor['user_id'],$order_inquiry_case['disease_desc']);
// 发送站内、订阅、短信消息-医生已接诊
$MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['order_inquiry_id']);
$MessagePush->patientAcceptedInquiry();
// 处理服务包情况
if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){
$OrderServicePackageService = new OrderServicePackageService();
// 获取服务包订单编号-通过问诊订单id
$order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']);
// 检测问诊是否服务包首次问诊
$is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_no);
if ($is_first){
// 患者-通知患者医生已接受服务包服务
$MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['inquiry_no']);
$MessagePush->patientAcceptedServicePackage();
}else{
// 患者-通知患者医生已接诊服务包相关问诊订单
$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();
}
}else{
// 发送站内、订阅、短信消息-医生已接诊
$MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['inquiry_no']);
$MessagePush->patientAcceptedInquiry();
}
}catch(\Exception $e){
return success([],HttpEnumCode::HTTP_SUCCESS,$e->getMessage());
}
+3 -3
View File
@@ -257,12 +257,12 @@ class UserPharmacistService extends BaseService
$imService->prescriptionIssued($order_inquiry,$user_doctor['user_id'],$order_inquiry['user_id'],$product_name,(string)$order_prescription['order_prescription_id'],7);
// 发送站内、短信消息-患者的处方被药师审核通过
$MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['order_inquiry_id']);
$MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['inquiry_no']);
$MessagePush->patientPrescriptionVerifyPass();
// 站内、订阅失败发送短信-医生开具的处方审核通过
// 发送目标不同,重新实例化
$MessagePush = new MessagePush($user_doctor['user_id'],$order_inquiry['order_inquiry_id']);
$MessagePush = new MessagePush($user_doctor['user_id'],$order_inquiry['inquiry_no']);
$MessagePush->prescriptionVerifySuccess();
// 添加处方过期队列
@@ -279,7 +279,7 @@ class UserPharmacistService extends BaseService
}
}else{
// 站内、订阅失败发送短信-医生开具的处方审核未通过
$MessagePush = new MessagePush($user_doctor['user_id'],$order_inquiry['order_inquiry_id']);
$MessagePush = new MessagePush($user_doctor['user_id'],$order_inquiry['inquiry_no']);
$MessagePush->prescriptionVerifyFail($order_prescription['order_prescription_id']);
}
+9 -2
View File
@@ -763,7 +763,7 @@ class UserService extends BaseService
/**
* 通过user_id获取用户openid
* @param string|int $user_id
* @param int $user_type
* @param int|string $user_type
* @return string
*/
public function getOpenIdWithUserId(string|int $user_id, int|string $user_type): string
@@ -876,6 +876,13 @@ class UserService extends BaseService
return true;
}
$params = array();
$params['order_inquiry_id'] = $order_inquiry_id;
$order_inquiry = OrderInquiry::getOne($params);
if (empty($order_inquiry)){
return false;
}
$message = "您有一条新的问诊消息";
// 判断消息类型
if (isset($msg_body[0]['MsgType'])){
@@ -907,7 +914,7 @@ class UserService extends BaseService
}
}
$MessagePush = new MessagePush($user_id, $order_inquiry_id);
$MessagePush = new MessagePush($user_id, $order_inquiry['inquiry_no']);
if ($user['user_type'] == 1){
// 患者