|
@@ -197,3 +197,146 @@ func (r *Taaccountdigitallog) GetDataEx() (interface{}, error) {
|
|
|
}
|
|
}
|
|
|
return sData, err
|
|
return sData, err
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+// DigitaltradeOrderdetail 数字货币交易委托表
|
|
|
|
|
+type DigitaltradeOrderdetail struct {
|
|
|
|
|
+ ORDERID string `json:"orderid" xorm:"ORDERID"` // 委托单号(600+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
|
|
|
|
|
+ TRADEDATE string `json:"tradedate" xorm:"TRADEDATE" form:"tradedate"` // 交易日(yyyyMMdd)
|
|
|
|
|
+ BUILDTYPE uint32 `json:"buildtype" xorm:"BUILDTYPE"` // 委托单据类型 - 1:建仓 2:平仓 3:先平后建
|
|
|
|
|
+ PREORDERID string `json:"preorderid" xorm:"PREORDERID"` // 关联预埋单号(止盈止损单时填写)
|
|
|
|
|
+ CANCELORDERID string `json:"cancelorderid" xorm:"CANCELORDERID"` // 撤单单号(撤单时填写)
|
|
|
|
|
+ MARKETID uint32 `json:"marketid" xorm:"MARKETID"` // 市场ID
|
|
|
|
|
+ GOODSID uint32 `json:"goodsid" xorm:"GOODSID" form:"goodsid"` // 商品ID
|
|
|
|
|
+ BASECURRENCYID uint32 `json:"basecurrencyid" xorm:"BASECURRENCYID"` // 基础货币ID - digitalcurrency枚举
|
|
|
|
|
+ QUOTECURRENCYID uint32 `json:"quotecurrencyid" xorm:"QUOTECURRENCYID"` // 计价货币ID - digitalcurrency枚举
|
|
|
|
|
+ USERID uint64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
|
|
|
|
|
+ MEMBERUSERID uint64 `json:"memberuserid" xorm:"MEMBERUSERID"` // 所属会员UserID
|
|
|
|
|
+ BASEACCOUNTID string `json:"baseaccountid" xorm:"BASEACCOUNTID"` // 基础货币账户ID
|
|
|
|
|
+ QUOTEACCOUNTID string `json:"quoteaccountid" xorm:"QUOTEACCOUNTID"` // 计价货币账户ID
|
|
|
|
|
+ BUYORSELL uint32 `json:"buyorsell" xorm:"BUYORSELL"` // 方向 - 0:买 1:卖
|
|
|
|
|
+ PRICEMODE uint32 `json:"pricemode" xorm:"PRICEMODE"` // 取价方式- 枚举"Pricemode2" - 1:市价 2: 限价
|
|
|
|
|
+ ORDERMODE uint32 `json:"ordermode" xorm:"ORDERMODE"` // 委托方式 - 1:按数量 2:按成交额(市价时-先不实现)
|
|
|
|
|
+ ORDERPRICE float64 `json:"orderprice" xorm:"ORDERPRICE"` // 委托价格 - 按商品行情小数位
|
|
|
|
|
+ ORDERVOLUME float64 `json:"ordervolume" xorm:"ORDERVOLUME"` // 委托数量 - 按基础货币小数位
|
|
|
|
|
+ FREEZEVOLUME float64 `json:"freezevolume" xorm:"FREEZEVOLUME"` // 冻结数量 - 按基础货币小数位(卖)
|
|
|
|
|
+ UNFREEZEVOLUME float64 `json:"unfreezevolume" xorm:"UNFREEZEVOLUME"` // 解冻数量 - 按基础货币小数位(卖)
|
|
|
|
|
+ TRADEVOLUME float64 `json:"tradevolume" xorm:"TRADEVOLUME"` // 成交数量 - 按基础货币小数位
|
|
|
|
|
+ CANCELVOLUME float64 `json:"cancelvolume" xorm:"CANCELVOLUME"` // 撤单数量 - 按基础货币小数位
|
|
|
|
|
+ ORDERVALUE float64 `json:"ordervalue" xorm:"ORDERVALUE"` // 委托金额 - 按计价货币小数位
|
|
|
|
|
+ FREEZEVALUE float64 `json:"freezevalue" xorm:"FREEZEVALUE"` // 冻结金额 - 按计价货币小数位(买)
|
|
|
|
|
+ UNFREEZEVALUE float64 `json:"unfreezevalue" xorm:"UNFREEZEVALUE"` // 解冻金额 - 按计价货币小数位(买)
|
|
|
|
|
+ FREEZECHARGE float64 `json:"freezecharge" xorm:"FREEZECHARGE"` // 冻结手续费
|
|
|
|
|
+ UNFREEZECHARGE float64 `json:"unfreezecharge" xorm:"UNFREEZECHARGE"` // 解冻手续费
|
|
|
|
|
+ VALIDTYPE uint32 `json:"validtype" xorm:"VALIDTYPE"` // 有效类型 - 枚举"ValidType" - 4一直有效
|
|
|
|
|
+ VALIDTIME time.Time `json:"validtime" xorm:"VALIDTIME"` // 有效期限
|
|
|
|
|
+ OPERATETYPE uint32 `json:"operatetype" xorm:"OPERATETYPE"` // 操作类型 -枚举“orderoperatetype" - 1:正常下单 2:斩仓 3:转单 4:结算撤单 5:系统卖出(适用于先平后建的卖出) 6:行情源报价 7:(结算)到期强平 8:(结算)协议转让 9:系统对冲单 10:(结算)到期无效 11:交割协议转让 12:交割协议平仓 13:交割成交(所有权) 14:管理端强行平仓 15:管理端协议转让 ... 23:融资买入
|
|
|
|
|
+ ORDERTIME time.Time `json:"ordertime" xorm:"ORDERTIME"` // 委托时间
|
|
|
|
|
+ ORDERSRC uint32 `json:"ordersrc" xorm:"ORDERSRC"` // 委托来源 - 1:客户端 2:管理端 3:风控服务 4:交割服务 5:交易服务 6:交易日结 7:商品强平 8:管理端商品退市强平 9:交易接口 10:交割服务商被动(受托竞价) 11:预埋触发
|
|
|
|
|
+ ORDERSTATUS uint32 `json:"orderstatus" xorm:"ORDERSTATUS"` // 委托状态 - 参考枚举''orderstatus'' - 1:委托请求 2:待冻结 3:委托成功 4:委托失败 5:配对成功 6:已撤 7:部成 8:已成 9:部成部撤 10:成交失败 11:委托拒绝 12:经过摘牌(先摘后挂专用) 13:冻结成功(通道交易专用) 14:通道已撤 15:通道部成部撤 16:成交失败违约(荷兰式竞拍专用) 17:冻结PD成功 18:冻结PD失败 19:冻结能量成功 20:冻结能量失败 21:预约已报价 22:过期未付 23:优惠券处理中 24:仓单生成失败 25:首付扣款失败 26:履约失败 27:撤单解冻贷款失败
|
|
|
|
|
+ OPERATORID uint64 `json:"operatorid" xorm:"OPERATORID"` // 登录账号(LoginID)
|
|
|
|
|
+ UPDATETIME time.Time `json:"updatetime" xorm:"UPDATETIME"` // 更新时间
|
|
|
|
|
+ CLIENTORDERTIME time.Time `json:"clientordertime" xorm:"CLIENTORDERTIME"` // 客户端委托时间
|
|
|
|
|
+ CLIENTTICKET string `json:"clientticket" xorm:"CLIENTTICKET"` // 客户端流水号
|
|
|
|
|
+ UUID string `json:"uuid" xorm:"UUID"` // 发起端唯一id
|
|
|
|
|
+ CLIENTTYPE uint32 `json:"clienttype" xorm:"CLIENTTYPE"` // 客户端类型 - 0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
|
|
|
|
|
+ RETCODE uint64 `json:"retcode" xorm:"RETCODE"` // 错误代码
|
|
|
|
|
+ TRADEPROPERTY uint32 `json:"tradeproperty" xorm:"TRADEPROPERTY"` // 交易属性
|
|
|
|
|
+
|
|
|
|
|
+ ORDERSTATUSES string `json:"-" xorm:"-" form:"orderstatuses"` // 委托状态(多个逗号分隔) 参考枚举orderstatus
|
|
|
|
|
+ DIGITALACCOUNTID string `json:"-" xorm:"-" form:"digitalaccountid"` // 数字账户ID
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (r *DigitaltradeOrderdetail) calc() {
|
|
|
|
|
+
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (r *DigitaltradeOrderdetail) buildSql() string {
|
|
|
|
|
+ var sqlId utils.SQLVal = `
|
|
|
|
|
+ select t.* from digitaltrade_orderdetail t
|
|
|
|
|
+ where t.userid = %v
|
|
|
|
|
+ `
|
|
|
|
|
+ if len(strings.TrimSpace(r.DIGITALACCOUNTID)) > 0 {
|
|
|
|
|
+ sqlId.Join(fmt.Sprintf(" AND (t.baseaccountid = %v or t.quoteaccountid = %v)", strings.TrimSpace(r.DIGITALACCOUNTID), strings.TrimSpace(r.DIGITALACCOUNTID)))
|
|
|
|
|
+ }
|
|
|
|
|
+ sqlId.AndEx("t.goodsid", r.GOODSID, r.GOODSID > 0)
|
|
|
|
|
+ sqlId.AndEx("t.tradedate", r.TRADEDATE, strings.TrimSpace(r.TRADEDATE) != "")
|
|
|
|
|
+ if len(strings.TrimSpace(r.ORDERSTATUSES)) > 0 {
|
|
|
|
|
+ sqlId.Join(fmt.Sprintf(" AND t.ORDERSTATUS IN (%v)", strings.TrimSpace(r.ORDERSTATUSES)))
|
|
|
|
|
+ }
|
|
|
|
|
+ sqlId.FormatParam(r.USERID)
|
|
|
|
|
+ sqlId.Join(" ORDER BY t.ORDERID DESC")
|
|
|
|
|
+ return sqlId.String()
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// GetDataEx 从数据库中查询数据
|
|
|
|
|
+func (r *DigitaltradeOrderdetail) GetDataEx() (interface{}, error) {
|
|
|
|
|
+ sData := make([]DigitaltradeOrderdetail, 0)
|
|
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
|
|
+ for i := range sData {
|
|
|
|
|
+ sData[i].calc()
|
|
|
|
|
+ }
|
|
|
|
|
+ return sData, err
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// DigitaltradeTradedetail 数字货币交易成交单表
|
|
|
|
|
+type DigitaltradeTradedetail struct {
|
|
|
|
|
+ TRADEID string `json:"tradeid" xorm:"TRADEID"` // 成交单号(601+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
|
|
|
|
|
+ BUYORSELL uint32 `json:"buyorsell" xorm:"BUYORSELL"` // 方向 - 0:买 1:卖
|
|
|
|
|
+ ORDERID string `json:"orderid" xorm:"ORDERID"` // 委托单号
|
|
|
|
|
+ TRADEDATE string `json:"tradedate" xorm:"TRADEDATE" form:"tradedate"` // 交易日(yyyyMMdd)
|
|
|
|
|
+ MARKETID uint32 `json:"marketid" xorm:"MARKETID"` // 市场ID
|
|
|
|
|
+ GOODSID uint32 `json:"goodsid" xorm:"GOODSID" form:"goodsid"` // 商品ID
|
|
|
|
|
+ BASECURRENCYID uint32 `json:"basecurrencyid" xorm:"BASECURRENCYID"` // 基础货币ID - digitalcurrency枚举
|
|
|
|
|
+ QUOTECURRENCYID uint32 `json:"quotecurrencyid" xorm:"QUOTECURRENCYID"` // 计价货币ID - digitalcurrency枚举
|
|
|
|
|
+ USERID uint64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
|
|
|
|
|
+ MEMBERUSERID uint64 `json:"memberuserid" xorm:"MEMBERUSERID"` // 所属会员UserID
|
|
|
|
|
+ BASEACCOUNTID string `json:"baseaccountid" xorm:"BASEACCOUNTID"` // 基础货币账户ID
|
|
|
|
|
+ QUOTEACCOUNTID string `json:"quoteaccountid" xorm:"QUOTEACCOUNTID"` // 计价货币账户ID
|
|
|
|
|
+ MATCHUSERID uint64 `json:"matchuserid" xorm:"MATCHUSERID"` // 对手用户ID
|
|
|
|
|
+ MATCHBASEACCOUNTID string `json:"matchbaseaccountid" xorm:"MATCHBASEACCOUNTID"` // 对手基础货币账户ID
|
|
|
|
|
+ MATCHQUOTEACCOUNTID string `json:"matchquoteaccountid" xorm:"MATCHQUOTEACCOUNTID"` // 对手计价货币账户ID
|
|
|
|
|
+ TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价格
|
|
|
|
|
+ TRADEVOLUME float64 `json:"tradevolume" xorm:"TRADEVOLUME"` // 成交数量 - 按基础货币小数位
|
|
|
|
|
+ TRADEVALUE float64 `json:"tradevalue" xorm:"TRADEVALUE"` // 成交金额 - 按计价货币小数位
|
|
|
|
|
+ REALTRADEVALUE float64 `json:"realtradevalue" xorm:"REALTRADEVALUE"` // 实际成交金额 - 按计价货币小数位
|
|
|
|
|
+ TRADECHARGE float64 `json:"tradecharge" xorm:"TRADECHARGE"` // 手续费 - 买方按成交金额 卖方按成交数量
|
|
|
|
|
+ TRADETIME time.Time `json:"tradetime" xorm:"TRADETIME"` // 成交时间
|
|
|
|
|
+ TRADETYPE uint32 `json:"tradetype" xorm:"TRADETYPE"` // 成交类别 - 枚举 tradetype(1:正常委托成交 2:定向做市成交(接单))
|
|
|
|
|
+ BUILDTYPE uint32 `json:"buildtype" xorm:"BUILDTYPE"` // 委托单据类型 1:建仓
|
|
|
|
|
+ STATUS uint32 `json:"status" xorm:"STATUS"` // 处理状态 - 1:待处理 2:已处理 3:处理失败
|
|
|
|
|
+ NFEEALGORITHM uint32 `json:"nfeealgorithm" xorm:"NFEEALGORITHM"` // 手续费收取方式 1:比率 2:固定
|
|
|
|
|
+ OPENEXCHAGECHARGEVALUE float64 `json:"openexchagechargevalue" xorm:"OPENEXCHAGECHARGEVALUE"` // 手续费设置值(平台部分)
|
|
|
|
|
+ OPENMEMBERCHARGEVALUE float64 `json:"openmemberchargevalue" xorm:"OPENMEMBERCHARGEVALUE"` // 手续费设置值(会员部分)
|
|
|
|
|
+ TRADEPROPERTY uint32 `json:"tradeproperty" xorm:"TRADEPROPERTY"` // 交易属性
|
|
|
|
|
+
|
|
|
|
|
+ DIGITALACCOUNTID string `json:"-" xorm:"-" form:"digitalaccountid"` // 数字账户ID
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (r *DigitaltradeTradedetail) calc() {
|
|
|
|
|
+
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (r *DigitaltradeTradedetail) buildSql() string {
|
|
|
|
|
+ var sqlId utils.SQLVal = `
|
|
|
|
|
+ select t.* from digitaltrade_tradedetail t
|
|
|
|
|
+ where t.userid = %v
|
|
|
|
|
+ `
|
|
|
|
|
+ if len(strings.TrimSpace(r.DIGITALACCOUNTID)) > 0 {
|
|
|
|
|
+ sqlId.Join(fmt.Sprintf(" AND (t.baseaccountid = %v or t.quoteaccountid = %v)", strings.TrimSpace(r.DIGITALACCOUNTID), strings.TrimSpace(r.DIGITALACCOUNTID)))
|
|
|
|
|
+ }
|
|
|
|
|
+ sqlId.AndEx("t.goodsid", r.GOODSID, r.GOODSID > 0)
|
|
|
|
|
+ sqlId.AndEx("t.tradedate", r.TRADEDATE, strings.TrimSpace(r.TRADEDATE) != "")
|
|
|
|
|
+ sqlId.FormatParam(r.USERID)
|
|
|
|
|
+ sqlId.Join(" ORDER BY t.TRADEID DESC")
|
|
|
|
|
+ return sqlId.String()
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// GetDataEx 从数据库中查询数据
|
|
|
|
|
+func (r *DigitaltradeTradedetail) GetDataEx() (interface{}, error) {
|
|
|
|
|
+ sData := make([]DigitaltradeTradedetail, 0)
|
|
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
|
|
+ for i := range sData {
|
|
|
|
|
+ sData[i].calc()
|
|
|
|
|
+ }
|
|
|
|
|
+ return sData, err
|
|
|
|
|
+}
|