BUGFIX:新订阅没发送邮件

This commit is contained in:
2026-05-04 16:16:30 +08:00
parent 6e98f295c5
commit d20bb27244
3 changed files with 13 additions and 4 deletions

View File

@@ -84,24 +84,29 @@ public class StripeSubscriptionServiceImpl implements StripeSubscriptionService
SubscriptionInfo passedSubscriptionInfo) {
SubscriptionInfo subscriptionInfo = resolveSubscriptionInfo(subscription, type, orderNo, passedSubscriptionInfo);
if (subscriptionInfo == null) {
log.info("subscriptionInfo为null不发送邮件");
return false;
}
OrderInfo orderByOrderNo = orderInfoService.getOrderByOrderNo(subscriptionInfo.getOrderNo());
if (orderByOrderNo == null) {
log.info("orderByOrderNo为null不发送邮件");
return false;
}
Account account = accountMapper.selectById(subscriptionInfo.getAccountId());
if (account == null) {
log.info("account为null不发送邮件");
return false;
}
PaymentInfo paymentInfo = resolvePaymentInfo(subscriptionInfo, orderNo, type);
if (paymentInfo == null) {
log.info("paymentInfo为null不发送邮件");
return false;
}
String resolvedType = resolveEmailType(type, paymentInfo);
if (isEmailAlreadySent(subscriptionInfo, resolvedType, paymentInfo)) {
log.info("邮件已发送,取消重复发送");
return true;
}

View File

@@ -187,10 +187,13 @@ public class CheckoutSessionCompletedHandler implements StripeEventHandler {
log.info("[checkout.session.completed] 订阅记录创建完成orderNo={}subscriptionId={}periodEnd={}",
orderNo, subscriptionId, periodEnd);
stripeSubscriptionService.sendSubscriptionEmail(null, "new", orderNo, null);
log.info("[checkout.session.completed] 邮件通知完成 类型new");
boolean sent = stripeSubscriptionService.sendSubscriptionEmail(null, "new", orderNo, subscriptionInfo);
if (sent) {
log.info("[checkout.session.completed] 邮件通知完成 类型new");
} else {
log.info("[checkout.session.completed] 邮件通知未完成");
}
} catch (StripeException e) {
log.error("[checkout.session.completed] 处理订阅记录失败orderNo={}error={}", orderNo, e.getMessage());
}

View File

@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ai.da.mapper.primary.SubscriptionInfoMapper">
<insert id="insertIgnore" parameterType="com.ai.da.mapper.primary.entity.SubscriptionInfo">
<insert id="insertIgnore" parameterType="com.ai.da.mapper.primary.entity.SubscriptionInfo"
useGeneratedKeys="true" keyProperty="id">
INSERT IGNORE INTO
t_subscription_info (account_id, order_no, subscription_id, type, status, cancel_notified,
next_pay_date, current_period_start, current_period_end, create_time)