package com.xcong.excoin.rabbit.consumer; import com.alibaba.fastjson.JSONObject; import com.rabbitmq.client.Channel; import com.xcong.excoin.configurations.RabbitMqConfig; import com.xcong.excoin.modules.documentary.service.FollowOrderOperationService; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.web3j.abi.datatypes.Int; import java.math.BigDecimal; import java.util.Map; /** * @author wzy * @date 2021-03-04 **/ @Slf4j @Component @ConditionalOnProperty(prefix = "app", name = "rabbit-consumer", havingValue = "true") public class FollowConsumer { @Autowired private FollowOrderOperationService followOrderOperationService; @RabbitListener(queues = RabbitMqConfig.QUEUE_FOLLOW_ORDER) public void addFollowOrder(Message message, Channel channel) { String content = new String(message.getBody()); log.info("==收到跟单下单消息 : {}", content); followOrderOperationService.addFollowerOrder(Long.parseLong(content)); } // @RabbitListener(queues = RabbitMqConfig.QUEUE_FOLLOW_CHANGE_BOND) public void changeFollowOrderBond(Message message, Channel channel) { String content = new String(message.getBody()); log.info("==收到跟单保证金调整消息 : {}", content); Map map = JSONObject.parseObject(content, Map.class); Integer id = (Integer) map.get("id"); BigDecimal bond = (BigDecimal) map.get("bond"); Integer type = (Integer) map.get("type"); followOrderOperationService.changeFollowOrdersBond(id.longValue(), bond, type); } }