|
|
@@ -0,0 +1,89 @@
|
|
|
+package models
|
|
|
+
|
|
|
+import (
|
|
|
+ "mtp2_if/db"
|
|
|
+ "mtp2_if/utils"
|
|
|
+ "strings"
|
|
|
+)
|
|
|
+
|
|
|
+// Taaccountdigital 数字账户表
|
|
|
+type Taaccountdigital struct {
|
|
|
+ DIGITALACCOUNTID string `json:"digitalaccountid" xorm:"DIGITALACCOUNTID" form:"digitalaccountid"` // 资金账户ID(userid + currencyid[3位,前面补0])
|
|
|
+ CURRENCYID uint32 `json:"currencyid" xorm:"CURRENCYID" form:"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)
|
|
|
+}
|
|
|
+
|
|
|
+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
|
|
|
+ `
|
|
|
+ sqlId.AndEx("A.ENUMITEMNAME", r.CURRENCYID, r.CURRENCYID > 0)
|
|
|
+ sqlId.AndEx("TA.DIGITALACCOUNTID", 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
|
|
|
+}
|