锁定商品发送延迟消息成功

This commit is contained in:
jieyuu 2024-09-02 16:25:17 +08:00
parent 26b1ece7ea
commit dc84ba667a
2 changed files with 40 additions and 1 deletions

View File

@ -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;
}

View File

@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.jieyuu.config.RabbitMQConfig;
import net.jieyuu.enums.BizCodeEnum; import net.jieyuu.enums.BizCodeEnum;
import net.jieyuu.enums.StockTaskStateEnum; import net.jieyuu.enums.StockTaskStateEnum;
import net.jieyuu.exception.BizException; import net.jieyuu.exception.BizException;
import net.jieyuu.mapper.ProductTaskMapper; import net.jieyuu.mapper.ProductTaskMapper;
import net.jieyuu.model.ProductDO; import net.jieyuu.model.ProductDO;
import net.jieyuu.mapper.ProductMapper; import net.jieyuu.mapper.ProductMapper;
import net.jieyuu.model.ProductMessage;
import net.jieyuu.model.ProductTaskDO; import net.jieyuu.model.ProductTaskDO;
import net.jieyuu.request.LockProductRequest; import net.jieyuu.request.LockProductRequest;
import net.jieyuu.request.OrderItemRequest; import net.jieyuu.request.OrderItemRequest;
@ -17,6 +19,7 @@ import net.jieyuu.service.ProductService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.jieyuu.utils.JsonData; import net.jieyuu.utils.JsonData;
import net.jieyuu.vo.ProductVO; import net.jieyuu.vo.ProductVO;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -45,6 +48,12 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, ProductDO> im
@Autowired @Autowired
private ProductTaskMapper productTaskMapper; private ProductTaskMapper productTaskMapper;
@Autowired
private RabbitTemplate rabbitTemplate;
@Autowired
private RabbitMQConfig rabbitMQConfig;
/** /**
* 分页查询商品列表 * 分页查询商品列表
* *
@ -138,8 +147,15 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, ProductDO> im
// 插入product_task // 插入product_task
productTaskMapper.insert(productTaskDO); 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; return null;