| | |
| | | try { |
| | | ContractOrder order = contractOrderService.findByOrderNo(order_no); |
| | | if (order == null || !ContractOrder.STATE_SUBMITTED.equals(order.getState())) { |
| | | logger.info("-----------到这里来了吗"); |
| | | /** |
| | | * 状态已改变,退出处理 |
| | | */ |
| | |
| | | } |
| | | List<Realtime> list = this.dataService.realtime(order.getSymbol()); |
| | | if (list.size() == 0) { |
| | | logger.info("-----------去你妈退出了"); |
| | | return; |
| | | } |
| | | Realtime realtime = list.get(0); |
| | |
| | | /* |
| | | * 0 买涨 |
| | | */ |
| | | logger.info("当前价格:"+close+"---------价格:"+Arith.add(order.getTrade_avg_price(), order.getPips())); |
| | | if (close >= Arith.add(order.getTrade_avg_price(), order.getPips())) { |
| | | settle(order, "profit", close); |
| | | } |
| | |
| | | double mul = Arith.mul(order.getDeposit_open(), order.getLever_rate());//仓位 |
| | | double div = Arith.div(mul, order.getTrade_avg_price());//持有币的数量 |
| | | double amount = Arith.mul(div, Arith.sub(currentPrice, order.getTrade_avg_price())); |
| | | logger.info("---------盈亏金额:"+amount); |
| | | logger.info("---------盈亏:"+profit_loss); |
| | | RedisHandler redisHandler = getRedisHandler(); |
| | | if ("profit".equals(profit_loss)) { |
| | | /** |
| | |
| | | }else{ |
| | | totleMoney = Double.parseDouble(money.toString()); |
| | | } |
| | | logger.info("---------全仓强平任务----------------"); |
| | | logger.info("-------------------------:"+Arith.add(profit,totleMoney)); |
| | | if (Arith.add(profit,totleMoney) <= 0) { |
| | | redisHandler.setSync("MONEY_CONTRACT_PROFIT_"+order.getPartyId().toString(), 0); |
| | | /** |
| | |
| | | extracted(order, wallet, redisHandler); |
| | | } |
| | | } else { |
| | | logger.info("---------进入单个持仓----------------"); |
| | | if (order.getProfit() < 0 && (Arith.div(order.getDeposit(), Math.abs(order.getProfit())) <= Arith |
| | | .div(order_close_line, 100))) { |
| | | logger.info("---------进入强平了----------------"); |
| | | /** |
| | | * 低于系统默认平仓线,进行强平 |
| | | */ |
| | |
| | | // 开启事务 |
| | | status = transactionManager.getTransaction(new DefaultTransactionDefinition()); |
| | | |
| | | logger.info("----------我来更新钱包了"); |
| | | wallet.setMoney(0); |
| | | redisHandler.setSync(WalletRedisKeys.WALLET_PARTY_ID + wallet.getPartyId().toString(), wallet); |
| | | |
| | | logger.info("-------wallet:" + wallet.getPartyId()); |
| | | // 更新数据库 |
| | | int update = jdbcTemplate.update("UPDATE T_WALLET SET MONEY=ROUND(?,8) WHERE PARTY_ID=?", 0, wallet.getPartyId().toString()); |
| | | logger.info("--------cnm跟新了几条:" + update); |
| | | |
| | | // 保存钱包信息 |
| | | Wallet ww = this.walletService.saveWalletByPartyId(order.getPartyId().toString()); |
| | | logger.info("-----------到底他妈是什么值:" + ww.getMoney()); |
| | | |
| | | // 更新 redis |
| | | redisHandler.setSync("PARTY_ID_MONEY_" + wallet.getPartyId().toString(), wallet.getMoney()); |
| | | |
| | | // 提交事务 |
| | | transactionManager.commit(status); |
| | | logger.info("----------更新完了"); |
| | | |
| | | } catch (Exception e) { |
| | | // 回滚事务 |