trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiExchangeApplyOrderController.java
@@ -37,6 +37,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; import java.util.ArrayList; @@ -393,6 +394,24 @@ map.put("close_price", order.getClosePrice()); map.put("close_time", order.getCloseTime()); map.put("close_time_ts", order.getCloseTime() == null ? "" : order.getCloseTime().getTime()); if (ExchangeApplyOrder.OFFSET_CLOSE.equals(order.getOffset())) { List<ExchangeSymbolDto> exchangeSymbolDtos = exchangeApplyOrderService.querySpotTradPosition(order.getPartyId(), order.getSymbol()); if (exchangeSymbolDtos != null && !exchangeSymbolDtos.isEmpty()) { ExchangeSymbolDto exchangeSymbolDto = exchangeSymbolDtos.get(0); double costPrice = exchangeSymbolDto.getPrice(); //单个收益 double profitLoss = order.getClosePrice() - costPrice; double profitLossPercentage = (profitLoss / costPrice ) * 100; profitLossPercentage = new BigDecimal(profitLossPercentage).setScale(2, RoundingMode.HALF_UP).doubleValue(); //总收益 double profitLossSum = new BigDecimal(profitLoss * order.getVolume()).setScale(4, RoundingMode.HALF_UP).doubleValue(); map.put("costPrice", costPrice); map.put("profitLoss", profitLossSum); map.put("profitLossPercentage", profitLossPercentage); } } return map; } trading-order-service/src/main/java/com/yami/trading/service/exchange/ExchangeApplyOrderService.java
@@ -85,6 +85,11 @@ */ List<ExchangeSymbolDto> querySpotTradPositionList(String userId); /** * 查询现货交易持仓单列表-单个 */ List<ExchangeSymbolDto> querySpotTradPosition(String userId, String symbol); List<TodayTransactionDto> getTodayTransaction(String symbol, String currentUserId, Date startDate, Date endDate); trading-order-service/src/main/java/com/yami/trading/service/exchange/impl/ExchangeApplyOrderServiceImpl.java
@@ -219,6 +219,17 @@ return getSettleList(list); } @Override public List<ExchangeSymbolDto> querySpotTradPosition(String userId, String symbol) { LambdaQueryWrapper<ExchangeApplyOrder> lambdaQueryWrapper = Wrappers.<ExchangeApplyOrder>query().lambda(); lambdaQueryWrapper.eq(ExchangeApplyOrder::getPartyId, userId); lambdaQueryWrapper.eq(ExchangeApplyOrder::getSymbol, symbol); lambdaQueryWrapper.eq(ExchangeApplyOrder::getState, ExchangeApplyOrder.STATE_CREATED); lambdaQueryWrapper.orderByDesc(ExchangeApplyOrder::getCreateTime); List<ExchangeApplyOrder> list = list(lambdaQueryWrapper); return getDataList(list); } public List<ExchangeSymbolDto> getSettleList(List<ExchangeApplyOrder> dbList) { List<ExchangeSymbolDto> result = new ArrayList<>(); Map<String, List<ExchangeSymbolDto>> map = new HashMap<>();