| | |
| | | map.put("amount", order.getVolume().multiply(order.getUnitAmount())); |
| | | map.put("amount_open", order.getVolumeOpen().multiply(order.getUnitAmount())); |
| | | map.put("fee", order.getFee()); |
| | | map.put("funding_fee", order.getFundingFee()); |
| | | map.put("deposit", order.getDeposit()); |
| | | data.add(map); |
| | | } |
| | |
| | | log.info("{} --- order --- {} --- {}", order.getSymbol(), item.getUuid(), levers.size()); |
| | | checkLever(order, levers); |
| | | |
| | | BigDecimal sourceLeverRate = order.getLeverRate(); |
| | | sourceLeverRate = sourceLeverRate == null ? BigDecimal.ZERO : sourceLeverRate; |
| | | // BigDecimal sourceLeverRate = order.getLeverRate(); |
| | | // sourceLeverRate = sourceLeverRate == null ? BigDecimal.ZERO : sourceLeverRate; |
| | | |
| | | List<ContractOrder> contractOrderSubmitted = contractOrderService.findSubmitted(order.getPartyId(), |
| | | order.getSymbol(), order.getDirection()); |
| | | for (int i = 0; i < contractOrderSubmitted.size(); i++) { |
| | | BigDecimal targetLeverRate = contractOrderSubmitted.get(i).getLeverRate(); |
| | | targetLeverRate = targetLeverRate == null ? BigDecimal.ZERO : targetLeverRate; |
| | | if (sourceLeverRate.compareTo(targetLeverRate) != 0) { |
| | | throw new YamiShopBindException("存在不同杠杆的持仓单"); |
| | | } |
| | | } |
| | | |
| | | List<ContractApplyOrder> applyOrderSubmittedList = this.findSubmitted(order.getPartyId(), |
| | | order.getSymbol(), "open", order.getDirection()); |
| | | for (int i = 0; i < applyOrderSubmittedList.size(); i++) { |
| | | BigDecimal targetLeverRate = applyOrderSubmittedList.get(i).getLeverRate(); |
| | | targetLeverRate = targetLeverRate == null ? BigDecimal.ZERO : targetLeverRate; |
| | | if (sourceLeverRate.compareTo(targetLeverRate) != 0) { |
| | | throw new YamiShopBindException("存在不同杠杆的持仓单"); |
| | | } |
| | | } |
| | | |
| | | // List<ContractOrder> contractOrderSubmitted = contractOrderService.findSubmitted(order.getPartyId(), |
| | | // order.getSymbol(), order.getDirection()); |
| | | // for (int i = 0; i < contractOrderSubmitted.size(); i++) { |
| | | // BigDecimal targetLeverRate = contractOrderSubmitted.get(i).getLeverRate(); |
| | | // targetLeverRate = targetLeverRate == null ? BigDecimal.ZERO : targetLeverRate; |
| | | // if (sourceLeverRate.compareTo(targetLeverRate) != 0) { |
| | | // throw new YamiShopBindException("存在不同杠杆的持仓单"); |
| | | // } |
| | | // } |
| | | // |
| | | // List<ContractApplyOrder> applyOrderSubmittedList = this.findSubmitted(order.getPartyId(), |
| | | // order.getSymbol(), "open", order.getDirection()); |
| | | // for (int i = 0; i < applyOrderSubmittedList.size(); i++) { |
| | | // BigDecimal targetLeverRate = applyOrderSubmittedList.get(i).getLeverRate(); |
| | | // targetLeverRate = targetLeverRate == null ? BigDecimal.ZERO : targetLeverRate; |
| | | // if (sourceLeverRate.compareTo(targetLeverRate) != 0) { |
| | | // throw new YamiShopBindException("存在不同杠杆的持仓单"); |
| | | // } |
| | | // } |
| | | //下单数量 |
| | | BigDecimal volume = order.getVolume(); |
| | | //当前价格 |
| | | List<Realtime> list = dataService.realtime(order.getSymbol()); |
| | | double close = 0; |
| | | |
| | | /** |
| | | * 限价单 |
| | | */ |
| | | if ("limit".equals(order.getOrderPriceType())) { |
| | | close = order.getPrice().doubleValue(); |
| | | }else{ |
| | | close = list.get(0).getClose(); |
| | | } |
| | | |
| | | if(StringUtils.isEmptyString(order.getOrderNo())) { |
| | | order.setOrderNo(DateUtil.getToday("yyMMddHHmmss") + RandomUtil.getRandomNum(8)); |
| | | } |
| | | order.setUnitAmount(BigDecimal.valueOf(item.getUnitAmount())); |
| | | |
| | | order.setFee(BigDecimal.valueOf(item.getUnitFee()).multiply(order.getVolume())); |
| | | order.setDeposit(BigDecimal.valueOf(item.getUnitAmount()).multiply(order.getVolume())); |
| | | |
| | | order.setDeposit(BigDecimal.valueOf(close).multiply(order.getVolume()).divide(order.getLeverRate())); |
| | | order.setFee(BigDecimal.valueOf(item.getUnitFee()).multiply(order.getDeposit()).divide(order.getLeverRate())); |
| | | BigDecimal fee = order.getFee(); |
| | | if (order.getLeverRate() != null) { |
| | | // 加上杠杆 |
| | | order.setVolume(order.getVolume().multiply(order.getLeverRate())); |
| | | Syspara syspara = sysparaService.find("perpetual_contracts"); |
| | | if (ObjectUtils.isEmpty(syspara)||"0".equals(syspara.getSvalue())) { |
| | | // order.setFee(fee.multiply(order.getLeverRate())); |
| | | } |
| | | } |
| | | // if (order.getLeverRate() != null) { |
| | | // // 加上杠杆 |
| | | // order.setVolume(order.getVolume().multiply(order.getLeverRate())); |
| | | // Syspara syspara = sysparaService.find("perpetual_contracts"); |
| | | // if (ObjectUtils.isEmpty(syspara)||"0".equals(syspara.getSvalue())) { |
| | | //// order.setFee(fee.multiply(order.getLeverRate())); |
| | | // } |
| | | // } |
| | | |
| | | Syspara syspara = sysparaService.find("u_standard_contract"); |
| | | BigDecimal deposit = order.getDeposit(); |