新增 服务包订单取消未支付订单队列

This commit is contained in:
wucongxing8150 2024-04-11 14:17:27 +08:00
parent d28128d76e
commit a1d496dd51
4 changed files with 86 additions and 3 deletions

View File

@ -81,6 +81,9 @@ class CancelUnpayOrdersDelayDirectConsumer extends ConsumerMessage
} elseif ($data['order_type'] == 3) {
// 检测订单
$result = $OrderService->cancelUnpayOrder($data['order_no'],3,"支付超时");
} elseif ($data['order_type'] == 4) {
// 服务包订单
$result = $OrderService->cancelUnpayOrder($data['order_no'],3,"支付超时");
} else {
Log::getInstance("queue-CancelUnpayOrders")->error("order_type类型错误");
return Result::DROP;// 销毁

View File

@ -816,7 +816,7 @@ class DetectionService extends BaseService
/**
* 取消未支付检测订单
* @param string|int $order_id
* @param string|int $order_no
* @param string|int $cancel_reason 取消订单原因1:主动取消 2:客服取消 3:支付超时)
* @param string|int $cancel_remarks 取消备注
* @return array

View File

@ -95,8 +95,8 @@ class OrderService extends BaseService
$result = $OrderProductService->cancelUnpayProductOrder($order['order_no'], $cancel_reason, $cancel_remarks);
} elseif ($order['order_type'] == 3) {
// 检测订单
$DetectionService = new DetectionService();
$result = $DetectionService->cancelUnpayDetectionOrder($order['order_no'], $cancel_reason, $cancel_remarks);
$OrderServicePackageService = new OrderServicePackageService();
$result = $OrderServicePackageService->cancelUnpayServiceOrder($order['order_no'], $cancel_reason, $cancel_remarks);
}else{
$result['status'] = 0;
$result['message'] = "订单类型错误";

View File

@ -526,4 +526,84 @@ class OrderServicePackageService extends BaseService
return success($result);
}
/**
* 取消未支付检测订单
* @param string|int $order_no
* @param string|int $cancel_reason 取消订单原因1:主动取消 2:客服取消 3:支付超时)
* @param string|int $cancel_remarks 取消备注
* @return array
*/
public function cancelUnpayServiceOrder(string|int $order_no, string|int $cancel_reason, string|int $cancel_remarks): array
{
$result = array();
$result['status'] = 1;
$result['message'] = "成功";
// 获取检测订单数据
$params = array();
$params['order_service_no'] = $order_no;
$order_service_package = OrderServicePackage::getOne($params);
if (empty($order_service_package)) {
$result['status'] = 0;
$result['message'] = "未查询到对应订单数据";
return $result;
}
// 检测订单状态
if ($order_service_package['order_service_status'] == 5) {
// 订单状态1:待支付 2:未开始 3:服务中 4:服务完成 5:服务取消)
$result['status'] = 0;
$result['message'] = "订单已取消";
return $result;
}
if ($order_service_package['order_service_status'] != 1) {
// 订单状态1:待支付 2:未开始 3:服务中 4:服务完成 5:服务取消)
$result['status'] = 0;
$result['message'] = "订单取消失败";
return $result;
}
// 检测订单退款状态
if (!in_array($order_service_package['refund_status'], [0, 4, 5])) {
// 检测订单退款状态0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常)
$result['status'] = 0;
$result['message'] = "订单正在退款中";
return $result;
}
// 检测订单支付状态
if ($order_service_package['pay_status'] == 2) {
// 支付状态1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
$result['status'] = 0;
$result['message'] = "订单已支付";
return $result;
}
// 检测订单删除状态
if ($order_service_package['is_delete'] == 1) {
// 删除状态0:否 1:是)
$result['status'] = 2;
$result['message'] = "订单已被删除";
return $result;
}
// 取消检测订单
$data = array();
$data['order_service_status'] = 5; // 检测订单状态(1:待支付 2:待绑定 3:检测中 4:检测完成 5:已取消)
if ($cancel_reason == 3) {
$data['pay_status'] = 5; // 支付状态1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
}
$data['cancel_time'] = date("Y-m-d H:i:s", time());
$data['cancel_remarks'] = $cancel_remarks; // 取消订单备注
$data['updated_at'] = date("Y-m-d H:i:s", time());
$params = array();
$params['order_service_id'] = $order_service_package['order_service_id'];
OrderServicePackage::edit($params, $data);
return $result;
}
}