修正取消问诊订单退款问题

This commit is contained in:
wucongxing8150 2024-04-26 17:07:42 +08:00
parent 259143a471
commit 3c6d820ee2
4 changed files with 59 additions and 24 deletions

View File

@ -9,6 +9,7 @@ use App\Amqp\Producer\CancelUnInquiryOrdersDelayDirectProducer;
use App\Amqp\Producer\DoctorNotYetInquiryDelayDirectProducer;
use App\Amqp\Producer\UserCouponExpiredDelayDirectProducer;
use App\Constants\HttpEnumCode;
use App\Model\Order;
use App\Model\OrderInquiry;
use App\Model\OrderInquiryCase;
use App\Model\UserDoctor;
@ -105,12 +106,19 @@ class AssignDoctorDelayDirectConsumer extends ConsumerMessage
return Result::ACK;
}
Log::getInstance("queue-AssignDoctor")->info("信息:订单退款");
$OrderService = new OrderService();
$OrderService->orderRefund($order_inquiry['inquiry_no'], "无可分配医生");
Log::getInstance("queue-AssignDoctor")->info("取消问诊订单");
// 取消订单
$order_data = array();
$order_data['cancel_status'] = 1;
$order_data['cancel_time'] = date("Y-m-d H:i:s", time());
$order_data['cancel_remarks'] = "未分配到合适的医生";
$order_data['updated_at'] = date("Y-m-d H:i:s", time());
$params = array();
$params['order_id'] = $order_inquiry['order_id'];
Order::edit($params, $order_data);
$save_data = array();
$save_data['inquiry_status'] = 7;
@ -123,8 +131,6 @@ class AssignDoctorDelayDirectConsumer extends ConsumerMessage
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
OrderInquiry::edit($params, $save_data);
Log::getInstance("queue-AssignDoctor")->info("已退款");
Db::commit();
try {
@ -152,12 +158,19 @@ class AssignDoctorDelayDirectConsumer extends ConsumerMessage
return Result::ACK;
}
Log::getInstance("queue-AssignDoctor")->info("订单退款");
$OrderService = new OrderService();
$OrderService->orderRefund($order_inquiry['inquiry_no'], "未分配到合适的医生");
Log::getInstance("queue-AssignDoctor")->info("取消问诊订单");
// 取消订单
$order_data = array();
$order_data['cancel_status'] = 1;
$order_data['cancel_time'] = date("Y-m-d H:i:s", time());
$order_data['cancel_remarks'] = "未分配到合适的医生";
$order_data['updated_at'] = date("Y-m-d H:i:s", time());
$params = array();
$params['order_id'] = $order_inquiry['order_id'];
Order::edit($params, $order_data);
$save_data = array();
$save_data['inquiry_status'] = 7;

View File

@ -120,8 +120,8 @@ class CancelUnInquiryOrdersDelayDirectConsumer extends ConsumerMessage
$order_data['updated_at'] = date("Y-m-d H:i:s", time());
$params = array();
$params['order_no'] = $order_inquiry['inquiry_no'];
Order::edit($params,$order_data);
$params['order_id'] = $order_inquiry['order_id'];
Order::edit($params, $order_data);
// 取消问诊订单
$order_inquiry_data = array();
@ -161,10 +161,31 @@ class CancelUnInquiryOrdersDelayDirectConsumer extends ConsumerMessage
// 检测问诊是否服务包首次问诊
$is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_no);
if ($is_first){
// 如果是服务包的首单问诊订单即执行服务包退款
// 取消订单
$order_data = array();
$order_data['cancel_status'] = 1;
$order_data['cancel_time'] = date("Y-m-d H:i:s", time());
$order_data['cancel_remarks'] = "医生未接受服务";
$order_data['updated_at'] = date("Y-m-d H:i:s", time());
$params = array();
$params['order_no'] = $order_service_no;
Order::edit($params, $order_data);
// 取消问诊订单
$order_inquiry_data = array();
$order_inquiry_data['order_service_status'] = 5;
$order_inquiry_data['cancel_time'] = date("Y-m-d H:i:s", time());
$order_inquiry_data['cancel_remarks'] = "医生未接受服务"; // 取消订单备注
$order_inquiry_data['updated_at'] = date("Y-m-d H:i:s", time());
$params = array();
$params['order_service_no'] = $order_service_no;
OrderInquiry::edit($params, $order_inquiry_data);
// 如果是服务包的首单问诊订单即执行服务包退款
$OrderService = new OrderService();
$OrderService->orderRefund($order_service_no, "医生未接诊");
$OrderService->orderRefund($order_service_no, "医生未接受服务");
}
}
}

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Command;
use App\Model\Order;
use App\Model\OrderPrescription;
use App\Model\OrderProduct;
use App\Model\UserPatient;
@ -277,8 +278,19 @@ class getPrescriptionOrderStatusCommand extends HyperfCommand
* @param array|object $order_product
* @param string $cancel_remarks
*/
protected function savePreFailedOrderStatus(array|object $order_product,string $cancel_remarks)
protected function savePreFailedOrderStatus(array|object $order_product,string $cancel_remarks): void
{
// 取消订单
$order_data = array();
$order_data['cancel_status'] = 1;
$order_data['cancel_time'] = date("Y-m-d H:i:s", time());
$order_data['cancel_remarks'] = $cancel_remarks;
$order_data['updated_at'] = date("Y-m-d H:i:s", time());
$params = array();
$params['order_id'] = $order_product['order_id'];
Order::edit($params, $order_data);
// 订单状态1:待支付 2:待发货 3:已发货 4:已签收 5:已取消)
$params = array();
$params['order_product_id'] = $order_product['order_product_id'];

View File

@ -148,17 +148,6 @@ class OrderService extends BaseService
throw new BusinessException("订单支付状态错误");
}
// // 取消订单
// $order_data = array();
// $order_data['cancel_status'] = 1;
// $order_data['cancel_time'] = date("Y-m-d H:i:s", time());
// $order_data['cancel_remarks'] = "医生未接诊";
// $order_data['updated_at'] = date("Y-m-d H:i:s", time());
//
// $params = array();
// $params['order_id'] = $order['order_id'];
// Order::edit($params, $order_data);
// 处理对应订单
if ($order['order_type'] == 1) {
// 检测问诊订单可退款状态