package models import ( "mtp2_if/db" "mtp2_if/utils" "time" ) type DigitalWalletAddress struct { ID int64 `json:"id" xorm:"ID"` // 地址ID DIGITALACCOUNTID int64 `json:"digitalaccountid" xorm:"DIGITALACCOUNTID" form:"digitalaccountid" binding:"required"` // 数字账户ID CHANNEL_CODE string `json:"channel_code" xorm:"CHANNEL_CODE"` // 渠道代码 ADDR_TYPE int32 `json:"addr_type" xorm:"ADDR_TYPE"` // 地址类型:1-充值;2-提现 CHAIN_ID string `json:"chain_id" xorm:"CHAIN_ID"` // 链代码(如BTC,ETH) ADDRESS string `json:"address" xorm:"ADDRESS"` // 区块链地址 MEMO string `json:"memo" xorm:"MEMO"` // 地址备注(某些链需要) STATUS int32 `json:"status" xorm:"STATUS"` // 状态:0-禁用;1-启用 CREATE_TIME time.Time `json:"create_time" xorm:"CREATE_TIME"` // 创建时间 UPDATE_TIME time.Time `json:"update_time" xorm:"UPDATE_TIME"` // 修改时间 TOKEN_ID string `json:"token_id" xorm:"TOKEN_ID"` // 代币ID(充值类型必填) } func (r *DigitalWalletAddress) calc() { } func (r *DigitalWalletAddress) buildSql() string { var sqlId utils.SQLVal = ` SELECT t.ID , t.DIGITALACCOUNTID, t.CHANNEL_CODE , t.ADDR_TYPE , t.CHAIN_ID , t.ADDRESS , t.MEMO , t.STATUS , t.CREATE_TIME , t.UPDATE_TIME , t.TOKEN_ID FROM WALLET_ADDRESS t WHERE t.DIGITALACCOUNTID = %v ` sqlId.FormatParam(r.DIGITALACCOUNTID) return sqlId.String() } // GetDataEx 从数据库中查询数据 func (r *DigitalWalletAddress) GetDataEx() (interface{}, error) { sData := make([]DigitalWalletAddress, 0) err := db.GetEngine().SQL(r.buildSql()).Find(&sData) for i := range sData { sData[i].calc() } return sData, err } type WalletChainRsp struct { Walletchains Tokens []Wallettokens `json:"tokens"` // 链支持的代币列表 } func GetWalletChains(channelCode string) ([]WalletChainRsp, error) { rsp := make([]WalletChainRsp, 0) datas := make([]Walletchains, 0) err := db.GetEngine().Where("CHANNEL_CODE = ?", channelCode).Find(&datas) if err != nil { return nil, err } for i := range datas { tokens := make([]Wallettokens, 0) err = db.GetEngine().Where("CHANNEL_CODE = ? AND CHAIN_ID = ?", channelCode, datas[i].CHAIN_ID).Find(&tokens) if err != nil { return nil, err } rsp = append(rsp, WalletChainRsp{ Walletchains: datas[i], Tokens: tokens, }) } return rsp, nil } func GetWalletTokens(currency string) ([]Wallettokens, error) { rsp := make([]Wallettokens, 0) err := db.GetEngine().Where("SYMBOL = ?", currency).Find(&rsp) return rsp, err }