From ebb754075f9fd70e214b2938d8ef90acf8d6f747 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 26 Aug 2020 15:13:33 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java | 21 +++++++++++++++++++-- 1 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java index 6b60dba..ca87cc2 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java @@ -1,5 +1,6 @@ package com.xcong.excoin.modules.contract.service.impl; +import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.common.LoginUserUtils; @@ -293,8 +294,22 @@ return Result.fail("可平张数不足"); } + List<ContractEntrustOrderEntity> entrustOrders = contractEntrustOrderDao.selectEntrustOrderByOrderNo(holdOrderEntity.getOrderNo()); + if (CollUtil.isNotEmpty(entrustOrders)) { + int entrustCnt = 0; + for (ContractEntrustOrderEntity entrustOrder : entrustOrders) { + entrustCnt += entrustOrder.getSymbolCnt(); + } + + + if (submitCloseEntrustDto.getSymbolCnt() > holdOrderEntity.getSymbolCntSale() - entrustCnt) { + return Result.fail("当前存在多个委托,无法提交该数量委托"); + } + } + + // 获取最新价 - BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(submitCloseEntrustDto.getSymbol()))); + BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol()))); int closeType; if (holdOrderEntity.getOpeningType() == ContractHoldOrderEntity.OPENING_TYPE_MORE) { @@ -322,7 +337,7 @@ MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(member.getId(), CoinTypeConvert.convertContractTypeToCoin(holdOrderEntity.getSymbol())); - BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(submitCloseEntrustDto.getSymbol()); + BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(holdOrderEntity.getSymbol()); BigDecimal bondAmount = CalculateUtil.getBondAmount(holdOrderEntity.getOpeningPrice(), lotNumber, submitCloseEntrustDto.getSymbolCnt(), holdOrderEntity.getLeverRatio()); ContractEntrustOrderEntity entrustOrder = new ContractEntrustOrderEntity(); @@ -334,6 +349,8 @@ entrustOrder.setLeverRatio(holdOrderEntity.getLeverRatio()); entrustOrder.setSymbolSku(holdOrderEntity.getSymbolSku()); entrustOrder.setEntrustType(closeType); + entrustOrder.setSymbolCnt(holdOrderEntity.getSymbolCnt()); + entrustOrder.setSymbol(holdOrderEntity.getSymbol()); int i = contractEntrustOrderDao.insert(entrustOrder); -- Gitblit v1.9.1