From 6cb72d1fda923f2f4964df8efc56452c0d3d084a Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 04 Jun 2020 11:36:38 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/chonggaoxiao/new_excoin.git

---
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java |   60 ++++++++++++++++--------------
 src/main/java/com/xcong/excoin/modules/contract/parameter/dto/ProfitOrLessDto.java             |   21 ++--------
 src/main/java/com/xcong/excoin/rabbit/consumer/OperateOrderPriceConsumer.java                  |   35 ++++++++---------
 src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java                              |    4 +-
 4 files changed, 55 insertions(+), 65 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
index 633305d..7be7f09 100644
--- a/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
+++ b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
@@ -46,10 +46,10 @@
     public static final String QUEUE_COINOUT = "QUEUE_COINOUT_NEW";
 
     //价格操作
-    public static final String QUEUE_PRICEOPERATE = "QUEUE_PRICEOPERATE_NEW";
+    public static final String QUEUE_PRICEOPERATE = "QUEUE_PRICEOPERATE";
 
     // 平仓队列
-    public static final String QUEUE_CLOSETRADE = "QUEUE_CLOSETRADE_NEW";
+    public static final String QUEUE_CLOSETRADE = "QUEUE_CLOSETRADE";
 
 
     // 开多止盈路由键
diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/ProfitOrLessDto.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/ProfitOrLessDto.java
index 454e628..ea0e60f 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/ProfitOrLessDto.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/ProfitOrLessDto.java
@@ -17,26 +17,13 @@
 @ApiModel(value = "ProfitOrLessDto", description = "设置止盈止损接口参数类")
 public class ProfitOrLessDto {
 
-    /**
-     * 类型 止盈
-     */
-    public static final int TYPE_PROFIT = 1;
-
-    /**
-     * 类型 止损
-     */
-    public static final int TYPE_LESS = 2;
-
     @NotNull
     @ApiModelProperty(value = "订单ID", example = "1")
     private Long id;
 
-    @NotNull
-    @ApiModelProperty(value = "类型 1-止盈2-止损", example = "1")
-    private Integer type;
+    @ApiModelProperty(value = "止盈价", example = "9000.00")
+    private BigDecimal stopProfitPrice;
 
-    @NotNull
-    @Min(0)
-    @ApiModelProperty(value = "目标价格", example = "9000.00")
-    private BigDecimal price;
+    @ApiModelProperty(value = "止损价", example = "9000.00")
+    private BigDecimal stopLessPrice;
 }
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
index 858b2af..f6c8e47 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
@@ -299,82 +299,86 @@
         // 开仓价
         BigDecimal openPrice = holdOrderEntity.getOpeningPrice();
         // 设置的止盈止损价
