| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342 |
- package models
- import (
- "fmt"
- "mtp2_if/db"
- "mtp2_if/utils"
- "strings"
- "time"
- )
- // Taaccountdigital 数字账户表
- type Taaccountdigital struct {
- DIGITALACCOUNTID string `json:"digitalaccountid" xorm:"DIGITALACCOUNTID" form:"digitalaccountid"` // 资金账户ID(userid + currencyid[3位,前面补0])
- CURRENCYID uint32 `json:"currencyid" xorm:"CURRENCYID"` // 货币ID - 枚举"digitalcurrency"
- USERID uint64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
- CURRENTBALANCE float64 `json:"currentbalance" xorm:"CURRENTBALANCE"` // 期末余额
- USEDMARGIN float64 `json:"usedmargin" xorm:"USEDMARGIN"` // 占用保证金(交易) - 正 - 预留
- FREEZEMARGIN float64 `json:"freezemargin" xorm:"FREEZEMARGIN"` // 冻结保证金(交易) - 正
- FREEZETRADECHARGE float64 `json:"freezetradecharge" xorm:"FREEZETRADECHARGE"` // 交易手续费冻结 - 正
- FREEZETRANSFER float64 `json:"freezetransfer" xorm:"FREEZETRANSFER"` // 转入转出冻结 - 正
- FREEZEINOUT float64 `json:"freezeinout" xorm:"FREEZEINOUT"` // 充值提现冻结 - 正
- TOTALTRADEADD float64 `json:"totaltradeadd" xorm:"TOTALTRADEADD"` // 累计交易增加 - 正
- TOTALTRADEREDUCE float64 `json:"totaltradereduce" xorm:"TOTALTRADEREDUCE"` // 累计交易减少 - 负
- TOTALTRADECHARGE float64 `json:"totaltradecharge" xorm:"TOTALTRADECHARGE"` // 累计交易手续费 - 负
- TOTALTRANSFERIN float64 `json:"totaltransferin" xorm:"TOTALTRANSFERIN"` // 累计转入(合约与现货账户) - 正
- TOTALTRANSFEROUT float64 `json:"totaltransferout" xorm:"TOTALTRANSFEROUT"` // 累计转出(合约与现货账户) - 负
- TOTALTRANSFERINCHARGE float64 `json:"totaltransferincharge" xorm:"TOTALTRANSFERINCHARGE"` // 累计转入手续费 - 负 - 预留
- TOTALTRANSFEROUTCHARGE float64 `json:"totaltransferoutcharge" xorm:"TOTALTRANSFEROUTCHARGE"` // 累计转出手续费 - 负 - 预留
- TOTALIN float64 `json:"totalin" xorm:"TOTALIN"` // 累计充值(现货账户与外部钱包) - 正
- TOTALOUT float64 `json:"totalout" xorm:"TOTALOUT"` // 累计提现(现货账户与外部钱包) - 负
- TOTALININCHARGE float64 `json:"totalinincharge" xorm:"TOTALININCHARGE"` // 累计充值手续费 - 负
- TOTALINOUTCHARGE float64 `json:"totalinoutcharge" xorm:"TOTALINOUTCHARGE"` // 累计提现手续费 - 负
- CURRENCYCODE string `json:"currencycode" xorm:"CURRENCYCODE"` // 币种代码
- CURRENCYDECIMALPLACE uint32 `json:"currencydecimalplace" xorm:"CURRENCYDECIMALPLACE"` // 币种小数位(param1)
- CURRENCYDISPLAYUNIT string `json:"currencydisplayunit" xorm:"CURRENCYDISPLAYUNIT"` // 币种显示单位(param2)
- CURRENCYIDS string `json:"-" xorm:"-" form:"currencyids"` // 币种ID(多个逗号分隔)
- }
- func (r *Taaccountdigital) calc() {
- }
- func (r *Taaccountdigital) buildSql() string {
- var sqlId utils.SQLVal = `
- SELECT A.ENUMITEMVALUE CURRENCYCODE, A.PARAM1 CURRENCYDECIMALPLACE, A.PARAM2 CURRENCYDISPLAYUNIT,
- TO_CHAR(NVL(TA.DIGITALACCOUNTID, '')) DIGITALACCOUNTID,
- CASE
- WHEN TA.CURRENCYID IS NULL THEN A.ENUMITEMNAME
- ELSE TA.CURRENCYID
- END CURRENCYID,
- CASE
- WHEN TA.USERID IS NULL THEN %v
- ELSE TA.USERID
- END USERID,
- NVL(TA.CURRENTBALANCE, 0) CURRENTBALANCE,
- NVL(TA.USEDMARGIN, 0) USEDMARGIN,
- NVL(TA.FREEZEMARGIN, 0) FREEZEMARGIN,
- NVL(TA.FREEZETRADECHARGE, 0) FREEZETRADECHARGE,
- NVL(TA.FREEZETRANSFER, 0) FREEZETRANSFER,
- NVL(TA.FREEZEINOUT, 0) FREEZEINOUT,
- NVL(TA.TOTALTRADEADD, 0) TOTALTRADEADD,
- NVL(TA.TOTALTRADEREDUCE, 0) TOTALTRADEREDUCE,
- NVL(TA.TOTALTRADECHARGE, 0) TOTALTRADECHARGE,
- NVL(TA.TOTALTRANSFERIN, 0) TOTALTRANSFERIN,
- NVL(TA.TOTALTRANSFEROUT, 0) TOTALTRANSFEROUT,
- NVL(TA.TOTALTRANSFERINCHARGE, 0) TOTALTRANSFERINCHARGE,
- NVL(TA.TOTALTRANSFEROUTCHARGE, 0) TOTALTRANSFEROUTCHARGE,
- NVL(TA.TOTALIN, 0) TOTALIN,
- NVL(TA.TOTALOUT, 0) TOTALOUT,
- NVL(TA.TOTALININCHARGE, 0) TOTALININCHARGE,
- NVL(TA.TOTALINOUTCHARGE, 0) TOTALINOUTCHARGE
- FROM (SELECT E.* FROM ENUMDICITEM E WHERE E.ENUMDICCODE = 'digitalcurrency') A
- LEFT JOIN (SELECT T.* FROM TAACCOUNTDIGITAL T WHERE T.USERID = %v) TA ON A.ENUMITEMNAME = TA.CURRENCYID
- where 1=1
- `
- if len(strings.TrimSpace(r.CURRENCYIDS)) > 0 {
- sqlId.Join(fmt.Sprintf(" AND A.ENUMITEMNAME IN (%v)", strings.TrimSpace(r.CURRENCYIDS)))
- }
- sqlId.AndEx("TA.DIGITALACCOUNTID", strings.TrimSpace(r.DIGITALACCOUNTID), strings.TrimSpace(r.DIGITALACCOUNTID) != "")
- sqlId.FormatParam(r.USERID, r.USERID)
- sqlId.Join(" ORDER BY NVL(TA.CURRENTBALANCE, 0) DESC, A.ENUMITEMNAME")
- return sqlId.String()
- }
- // GetDataEx 从数据库中查询数据
- func (r *Taaccountdigital) GetDataEx() (interface{}, error) {
- sData := make([]Taaccountdigital, 0)
- err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
- for i := range sData {
- sData[i].calc()
- }
- return sData, err
- }
- // Taaccountdigitalchangeapply 数字账户变更申请表
- type Taaccountdigitalchangeapply struct {
- APPLYID string `json:"applyid" xorm:"APPLYID"` // 申请ID(403+Unix秒时间戳(10位)+xxxxxx)
- USERID uint64 `json:"userid" xorm:"USERID"` // 用户ID
- CURRENCYID uint32 `json:"currencyid" xorm:"CURRENCYID"` // 货币ID - 枚举"digitalcurrency"
- DIGITALACCOUNTID string `json:"digitalaccountid" xorm:"DIGITALACCOUNTID" form:"digitalaccountid" binding:"required"` // 数字账号ID
- ACCOUNTID uint64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账号ID (转入\转出)
- DIGITALTRANSFERTYPE uint32 `json:"digitaltransfertype" xorm:"DIGITALTRANSFERTYPE"` // 划转类型 - 枚举"digitaltransfertype"(1:充值 2:提现 3:转入 4:转出)
- APPLYAMOUNT float64 `json:"applyamount" xorm:"APPLYAMOUNT"` // 申请金额
- CHARGE float64 `json:"charge" xorm:"CHARGE"` // 手续费
- ACTUALAMOUNT float64 `json:"actualamount" xorm:"ACTUALAMOUNT"` // 实际金额(申请金额 - 手续费)
- APPLYSTATUS uint32 `json:"applystatus" xorm:"APPLYSTATUS"` // 申请状态 - 枚举"bankapplystatus"(1:待审核 2:审核中 3:审核通过 4:审核拒绝 5:审核失败 6:审核超时 7:已撤销)
- HANDLESTATUS uint64 `json:"handlestatus" xorm:"HANDLESTATUS"` // 处理状态 - 枚举"digitalhandlestatus"(1:账户服务处理开始 2:账户服务处理失败 3:账户服务处理成功 4:数字账户服务处理开始 5:数字账户服务处理失败 6:数字账户服务处理成功)
- APPLYTIME time.Time `json:"applytime" xorm:"APPLYTIME"` // 申请时间
- REVOKESRC uint32 `json:"revokesrc" xorm:"REVOKESRC"` // 撤销来源 - 枚举"operatesrc"(1:管理端 2:客户端)
- REVOKERID uint64 `json:"revokerid" xorm:"REVOKERID"` // 撤销人
- REVOKETIME time.Time `json:"revoketime" xorm:"REVOKETIME"` // 撤销时间
- AUDITORID uint64 `json:"auditorid" xorm:"AUDITORID"` // 审核人
- AUDITTIME time.Time `json:"audittime" xorm:"AUDITTIME"` // 审核时间
- AUDITTRADEDATE string `json:"audittradedate" xorm:"AUDITTRADEDATE"` // 审核交易日(yyyyMMdd)
- REMARK string `json:"remark" xorm:"REMARK"` // 备注
- RETCODE string `json:"retcode" xorm:"RETCODE"` // 错误代码
- APPLYDATE string `json:"-" xorm:"-" form:"applydate"` // 申请日期(yyyyMMdd)
- TRANSFERTYPES string `json:"-" xorm:"-" form:"transfertypes"` // 划转类型(多个逗号分隔) - 枚举"digitaltransfertype"(1:充值 2:提现 3:转入 4:转出)
- }
- func (r *Taaccountdigitalchangeapply) calc() {
- }
- func (r *Taaccountdigitalchangeapply) buildSql() string {
- var sqlId utils.SQLVal = `
- select t.* from taaccountdigitalchangeapply t
- where t.digitalaccountid = %v
- `
- sqlId.AndEx("to_char(t.applytime, 'yyyyMMdd')", r.APPLYDATE, strings.TrimSpace(r.APPLYDATE) != "")
- if len(strings.TrimSpace(r.TRANSFERTYPES)) > 0 {
- sqlId.Join(fmt.Sprintf(" AND t.digitaltransfertype IN (%v)", strings.TrimSpace(r.TRANSFERTYPES)))
- }
- sqlId.FormatParam(r.DIGITALACCOUNTID)
- sqlId.Join(" ORDER BY t.APPLYTIME DESC")
- return sqlId.String()
- }
- // GetDataEx 从数据库中查询数据
- func (r *Taaccountdigitalchangeapply) GetDataEx() (interface{}, error) {
- sData := make([]Taaccountdigitalchangeapply, 0)
- err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
- for i := range sData {
- sData[i].calc()
- }
- return sData, err
- }
- // Taaccountdigitallog 数字账户流水表
- type Taaccountdigitallog struct {
- LOGID string `json:"logid" xorm:"LOGID"` // 流水ID(402+Unix秒时间戳(10位)+xxxxxx)
- DIGITALACCOUNTID string `json:"digitalaccountid" xorm:"DIGITALACCOUNTID" form:"digitalaccountid" binding:"required"` // 数字账号ID
- USERID uint64 `json:"userid" xorm:"USERID"` // 用户ID
- CURRENCYID uint32 `json:"currencyid" xorm:"CURRENCYID"` // 货币ID - 枚举"digitalcurrency"
- CHANGEVALUE float64 `json:"changevalue" xorm:"CHANGEVALUE"` // 变更值
- BEFOREVALUE float64 `json:"beforevalue" xorm:"BEFOREVALUE"` // 变更前
- AFTERVALUE float64 `json:"aftervalue" xorm:"AFTERVALUE"` // 变更后
- DIGITALOPERATETYPE uint32 `json:"digitaloperatetype" xorm:"DIGITALOPERATETYPE"` // 操作类型 - 枚举"digitaloperatetype"(1.冻结 2:解冻 3:增加 4:减少 5:最大冻结)
- DIGITALBUSINESSCODE uint32 `json:"digitalbusinesscode" xorm:"DIGITALBUSINESSCODE"` // 业务编号 - 枚举"digitalbusinesscode"(1:充值 2:提现 3:转入 4:转出 5:现货交易 6:现货交易手续费 7:提现手续费...)
- MONEYTICKET string `json:"-" xorm:"MONEYTICKET"` // 资金流水号:银行端流水号
- RELATEORDERID string `json:"-" xorm:"RELATEORDERID"` // 关联单号
- CREATETIME time.Time `json:"createtime" xorm:"CREATETIME"` // 创建时间
- TRADEDATE string `json:"tradedate" xorm:"TRADEDATE" form:"tradedate"` // 创建交易日(yyyyMMdd)
- REMARK string `json:"remark" xorm:"REMARK"` // 备注
- BUSINESSCODES string `json:"-" xorm:"-" form:"businesscodes"` // 业务类型(多个逗号分隔) - 枚举digitalbusinesscode(1:充值 2:提现 3:转入 4:转出 5:现货交易 6:现货交易手续费 7:提现手续费...)
- }
- func (r *Taaccountdigitallog) calc() {
- }
- func (r *Taaccountdigitallog) buildSql() string {
- var sqlId utils.SQLVal = `
- select t.* from taaccountdigitallog t
- where t.digitalaccountid = %v
- `
- sqlId.AndEx("t.tradedate", r.TRADEDATE, strings.TrimSpace(r.TRADEDATE) != "")
- if len(strings.TrimSpace(r.BUSINESSCODES)) > 0 {
- sqlId.Join(fmt.Sprintf(" AND t.digitalbusinesscode IN (%v)", strings.TrimSpace(r.BUSINESSCODES)))
- }
- sqlId.FormatParam(r.DIGITALACCOUNTID)
- sqlId.Join(" ORDER BY t.CREATETIME DESC")
- return sqlId.String()
- }
- // GetDataEx 从数据库中查询数据
- func (r *Taaccountdigitallog) GetDataEx() (interface{}, error) {
- sData := make([]Taaccountdigitallog, 0)
- err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
- for i := range sData {
- sData[i].calc()
- }
- 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
- }
|