| | |
| | | MemberWalletContractEntity walletContract = walletContractDao.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeConvert.convertContractTypeToCoin(symbol));
|
| | | List<ContractHoldOrderEntity> holdOrderEntities = holdOrderDao.selectHoldOrderListForWholeByMemberIdAndSymbol(memberId, symbol);
|
| | | if (CollUtil.isNotEmpty(holdOrderEntities)) {
|
| | | BigDecimal totalSetPrice = BigDecimal.ZERO;
|
| | | int maxCnt = 0;
|
| | | int subCnt = 0;
|
| | | BigDecimal openPrice = BigDecimal.ZERO;
|
| | | int type = 1;
|
| | | BigDecimal feeAmount = BigDecimal.ZERO;
|
| | | BigDecimal sku = BigDecimal.ZERO;
|
| | | boolean flag = false;
|
| | |
|
| | | for (ContractHoldOrderEntity holdOrderEntity : holdOrderEntities) {
|
| | | if (holdOrderEntity.getSymbolCntSale() == maxCnt) {
|
| | | flag = true;
|
| | | return;
|
| | | }
|
| | |
|
| | | if (holdOrderEntity.getSymbolCntSale() > maxCnt) {
|
| | | maxCnt = holdOrderEntity.getSymbolCntSale();
|
| | | subCnt = holdOrderEntity.getSymbolCntSale() - maxCnt;
|
| | | openPrice = holdOrderEntity.getOpeningPrice();
|
| | | type = holdOrderEntity.getOpeningType();
|
| | | }
|
| | |
|
| | | feeAmount = feeAmount.add(holdOrderEntity.getOpeningFeeAmount());
|
| | | sku = holdOrderEntity.getSymbolSku();
|
| | | }
|
| | | BigDecimal forceSetPrice = BigDecimal.ZERO;
|
| | | if (!flag) {
|
| | | log.info("{}, {}, {}, {}, {}", openPrice, subCnt, sku, type, maxCnt);
|
| | | forceSetPrice = getForceSetPrice(walletContract.getTotalBalance().subtract(feeAmount), openPrice, subCnt, sku, type, memberEntity);
|
| | | }
|
| | |
|
| | | log.info("强平价:{}", forceSetPrice);
|
| | | for (ContractHoldOrderEntity updateHoldOrder : holdOrderEntities) {
|
| | | updateHoldOrder.setForceClosingPrice(forceSetPrice);
|
| | | updateHoldOrder.setIsCanClosing(ContractHoldOrderEntity.ORDER_CAN_CLOSING_Y);
|
| | | holdOrderDao.updateById(updateHoldOrder);
|
| | |
|
| | | if (forceSetPrice.compareTo(BigDecimal.ZERO) >= 0) {
|
| | | // sendOrderBombMsg(updateHoldOrder.getId(), updateHoldOrder.getOpeningType(), forceSetPrice, updateHoldOrder.getSymbol(), updateHoldOrder.getOperateNo());
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | /*
|
| | | BigDecimal totalSetPrice = BigDecimal.ZERO;
|
| | | int totalCnt = 0;
|
| | |
|
| | | for (ContractHoldOrderEntity holdOrderEntity : holdOrderEntities) {
|
| | |
| | | holdOrderDao.updateById(updateHoldOrder);
|
| | |
|
| | | if (forceSetPrice.compareTo(BigDecimal.ZERO) >= 0) {
|
| | | // sendOrderBombMsg(updateHoldOrder.getId(), updateHoldOrder.getOpeningType(), forceSetPrice, updateHoldOrder.getSymbol(), updateHoldOrder.getOperateNo());
|
| | | sendOrderBombMsg(updateHoldOrder.getId(), updateHoldOrder.getOpeningType(), forceSetPrice, updateHoldOrder.getSymbol(), updateHoldOrder.getOperateNo());
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | | */
|
| | |
|
| | | /*
|
| | | // 多单开仓价
|