From def723a6fa9cbe05734afe9011a6f90d2fa32196 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 03 Jun 2020 17:07:23 +0800 Subject: [PATCH] interface tiaozheng --- src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java | 33 ++++++++++++++------------------- 1 files changed, 14 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java index 050f2e4..c6c2f49 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java @@ -6,6 +6,7 @@ import com.xcong.excoin.modules.contract.entity.ContractEntrustOrderEntity; import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity; import com.xcong.excoin.modules.contract.entity.ContractOrderEntity; +import com.xcong.excoin.modules.contract.mapper.ContractEntrustOrderEntityMapper; import com.xcong.excoin.modules.contract.mapper.ContractHoldOrderEntityMapper; import com.xcong.excoin.modules.contract.service.ContractEntrustOrderService; import com.xcong.excoin.modules.contract.service.ContractHoldOrderService; @@ -486,7 +487,6 @@ * @param */ public void dealLimitBuyOrder(List<ContractEntrustOrderEntity> orderList) { - //List<CoinsCoinsOrder> orderList = orderMapper.selectOrderByBatchNo(batchno); if (CollectionUtils.isNotEmpty(orderList)) { ContractHoldOrderEntity contractHoldOrderEntity = null; @@ -496,23 +496,21 @@ continue; } - contractHoldOrderEntity = new ContractHoldOrderEntity(); + // 委托单bean转换为持仓单bean + contractHoldOrderEntity = ContractEntrustOrderEntityMapper.INSTANCE.entrustOrderToHoldOrder(coinsCoinsOrder); + contractHoldOrderEntity.setId(null); Long memId = coinsCoinsOrder.getMemberId(); MemberEntity memberEntity = memberService.getById(memId); BigDecimal entrustPrice = coinsCoinsOrder.getEntrustPrice(); int symbolCnt = coinsCoinsOrder.getSymbolCnt(); int type = coinsCoinsOrder.getEntrustType(); - //开仓价 - // Double openPrice = coinsCoinsOrder.getOpenPrice().doubleValue(); - //委托价 - // Double markPrice = coinsCoinsOrder.getMarkPrice(); + if (type == 1) { // 开多 contractHoldOrderEntity.setOpeningType(ContractHoldOrderEntity.OPENING_TYPE_MORE); } else { // 开空 contractHoldOrderEntity.setOpeningType(ContractHoldOrderEntity.OPENING_TYPE_LESS); - } //持仓单赋值 @@ -534,36 +532,33 @@ contractHoldOrderEntity.setForceClosingPrice(forceSetPrice); contractHoldOrderEntity.setLeverRatio(coinsCoinsOrder.getLeverRatio()); contractHoldOrderEntity.setOpeningPrice(entrustPrice); + contractHoldOrderEntity.setTradeType(ContractHoldOrderEntity.TRADE_TYPE_LIMIT); contractHoldOrderService.save(contractHoldOrderEntity); // 需要一个历史插入 ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(contractHoldOrderEntity); + contractOrderEntity.setEntrustOpeningPrice(coinsCoinsOrder.getEntrustPrice()); + contractOrderEntity.setEntrustTime(coinsCoinsOrder.getCreateTime()); + contractOrderEntity.setOpeningTime(new Date()); contractOrderEntity.setId(null); contractOrderService.save(contractOrderEntity); // 发送爆仓的队列 // 市价 if (coinsCoinsOrder.getEntrustType() == 1) { // 开多 - OrderModel model = new OrderModel(contractHoldOrderEntity.getId(), 6, contractHoldOrderEntity.getForceClosingPrice().toPlainString(), coinsCoinsOrder.getSymbol(), 1); + OrderModel model = new OrderModel(contractHoldOrderEntity.getId(), 6, contractHoldOrderEntity.getForceClosingPrice().setScale(8, RoundingMode.HALF_UP).toPlainString(), coinsCoinsOrder.getSymbol(), 1); producer.sendPriceOperate(JSONObject.toJSONString(model)); } else { // 开空 - OrderModel model = new OrderModel(contractHoldOrderEntity.getId(), 7, contractHoldOrderEntity.getForceClosingPrice().toPlainString(), coinsCoinsOrder.getSymbol(), 1); + OrderModel model = new OrderModel(contractHoldOrderEntity.getId(), 7, contractHoldOrderEntity.getForceClosingPrice().setScale(8, RoundingMode.HALF_UP).toPlainString(), coinsCoinsOrder.getSymbol(), 1); producer.sendPriceOperate(JSONObject.toJSONString(model)); } // 扣除手续费 - //double totalBalance = wallet.getTotalBalance() - coinsCoinsOrder.getClosingPrice(); - BigDecimal totalBalance = openFeePrice.negate(); - - /** TradeSetting tradeSetting = tradeSettingCache.getTradeSetting(); - - Double totalPayPrice = new BigDecimal(coinsCoinsOrder.getPrePrice()).add(new BigDecimal(coinsCoinsOrder.getClosingPrice())).add(new BigDecimal(coinsCoinsOrder.getClosingPrice())) - .setScale(8, BigDecimal.ROUND_HALF_UP).doubleValue(); - totalBalance = totalBalance+(-totalPayPrice*(Double.valueOf(tradeSetting.getSpread())/10000));*/ - + BigDecimal totalBalance = wallet.getTotalBalance().subtract(openFeePrice); + contractEntrustOrderService.removeById(coinsCoinsOrder.getId()); memberWalletContractService.increaseWalletContractBalanceById(null, totalBalance, null, wallet.getId()); // TODO 531 待写 - calYj(memId, contractOrderEntity.getClosingFeeAmount(), contractOrderEntity, 1); + calYj(memId, openFeePrice, contractOrderEntity, 1); } } } -- Gitblit v1.9.1