创建服务包问诊订单以及支付回调增加发送im消息
This commit is contained in:
parent
c4c6ff06dd
commit
94bbfb0db2
@ -2443,7 +2443,8 @@ class CallBackController extends AbstractController
|
||||
// 支付状态无需验证,如第一次支付失败,会修改支付状态,再次支付时,会出现验证不通过的情况
|
||||
|
||||
// 处理支付状态
|
||||
if ($message['trade_state'] == "SUCCESS") {
|
||||
$trade_state = $message['trade_state'];
|
||||
if ($trade_state == "SUCCESS") {
|
||||
// 支付成功
|
||||
$pay_status = 2;
|
||||
$pay_time = date('Y-m-d H:i:s', strtotime($message['success_time']));// 支付时间
|
||||
@ -2453,16 +2454,16 @@ class CallBackController extends AbstractController
|
||||
Log::getInstance("CallBack-wxPayServiceSuccess")->error("无支付金额");
|
||||
return $this->wxPayErrorReturn("无支付金额");
|
||||
}
|
||||
} elseif ($message['trade_state'] == "CLOSED") {
|
||||
} elseif ($trade_state == "CLOSED") {
|
||||
// 已关闭
|
||||
$pay_status = 6;
|
||||
} elseif ($message['trade_state'] == "REVOKED") {
|
||||
} elseif ($trade_state == "REVOKED") {
|
||||
// 已撤销(付款码支付)
|
||||
$pay_status = 7;
|
||||
} elseif ($message['trade_state'] == "USERPAYING") {
|
||||
} elseif ($trade_state == "USERPAYING") {
|
||||
// 用户支付中(付款码支付)
|
||||
$pay_status = 3;
|
||||
} elseif ($message['trade_state'] == "PAYERROR") {
|
||||
} elseif ($trade_state == "PAYERROR") {
|
||||
// 支付失败(其他原因,如银行返回失败)
|
||||
$pay_status = 4;
|
||||
} else {
|
||||
@ -2762,7 +2763,48 @@ class CallBackController extends AbstractController
|
||||
return $this->wxPayErrorReturn($e->getMessage());
|
||||
}
|
||||
|
||||
Log::getInstance("CallBack-wxPayServiceSuccess")->info("检测微信支付回调处理成功");
|
||||
try {
|
||||
if ($trade_state == "SUCCESS") {
|
||||
Log::getInstance("CallBack-wxPayInquirySuccess")->info("开始发送im消息");
|
||||
|
||||
// 获取订单医生数据
|
||||
$params = array();
|
||||
$params['doctor_id'] = $order_inquiry['doctor_id'];
|
||||
$user_doctor = UserDoctor::getOne($params);
|
||||
if (empty($user_doctor)) {
|
||||
Log::getInstance("CallBack-wxPayServiceSuccess")->error("医生数据错误");
|
||||
return $server->serve();
|
||||
}
|
||||
|
||||
// 发送im消息
|
||||
$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();
|
||||
|
||||
// 加入xx时间未接诊通知队列
|
||||
$data = array();
|
||||
$data['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
|
||||
|
||||
$time = 1000 * 60 * 60 * 2;
|
||||
$message = new DoctorNotYetInquiryDelayDirectProducer($data);
|
||||
$message->setDelayMs($time);
|
||||
$producer = $this->container->get(Producer::class);
|
||||
$producer->produce($message);
|
||||
|
||||
Log::getInstance("CallBack-wxPayServiceSuccess")->info("发送im消息成功");
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
// 验证失败
|
||||
Log::getInstance("CallBack-wxPayInquirySuccess")->error("微信支付回调处理成功,分配医生/发送问诊消息失败:" . $e->getMessage());
|
||||
return $server->serve();
|
||||
}
|
||||
|
||||
Log::getInstance("CallBack-wxPayServiceSuccess")->info("微信支付回调处理成功");
|
||||
|
||||
return $server->serve();
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ namespace App\Services;
|
||||
|
||||
use App\Amqp\Producer\CancelUnInquiryOrdersDelayDirectProducer;
|
||||
use App\Amqp\Producer\CancelUnpayOrdersDelayDirectProducer;
|
||||
use App\Amqp\Producer\DoctorNotYetInquiryDelayDirectProducer;
|
||||
use App\Constants\HttpEnumCode;
|
||||
use App\Exception\BusinessException;
|
||||
use App\Model\DiseaseClass;
|
||||
@ -968,6 +969,39 @@ class OrderServicePackageService extends BaseService
|
||||
return fail(HttpEnumCode::HTTP_ERROR, $e->getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
// 获取订单医生数据
|
||||
$params = array();
|
||||
$params['doctor_id'] = $order_inquiry['doctor_id'];
|
||||
$user_doctor = UserDoctor::getOne($params);
|
||||
if (empty($user_doctor)) {
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "医生数据错误");
|
||||
}
|
||||
|
||||
// 发送im消息
|
||||
$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();
|
||||
|
||||
// 加入xx时间未接诊通知队列
|
||||
$data = array();
|
||||
$data['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
|
||||
|
||||
$time = 1000 * 60 * 60 * 2;
|
||||
$message = new DoctorNotYetInquiryDelayDirectProducer($data);
|
||||
$message->setDelayMs($time);
|
||||
$producer = $this->container->get(Producer::class);
|
||||
$producer->produce($message);
|
||||
} catch (\Exception $e) {
|
||||
// 验证失败
|
||||
return fail(HttpEnumCode::HTTP_ERROR, $e->getMessage());
|
||||
}
|
||||
|
||||
return success();
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user