新增消息推送

This commit is contained in:
wucongxing 2023-04-06 10:44:17 +08:00
parent 67c99d2db5
commit 4701bb2bce
6 changed files with 262 additions and 222 deletions

View File

@ -11,6 +11,7 @@ use App\Model\OrderInquiry;
use App\Model\UserDoctor;
use App\Services\ImService;
use App\Services\InquiryService;
use App\Services\MessagePush;
use App\Services\UserDoctorService;
use App\Utils\Log;
use Extend\TencentIm\Message;
@ -192,6 +193,10 @@ class AssignDoctorConsumer extends ConsumerMessage
$imService = new ImService();
$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->doctorHaveNewInquiry();
Log::getInstance()->info("分配医生成功,发送系统问诊消息成功");
} catch (\Exception $e) {
// 验证失败

View File

@ -529,7 +529,25 @@ class CallBackController extends AbstractController
Log::getInstance()->info("药品微信退款回调数据处理成功");
// 发送短信消息
// 发送推送消息
try {
// 获取患者数据
$params = array();
$params['patient_id'] = $order_product['patient_id'];
$user_patient = UserPatient::getOne($params);
if (empty($user_patient)){
Log::getInstance()->error("微信退款回调处理成功,推送消息失败:推送用户数据错误");
}
// 发送站内、订阅、短信消息-药品订单退款成功
$MessagePush = new MessagePush($user_patient['user_id']);
$MessagePush->refundProductSuccess($order_product['order_product_id']);
}catch (\Exception $e) {
// 验证失败
Log::getInstance()->error("微信退款回调处理成功,推送消息失败:" . $e->getMessage());
return $server->serve();
}
// 告知处方平台
return $server->serve();

View File

@ -260,6 +260,8 @@ class InquiryService extends BaseService
UserCoupon::edit($params, $data);
}
// 增加至取消订单延迟队列
$data = array();
$data['order_no'] = $order_inquiry['inquiry_no'];
@ -294,6 +296,18 @@ class InquiryService extends BaseService
return fail(HttpEnumCode::HTTP_ERROR, $e->getMessage());
}
try {
if (!empty($request_params['doctor_id']) && ($request_params['inquiry_type'] == 1 || $request_params['inquiry_type'] == 3)){
if (isset($doctor)){
// 发送站内、订阅失败发送短信消息-医生有新问诊
$MessagePush = new MessagePush($doctor['user_id'],$order_inquiry['order_inquiry_id']);
$MessagePush->doctorHaveNewInquiry();
}
}
} catch (\Exception $e) {
Log::getInstance()->error("新问诊消息发送失败:" . $e->getMessage());
}
$result = array();
$result['inquiry_no'] = (string)$order_inquiry['inquiry_no']; // 订单编号
$result['order_inquiry_id'] = (string)$order_inquiry['order_inquiry_id']; // 订单主键id

View File

