package com.yami.trading.bean.future.dto; import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.util.Date; 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; import org.checkerframework.checker.units.qual.A; /** * 交割合约订单DTO * @author lucas * @version 2023-04-08 */ @Data @EqualsAndHashCode(callSuper = false) public class TFuturesOrderDTO extends BaseDTO { private static final long serialVersionUID = 1L; /** * 主键 */ @NotNull(message="主键不能为空") private String uuid; /** * PARTY_ID */ @ApiModelProperty("下单用户id") private String partyId; private String userCode; @ApiModelProperty("下单用户角色") private String roleName; @ApiModelProperty("下单用户名") private String userName; @ApiModelProperty("剩余时间 h:m:s") private String remainTime; /** * 代码 */ private String symbol; /** * 代码 */ @ApiModelProperty("品种名称") private String symbolName; /** * ORDER_NO */ @ApiModelProperty("订单号") private String orderNo; /** * DIRECTION */ @ApiModelProperty("\"buy\":买(多) \"sell\":卖(空)") private String direction; /** * TIMENUM */ @ApiModelProperty("合约时间") private Long timenum; private String timenumStr; /** * TIMEUNIT */ @ApiModelProperty("时间单位") private String timeunit; /** * UNIT_AMOUNT */ @ApiModelProperty("每手金额") private BigDecimal unitAmount; /** * 委托数量 */ @ApiModelProperty("购买金额") private BigDecimal volume; /** * FEE */ @ApiModelProperty("手续费") private BigDecimal fee; /** * PROFIT_RATIO */ @ApiModelProperty("收益率") private BigDecimal profitRatio; /** * PROFIT */ @ApiModelProperty("盈亏") private BigDecimal profit; /** * TRADE_AVG_PRICE */ @ApiModelProperty("购买价") private BigDecimal tradeAvgPrice; /** * CLOSE_AVG_PRICE */ @ApiModelProperty("结算价") private BigDecimal closeAvgPrice; /** * STATE */ @ApiModelProperty("状态。submitted 已提交(持仓), created 完成(平仓)") private String state; /** * CREATE_TIME */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; /** * CLOSE_TIME */ @ApiModelProperty("平仓时间,前端根据时区计算具体时间") private Long closeTime; /** * SETTLEMENT_TIME */ @ApiModelProperty("交割时间,前端根据时区计算具体时间") private Long settlementTime; /** * PROFIT_LOSS */ @ApiModelProperty("购买时控制场控") private String profitLoss; /** * 更新时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; /** * 备注信息 */ private String remarks; /** * 时间戳 */ @ApiModelProperty("购买时间") private Long createTimeTs; /** * 更新时间戳 */ private Long updateTimeTs; @ApiModelProperty("订单盈亏控制情况(优先级高于交割场控设置)") private String profitLosssStr; public String getProfitLosssStr() { if("profit".equalsIgnoreCase(profitLoss)){ return "盈利"; } if ("loss".equalsIgnoreCase(profitLoss)){ return "亏损"; } return ""; } }