Merge branch 'feature/my-invitation' into preview
commit
efa88e9d7a
|
@ -10,7 +10,7 @@ spring:
|
|||
listener:
|
||||
simple:
|
||||
prefetch: 1 # 每次之能获取一条
|
||||
acknowledge-mode: auto # 设置消费端手动ack确认
|
||||
acknowledge-mode: manual # 设置消费端手动ack确认
|
||||
retry:
|
||||
enabled: true # 是否支持重试
|
||||
# 生产者配置
|
||||
|
|
|
@ -4,12 +4,15 @@ import com.mcwl.common.constant.QueueConstants;
|
|||
import com.mcwl.memberCenter.domain.UserMember;
|
||||
import com.mcwl.memberCenter.service.UserMemberService;
|
||||
import com.mcwl.memberCenter.task.UserMemberTask;
|
||||
import com.rabbitmq.client.Channel;
|
||||
import org.springframework.amqp.core.Message;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
|
@ -20,21 +23,37 @@ public class EmptyPointsRemindConsumer {
|
|||
|
||||
private final UserMemberService userMemberService;
|
||||
|
||||
@RabbitListener(queues = QueueConstants.EMPTY_POINTS_REMIND_QUEUE)
|
||||
public void emptyPointsRemind(List<UserMember> userMemberList) {
|
||||
@RabbitListener(queues = QueueConstants.EMPTY_POINTS_REMIND_QUEUE, ackMode = "MANUAL")
|
||||
public void emptyPointsRemind(UserMember UserMember, Channel channel, Message message) {
|
||||
try {
|
||||
// TODO 发送短信提醒用户积分即将清零
|
||||
log.info("消费者获取到积分清零提醒的数据:{}", userMemberList);
|
||||
log.info("获取到积分清零提醒的数据:{}", UserMember);
|
||||
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
|
||||
} catch (Exception e) {
|
||||
log.error("处理积分清零提醒消息时出错: {}", e.getMessage(), e);
|
||||
try {
|
||||
channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true);
|
||||
} catch (IOException ex) {
|
||||
log.error("消息确认失败: {}", ex.getMessage(), ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@RabbitListener(queues = QueueConstants.MEMBER_BILLING_QUEUE)
|
||||
public void memberBillingQueue(UserMember userMember) {
|
||||
@RabbitListener(queues = QueueConstants.MEMBER_BILLING_QUEUE, ackMode = "MANUAL")
|
||||
public void memberBillingQueue(UserMember userMember, Channel channel, Message message) {
|
||||
try {
|
||||
// TODO 发送短信提醒用户会员账单,如果支付成功,更新last_payment_date,并重新计算end_date(start_date + 1个月)
|
||||
log.info("消费者获取到会员账单的数据:{}", userMember);
|
||||
log.info("获取到会员账单的数据:{}", userMember);
|
||||
} catch (Exception e) {
|
||||
log.error("处理会员账单消息时出错: {}", e.getMessage(), e);
|
||||
try {
|
||||
channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true);
|
||||
} catch (IOException ex) {
|
||||
log.error("消息确认失败: {}", ex.getMessage(), ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -31,9 +31,13 @@ public class UserMemberTask {
|
|||
*/
|
||||
public void emptyPointsRemindTask() {
|
||||
List<UserMember> userMemberList = this.getUseUserMember();
|
||||
|
||||
if (userMemberList == null || userMemberList.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
// 发送积分清零消息
|
||||
rabbitTemplate.convertAndSend(QueueConstants.EMPTY_POINTS_REMIND_QUEUE, userMemberList);
|
||||
for (UserMember userMember : userMemberList) {
|
||||
rabbitTemplate.convertAndSend(QueueConstants.EMPTY_POINTS_REMIND_QUEUE, userMember);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -60,7 +64,8 @@ public class UserMemberTask {
|
|||
LambdaQueryWrapper<UserMember> qw = new LambdaQueryWrapper<>();
|
||||
// endDate大于当前时间, subscriptionStatus不为过期
|
||||
qw.gt(UserMember::getEndDate, System.currentTimeMillis())
|
||||
.ne(UserMember::getSubscriptionStatus, MemberMenu.MEMBER_CENTER_EXPIRED);
|
||||
.ne(UserMember::getSubscriptionStatus, MemberMenu.MEMBER_CENTER_EXPIRED)
|
||||
.ne(UserMember::getSubscriptionStatus, MemberMenu.MEMBER_CENTER_PENDING);
|
||||
List<UserMember> userMemberList = userMemberService.list(qw);
|
||||
if (userMemberList == null || userMemberList.isEmpty()) {
|
||||
return;
|
||||
|
@ -97,14 +102,14 @@ public class UserMemberTask {
|
|||
// subscriptionStatus 不为 "过期" 或 "待支付"
|
||||
// status 为 0 的
|
||||
LambdaQueryWrapper<UserMember> qw = new LambdaQueryWrapper<>();
|
||||
qw.le(UserMember::getStartDate, System.currentTimeMillis())
|
||||
.ge(UserMember::getEndDate, System.currentTimeMillis())
|
||||
qw.le(UserMember::getStartDate, new Date())
|
||||
.ge(UserMember::getEndDate, new Date())
|
||||
.ne(UserMember::getSubscriptionStatus, MemberMenu.MEMBER_CENTER_EXPIRED)
|
||||
.ne(UserMember::getSubscriptionStatus, MemberMenu.MEMBER_CENTER_PENDING)
|
||||
.eq(UserMember::getStatus, "0");
|
||||
// 对应的sql为
|
||||
System.out.println("sql = " + qw.getSqlSegment());
|
||||
return userMemberService.list();
|
||||
return userMemberService.list(qw);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue