| | |
| | | public Result submitOrder(SubmitOrderDto submitOrderDto) { |
| | | MemberEntity memberEntity = LoginUserUtils.getAppLoginUser(); |
| | | |
| | | //查询是否可以点击平仓按钮 |
| | | Long memberIdLong = memberEntity.getId(); |
| | | MemberEntity selectById = memberDao.selectById(memberIdLong); |
| | | Integer pcState = selectById.getPcState(); |
| | | if(MemberEntity.PCSTATE_N == pcState) { |
| | | return Result.loading("loading_type"); |
| | | } |
| | | |
| | | // 判断当前对应的持仓/委托 |
| | | if (memberEntity.getContractPositionType() == ContractEntrustOrderEntity.POSITION_TYPE_ADD) { |
| | | List<ContractHoldOrderEntity> holdList = contractHoldOrderDao.selectMemberHoldOrderByPositionType(ContractEntrustOrderEntity.POSITION_TYPE_ALL, memberEntity.getId()); |
| | |
| | | } |
| | | |
| | | result.put("hold", resultList); |
| | | result.put("totalProfitOrLoss", totalProfitOrLoss.setScale(4, BigDecimal.ROUND_DOWN).toPlainString()); |
| | | result.put("totalProfitOrLoss", totalProfitOrLoss.setScale(2, BigDecimal.ROUND_DOWN).toPlainString()); |
| | | return Result.ok(result); |
| | | } |
| | | return Result.ok("success"); |
| | |
| | | Long memberIdLong = memberEntity.getId(); |
| | | MemberEntity selectById = memberDao.selectById(memberIdLong); |
| | | Integer pcState = selectById.getPcState(); |
| | | if(memberEntity.PCSTATE_N == pcState) { |
| | | if(MemberEntity.PCSTATE_N == pcState) { |
| | | return Result.loading("loading_type"); |
| | | } |
| | | |
| | |
| | | @Override |
| | | public Result cancelHoldOrder(WholeCloseOrderDto wholeCloseOrderDto) { |
| | | MemberEntity memberEntity = LoginUserUtils.getAppLoginUser(); |
| | | //查询是否可以点击平仓按钮 |
| | | Long memberIdLong = memberEntity.getId(); |
| | | MemberEntity selectById = memberDao.selectById(memberIdLong); |
| | | Integer pcState = selectById.getPcState(); |
| | | if(MemberEntity.PCSTATE_N == pcState) { |
| | | return Result.loading("loading_type"); |
| | | } |
| | | ContractHoldOrderEntity holdOrderEntity = contractHoldOrderDao.selectHoldOrderByMemberIdAndId(memberEntity.getId(), wholeCloseOrderDto.getId()); |
| | | if (holdOrderEntity == null) { |
| | | // 订单不存在 |
| | |
| | | Long memberIdLong = memberEntity.getId(); |
| | | MemberEntity selectById = memberDao.selectById(memberIdLong); |
| | | Integer pcState = selectById.getPcState(); |
| | | if(memberEntity.PCSTATE_N == pcState) { |
| | | if(MemberEntity.PCSTATE_N == pcState) { |
| | | return Result.loading("loading_type"); |
| | | } |
| | | |
| | |
| | | Long memberIdLong = memberEntity.getId(); |
| | | MemberEntity selectById = memberDao.selectById(memberIdLong); |
| | | Integer pcState = selectById.getPcState(); |
| | | if(memberEntity.PCSTATE_N == pcState) { |
| | | if(MemberEntity.PCSTATE_N == pcState) { |
| | | return Result.loading("loading_type"); |
| | | } |
| | | |
| | |
| | | @Override |
| | | public Result changeBond(ChangeBondDto changeBondDto) { |
| | | MemberEntity memberEntity = LoginUserUtils.getAppLoginUser(); |
| | | |
| | | //查询是否可以点击平仓按钮 |
| | | Long memberIdLong = memberEntity.getId(); |
| | | MemberEntity selectById = memberDao.selectById(memberIdLong); |
| | | Integer pcState = selectById.getPcState(); |
| | | if(MemberEntity.PCSTATE_N == pcState) { |
| | | return Result.loading("loading_type"); |
| | | } |
| | | |
| | | ContractHoldOrderEntity holdOrderEntity = contractHoldOrderDao.selectHoldOrderByMemberIdAndId(memberEntity.getId(), changeBondDto.getId()); |
| | | if (holdOrderEntity == null) { |
| | | return Result.fail("订单不存在"); |
| | |
| | | BigDecimal newPriceSymbol = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(symbol))); |
| | | |
| | | List<ContractEntrustOrderEntity> entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberId(memberEntity.getId()); |
| | | List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberId(memberEntity.getId()); |
| | | List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbolTest(memberEntity.getId(), ContractOrderEntity.CONTRACTTYPE_NORMAL); |
| | | MemberWalletContractEntity walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name()); |
| | | // if (memberEntity.getContractPositionType().equals(ContractEntrustOrderEntity.POSITION_TYPE_ADD)) { |
| | | // // 当前合约委托单 |
| | |
| | | } |
| | | |
| | | BigDecimal available = walletContractEntity.getAvailableBalance(); |
| | | if (totalProfitOrLess.compareTo(BigDecimal.ZERO) <= 0) { |
| | | available = available.add(totalProfitOrLess); |
| | | if (available.compareTo(BigDecimal.ZERO) <= 0) { |
| | | available = BigDecimal.ZERO; |
| | | if (ContractEntrustOrderEntity.POSITION_TYPE_ALL == memberEntity.getContractPositionType()) { |
| | | if (totalProfitOrLess.compareTo(BigDecimal.ZERO) <= 0) { |
| | | available = available.add(totalProfitOrLess); |
| | | if (available.compareTo(BigDecimal.ZERO) <= 0) { |
| | | available = BigDecimal.ZERO; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | contractMoneyInfoVo.setLeverRate(rateEntity.getLevelRateUp()); |
| | | contractMoneyInfoVo.setMoreBondAmount(moreBondAmount); |
| | | contractMoneyInfoVo.setLessBondAmount(lessBondAmount); |
| | | contractMoneyInfoVo.setProfitOrLess(totalProfitOrLess); |
| | | return Result.ok(contractMoneyInfoVo); |
| | | } |
| | | |
| | |
| | | holdAmount = BigDecimal.ZERO; |
| | | } |
| | | |
| | | BigDecimal thisTimeHold = holdOrderEntity.getBondAmount().multiply(tradeSettingEntity.getDoingRatio()); |
| | | BigDecimal thisTimeHold = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).multiply(tradeSettingEntity.getDoingRatio()); |
| | | log.info("订单编号:{}, 持仓费:{}", holdOrderEntity.getOrderNo(), thisTimeHold); |
| | | |
| | | MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getMemberId()); |
| | |
| | | holdOrderEntity.setOperateNo(holdOrderEntity.getOperateNo() + 1); |
| | | contractHoldOrderDao.updateById(holdOrderEntity); |
| | | |
| | | memberWalletContractDao.increaseWalletContractBalanceById(null, thisTimeHold.negate(), null, holdOrderEntity.getMemberId()); |
| | | if (ContractEntrustOrderEntity.POSITION_TYPE_ADD == holdOrderEntity.getPositionType()) { |
| | | // 发送爆仓消息 |
| | | sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), newForcePrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo(), holdOrderEntity.getMemberId()); |