Helius
2020-09-02 a0b81b859ec79565ade8dbb4262632d36d6fd432
src/main/java/com/xcong/excoin/utils/CalculateUtil.java
@@ -99,7 +99,7 @@
            int subCnt = 0;
            BigDecimal openPrice = BigDecimal.ZERO;
            int type = 1;
            BigDecimal feeAmount = BigDecimal.ZERO;
            BigDecimal bondAmount = BigDecimal.ZERO;
            BigDecimal sku = BigDecimal.ZERO;
            Long id = 0L;
@@ -118,14 +118,13 @@
                    subCnt = maxCnt - holdOrderEntity.getSymbolCntSale();
                }
                log.info("--{}, {}, {}, {}", maxCnt, subCnt, openPrice, type);
                feeAmount = feeAmount.add(holdOrderEntity.getOpeningFeeAmount());
                bondAmount = bondAmount.add(holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()));
                sku = holdOrderEntity.getSymbolSku();
            }
            BigDecimal forceSetPrice = BigDecimal.ZERO;
            if (subCnt != 0) {
                log.info("--->{}, {}, {}, {}, {}", openPrice, subCnt, sku, type, maxCnt);
                forceSetPrice = getForceSetPrice(walletContract.getTotalBalance().subtract(feeAmount), openPrice, subCnt, sku, type, memberEntity);
                log.info("---->{}, {}", walletContract.getAvailableBalance(), bondAmount);
                forceSetPrice = getForceSetPrice(walletContract.getAvailableBalance().add(bondAmount), openPrice, subCnt, sku, type, memberEntity);
            }
            log.info("强平价:{}", forceSetPrice);
@@ -138,7 +137,8 @@
            if (forceSetPrice.compareTo(BigDecimal.ZERO) > 0) {
                sendOrderBombMsg(id, type, forceSetPrice, symbol, operateNo);
                log.info("id:{}, type:{}, forceSetPrice:{}, symbol:{}, operateNo:{}", id, type, forceSetPrice, symbol, operateNo);
                sendOrderBombMsg(id, type, forceSetPrice, symbol, operateNo, memberEntity.getId());
            }
        }
    }
@@ -222,14 +222,14 @@
     */
    private static void sendOrderBombMsg(Long id, int type, BigDecimal forceClosingPrice, String symbol, int operateNo) {
    private static void sendOrderBombMsg(Long id, int type, BigDecimal forceClosingPrice, String symbol, int operateNo, Long memberId) {
        OrderModel model = null;
        // 开多
        if (ContractHoldOrderEntity.OPENING_TYPE_MORE == type) {
            model = new OrderModel(id, RabbitPriceTypeEnum.CLOSE_MORE_BOMB.getValue(), forceClosingPrice.setScale(8, RoundingMode.HALF_UP).toPlainString(), symbol, operateNo);
            model = new OrderModel(id, RabbitPriceTypeEnum.CLOSE_MORE_BOMB.getValue(), forceClosingPrice.setScale(8, RoundingMode.HALF_UP).toPlainString(), symbol, operateNo, memberId);
            // 开空
        } else {
            model = new OrderModel(id, RabbitPriceTypeEnum.CLOSE_LESS_BOMB.getValue(), forceClosingPrice.setScale(8, RoundingMode.HALF_UP).toPlainString(), symbol, operateNo);
            model = new OrderModel(id, RabbitPriceTypeEnum.CLOSE_LESS_BOMB.getValue(), forceClosingPrice.setScale(8, RoundingMode.HALF_UP).toPlainString(), symbol, operateNo, memberId);
        }
        SpringContextHolder.getBean(OrderProducer.class).sendPriceOperate(JSONObject.toJSONString(model));
    }