-        BigDecimal price = profitOrLessDto.getPrice();
+        BigDecimal stopProfitPrice = profitOrLessDto.getStopProfitPrice();
+
+        BigDecimal stopLessPrice = profitOrLessDto.getStopLessPrice();
 
         // 开多
         if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) {
-            if (ProfitOrLessDto.TYPE_PROFIT == profitOrLessDto.getType()) {
+            if (stopProfitPrice != null) {
                 // 当前价大于开仓价
                 if (newPrice.compareTo(openPrice) > 0) {
                     // 如果止盈价小于当前价
-                    if (price.compareTo(newPrice) < 0) {
+                    if (stopProfitPrice.compareTo(newPrice) < 0) {
                         return Result.fail("止盈价必须高于当前价");
                     }
                 } else {
-                    if (price.compareTo(openPrice) < 0) {
+                    if (stopProfitPrice.compareTo(openPrice) < 0) {
                         return Result.fail("止盈价必须高于开仓价");
                     }
                 }
-            } else {
+            }
+
+            if (stopLessPrice != null) {
                 if (newPrice.compareTo(openPrice) > 0) {
-                    if (price.compareTo(openPrice) > 0) {
+                    if (stopLessPrice.compareTo(openPrice) > 0) {
                         return Result.fail("止损价必须低于开仓价");
                     }
                 } else {
-                    if (price.compareTo(newPrice) > 0) {
+                    if (stopLessPrice.compareTo(newPrice) > 0) {
                         return Result.fail("止损价必须低于当前价");
                     }
                 }
             }
             // 开空
         } else {
-            if (ProfitOrLessDto.TYPE_PROFIT == profitOrLessDto.getType()) {
+            if (stopProfitPrice != null) {
                 if (newPrice.compareTo(openPrice) > 0) {
-                    if (price.compareTo(openPrice) > 0) {
+                    if (stopProfitPrice.compareTo(openPrice) > 0) {
                         return Result.fail("止损价必须低于开仓价");
                     }
                 } else {
-                    if (price.compareTo(newPrice) > 0) {
+                    if (stopProfitPrice.compareTo(newPrice) > 0) {
                         return Result.fail("止损价必须低于当前价");
                     }
                 }
-            } else {
+            }
+            if (stopLessPrice != null) {
                 if (newPrice.compareTo(openPrice) > 0) {
-                    if (price.compareTo(newPrice) < 0) {
+                    if (stopLessPrice.compareTo(newPrice) < 0) {
                         return Result.fail("止损价必须高于当前价");
                     }
                 } else {
-                    if (price.compareTo(openPrice) < 0) {
+                    if (stopLessPrice.compareTo(openPrice) < 0) {
                         return Result.fail("止损价必须高于开仓价");
                     }
                 }
             }
         }
 
-        if (ProfitOrLessDto.TYPE_PROFIT == profitOrLessDto.getType()) {
-            holdOrderEntity.setStopProfitPrice(price);
-        } else {
-            holdOrderEntity.setStopLossPrice(price);
-        }
+        holdOrderEntity.setStopProfitPrice(stopProfitPrice);
+        holdOrderEntity.setStopLossPrice(stopLessPrice);
 
         int i = contractHoldOrderDao.updateById(holdOrderEntity);
         if (i > 0) {
             OrderModel model = null;
             if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) {
                 // 开多止盈
-                if (ProfitOrLessDto.TYPE_PROFIT == profitOrLessDto.getType()) {
-                    model = new OrderModel(holdOrderEntity.getId(), RabbitPriceTypeEnum.CLOSE_MORE_STOP_PROFIT.getValue(), price.setScale(8, RoundingMode.HALF_UP).toPlainString(), holdOrderEntity.getSymbol());
-                    // 开多止损
-                } else {
-                    model = new OrderModel(holdOrderEntity.getId(), RabbitPriceTypeEnum.CLOSE_MORE_STOP_LESS.getValue(), price.setScale(8, RoundingMode.HALF_UP).toPlainString(), holdOrderEntity.getSymbol());
+                if (stopProfitPrice != null) {
+                    model = new OrderModel(holdOrderEntity.getId(), RabbitPriceTypeEnum.CLOSE_MORE_STOP_PROFIT.getValue(), stopProfitPrice.setScale(8, RoundingMode.HALF_UP).toPlainString(), holdOrderEntity.getSymbol());
+                }
+                // 开多止损
+                if (stopLessPrice != null) {
+                    model = new OrderModel(holdOrderEntity.getId(), RabbitPriceTypeEnum.CLOSE_MORE_STOP_LESS.getValue(), stopLessPrice.setScale(8, RoundingMode.HALF_UP).toPlainString(), holdOrderEntity.getSymbol());
                 }
             } else {
                 // 开空止盈
-                if (ProfitOrLessDto.TYPE_PROFIT == profitOrLessDto.getType()) {
-                    model = new OrderModel(holdOrderEntity.getId(), RabbitPriceTypeEnum.CLOSE_LESS_STOP_PROFIT.getValue(), price.setScale(8, RoundingMode.HALF_UP).toPlainString(), holdOrderEntity.getSymbol());
-                    // 开空止损
-                } else {
-                    model = new OrderModel(holdOrderEntity.getId(), RabbitPriceTypeEnum.CLOSE_LESS_STOP_LESS.getValue(), price.setScale(8, RoundingMode.HALF_UP).toPlainString(), holdOrderEntity.getSymbol());
+                if (stopProfitPrice != null) {
+                    model = new OrderModel(holdOrderEntity.getId(), RabbitPriceTypeEnum.CLOSE_LESS_STOP_PROFIT.getValue(), stopProfitPrice.setScale(8, RoundingMode.HALF_UP).toPlainString(), holdOrderEntity.getSymbol());
+                }
+                // 开空止损
+                if (stopLessPrice != null) {
+                    model = new OrderModel(holdOrderEntity.getId(), RabbitPriceTypeEnum.CLOSE_LESS_STOP_LESS.getValue(), stopLessPrice.setScale(8, RoundingMode.HALF_UP).toPlainString(), holdOrderEntity.getSymbol());
                 }
             }
             producer.sendPriceOperate(JSONObject.toJSONString(model));
diff --git a/src/main/java/com/xcong/excoin/rabbit/consumer/OperateOrderPriceConsumer.java b/src/main/java/com/xcong/excoin/rabbit/consumer/OperateOrderPriceConsumer.java
index 2d2ff3d..45ff0f7 100644
--- a/src/main/java/com/xcong/excoin/rabbit/consumer/OperateOrderPriceConsumer.java
+++ b/src/main/java/com/xcong/excoin/rabbit/consumer/OperateOrderPriceConsumer.java
@@ -14,32 +14,31 @@
 /**
  * 用户修改止损止盈价格、提价限价委托、下单爆仓价等消息
  * 后台打包开启 APP 不开启
+ * @author helius
  */
 @Component
-@ConditionalOnProperty(prefix="app",name="newest-price-update-job",havingValue="true")
+@ConditionalOnProperty(prefix = "app", name = "newest-price-update-job", havingValue = "true")
 public class OperateOrderPriceConsumer {
 
 
-
-	/**
-	 * 用户修改止损止盈价格、提价限价委托、下单爆仓价等消息
-	 * @date 2019年4月19日
-	 * @param message 消息体
-	 * @param channel 信道
-	 */
-	@RabbitListener(queues = RabbitMqConfig.QUEUE_PRICEOPERATE)
-	public void onMessageMorePro(Message message, Channel channel) {
+    /**
+     * 用户修改止损止盈价格、提价限价委托、下单爆仓价等消息
+     *
+     * @param message 消息体
+     * @param channel 信道
+     * @date 2019年4月19日
+     */
+    @RabbitListener(queues = RabbitMqConfig.QUEUE_PRICEOPERATE)
+    public void onMessageMorePro(Message message, Channel channel) {
         String content = new String(message.getBody());
-		System.out.println("我收到了用户的订单操作消息:"+content);
-		// 操作前的map
+        System.out.println("我收到了用户的订单操作消息:" + content);
+        // 操作前的map
         // 转为model
-		OrderModel orderModel = JSONObject.parseObject(content, OrderModel.class);
-		// 向优先队列添加
-		OrderOperatePriceService.dealWithNewMq(orderModel);
+        OrderModel orderModel = JSONObject.parseObject(content, OrderModel.class);
+        // 向优先队列添加
+        OrderOperatePriceService.dealWithNewMq(orderModel);
 
-	}
-
-
+    }
 
 
 }

--
Gitblit v1.9.1