用户主动取消订单增加退款。取消订单-问诊/检测/服务包增加推送消息

This commit is contained in:
wucongxing8150 2024-04-15 13:27:31 +08:00
parent a105ba2ad3
commit 31c3ce57b8
3 changed files with 71 additions and 1 deletions

View File

@ -2354,7 +2354,7 @@ class CallBackController extends AbstractController
if ($order_service_package['refund_status'] == 3) { if ($order_service_package['refund_status'] == 3) {
// 检测订单退款状态0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常) // 检测订单退款状态0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常)
Db::rollBack(); Db::rollBack();
Log::getInstance("CallBack-wxPayServiceRefund")->error("订单退款状态错误:当前为" . $order_service_package['refund_status']); Log::getInstance("CallBack-wxPayServiceRefund")->info('已退款成功,此回调不处理');
return $server->serve(); return $server->serve();
} }

View File

@ -992,6 +992,13 @@ class OrderService extends BaseService
throw new BusinessException("订单类型错误"); throw new BusinessException("订单类型错误");
} }
// 检测支付状态,判断是否需要退款处理
if ($order['pay_status'] == 2 && $order['refund_status'] != 3) {
// 需退款
$OrderService = new OrderService();
$OrderService->orderRefund($order['order_no'], "主动取消");
}
// 删除锁 // 删除锁
$redis->del($redis_key); $redis->del($redis_key);

View File

@ -2421,6 +2421,14 @@ class PatientOrderService extends BaseService
Db::beginTransaction(); Db::beginTransaction();
try { try {
// 获取订单数据
$params = array();
$params['order_no'] = $order_no;
$order = Order::getOne($params);
if (empty($order)) {
return fail(HttpEnumCode::HTTP_ERROR, "非法订单");
}
$OrderService = new OrderService(); $OrderService = new OrderService();
$result = $OrderService->PatientActiveCancelOrder($order_no); $result = $OrderService->PatientActiveCancelOrder($order_no);
if ($result['status'] != 1) { if ($result['status'] != 1) {
@ -2434,6 +2442,61 @@ class PatientOrderService extends BaseService
return fail(HttpEnumCode::HTTP_ERROR, $e->getMessage()); return fail(HttpEnumCode::HTTP_ERROR, $e->getMessage());
} }
// 推送消息
try {
// 处理对应订单
switch ($order['order_type']) {
case 1: // 问诊订单
// 获取订单数据
$params = array();
$params['inquiry_no'] = $order_no;
$order_inquiry = OrderInquiry::getOne($params);
if (!empty($order_inquiry)) {
// 获取医生数据
$params = array();
$params['doctor_id'] = $order_inquiry['doctor_id'];
$user_doctor = UserDoctor::getOne($params);
if (!empty($user_doctor)) {
// 推送医生-患者取消问诊
$MessagePush = new MessagePush($user_doctor['user_id'], $order_inquiry['order_inquiry_id']);
$MessagePush->patientCancelInquiryToDoctor();
}
}
break;
case 3: // 检测订单
// 获取订单数据
$params = array();
$params['detection_no'] = $order_no;
$order_detection = OrderDetection::getOne($params);
if (!empty($order_detection)) {
// 推送患者-订单取消成功通知
$MessagePush = new MessagePush($order_detection['user_id']);
$MessagePush->patientCancelDetectionOrderSuccess($order_detection['order_detection_id']);
}
break;
case 4: // 健康包订单
case 5: // 随访包订单
// 获取订单数据
$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;
}
break;
default:
// 错误不处理
}
}catch (\Throwable $e){
// 错误不处理
Log::getInstance("PatientOrderService-putCancelPatientOrder")->error($e->getMessage());
}
return success(); return success();
} }