@ -711,7 +711,6 @@ class MessagePush extends BaseService
$product_name = implode('、',$product_name_array);
if ($this->push_type == 1) {
// 站内
$data = array();
$data['user_id'] = $this->user['user_id'];
@ -734,7 +733,7 @@ class MessagePush extends BaseService
if (!$result) {
throw new BusinessException("加入推送队列失败" . json_encode($data,JSON_UNESCAPED_UNICODE));
}
} elseif ($this->push_type == 2) {
// 订阅
$sub_data = array();
$sub_data['push_user_id'] = $this->user['user_id'];
@ -763,7 +762,7 @@ class MessagePush extends BaseService
if (!$result) {
throw new BusinessException("加入推送队列失败" . json_encode($data,JSON_UNESCAPED_UNICODE));
}
} elseif ($this->push_type == 3) {
// 短信
// 获取系统接诊配置
$data = array();
@ -784,7 +783,6 @@ class MessagePush extends BaseService
if (!$result) {
throw new BusinessException("加入推送队列失败" . json_encode($data,JSON_UNESCAPED_UNICODE));
}
}
} catch (\Exception $e) {
throw new BusinessException("加入推送队列失败" . $e->getMessage());
}
@ -939,7 +937,6 @@ class MessagePush extends BaseService
throw new BusinessException("加入推送队列失败:医生数据为空");
}
if ($this->push_type == 1) {
// 站内
$data = array();
$data['user_id'] = $this->user['user_id'];
@ -964,7 +961,7 @@ class MessagePush extends BaseService
if (!$result) {
throw new BusinessException("加入推送队列失败" . json_encode($data,JSON_UNESCAPED_UNICODE));
}
} elseif ($this->push_type == 2) {
// 订阅
$inquiry_type = inquiryTypeToString($this->order_inquiry['inquiry_type']);
@ -1005,8 +1002,6 @@ class MessagePush extends BaseService
if (!$result) {
throw new BusinessException("加入推送队列失败" . json_encode($data,JSON_UNESCAPED_UNICODE));
}
}
} catch (\Exception $e) {
throw new BusinessException("加入推送队列失败" . $e->getMessage());
}
@ -1128,7 +1123,6 @@ class MessagePush extends BaseService
throw new BusinessException("加入推送队列失败:问诊病例为空");
}
if ($this->push_type == 1) {
// 站内
$data = array();
$data['user_id'] = $this->user['user_id'];
@ -1150,7 +1144,6 @@ class MessagePush extends BaseService
if (!$result) {
throw new BusinessException("加入推送队列失败" . json_encode($data,JSON_UNESCAPED_UNICODE));
}
}
} catch (\Exception $e) {
throw new BusinessException("加入推送队列失败" . $e->getMessage());
}
@ -1176,7 +1169,6 @@ class MessagePush extends BaseService
throw new BusinessException("加入推送队列失败:处方数据为空");
}
if ($this->push_type == 1) {
// 站内
$data = array();
$data['user_id'] = $this->user['user_id'];
@ -1201,7 +1193,7 @@ class MessagePush extends BaseService
if (!$result) {
throw new BusinessException("加入推送队列失败" . json_encode($data,JSON_UNESCAPED_UNICODE));
}
} elseif ($this->push_type == 2) {
// 订阅
$sub_data = array();
$sub_data['push_user_id'] = $this->user['user_id'];
@ -1235,8 +1227,6 @@ class MessagePush extends BaseService
if (!$result) {
throw new BusinessException("加入推送队列失败" . json_encode($data,JSON_UNESCAPED_UNICODE));
}
}
} catch (\Exception $e) {
throw new BusinessException("加入推送队列失败" . $e->getMessage());
}
@ -1262,7 +1252,6 @@ class MessagePush extends BaseService
throw new BusinessException("加入推送队列失败:处方数据为空");
}
if ($this->push_type == 2) {
// 订阅
$sub_data = array();
$sub_data['push_user_id'] = $this->user['user_id'];
@ -1296,7 +1285,6 @@ class MessagePush extends BaseService
if (!$result) {
throw new BusinessException("加入推送队列失败" . json_encode($data,JSON_UNESCAPED_UNICODE));
}
}
} catch (\Exception $e) {
throw new BusinessException("加入推送队列失败" . $e->getMessage());
}

View File

@ -1713,6 +1713,10 @@ class UserDoctorService extends BaseService
$imService = new ImService();
$imService->inquiryEnd($order_inquiry,$user_info['user_id'],$order_inquiry['user_id']);
// 发送站内消息-医生有新问诊
$MessagePush = new MessagePush($user_info['user_id'],$order_inquiry['order_inquiry_id']);
$MessagePush->finishInquiryToDoctor();
Db::commit();
} catch (\Exception $e) {
Db::rollBack();

View File

@ -235,10 +235,21 @@ class UserPharmacistService extends BaseService
$imService = new ImService();
$imService->prescriptionIssued($order_inquiry,$user_doctor['user_id'],$order_inquiry['user_id'],$product_name,(string)$order_prescription['order_prescription_id'],"7");
if ($pharmacist_audit_status == 1){
// 发送站内、短信消息-患者的处方被药师审核通过
$MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['order_inquiry_id']);
$MessagePush->patientPrescriptionVerifyPass();
// 站内、订阅失败发送短信-医生开具的处方审核通过
// 发送目标不同,重新实例化
$MessagePush = new MessagePush($user_doctor['user_id'],$order_inquiry['order_inquiry_id']);
$MessagePush->prescriptionVerifySuccess();
}else{
// 站内、订阅失败发送短信-医生开具的处方审核未通过
$MessagePush = new MessagePush($user_doctor['user_id'],$order_inquiry['order_inquiry_id']);
$MessagePush->prescriptionVerifyFail();
}
Db::commit();
} catch (\Exception $e) {
Db::rollBack();