package com.xcong.excoin.rabbit.consumer; import com.alibaba.fastjson.JSONArray; import com.rabbitmq.client.Channel; import com.xcong.excoin.configurations.RabbitMqConfig; import com.xcong.excoin.rabbit.pricequeue.OrderModel; 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 java.util.List; /** * APP和后台打包都开启 * */ @Component @ConditionalOnProperty(name="useRabbit",havingValue="true") public class WebsocketPriceConsumer { //@Autowired //OrderWebsocketService orderWebsocketService; //@Autowired //OrderService orderService; /** * 开多止盈 * @param message 消息体 * @param channel 信道 */ @RabbitListener(queues = RabbitMqConfig.QUEUE_MOREPRO) public void onMessageMorePro(Message message, Channel channel) { String content = new String(message.getBody()); System.out.println("我收到消息了开多止盈:"+content); List list = JSONArray.parseArray(content,OrderModel.class); // 开始处理 TODO //orderWebsocketService.dealOrderFromMq(list,9); } // 1:买入委托2:开多3:开空4:平多5:平空6:爆仓平多7:爆仓平空8:撤单9:止盈平多10:止盈平空11:止损平多12:止损平空 /** * 开空止盈 * @param message * @param channel */ @RabbitListener(queues = RabbitMqConfig.QUEUE_LESSPRO) public void onMessageLessPro(Message message, Channel channel) { String content = new String(message.getBody()); System.out.println("我收到消息了开空止盈:"+content); // 开始处理 List list = JSONArray.parseArray(content,OrderModel.class); // 开始处理 //orderWebsocketService.dealOrderFromMq(list,10); } /** * 开多止损 * @param message * @param channel */ @RabbitListener(queues = RabbitMqConfig.QUEUE_MORELOSS) public void onMessageMoreLoss(Message message, Channel channel) { String content = new String(message.getBody()); System.out.println("我收到消息了开多止损:"+content); // 开始处理 List list = JSONArray.parseArray(content,OrderModel.class); // 开始处理 //orderWebsocketService.dealOrderFromMq(list,11); } /** * 开空止损 * @param message * @param channel */ @RabbitListener(queues = RabbitMqConfig.QUEUE_LESSLOSS) public void onMessageLessLoss(Message message, Channel channel) { String content = new String(message.getBody()); System.out.println("我收到消息了开空止损:"+content); // 开始处理 List list = JSONArray.parseArray(content,OrderModel.class); // 开始处理 //orderWebsocketService.dealOrderFromMq(list,12); } /** * 限价委托 * @param message * @param channel */ @RabbitListener(queues = RabbitMqConfig.QUEUE_LIMIT) public void onMessageLimit(Message message, Channel channel) { String content = new String(message.getBody()); System.out.println("我收到消息了限价委托:"+content); // 开始处理 List list = JSONArray.parseArray(content,OrderModel.class); // 开始处理 //orderWebsocketService.dealForLimitMq(list); } /** * 爆仓消费者 * @param message * @param channel */ @RabbitListener(queues = RabbitMqConfig.QUEUE_COINOUT) public void onMessageCoinout(Message message, Channel channel) { String content = new String(message.getBody()); System.out.println("我收到消息了爆仓:"+content); // 开始处理 List list = JSONArray.parseArray(content,OrderModel.class); // 开始处理 //orderWebsocketService.dealOrderFromMq(list,6); } /** * 平仓 * @param message * @param channel */ @RabbitListener(queues = RabbitMqConfig.QUEUE_CLOSETRADE) public void onMessageCloseTrade(Message message, Channel channel) { String content = new String(message.getBody()); System.out.println("我收到消息了平仓:"+content); // 订单 List ids = JSONArray.parseArray(content, Long.class); //orderService.closeTradeForMq(ids); } }