|
|
@@ -281,6 +281,8 @@ public class AiUserAuditTaskServiceImpl implements AiUserAuditTaskService {
|
|
|
|
|
|
if ("调用成功".equals(refundResult)) {
|
|
|
log.info("订单退款成功,订单号:{},退款金额:{}元", orderNumber, refundAmount.toString());
|
|
|
+ // 退款成功后,发送退款成功通知和退款到账通知
|
|
|
+ sendRefundSuccessNotifications(order);
|
|
|
} else {
|
|
|
log.error("订单退款失败,订单号:{},退款结果:{}", orderNumber, refundResult);
|
|
|
// 退款失败时抛出异常,触发事务回滚
|
|
|
@@ -616,5 +618,74 @@ public class AiUserAuditTaskServiceImpl implements AiUserAuditTaskService {
|
|
|
log.error("发送WebSocket消息异常,接收人ID:{},异常信息:{}", receiverId, e.getMessage(), e);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发送退款成功通知和退款到账通知
|
|
|
+ * <p>
|
|
|
+ * 当退款成功后,向订单用户发送退款成功通知和退款到账通知
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @param order 订单信息
|
|
|
+ */
|
|
|
+ private void sendRefundSuccessNotifications(LawyerConsultationOrder order) {
|
|
|
+ try {
|
|
|
+ // 获取订单用户的接收人ID
|
|
|
+ String receiverId = getOrderUserReceiverId(order);
|
|
|
+ if (!StringUtils.hasText(receiverId)) {
|
|
|
+ log.warn("获取订单用户接收ID失败,订单号:{}", order.getOrderNumber());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建通知内容
|
|
|
+ String message = String.format("您的编号为%s的订单,订单金额已原路返还至您的支付渠道,请查收。",
|
|
|
+ order.getOrderNumber());
|
|
|
+
|
|
|
+ // 发送退款成功通知
|
|
|
+ LifeNotice refundSuccessNotice = createLifeNotice(order.getId(), receiverId, "退款成功通知", message);
|
|
|
+ lifeNoticeMapper.insert(refundSuccessNotice);
|
|
|
+ sendWebSocketMessage(receiverId, refundSuccessNotice);
|
|
|
+
|
|
|
+ // 发送退款到账通知
|
|
|
+ LifeNotice refundArrivalNotice = createLifeNotice(order.getId(), receiverId, "退款到账通知", message);
|
|
|
+ lifeNoticeMapper.insert(refundArrivalNotice);
|
|
|
+ sendWebSocketMessage(receiverId, refundArrivalNotice);
|
|
|
+
|
|
|
+ log.info("退款成功通知和退款到账通知发送成功,订单号:{},接收人ID:{}", order.getOrderNumber(), receiverId);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("发送退款成功通知异常,订单号:{},异常信息:{}", order.getOrderNumber(), e.getMessage(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取订单用户的接收人ID
|
|
|
+ * <p>
|
|
|
+ * 根据订单的客户端用户ID获取用户信息,返回接收人ID
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @param order 订单信息
|
|
|
+ * @return 接收人ID,格式:user_ + 手机号
|
|
|
+ */
|
|
|
+ private String getOrderUserReceiverId(LawyerConsultationOrder order) {
|
|
|
+ if (order == null || order.getClientUserId() == null) {
|
|
|
+ log.warn("订单或客户端用户ID为空");
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ // 查询普通用户信息
|
|
|
+ LifeUser lifeUser = lifeUserMapper.selectById(order.getClientUserId());
|
|
|
+ if (lifeUser != null && StringUtils.hasText(lifeUser.getUserPhone())) {
|
|
|
+ return "user_" + lifeUser.getUserPhone();
|
|
|
+ }
|
|
|
+
|
|
|
+ log.warn("获取订单用户手机号失败,订单号:{},客户端用户ID:{}", order.getOrderNumber(), order.getClientUserId());
|
|
|
+ return null;
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("获取订单用户接收ID异常,订单号:{},客户端用户ID:{},异常信息:{}",
|
|
|
+ order.getOrderNumber(), order.getClientUserId(), e.getMessage(), e);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|