增加延迟取消未接诊订单队列

This commit is contained in:
2023-03-28 09:51:08 +08:00
parent e7bff9c66d
commit 7f7fd558c1
3 changed files with 63 additions and 63 deletions
@@ -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;
}