1
zyy
3 days ago a6c07a0526befbbd8194c97eb8f64b84b1a477a1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
package com.yami.trading.bean.item.dto;
 
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hankcs.hanlp.HanLP;
import com.yami.trading.common.lang.LangUtils;
import com.yami.trading.common.util.StringUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
 
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
 
/**
 * 永续合约
 *
 * @author lucas
 * @version 2023-03-10
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class ItemDTO {
 
    private static final long serialVersionUID = 1L;
 
    private String uuid;
 
    /**
     * 币种全称
     */
    @ApiModelProperty("币种")
    private String symbolFullName;
 
    /**
     * 币种名称
     */
    //@NotBlank(message = "名称不能为空")
    @ApiModelProperty("交易对名称")
    private String name;
 
    @ApiModelProperty("英文名")
    private String enName;
 
    /**
     * 代码
     */
    @ApiModelProperty("代码/交易对")
//    @NotBlank(message = "代码不能为空")
    private String symbol;
 
    /**
     * 数据源编码
     */
    private String symbolData;
 
    /**
     * 小数位精度
     */
//    @NotNull
//    @Min(value = 0, message = "精度必须大于等于0")
    @ApiModelProperty("价格精度")
    private Integer decimals;
 
    /**
     * 最小浮动
     */
    //@NotNull(message = "最小浮动")
    //@DecimalMin(value = "0", message = "最小浮动不能小于0")
    @ApiModelProperty("最小浮动/最小交易量")
    private BigDecimal pips;
 
    /**
     * 最小浮动金额
     */
    //@NotNull(message = "最小浮动金额必填")
    @ApiModelProperty("最小浮动金额/最小交易额/最小挂单金额")
    //@DecimalMin(value = "0", message = "最小浮动金额不能小于0")
    private BigDecimal pipsAmount;
 
    /**
     * 每手金额
     */
    //@NotNull(message = "每手金额必填")
//    @DecimalMin(value = "0", message = "每手金额不能小于0")
    @ApiModelProperty("每手金额")
    private BigDecimal unitAmount;
 
    /**
     * 每手的手续费
     */
    //@NotNull(message = "每手的手续费必填")
//    @DecimalMin(value = "0", message = "每手的手续费必填")
    @ApiModelProperty("每手的手续费")
    private Double unitFee;
 
    /**
     * 合约手续费  百分比设置
     */
    @ApiModelProperty("约手续费百分比设置")
    private BigDecimal unitPercentage = BigDecimal.ZERO;
 
//    @NotBlank
//    private String loginSafeword;
 
    /**
     * 交易量倍数
     */
    @ApiModelProperty("交易倍数")
    private BigDecimal multiple;
 
    /**
     * 借贷利率
     */
    @ApiModelProperty("借贷利率")
    private BigDecimal borrowingRate;
 
    private List<ItemLeverageDTO> levels;
 
    @ApiModelProperty("是否置顶")
    private String isTop;
 
    @ApiModelProperty("类型/交易模块")
    private String type;
 
    @ApiModelProperty("最小下单价")
    private String minimumPrice;
 
    @ApiModelProperty("最大下单价/最高买单价")
    private String maxmumPrice;
 
    @ApiModelProperty("最小下单量")
    private String minimumOrder;
 
    @ApiModelProperty("最大下单量")
    private String maxmumOrder;
 
    @ApiModelProperty("排序")
    private String sorted = "999999";
 
    @ApiModelProperty("报价货币")
    private String quoteCurrency;
 
    @ApiModelProperty("前端显示状态,1显示,0不显示")
    private String showStatus;
 
    @ApiModelProperty("交易状态,1显示,0不显示")
    private String tradeStatus;
 
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
 
    @ApiModelProperty("状态,1启用,0禁止")
    private String enable;
 
    @ApiModelProperty("市价买,1是,0否")
    private String canBuyAtMarketPrice;
 
    @ApiModelProperty("市价卖,1是,0否")
    private String canSellAtMarketPrice;
 
    @ApiModelProperty("限价可买,1是,0否")
    private String limitCanBuy;
 
    @ApiModelProperty("限价可卖,1是,0否")
    private String limitCanSell;
    @ApiModelProperty("资金密码")
    @NotBlank
    private String loginSafeword;
 
    private String cnName;
    public void transName() {
        if (StringUtils.isNotEmpty(enName)) {
            this.name = enName;
        }
    }
 
    public String getCnName() {
        return this.name;
    }
 
    public String getName() {
        if (LangUtils.hasLang()) {
            if (LangUtils.isTWItem()) {
                return HanLP.convertToTraditionalChinese(name);
            }
            if (LangUtils.isEnItem() && StringUtils.isNotEmpty(enName)) {
                this.name = enName;
            }
        }
 
        return name;
    }
 
}