package com.yami.trading.bean.exchange.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Date; @Data @ApiModel public class ExchangeApplyOrderDto { private String id; @ApiModelProperty("用户") private String userName; @ApiModelProperty("UID") private String userCode; @ApiModelProperty("账户类型") private String roleName; @ApiModelProperty("推荐人") private String usernameParent; @ApiModelProperty("品种") private String symbol; @ApiModelProperty("品种名称") private String symbolName; @ApiModelProperty(" 操作 open:买入 close 卖出 ") private String offset; @ApiModelProperty("币种数量委托数量") private Double symbolValue; @ApiModelProperty("订单号") private String orderNo; @ApiModelProperty("委托数量") private Double volume; @ApiModelProperty(" 订单报价类型。 limit:限价 opponent:对手价(市价)") private String orderPriceType; @ApiModelProperty("限价") private Double price; @ApiModelProperty("状态。submitted 已提交,canceled 已撤销, created 委托完成") private String state = "submitted"; @ApiModelProperty("创建时间") private Date createTime; @ApiModelProperty("成交价格") private Double closePrice; @ApiModelProperty("成交时间") private Date closeTime; private Double orderedVolume; private double successVolume; // 已成交数量 public Double getSuccessVolume() { if (state.equals("submitted") || state.equals("canceled")) { return 0D; } else { return successVolume != 0 ? successVolume : symbolValue; } } // 委托价值 public Double getVolume() { if (offset.equals("open")) { return volume; } else if (offset.equals("close")){ return BigDecimal.valueOf(volume * price).setScale(2, RoundingMode.HALF_DOWN).doubleValue(); } return volume; } public Double getOrderedVolume() { if(this.state.equalsIgnoreCase("submitted")){ return 0d; }else if(this.state.equalsIgnoreCase("canceled")){ return 0d; } return volume; } }