| | |
| | | * @param contractHoldOrderEntity
|
| | | * @return
|
| | | */
|
| | | public static BigDecimal calWholePriceTwo(MemberEntity memberEntity, ContractHoldOrderEntity contractHoldOrderEntity) {
|
| | | public static BigDecimal calWholePriceTwo(MemberEntity memberEntity, ContractHoldOrderEntity contractHoldOrderEntity, int type, BigDecimal newPrice) {
|
| | | ContractHoldOrderDao holdOrderDao = SpringContextHolder.getBean(ContractHoldOrderDao.class);
|
| | | MemberWalletContractDao walletContractDao = SpringContextHolder.getBean(MemberWalletContractDao.class);
|
| | | RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
|
| | | BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(contractHoldOrderEntity.getSymbol())));
|
| | | CacheSettingUtils cacheSettingUtils = SpringContextHolder.getBean(CacheSettingUtils.class);
|
| | |
|
| | | Long memberId = memberEntity.getId();
|
| | | MemberWalletContractEntity walletContract = walletContractDao.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeEnum.USDT.name());
|
| | |
| | | } else {
|
| | | totalBondAmount = totalBondAmount.add(holdOrderEntity.getBondAmount());
|
| | | }
|
| | |
|
| | | totalProfitOrLoss = totalProfitOrLoss.add(calProfitOrLoss(holdOrderEntity, memberEntity));
|
| | | }
|
| | |
|
| | |
| | | // 成本 数量*面值*开仓价
|
| | | BigDecimal cost = contractHoldOrderEntity.getSymbolSku().multiply(contractHoldOrderEntity.getOpeningPrice()).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCntSale()));
|
| | | // 费率
|
| | | BigDecimal ratio = newPrice.multiply(new BigDecimal("0.005"));
|
| | | BigDecimal ratio = contractHoldOrderEntity.getOpeningPrice().multiply(new BigDecimal("0.005"));
|
| | | // 总账户 - 维持保证金
|
| | | BigDecimal orderProfitOrLoss = walletContract.getTotalBalance().subtract(holdBond);
|
| | | // 权益
|
| | |
| | | BigDecimal divideParent = contractHoldOrderEntity.getSymbolSku().multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCntSale()));
|
| | |
|
| | | forcePrice = divideChild.divide(divideParent, 8, BigDecimal.ROUND_DOWN);
|
| | | if (type == 2) {
|
| | | log.info("=======全仓爆仓=======");
|
| | | log.info("holdBond : {}", holdBond);
|
| | | log.info("cost : {}", cost);
|
| | | log.info("ratio : {}", ratio);
|
| | | log.info("orderProfitOrLoss : {}", orderProfitOrLoss);
|
| | | log.info("total : {}", walletContract.getTotalBalance());
|
| | | log.info("qy : {}", qy);
|
| | | }
|
| | | }
|
| | | return forcePrice;
|
| | | }
|