发送task至延迟队列开发
This commit is contained in:
parent
f961aa5c46
commit
7ded360e7c
@ -0,0 +1,23 @@
|
|||||||
|
package net.jieyuu.model;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CouponRecordMessage {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 消息队列id
|
||||||
|
*/
|
||||||
|
private Long messageId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单号
|
||||||
|
*/
|
||||||
|
private String outTradeNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 库存锁定工作单id
|
||||||
|
*/
|
||||||
|
private Long taskId;
|
||||||
|
|
||||||
|
}
|
@ -5,6 +5,7 @@ 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.InterceptorConfig;
|
import net.jieyuu.config.InterceptorConfig;
|
||||||
|
import net.jieyuu.config.RabbitMQConfig;
|
||||||
import net.jieyuu.enums.BizCodeEnum;
|
import net.jieyuu.enums.BizCodeEnum;
|
||||||
import net.jieyuu.enums.CouponStateEnum;
|
import net.jieyuu.enums.CouponStateEnum;
|
||||||
import net.jieyuu.enums.StockTaskStateEnum;
|
import net.jieyuu.enums.StockTaskStateEnum;
|
||||||
@ -13,6 +14,7 @@ import net.jieyuu.interceptor.LoginInterceptor;
|
|||||||
import net.jieyuu.mapper.CouponTaskMapper;
|
import net.jieyuu.mapper.CouponTaskMapper;
|
||||||
import net.jieyuu.model.CouponRecordDO;
|
import net.jieyuu.model.CouponRecordDO;
|
||||||
import net.jieyuu.mapper.CouponRecordMapper;
|
import net.jieyuu.mapper.CouponRecordMapper;
|
||||||
|
import net.jieyuu.model.CouponRecordMessage;
|
||||||
import net.jieyuu.model.CouponTaskDO;
|
import net.jieyuu.model.CouponTaskDO;
|
||||||
import net.jieyuu.model.LoginUser;
|
import net.jieyuu.model.LoginUser;
|
||||||
import net.jieyuu.request.LockCouponRecordRequest;
|
import net.jieyuu.request.LockCouponRecordRequest;
|
||||||
@ -20,6 +22,7 @@ import net.jieyuu.service.CouponRecordService;
|
|||||||
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.CouponRecordVO;
|
import net.jieyuu.vo.CouponRecordVO;
|
||||||
|
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;
|
||||||
@ -47,6 +50,11 @@ public class CouponRecordServiceImpl extends ServiceImpl<CouponRecordMapper, Cou
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CouponTaskMapper couponTaskMapper;
|
private CouponTaskMapper couponTaskMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RabbitTemplate rabbitTemplate;
|
||||||
|
@Autowired
|
||||||
|
private RabbitMQConfig rabbitMQConfig;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> page(int page, int size) {
|
public Map<String, Object> page(int page, int size) {
|
||||||
LoginUser loginUser = LoginInterceptor.threadLocal.get();
|
LoginUser loginUser = LoginInterceptor.threadLocal.get();
|
||||||
@ -111,8 +119,16 @@ public class CouponRecordServiceImpl extends ServiceImpl<CouponRecordMapper, Cou
|
|||||||
|
|
||||||
//mq延迟队列投递
|
//mq延迟队列投递
|
||||||
if (insertRows == couponTaskDOList.size() && insertRows == updateRows) {
|
if (insertRows == couponTaskDOList.size() && insertRows == updateRows) {
|
||||||
//发送延迟消息 TODO
|
//发送延迟消息
|
||||||
|
for (CouponTaskDO couponTaskDO : couponTaskDOList) {
|
||||||
|
// 构建CouponRecordMessage
|
||||||
|
CouponRecordMessage couponRecordMessage = new CouponRecordMessage();
|
||||||
|
couponRecordMessage.setOutTradeNo(orderOutTradeNo);
|
||||||
|
couponRecordMessage.setTaskId(couponTaskDO.getId());
|
||||||
|
// 传入交换机 投入延迟队列
|
||||||
|
rabbitTemplate.convertAndSend(rabbitMQConfig.getEventExchange(), rabbitMQConfig.getCouponReleaseDelayRoutingKey(), couponRecordMessage);
|
||||||
|
log.info("优惠券锁定消息发送成功:{}", couponRecordMessage.toString());
|
||||||
|
}
|
||||||
return JsonData.buildSuccess();
|
return JsonData.buildSuccess();
|
||||||
} else {
|
} else {
|
||||||
throw new BizException(BizCodeEnum.COUPON_RECORD_LOCK_FAIL);
|
throw new BizException(BizCodeEnum.COUPON_RECORD_LOCK_FAIL);
|
||||||
|
Loading…
Reference in New Issue
Block a user