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.modules.contract.service.RabbitOrderService;
|
import com.xcong.excoin.modules.contract.service.impl.OrderWebsocketServiceImpl;
|
import com.xcong.excoin.rabbit.pricequeue.OrderModel;
|
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 javax.annotation.Resource;
|
import java.util.List;
|
|
|
/**
|
* APP和后台打包都开启
|
*
|
* @author helius
|
*/
|
@Slf4j
|
@Component
|
@ConditionalOnProperty(prefix = "app", name = "rabbit-consumer", havingValue = "true")
|
public class WebsocketPriceConsumer {
|
|
@Resource
|
OrderWebsocketServiceImpl orderWebsocketService;
|
|
@Resource
|
RabbitOrderService 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<OrderModel> 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<OrderModel> 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<OrderModel> 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<OrderModel> 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<OrderModel> 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<OrderModel> 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());
|
log.info("我收到消息了平仓: {}", content);
|
// 订单
|
List<Long> ids = JSONArray.parseArray(content, Long.class);
|
orderService.cancelHoldOrder(ids);
|
}
|
}
|