新增退款成功,恢复优惠卷

This commit is contained in:
wucongxing 2023-04-12 17:43:34 +08:00
parent 28e0a9041c
commit ab6c289bc4
4 changed files with 50 additions and 24 deletions

View File

@ -105,28 +105,6 @@ class CancelUnInquiryOrdersDelayDirectConsumer extends ConsumerMessage
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; $params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
OrderInquiry::edit($params, $save_data); OrderInquiry::edit($params, $save_data);
// 恢复优惠卷
if (!empty($order_inquiry['coupon_amount_total']) && $order_inquiry['coupon_amount_total'] > 0) {
// 获取用户优惠卷信息
$params = array();
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$order_inquiry_coupon = OrderInquiryCoupon::getOne($params);
if (!empty($order_inquiry_coupon)) {
// 恢复优惠卷
$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, $save_data);
// 发送站内消息-优惠卷退还
$MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['order_inquiry_id']);
$MessagePush->patientRefundCoupon();
}
}
// 订单退款 // 订单退款
if ($order_inquiry['inquiry_pay_status'] == 2) { if ($order_inquiry['inquiry_pay_status'] == 2) {
// 检测问诊订单执行退款次数 // 检测问诊订单执行退款次数

View File

@ -22,6 +22,7 @@ use App\Model\UserDoctor;
use App\Model\UserPatient; use App\Model\UserPatient;
use App\Services\BaseService; use App\Services\BaseService;
use App\Services\ImService; use App\Services\ImService;
use App\Services\InquiryService;
use App\Services\MessagePush; use App\Services\MessagePush;
use App\Services\OrderPrescriptionService; use App\Services\OrderPrescriptionService;
use App\Utils\Log; use App\Utils\Log;
@ -282,6 +283,12 @@ class CallBackController extends AbstractController
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; $params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
OrderInquiryRefund::edit($params,$data); OrderInquiryRefund::edit($params,$data);
// 恢复优惠卷
if (!empty($order_inquiry['coupon_amount_total']) && $order_inquiry['coupon_amount_total'] > 0) {
$InquiryService = new InquiryService();
$InquiryService->returnInquiryCoupon($order_inquiry['order_inquiry_id'],$order_inquiry['user_id']);
}
Db::commit(); Db::commit();
} catch (\Exception $e) { } catch (\Exception $e) {
// 验证失败 // 验证失败

View File

@ -145,6 +145,7 @@ class PatientHistoryInquiry extends Model
"UserDoctor.Hospital:hospital_id,hospital_name" "UserDoctor.Hospital:hospital_id,hospital_name"
]) ])
->where($params) ->where($params)
->orderBy('created_at','desc')
->get($fields); ->get($fields);
} }

View File

@ -261,8 +261,6 @@ class InquiryService extends BaseService
UserCoupon::edit($params, $data); UserCoupon::edit($params, $data);
} }
// 增加至未支付取消订单延迟队列 // 增加至未支付取消订单延迟队列
$data = array(); $data = array();
$data['order_no'] = $order_inquiry['inquiry_no']; $data['order_no'] = $order_inquiry['inquiry_no'];
@ -1166,4 +1164,46 @@ class InquiryService extends BaseService
return true; return true;
} }
/**
* 退还问诊订单优惠卷
* @param string $order_inquiry_id 问诊订单id
* @param string $patient_user_id 患者用户id
* @return bool
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
public function returnInquiryCoupon(string $order_inquiry_id,string $patient_user_id): bool
{
try {
// 获取用户优惠卷信息
$params = array();
$params['order_inquiry_id'] = $order_inquiry_id;
$order_inquiry_coupon = OrderInquiryCoupon::getOne($params);
if (empty($order_inquiry_coupon)){
// 订单未使用优惠卷,无需退还
return true;
}
if (!empty($order_inquiry_coupon)) {
// 恢复优惠卷
$data = array();
$data['user_coupon_status'] = 0;
$data['coupon_use_date'] = null;
$params = array();
$params['user_coupon_id'] = $order_inquiry_coupon['user_coupon_id'];
UserCoupon::edit($params, $data);
// 发送站内消息-优惠卷退还
$MessagePush = new MessagePush($patient_user_id,$order_inquiry_id);
$MessagePush->patientRefundCoupon();
}
return true;
} catch(\Exception $e){
Log::getInstance()->error("退还用户优惠卷失败" . $e->getMessage());
return false;
}
}
} }