diff --git a/xdclass-common/src/main/java/net/jieyuu/model/ProductMessage.java b/xdclass-common/src/main/java/net/jieyuu/model/ProductMessage.java new file mode 100644 index 0000000..972d06d --- /dev/null +++ b/xdclass-common/src/main/java/net/jieyuu/model/ProductMessage.java @@ -0,0 +1,23 @@ +package net.jieyuu.model; + +import lombok.Data; + +@Data +public class ProductMessage { + + /** + * 消息队列id + */ + private Long messageId; + + /** + * 订单号 + */ + private String outTradeNo; + + /** + * 库存锁定工作单id + */ + private Long taskId; + +} diff --git a/xdclass-product-service/src/main/java/net/jieyuu/service/impl/ProductServiceImpl.java b/xdclass-product-service/src/main/java/net/jieyuu/service/impl/ProductServiceImpl.java index 3b61bff..9c93c69 100644 --- a/xdclass-product-service/src/main/java/net/jieyuu/service/impl/ProductServiceImpl.java +++ b/xdclass-product-service/src/main/java/net/jieyuu/service/impl/ProductServiceImpl.java @@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; +import net.jieyuu.config.RabbitMQConfig; import net.jieyuu.enums.BizCodeEnum; import net.jieyuu.enums.StockTaskStateEnum; import net.jieyuu.exception.BizException; import net.jieyuu.mapper.ProductTaskMapper; import net.jieyuu.model.ProductDO; import net.jieyuu.mapper.ProductMapper; +import net.jieyuu.model.ProductMessage; import net.jieyuu.model.ProductTaskDO; import net.jieyuu.request.LockProductRequest; import net.jieyuu.request.OrderItemRequest; @@ -17,6 +19,7 @@ import net.jieyuu.service.ProductService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import net.jieyuu.utils.JsonData; import net.jieyuu.vo.ProductVO; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -45,6 +48,12 @@ public class ProductServiceImpl extends ServiceImpl im @Autowired private ProductTaskMapper productTaskMapper; + @Autowired + private RabbitTemplate rabbitTemplate; + + @Autowired + private RabbitMQConfig rabbitMQConfig; + /** * 分页查询商品列表 * @@ -138,8 +147,15 @@ public class ProductServiceImpl extends ServiceImpl im // 插入product_task productTaskMapper.insert(productTaskDO); + log.info("商品库存锁定-插入商品product_task成功:{}", productTaskDO); - // 发送MQ延迟消息, 延迟解锁商品库存 todo + // 发送MQ延迟消息, 延迟解锁商品库存 + ProductMessage productMessage = new ProductMessage(); + productMessage.setOutTradeNo(outTradeNo); + productMessage.setTaskId(productTaskDO.getId()); + + rabbitTemplate.convertAndSend(rabbitMQConfig.getEventExchange(), rabbitMQConfig.getStockReleaseDelayRoutingKey(), productMessage); + log.info("商品库存锁定信息延迟消息发送成功:{}", productMessage); } } return null;