增加延迟取消未接诊订单队列
This commit is contained in:
@@ -17,6 +17,8 @@ use Hyperf\Amqp\Annotation\Consumer;
|
||||
use Hyperf\Amqp\Message\ConsumerMessage;
|
||||
use Hyperf\DbConnection\Db;
|
||||
use PhpAmqpLib\Message\AMQPMessage;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
|
||||
/**
|
||||
* 取消未接诊问诊订单
|
||||
@@ -35,6 +37,13 @@ class CancelUnInquiryOrdersDelayDirectConsumer extends ConsumerMessage
|
||||
|
||||
protected string|array $routingKey = 'CancelUnInquiryOrders';
|
||||
|
||||
/**
|
||||
* @param $data
|
||||
* @param AMQPMessage $message
|
||||
* @return string
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function consumeMessage($data, AMQPMessage $message): string
|
||||
{
|
||||
Log::getInstance()->error("开始执行 取消未接诊问诊订单 队列:" . json_encode($data, JSON_UNESCAPED_UNICODE));
|
||||
@@ -82,16 +91,16 @@ class CancelUnInquiryOrdersDelayDirectConsumer extends ConsumerMessage
|
||||
}
|
||||
|
||||
// 取消问诊订单
|
||||
$data = array();
|
||||
$data['inquiry_status'] = 7;
|
||||
$data['cancel_time'] = date("Y-m-d H:i:s", time());
|
||||
$data['cancel_reason'] = 1; // 取消订单原因(1:医生未接诊 2:主动取消 3:无可分配医生 4:客服取消 5:支付超时)
|
||||
$data['cancel_remarks'] = "医生未接诊"; // 取消订单备注
|
||||
$data['updated_at'] = date("Y-m-d H:i:s", time());
|
||||
$save_data = array();
|
||||
$save_data['inquiry_status'] = 7;
|
||||
$save_data['cancel_time'] = date("Y-m-d H:i:s", time());
|
||||
$save_data['cancel_reason'] = 1; // 取消订单原因(1:医生未接诊 2:主动取消 3:无可分配医生 4:客服取消 5:支付超时)
|
||||
$save_data['cancel_remarks'] = "医生未接诊"; // 取消订单备注
|
||||
$save_data['updated_at'] = date("Y-m-d H:i:s", time());
|
||||
|
||||
$params = array();
|
||||
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
|
||||
OrderInquiry::edit($params, $data);
|
||||
OrderInquiry::edit($params, $save_data);
|
||||
|
||||
// 恢复优惠卷
|
||||
if (!empty($order_inquiry['coupon_amount_total']) && $order_inquiry['coupon_amount_total'] > 0) {
|
||||
@@ -101,40 +110,37 @@ class CancelUnInquiryOrdersDelayDirectConsumer extends ConsumerMessage
|
||||
$order_inquiry_coupon = OrderInquiryCoupon::getOne($params);
|
||||
if (!empty($order_inquiry_coupon)) {
|
||||
// 恢复优惠卷
|
||||
$data = array();
|
||||
$data['user_coupon_status'] = 0;
|
||||
$data['coupon_use_date'] = date('Y-m-d H:i:s', time());
|
||||
$save_data = array();
|
||||
$save_data['user_coupon_status'] = 0;
|
||||
$save_data['coupon_use_date'] = date('Y-m-d H:i:s', time());
|
||||
|
||||
$params = array();
|
||||
$params['user_coupon_id'] = $order_inquiry_coupon['user_coupon_id'];
|
||||
UserCoupon::edit($params, $data);
|
||||
UserCoupon::edit($params, $save_data);
|
||||
}
|
||||
}
|
||||
|
||||
// 支付状态
|
||||
// 订单退款
|
||||
if ($order_inquiry['inquiry_pay_status'] == 2) {
|
||||
// 检测订单退款次数
|
||||
// 检测问诊订单执行退款次数
|
||||
$InquiryService = new InquiryService();
|
||||
$res = $InquiryService->checkInquiryRefundCount($order_inquiry['order_inquiry_i d']);
|
||||
$res = $InquiryService->checkInquiryRefundCount($order_inquiry['order_inquiry_id']);
|
||||
if (!$res){
|
||||
Db::rollBack();
|
||||
Log::getInstance()->error("取消未接诊问诊订单失败:超出最大退款次数");
|
||||
return Result::ACK;
|
||||
}
|
||||
|
||||
$InquiryService->inquiryRefund($order_inquiry['order_inquiry_id'], "暂无医生接诊");
|
||||
$InquiryService->inquiryRefund($order_inquiry['order_inquiry_id'], "医生未接诊");
|
||||
|
||||
return Result::ACK;
|
||||
}
|
||||
// 订单退款
|
||||
|
||||
|
||||
Db::commit();
|
||||
} catch (\Exception $e) {
|
||||
Db::rollBack();
|
||||
Log::getInstance()->error("取消未接诊问诊订单失败:" . $e->getMessage());
|
||||
return Result::ACK;
|
||||
return Result::REQUEUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user