package com.yami.trading.bean.contract.dto;
|
|
import javax.validation.constraints.NotNull;
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.util.Date;
|
|
import cn.hutool.core.util.StrUtil;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.yami.trading.common.dto.BaseDTO;
|
import com.yami.trading.common.query.Query;
|
import com.yami.trading.common.query.QueryType;
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.Data;
|
import lombok.EqualsAndHashCode;
|
/**
|
* 非按金额订单DTO
|
* @author lucas
|
* @version 2023-03-29
|
*/
|
@Data
|
@EqualsAndHashCode(callSuper = false)
|
public class ContractOrderDTO {
|
|
private static final long serialVersionUID = 1L;
|
|
/**
|
* PARTY_ID
|
*/
|
@ApiModelProperty("用户")
|
private String userName;
|
|
@ApiModelProperty("角色名称")
|
private String roleName;
|
|
/**
|
* 主键
|
*/
|
@NotNull(message="主键不能为空")
|
private String uuid;
|
/**
|
* PARTY_ID
|
*/
|
@ApiModelProperty("partyId")
|
private String partyId;
|
|
/**
|
* PARTY_ID
|
*/
|
@ApiModelProperty("UID")
|
private String userCode;
|
|
/**
|
* 代码
|
*/
|
@ApiModelProperty("品种")
|
private String symbol;
|
|
/**
|
* 代码
|
*/
|
@ApiModelProperty("品种名称")
|
private String symbolName;
|
|
/**
|
* ORDER_NO
|
*/
|
@ApiModelProperty("订单号")
|
private String orderNo;
|
|
/**
|
* DIRECTION
|
*/
|
@ApiModelProperty("buy:买(多) sell:卖(空)")
|
private String direction;
|
|
/**
|
* UNIT_AMOUNT
|
*/
|
@ApiModelProperty("每手金额")
|
private BigDecimal unitAmount;
|
|
/**
|
* AMOUNT_CLOSE
|
*/
|
@ApiModelProperty("平仓退回金额")
|
private BigDecimal amountClose;
|
|
/**
|
* 手续费
|
*/
|
@ApiModelProperty("手续费")
|
private BigDecimal fee;
|
|
/**
|
* 资金费
|
*/
|
@ApiModelProperty("资金费")
|
private BigDecimal fundingFee;
|
|
/**
|
* 保证金(剩余)
|
*/
|
@ApiModelProperty("保证金(剩余)")
|
private BigDecimal deposit;
|
|
/**
|
*保证金
|
*/
|
@ApiModelProperty("保证金")
|
private BigDecimal depositOpen;
|
|
/**
|
* PROFIT
|
*/
|
@ApiModelProperty("收益")
|
private BigDecimal profit;
|
|
/**
|
* TRADE_AVG_PRICE
|
*/
|
@ApiModelProperty("成交均价(成本)")
|
private BigDecimal tradeAvgPrice;
|
|
/**
|
* STOP_PRICE_PROFIT
|
*/
|
@ApiModelProperty("止盈触发价格")
|
private BigDecimal stopPriceProfit;
|
|
/**
|
* STOP_PRICE_LOSS
|
*/
|
@ApiModelProperty("止损触发价格")
|
private BigDecimal stopPriceLoss;
|
|
/**
|
* STATE
|
*/
|
@ApiModelProperty(" 状态。submitted 已提交(持仓), created 完成(平仓)\n")
|
private String state;
|
|
/**
|
* VOLUME
|
*/
|
@ApiModelProperty("委托数量(剩余)(张)")
|
private BigDecimal volume;
|
|
/**
|
* VOLUME_OPEN
|
*/
|
@ApiModelProperty("委托数量(张)")
|
private BigDecimal volumeOpen;
|
|
/**
|
* 创建时间
|
*/
|
private Date createTime;
|
|
@ApiModelProperty("钱包余额")
|
private BigDecimal money;
|
|
@ApiModelProperty("止盈止损")
|
private String stopProfitLoss;
|
|
public String getStopProfitLoss() {
|
return StrUtil.format("{}/{}", stopPriceProfit, stopPriceLoss);
|
}
|
|
@ApiModelProperty("盈亏")
|
private BigDecimal profitLoss;
|
|
@ApiModelProperty("平仓时间")
|
private Long closeTime;
|
|
/**
|
* 平仓均价
|
*/
|
private BigDecimal closeAvgPrice;
|
|
/**
|
* 当前价格
|
*/
|
private BigDecimal mark_price;
|
/**
|
* 当前价格
|
*/
|
private BigDecimal close;
|
|
|
/**
|
* 平仓时间戳
|
*/
|
private Long closeTimeTs;
|
/**
|
* 强平价格
|
*/
|
private String forceClosePrice;
|
|
|
|
|
private double changeRatio;
|
|
public BigDecimal getProfitLoss() {
|
return profit;
|
}
|
|
/**
|
* 剩余/委托金额
|
*/
|
private String vnvu;
|
|
private String volumeUnitAmount;
|
private String volumeOpenUnitAmount;
|
|
public String getVolumeUnitAmount() {
|
if(volume == null){
|
volume = BigDecimal.ZERO;
|
}
|
if(unitAmount == null){
|
unitAmount = BigDecimal.ZERO;
|
}
|
BigDecimal bigDecimal1 = volume.multiply(unitAmount).setScale(2, RoundingMode.FLOOR);
|
return bigDecimal1.toPlainString();
|
}
|
|
public String getVolumeOpenUnitAmount() {
|
|
if(volumeOpen == null){
|
volumeOpen = BigDecimal.ZERO;
|
}
|
if(unitAmount == null){
|
unitAmount = BigDecimal.ZERO;
|
}
|
BigDecimal bigDecimal2 = volumeOpen.multiply(unitAmount).setScale(2, RoundingMode.FLOOR);
|
return bigDecimal2.toPlainString();
|
}
|
|
/**
|
* 剩余/委托保证金
|
*/
|
private String dd;
|
public String getVnvu() {
|
if(volume == null){
|
volume = BigDecimal.ZERO;
|
}
|
if(volumeOpen == null){
|
volumeOpen = BigDecimal.ZERO;
|
}
|
if(unitAmount == null){
|
unitAmount = BigDecimal.ZERO;
|
}
|
BigDecimal bigDecimal1 = volume.multiply(unitAmount).setScale(2, RoundingMode.FLOOR);
|
BigDecimal bigDecimal2 = volumeOpen.multiply(unitAmount).setScale(2, RoundingMode.FLOOR);
|
return bigDecimal1.toPlainString()+"/"+bigDecimal2.toPlainString();
|
}
|
|
public String getDd() {
|
if(deposit == null){
|
deposit = BigDecimal.ZERO;
|
}
|
if(depositOpen == null){
|
depositOpen = BigDecimal.ZERO;
|
}
|
return deposit.setScale(2, RoundingMode.FLOOR).toPlainString()+"/"+depositOpen.setScale(2, RoundingMode.FLOOR).toPlainString();
|
}
|
}
|