| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- package models
- import (
- "mtp2_if/db"
- "time"
- )
- // Accounttradeconfig 账户交易参数配置表
- type Accounttradeconfig struct {
- Autoid int64 `json:"autoid" xorm:"'AUTOID'" binding:"required"` // 自增ID
- Accountid int64 `json:"accountid" xorm:"'ACCOUNTID'" binding:"required"` // 资金账号
- Userid int64 `json:"userid" xorm:"'USERID'"` // 用户ID
- Memberuserid int64 `json:"memberuserid" xorm:"'MEMBERUSERID'"` // 所属会员ID
- Goodsid int32 `json:"goodsid" xorm:"'GOODSID'"` // 商品ID
- Marketid int32 `json:"marketid" xorm:"'MARKETID'"` // 市场ID
- Ruletype int32 `json:"ruletype" xorm:"'RULETYPE'"` // 参数类型 -1.保证金类 2.交易规则 3.交易费用
- Paramid int32 `json:"paramid" xorm:"'PARAMID'"` // 个性化参数ID - 1. 参照"交易模式规则费用对应-参考表" 可个性化类型 2.保证金类保存交易所创建的投资者客户类别ID
- Feealgorithm int32 `json:"feealgorithm" xorm:"'FEEALGORITHM'"` // 费用算法 - 1:比率 2:固定
- Paramvalue float64 `json:"paramvalue" xorm:"'PARAMVALUE'"` // 参数值(保证金类此项为空)
- Createtime time.Time `json:"createtime" xorm:"'CREATETIME'"` // 创建时间
- Creatorid int64 `json:"creatorid" xorm:"'CREATORID'"` // 创建人
- Tradetype int32 `json:"tradetype" xorm:"'TRADETYPE'"` // 交易类型[交易费用] - 1:投资者\自营 2:做市
- }
- // TableName is ACCOUNTTRADECONFIG
- func (Accounttradeconfig) TableName() string {
- return "ACCOUNTTRADECONFIG"
- }
- // Usergrouptradeconfig 用户分组交易参数配置表 (个性化到用户分组或资金账号)
- type Usergrouptradeconfig struct {
- Autoid int64 `json:"autoid" xorm:"'AUTOID'" binding:"required"` // 自增ID
- Usergroupid int64 `json:"usergroupid" xorm:"'USERGROUPID'" binding:"required"` // 用户分组ID(0的为会员默认设置)
- Memberuserid int64 `json:"memberuserid" xorm:"'MEMBERUSERID'"` // 所属会员ID
- Goodsid int32 `json:"goodsid" xorm:"'GOODSID'"` // 商品ID
- Marketid int32 `json:"marketid" xorm:"'MARKETID'"` // 市场ID
- Ruletype int32 `json:"ruletype" xorm:"'RULETYPE'"` // 参数类型 -1.保证金类 2.交易规则 3.交易费用
- Paramid int32 `json:"paramid" xorm:"'PARAMID'"` // 个性化参数ID - 1. 参照"交易模式规则费用对应-参考表" 可个性化类型 2.保证金类保存交易所创建的投资者客户类别ID
- Feealgorithm int32 `json:"feealgorithm" xorm:"'FEEALGORITHM'"` // 费用算法 - 1:比率 2:固定
- Paramvalue float64 `json:"paramvalue" xorm:"'PARAMVALUE'"` // 参数值(保证金类此项为空)
- Createtime time.Time `json:"createtime" xorm:"'CREATETIME'"` // 创建时间
- Creatorid int64 `json:"creatorid" xorm:"'CREATORID'"` // 创建人
- }
- // TableName is USERGROUPTRADECONFIG
- func (Usergrouptradeconfig) TableName() string {
- return "USERGROUPTRADECONFIG"
- }
- // Goodstraderule 商品交易规则表
- type Goodstraderule struct {
- Goodsid int32 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商品ID
- Ruleid int32 `json:"ruleid" xorm:"'RULEID'" binding:"required"` // 交易规则 - 101 最大买持仓量 102 最大卖持仓量 103 单笔最小建仓量 104 单笔最大建仓量 105 手续费收费规则 106 交易T+N 107 上市首日涨停 108 上市首日跌停 109 上市首日参考价 110 涨停 111 跌停 112 市价最大偏移范围 113 止损点差 114 止盈点差 115 单笔最小交割数量 116 单笔最大交割数量
- Paramvalue float64 `json:"paramvalue" xorm:"'PARAMVALUE'" binding:"required"` // 参数值
- Marketid int32 `json:"marketid" xorm:"'MARKETID'"` // 市场ID
- }
- // TableName is GOODSTRADERULE
- func (Goodstraderule) TableName() string {
- return "GOODSTRADERULE"
- }
- // Goodstradefee 商品交易费用表
- type Goodstradefee struct {
- Goodsid int32 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商品ID
- Tradefeeid int32 `json:"tradefeeid" xorm:"'TRADEFEEID'" binding:"required"` // 交易费用ID - 101建仓(买)手续费 102平仓(卖)手续费 103买递延费(仓储费) 103卖递延费 104买交割手续费 105卖交割手续费
- Feealgorithm int32 `json:"feealgorithm" xorm:"'FEEALGORITHM'" binding:"required"` // 费用算法 - 1:比率 2:固定
- Exchangevalue float64 `json:"exchangevalue" xorm:"'EXCHANGEVALUE'" binding:"required"` // 交易所费用值
- Memberdefaultvalue float64 `json:"memberdefaultvalue" xorm:"'MEMBERDEFAULTVALUE'" binding:"required"` // 会员费用默认值
- Memberminvalue float64 `json:"memberminvalue" xorm:"'MEMBERMINVALUE'"` // 会员费用最小值
- Membermaxvalue float64 `json:"membermaxvalue" xorm:"'MEMBERMAXVALUE'"` // 会员费用最大值
- Marketid int32 `json:"marketid" xorm:"'MARKETID'"` // 市场ID
- }
- // TableName is GOODSTRADEFEE
- func (Goodstradefee) TableName() string {
- return "GOODSTRADEFEE"
- }
- // Goodsgrouptraderule 商品组交易规则表
- type Goodsgrouptraderule struct {
- Goodsgroupid int32 `json:"goodsgroupid" xorm:"'GOODSGROUPID'" binding:"required"` // 商品组ID
- Ruleid int32 `json:"ruleid" xorm:"'RULEID'" binding:"required"` // 交易规则 - 101 最大买持仓量 102 最大卖持仓量 103 单笔最小建仓量 104 单笔最大建仓量 105 手续费收费规则 106 交易T+N 107 上市首日涨停 108 上市首日跌停 109 上市首日参考价 110 涨停 111 跌停 112 市价最大偏移范围 113 止损点差 114 止盈点差 115 单笔最小交割数量 116 单笔最大交割数量
- Paramvalue float64 `json:"paramvalue" xorm:"'PARAMVALUE'" binding:"required"` // 参数值
- Marketid int32 `json:"marketid" xorm:"'MARKETID'"` // 市场ID
- }
- // TableName is GOODSGROUPTRADERULE
- func (Goodsgrouptraderule) TableName() string {
- return "GOODSGROUPTRADERULE"
- }
- // Goodsgrouptradefee 商品组交易费用表
- type Goodsgrouptradefee struct {
- Goodsgroupid int32 `json:"goodsgroupid" xorm:"'GOODSGROUPID'" binding:"required"` // 商品组ID
- Tradefeeid int32 `json:"tradefeeid" xorm:"'TRADEFEEID'" binding:"required"` // 交易费用ID - 101建仓(买)手续费 102平仓(卖)手续费 103买递延费(仓储费) 103卖递延费 104买交割手续费 105卖交割手续费
- Feealgorithm int32 `json:"feealgorithm" xorm:"'FEEALGORITHM'" binding:"required"` // 费用算法 - 1:比率 2:固定
- Exchangevalue float64 `json:"exchangevalue" xorm:"'EXCHANGEVALUE'" binding:"required"` // 交易所费用值
- Memberdefaultvalue float64 `json:"memberdefaultvalue" xorm:"'MEMBERDEFAULTVALUE'" binding:"required"` // 会员费用默认值
- Memberminvalue float64 `json:"memberminvalue" xorm:"'MEMBERMINVALUE'"` // 会员费用最小值
- Membermaxvalue float64 `json:"membermaxvalue" xorm:"'MEMBERMAXVALUE'"` // 会员费用最大值
- Marketid int32 `json:"marketid" xorm:"'MARKETID'"` // 市场ID
- }
- // TableName is GOODSGROUPTRADEFEE
- func (Goodsgrouptradefee) TableName() string {
- return "GOODSGROUPTRADEFEE"
- }
- // Goodsmarginconfig 商品保证金配置表
- type Goodsmarginconfig struct {
- Goodsid int32 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商品ID
- Customertypeid int64 `json:"customertypeid" xorm:"'CUSTOMERTYPEID'" binding:"required"` // 投资者客户类别(枚举项的值)
- Marginalgorithm int32 `json:"marginalgorithm" xorm:"'MARGINALGORITHM'"` // 保证金计算方式 - 1:比率 2.固定
- Marketmarginvalue float64 `json:"marketmarginvalue" xorm:"'MARKETMARGINVALUE'"` // 即市保证金值
- Reckonmarginvalue float64 `json:"reckonmarginvalue" xorm:"'RECKONMARGINVALUE'"` // 结算保证金值
- Lockmarginvalue float64 `json:"lockmarginvalue" xorm:"'LOCKMARGINVALUE'"` // 锁仓保证金
- Isdefault int32 `json:"isdefault" xorm:"'ISDEFAULT'"` // 是否默认 - 0:非默认 1:默认
- Marketid int32 `json:"marketid" xorm:"'MARKETID'"` // 市场ID
- Realmarginvalue float64 `json:"realmarginvalue" xorm:"'REALMARGINVALUE'"` // 实付保证金值[做市收益权市场“是否交易授信” = 1 ]
- Realmarginalgorithm int32 `json:"realmarginalgorithm" xorm:"'REALMARGINALGORITHM'"` // 实付保证金计算方式 - 1:比率 2.固定
- }
- // TableName is GOODSMARGINCONFIG
- func (Goodsmarginconfig) TableName() string {
- return "GOODSMARGINCONFIG"
- }
- // Todayaccounttraderule 今日账户交易规则信表 控制服务在待开市时清空表,然后从基础数表生成数据,各服务使用此表数据做为当天交易参数,当日修改的数据隔日生效
- type Todayaccounttraderule struct {
- Accountid int64 `json:"accountid" xorm:"'ACCOUNTID'" binding:"required"` // 账号ID
- Goodsid int32 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商品ID
- Infocontent string `json:"infocontent" xorm:"'INFOCONTENT'"` // 交易规则信息(存储配置的Protobuffer串)
- Marketid int32 `json:"marketid" xorm:"'MARKETID'"` // 市场ID
- Createdate time.Time `json:"createdate" xorm:"'CREATEDATE'"` // 创建时间
- Tradetype int32 `json:"tradetype" xorm:"'TRADETYPE'" binding:"required"` // 交易类型 - 1:投资者\自营 2:做市
- }
- // TableName is TODAY_ACCOUNTTRADERULE
- func (Todayaccounttraderule) TableName() string {
- return "TODAY_ACCOUNTTRADERULE"
- }
- // GetTodayAccountTradeRule 获取今日账户交易规则信息
- func GetTodayAccountTradeRule(accountID, goodsID int) (*Todayaccounttraderule, error) {
- engine := db.GetEngine()
- var rule Todayaccounttraderule
- var has bool
- var err error
- // 先尝试获取账户定制配置
- if accountID > 0 {
- has, err = engine.Where("ACCOUNTID = ?", accountID).And("TRADETYPE = 1 and GOODSID = ?", goodsID).Get(&rule)
- if err != nil {
- return nil, err
- }
- }
- // 无定制配置则取通用配置(accountID = 0)
- if !has {
- has, err = engine.Where("TRADETYPE = 1 and ACCOUNTID = 0 and GOODSID = ?", goodsID).Get(&rule)
- if err != nil {
- return nil, err
- }
- }
- if !has {
- // 无配置信息
- return nil, nil
- }
- return &rule, nil
- }
|