修改问诊完成名称,新增问诊结束推送问诊结束im消息
This commit is contained in:
@@ -147,14 +147,14 @@ class AutoCompleteInquiryDelayDirectConsumer extends ConsumerMessage
|
||||
}
|
||||
}
|
||||
|
||||
// 发送IM消息-问诊已结束
|
||||
// 发送IM消息-问诊已完成
|
||||
$imService = new ImService();
|
||||
$imService->inquiryEnd($order_inquiry,$user_doctor['user_id'],$order_inquiry['user_id']);
|
||||
$imService->inquiryComplete($order_inquiry,$user_doctor['user_id'],$order_inquiry['user_id']);
|
||||
|
||||
// 发送IM消息-问诊结束评价通知
|
||||
$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->finishInquiryToDoctor();
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ use App\Model\PatientFamilyHealth;
|
||||
use App\Model\PatientFamilyPersonal;
|
||||
use App\Model\UserDoctor;
|
||||
use App\Model\UserPatient;
|
||||
use App\Services\ImService;
|
||||
use App\Services\MessagePush;
|
||||
use App\Utils\Log;
|
||||
use App\Utils\Mask;
|
||||
@@ -49,14 +50,14 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
|
||||
|
||||
public function consumeMessage($data, AMQPMessage $message): string
|
||||
{
|
||||
Log::getInstance()->error("开始执行 自动结束问诊订单 队列:" . json_encode($data, JSON_UNESCAPED_UNICODE));
|
||||
Log::getInstance("queue-AutoFinishInquiry")->info("开始:" . json_encode($data, JSON_UNESCAPED_UNICODE));
|
||||
|
||||
Db::beginTransaction();
|
||||
try {
|
||||
// 检测入参参数
|
||||
if (empty($data['order_inquiry_id'])) {
|
||||
Db::rollBack();
|
||||
Log::getInstance()->error("自动结束问诊订单队列执行失败:入参错误");
|
||||
Log::getInstance("queue-AutoFinishInquiry")->error("错误:入参错误");
|
||||
return Result::DROP;
|
||||
}
|
||||
|
||||
@@ -66,7 +67,7 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
|
||||
$order_inquiry = OrderInquiry::getOne($params);
|
||||
if (empty($order_inquiry)) {
|
||||
Db::rollBack();
|
||||
Log::getInstance()->error("自动结束问诊订单队列执行失败:问诊订单数据为空");
|
||||
Log::getInstance("queue-AutoFinishInquiry")->error("错误:问诊订单数据为空");
|
||||
return Result::DROP;
|
||||
}
|
||||
|
||||
@@ -75,20 +76,20 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
|
||||
// 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
|
||||
if ($order_inquiry['inquiry_status'] != 5) {
|
||||
Db::rollBack();
|
||||
Log::getInstance()->error("自动结束问诊订单队列执行失败:问诊订单未完成,无法结束");
|
||||
Log::getInstance("queue-AutoFinishInquiry")->error("错误:问诊订单未完成,无法结束");
|
||||
return Result::DROP;
|
||||
}
|
||||
|
||||
// 问诊订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常)
|
||||
if (!in_array($order_inquiry['inquiry_refund_status'], [0, 4, 5])) {
|
||||
Db::rollBack();
|
||||
Log::getInstance()->error("自动结束问诊订单队列执行失败:问诊订单正在申请退款");
|
||||
Log::getInstance("queue-AutoFinishInquiry")->error("错误:问诊订单正在申请退款");
|
||||
return Result::DROP;
|
||||
}
|
||||
|
||||
if (empty($order_inquiry['doctor_id'])) {
|
||||
Db::rollBack();
|
||||
Log::getInstance()->error("自动结束问诊订单队列执行失败:医生id为空");
|
||||
Log::getInstance("queue-AutoFinishInquiry")->error("错误:医生id为空");
|
||||
return Result::DROP;
|
||||
}
|
||||
|
||||
@@ -98,7 +99,7 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
|
||||
$res = $this->handleDoctorAccount($order_inquiry);
|
||||
if (!$res) {
|
||||
Db::rollBack();
|
||||
Log::getInstance()->error("自动结束问诊订单队列执行失败:处理医生账户总表失败");
|
||||
Log::getInstance("queue-AutoFinishInquiry")->error("错误:处理医生账户总表失败");
|
||||
return Result::DROP;
|
||||
}
|
||||
|
||||
@@ -106,7 +107,7 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
|
||||
$res = $this->handleDoctorAccountDay($order_inquiry);
|
||||
if (!$res) {
|
||||
Db::rollBack();
|
||||
Log::getInstance()->error("自动结束问诊订单队列执行失败:处理医生账户表-日失败");
|
||||
Log::getInstance("queue-AutoFinishInquiry")->error("错误:处理医生账户表-日失败");
|
||||
return Result::DROP;
|
||||
}
|
||||
}
|
||||
@@ -127,13 +128,22 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
|
||||
$this->handleDoctorPraiseRate($order_inquiry['doctor_id']);
|
||||
|
||||
Db::commit();
|
||||
Log::getInstance()->info("自动结束问诊订单队列执行成功");
|
||||
return Result::ACK;
|
||||
Log::getInstance("queue-AutoFinishInquiry")->info("成功");
|
||||
} catch (\Exception $e) {
|
||||
Db::rollBack();
|
||||
Log::getInstance()->error("自动结束问诊订单执行失败:" . $e->getMessage());
|
||||
Log::getInstance("queue-AutoFinishInquiry")->error("错误:" . $e->getMessage());
|
||||
return Result::ACK; // 重回队列
|
||||
}
|
||||
|
||||
// 推送消息
|
||||
try {
|
||||
// 推送问诊结束im消息
|
||||
$this->pushImInquiryFinish($order_inquiry);
|
||||
}catch (\Exception $e){
|
||||
Log::getInstance("queue-AutoFinishInquiry")->error("发送消息异常错误:" . $e->getMessage());
|
||||
}
|
||||
|
||||
return Result::ACK;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -301,7 +311,7 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
|
||||
|
||||
$patient_family_health = PatientFamilyHealth::addPatientFamilyHealth($data);
|
||||
if (empty($patient_family_health)) {
|
||||
Log::getInstance()->error("自动结束问诊订单队列执行失败:回写患者家庭成员信息表-健康情况表失败");
|
||||
Log::getInstance("queue-AutoFinishInquiry")->error("错误:回写患者家庭成员信息表-健康情况表失败");
|
||||
}
|
||||
} else {
|
||||
$data = array();
|
||||
@@ -359,7 +369,7 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
|
||||
|
||||
$patient_family_personal = PatientFamilyPersonal::addPatientFamilyPersonal($data);
|
||||
if (empty($patient_family_personal)) {
|
||||
Log::getInstance()->error("自动结束问诊订单队列执行失败:回写患者家庭成员信息表-个人情况表失败");
|
||||
Log::getInstance("queue-AutoFinishInquiry")->error("错误:回写患者家庭成员信息表-个人情况表失败");
|
||||
}
|
||||
} else {
|
||||
$data = array();
|
||||
@@ -436,4 +446,41 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
|
||||
$data['praise_rate'] = $praise_rate;
|
||||
UserDoctor::editUserDoctor($params,$data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 推送问诊结束im消息
|
||||
* @param array|object $order_inquiry
|
||||
* @return void
|
||||
*/
|
||||
protected function pushImInquiryFinish(array|object $order_inquiry): void
|
||||
{
|
||||
// 当前用户是否在这三天内再次咨询了该医生
|
||||
$is_inquiry = false;
|
||||
|
||||
$params = array();
|
||||
$params['user_id'] = $order_inquiry['user_id'];
|
||||
$params['doctor_id'] = $order_inquiry['doctor_id'];
|
||||
$order_inquirys = OrderInquiry::getList($params);
|
||||
if (!empty($order_inquirys)){
|
||||
foreach ($order_inquirys as $item){
|
||||
if ($item['order_inquiry_id'] == $order_inquiry['order_inquiry_id']){
|
||||
continue;
|
||||
}
|
||||
$is_inquiry = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$is_inquiry){
|
||||
// 获取医生数据
|
||||
$params = array();
|
||||
$params['doctor_id'] = $order_inquiry['doctor_id'];
|
||||
$user_doctor = UserDoctor::getOne($params);
|
||||
if (!empty($user_doctor)){
|
||||
// 发送IM消息-问诊已结束
|
||||
$imService = new ImService();
|
||||
$imService->inquiryFinish($order_inquiry,$user_doctor['user_id'],$order_inquiry['user_id']);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user