后端:增加商品修改时,发送 MQ 消息
后端:增加搜索服务,监听 MQ 消息,建立商品索引
This commit is contained in:
@@ -1,13 +0,0 @@
|
||||
package cn.iocoder.mall.pay.biz.constant;
|
||||
|
||||
/**
|
||||
* MQ 枚举类
|
||||
*/
|
||||
public class MQConstant {
|
||||
|
||||
/**
|
||||
* Topic - 支付交易单支付成功
|
||||
*/
|
||||
public static final String TOPIC_PAY_TRANSACTION_PAY_SUCCESS = "PAY_TRANSACTION_PAY_SUCCESS";
|
||||
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import cn.iocoder.mall.pay.api.dto.PayTransactionSubmitDTO;
|
||||
import cn.iocoder.mall.pay.biz.dataobject.PayTransactionDO;
|
||||
import cn.iocoder.mall.pay.biz.dataobject.PayTransactionExtensionDO;
|
||||
import cn.iocoder.mall.pay.biz.dataobject.PayTransactionNotifyTaskDO;
|
||||
import cn.iocoder.mall.pay.biz.mq.PayTransactionPaySuccessMessage;
|
||||
import cn.iocoder.mall.pay.api.message.PayTransactionPaySuccessMessage;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
@@ -28,4 +28,4 @@ public interface PayTransactionConvert {
|
||||
@Mappings({})
|
||||
PayTransactionPaySuccessMessage convert(PayTransactionNotifyTaskDO payTransactionNotifyTaskDO);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package cn.iocoder.mall.pay.biz.mq;
|
||||
import cn.iocoder.common.framework.util.DateUtil;
|
||||
import cn.iocoder.common.framework.util.ExceptionUtil;
|
||||
import cn.iocoder.mall.pay.api.constant.PayTransactionNotifyStatusEnum;
|
||||
import cn.iocoder.mall.pay.biz.constant.MQConstant;
|
||||
import cn.iocoder.mall.pay.api.message.PayTransactionPaySuccessMessage;
|
||||
import cn.iocoder.mall.pay.biz.dao.PayTransactionMapper;
|
||||
import cn.iocoder.mall.pay.biz.dao.PayTransactionNotifyLogMapper;
|
||||
import cn.iocoder.mall.pay.biz.dao.PayTransactionNotifyTaskMapper;
|
||||
@@ -31,8 +31,8 @@ import java.util.Date;
|
||||
|
||||
@Service
|
||||
@RocketMQMessageListener(
|
||||
topic = MQConstant.TOPIC_PAY_TRANSACTION_PAY_SUCCESS,
|
||||
consumerGroup = "pay-consumer-group-" + MQConstant.TOPIC_PAY_TRANSACTION_PAY_SUCCESS
|
||||
topic = PayTransactionPaySuccessMessage.TOPIC,
|
||||
consumerGroup = "pay-consumer-group-" + PayTransactionPaySuccessMessage.TOPIC
|
||||
)
|
||||
public class PayTransactionPaySuccessConsumer implements RocketMQListener<PayTransactionPaySuccessMessage> {
|
||||
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
package cn.iocoder.mall.pay.biz.mq;
|
||||
|
||||
import cn.iocoder.mall.pay.biz.dataobject.PayTransactionDO;
|
||||
|
||||
/**
|
||||
* {@link cn.iocoder.mall.pay.biz.constant.MQConstant#TOPIC_PAY_TRANSACTION_PAY_SUCCESS} 的消息对象
|
||||
*/
|
||||
public class PayTransactionPaySuccessMessage {
|
||||
|
||||
/**
|
||||
* 编号,自增
|
||||
*/
|
||||
private Integer id;
|
||||
/**
|
||||
* 交易编号
|
||||
*
|
||||
* {@link PayTransactionDO#getId()}
|
||||
*/
|
||||
private Integer transactionId;
|
||||
/**
|
||||
* 应用编号
|
||||
*/
|
||||
private String appId;
|
||||
/**
|
||||
* 应用订单编号
|
||||
*/
|
||||
private String orderId;
|
||||
/**
|
||||
* 当前通知次数
|
||||
*/
|
||||
private Integer notifyTimes;
|
||||
/**
|
||||
* 通知地址
|
||||
*/
|
||||
private String notifyUrl;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public PayTransactionPaySuccessMessage setId(Integer id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getAppId() {
|
||||
return appId;
|
||||
}
|
||||
|
||||
public PayTransactionPaySuccessMessage setAppId(String appId) {
|
||||
this.appId = appId;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getOrderId() {
|
||||
return orderId;
|
||||
}
|
||||
|
||||
public PayTransactionPaySuccessMessage setOrderId(String orderId) {
|
||||
this.orderId = orderId;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getNotifyTimes() {
|
||||
return notifyTimes;
|
||||
}
|
||||
|
||||
public PayTransactionPaySuccessMessage setNotifyTimes(Integer notifyTimes) {
|
||||
this.notifyTimes = notifyTimes;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getNotifyUrl() {
|
||||
return notifyUrl;
|
||||
}
|
||||
|
||||
public PayTransactionPaySuccessMessage setNotifyUrl(String notifyUrl) {
|
||||
this.notifyUrl = notifyUrl;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getTransactionId() {
|
||||
return transactionId;
|
||||
}
|
||||
|
||||
public PayTransactionPaySuccessMessage setTransactionId(Integer transactionId) {
|
||||
this.transactionId = transactionId;
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package cn.iocoder.mall.pay.biz.scheduler;
|
||||
|
||||
import cn.iocoder.mall.pay.biz.constant.MQConstant;
|
||||
import cn.iocoder.mall.pay.api.message.PayTransactionPaySuccessMessage;
|
||||
import cn.iocoder.mall.pay.biz.convert.PayTransactionConvert;
|
||||
import cn.iocoder.mall.pay.biz.dao.PayTransactionNotifyTaskMapper;
|
||||
import cn.iocoder.mall.pay.biz.dataobject.PayTransactionNotifyTaskDO;
|
||||
@@ -35,7 +35,7 @@ public class PayTransactionNotifyJob extends IJobHandler {
|
||||
// 循环任务,发送通知
|
||||
for (PayTransactionNotifyTaskDO payTransactionNotifyTask : notifyTasks) {
|
||||
// 发送 MQ
|
||||
rocketMQTemplate.convertAndSend(MQConstant.TOPIC_PAY_TRANSACTION_PAY_SUCCESS,
|
||||
rocketMQTemplate.convertAndSend(PayTransactionPaySuccessMessage.TOPIC,
|
||||
PayTransactionConvert.INSTANCE.convert(payTransactionNotifyTask));
|
||||
// 更新最后通知时间
|
||||
// 1. 这样操作,虽然可能会出现 MQ 消费快于下面 PayTransactionNotifyTaskDO 的更新语句。但是,因为更新字段不同,所以不会有问题。
|
||||
@@ -48,4 +48,4 @@ public class PayTransactionNotifyJob extends IJobHandler {
|
||||
return new ReturnT<>("执行通知数:" + notifyTasks.size());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,10 +12,10 @@ import cn.iocoder.mall.pay.api.constant.PayTransactionNotifyStatusEnum;
|
||||
import cn.iocoder.mall.pay.api.constant.PayTransactionStatusEnum;
|
||||
import cn.iocoder.mall.pay.api.dto.PayTransactionCreateDTO;
|
||||
import cn.iocoder.mall.pay.api.dto.PayTransactionSubmitDTO;
|
||||
import cn.iocoder.mall.pay.api.message.PayTransactionPaySuccessMessage;
|
||||
import cn.iocoder.mall.pay.biz.client.AbstractPaySDK;
|
||||
import cn.iocoder.mall.pay.biz.client.PaySDKFactory;
|
||||
import cn.iocoder.mall.pay.biz.client.TransactionPaySuccessBO;
|
||||
import cn.iocoder.mall.pay.biz.constant.MQConstant;
|
||||
import cn.iocoder.mall.pay.biz.convert.PayTransactionConvert;
|
||||
import cn.iocoder.mall.pay.biz.dao.PayTransactionExtensionMapper;
|
||||
import cn.iocoder.mall.pay.biz.dao.PayTransactionMapper;
|
||||
@@ -188,7 +188,7 @@ public class PayServiceImpl implements PayTransactionService {
|
||||
payTransactionNotifyTaskMapper.insert(payTransactionNotifyTask);
|
||||
logger.info("[updateTransactionPaySuccess][PayTransactionNotifyTaskDO({}) 新增一个任务]", payTransactionNotifyTask.getId());
|
||||
// 3.2 发送 MQ
|
||||
rocketMQTemplate.convertAndSend(MQConstant.TOPIC_PAY_TRANSACTION_PAY_SUCCESS,
|
||||
rocketMQTemplate.convertAndSend(PayTransactionPaySuccessMessage.TOPIC,
|
||||
PayTransactionConvert.INSTANCE.convert(payTransactionNotifyTask));
|
||||
logger.info("[updateTransactionPaySuccess][PayTransactionNotifyTaskDO({}) 发送 MQ 任务]", payTransactionNotifyTask.getId());
|
||||
// 返回结果
|
||||
|
||||
Reference in New Issue
Block a user