| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package models
- import (
- "mtp2_if/db"
- "mtp2_if/utils"
- "time"
- )
- type DigitalWalletAddress struct {
- ID int64 `json:"id" xorm:"ID"` // 地址ID
- USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
- CHANNEL_CODE string `json:"channel_code" xorm:"CHANNEL_CODE" form:"channel_code"` // 渠道代码
- ADDR_TYPE int32 `json:"addr_type" xorm:"ADDR_TYPE" form:"addr_type"` // 地址类型:1-充值;2-提现
- CHAIN_ID string `json:"chain_id" xorm:"CHAIN_ID" form:"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"` // 创建时间
- TAG string `json:"tag" xorm:"TAG"` // 标签
- }
- func (r *DigitalWalletAddress) calc() {
- }
- func (r *DigitalWalletAddress) buildSql() string {
- var sqlId utils.SQLVal = `
- SELECT
- t.ID ,
- t.USERID ,
- t.CHANNEL_CODE,
- t.ADDR_TYPE ,
- t.CHAIN_ID ,
- t.ADDRESS ,
- t.MEMO ,
- t.STATUS ,
- t.CREATE_TIME ,
- t.TAG
- FROM WALLET_ADDRESS t
- WHERE t.USERID = %v
- `
- sqlId.FormatParam(r.USERID)
- sqlId.AndEx("t.CHANNEL_CODE", r.CHANNEL_CODE, r.CHANNEL_CODE != "")
- sqlId.AndEx("t.ADDR_TYPE", r.ADDR_TYPE, r.ADDR_TYPE != 0)
- sqlId.AndEx("t.CHAIN_ID", r.CHAIN_ID, r.CHAIN_ID != "")
- 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
- }
|