| | |
| | | package com.nq.utils; |
| | | |
| | | |
| | | import com.github.pagehelper.util.StringUtil; |
| | | import com.nq.pojo.UserPosition; |
| | | import com.nq.vo.position.PositionProfitVO; |
| | | import com.nq.vo.position.UserPositionVO; |
| | |
| | | userPositionVO.setStockPlate(position.getStockPlate()); |
| | | userPositionVO.setSpreadRatePrice(position.getSpreadRatePrice()); |
| | | PositionProfitVO positionProfitVO = getPositionProfitVO(position,nowPrice); |
| | | BigDecimal ss = positionProfitVO.getProfitAndLose().divide(userPositionVO.getBuyOrderPrice(),BigDecimal.ROUND_CEILING) |
| | | BigDecimal ss = positionProfitVO.getProfitAndLose().divide(userPositionVO.getOrderTotalPrice(),BigDecimal.ROUND_CEILING) |
| | | .multiply(new BigDecimal(100)); |
| | | userPositionVO.setProfitAndLoseParent(ss+"%"); |
| | | userPositionVO.setProfitAndLoseParent(ss.setScale(2, BigDecimal.ROUND_DOWN)+"%"); |
| | | userPositionVO.setProfitAndLose(positionProfitVO.getProfitAndLose()); |
| | | userPositionVO.setAllProfitAndLose(positionProfitVO.getAllProfitAndLose()); |
| | | userPositionVO.setNow_price(positionProfitVO.getNowPrice()); |
| | | if(StringUtil.isEmpty(userPositionVO.getSellOrderId())){ |
| | | userPositionVO.setNow_price(positionProfitVO.getNowPrice()); |
| | | }else{ |
| | | userPositionVO.setNow_price(position.getSellOrderPrice().toString()); |
| | | } |
| | | userPositionVO.setAmountToBeCovered(position.getAmountToBeCovered()); |
| | | return userPositionVO; |
| | | } |
| | | |
| | |
| | | if ("买跌".equals(position.getOrderDirection())) { |
| | | profitAndLose = profitAndLose.negate(); |
| | | } |
| | | allProfitAndLose = profitAndLose.subtract(position.getOrderFee()).subtract(position.getOrderSpread()).subtract(position.getOrderStayFee()).subtract(position.getSpreadRatePrice()); |
| | | allProfitAndLose = profitAndLose.subtract(position.getOrderSpread()).subtract(position.getOrderStayFee()).subtract(position.getSpreadRatePrice()); |
| | | } else { |
| | | BigDecimal subPrice = nowPrice.subtract(position.getBuyOrderPrice()); |
| | | profitAndLose = subPrice.multiply(new BigDecimal(position.getOrderNum().intValue())); |
| | |
| | | profitAndLose = profitAndLose.negate(); |
| | | } |
| | | //总盈亏= 浮动盈亏 – 手续费 – 印花税 – 留仓费 – 点差费 |
| | | allProfitAndLose = profitAndLose.subtract(position.getOrderFee()).subtract(position.getOrderSpread()).subtract(position.getOrderStayFee()).subtract(position.getSpreadRatePrice()); |
| | | allProfitAndLose = profitAndLose.subtract(position.getOrderSpread()).subtract(position.getOrderStayFee()).subtract(position.getSpreadRatePrice()); |
| | | } |
| | | PositionProfitVO positionProfitVO = new PositionProfitVO(); |
| | | positionProfitVO.setProfitAndLose(profitAndLose); |