package com.ruoyi.integration.rocket.listener;
|
|
import com.ruoyi.integration.api.model.EndCharge;
|
import com.ruoyi.integration.api.model.Ping;
|
import com.ruoyi.integration.api.model.Pong;
|
import com.ruoyi.integration.iotda.constant.SendTagConstant;
|
import com.ruoyi.integration.iotda.enums.ServiceIdMenu;
|
import com.ruoyi.integration.iotda.utils.produce.IotMessageProduce;
|
import com.ruoyi.integration.iotda.utils.tools.MessageUtil;
|
import com.ruoyi.integration.mongodb.service.EndChargeService;
|
import com.ruoyi.integration.mongodb.service.PingService;
|
import com.ruoyi.integration.rocket.model.ChargingMessage;
|
import com.ruoyi.integration.rocket.model.ChargingOrderMessage;
|
import com.ruoyi.integration.rocket.model.EndChargeMessage;
|
import com.ruoyi.integration.rocket.model.PingMessage;
|
import com.ruoyi.integration.rocket.produce.EnhanceProduce;
|
import com.ruoyi.integration.rocket.util.EnhanceMessageHandler;
|
import com.ruoyi.order.api.feignClient.ChargingOrderClient;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.rocketmq.spring.annotation.MessageModel;
|
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
import org.apache.rocketmq.spring.core.RocketMQListener;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
|
@Slf4j
|
@Component
|
@RocketMQMessageListener(
|
messageModel = MessageModel.CLUSTERING,
|
consumerGroup = "charge_end_charge",
|
topic = "charge_end_charge",
|
selectorExpression = "end_charge"
|
)
|
public class EndChargeMessageListener implements RocketMQListener<EndChargeMessage> {
|
|
@Autowired
|
private EndChargeService endChargeService;
|
@Resource
|
private ChargingOrderClient chargingOrderClient;
|
@Autowired
|
private EnhanceProduce enhanceProduce;
|
|
|
|
/**
|
* 监听消费消息,不需要执行业务处理,委派给父类做基础操作,父类做完基础操作后会调用子类的实际处理类型
|
*/
|
@Override
|
public void onMessage(EndChargeMessage message) {
|
log.info("充电结束-业务消息处理:{}",message);
|
// 持久化消息
|
EndCharge endCharge = new EndCharge();
|
BeanUtils.copyProperties(message,endCharge);
|
endChargeService.create(endCharge);
|
// 业务处理
|
chargingOrderClient.endCharge(endCharge.getTransaction_serial_number());
|
// 订单id
|
String transactionSerialNumber = endCharge.getTransaction_serial_number();
|
ChargingOrderMessage chargingOrderMessage = new ChargingOrderMessage();
|
chargingOrderMessage.setOrderNumber(transactionSerialNumber);
|
// 推送充电订单信息
|
ChargingMessage chargingMessage1 = new ChargingMessage();
|
chargingMessage1.setServiceId(SendTagConstant.ORDER_INFO);
|
chargingMessage1.setOrderMessage(chargingOrderMessage);
|
enhanceProduce.orderInfoMessage(chargingMessage1);
|
// 推送充电订单状态
|
ChargingMessage chargingMessage2 = new ChargingMessage();
|
chargingMessage2.setServiceId(SendTagConstant.ORDER_STATUS);
|
chargingMessage2.setOrderMessage(chargingOrderMessage);
|
enhanceProduce.orderStatusMessage(chargingMessage2);
|
}
|
}
|