| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- package models
- import (
- "mtp2_if/db"
- "mtp2_if/utils"
- )
- // DeliveryRelation 交割关系
- type DeliveryRelation struct {
- GOODSID int32 `json:"goodsid" xorm:"GOODSID" form:"goodsid"` // 交易合约ID
- DELIVERYMODE int32 `json:"deliverymode" xorm:"DELIVERYMODE"` // 交割方式 - 1:点选式 2:申报式
- WRSTANDARDID int32 `json:"wrstandardid" xorm:"WRSTANDARDID" form:"wrstandardid"` // 现货商品ID
- DELIVERYGOODSID int32 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID" form:"deliverygoodsid"` // 现货品种ID
- MINDELIVERYQTY float64 `json:"mindeliveryqty" xorm:"MINDELIVERYQTY"` // 最小交割系数(K)
- RRATIO1 int32 `json:"rratio1" xorm:"RRATIO1"` // 兑换系数(交易合约)(R1)
- RRATIO2 int32 `json:"rratio2" xorm:"RRATIO2"` // 兑换系数(现货商品)(R2)
- DELIVERYPRICERULE int32 `json:"deliverypricerule" xorm:"DELIVERYPRICERULE"` // 交割价规则- 1:行情价 2:建仓价
- BEGINDATE string `json:"begindate" xorm:"BEGINDATE" form:"begindate"` // 起始日期(yyyyMMdd)
- ENDDATE string `json:"enddate" xorm:"ENDDATE" form:"enddate"` // 结束日期(yyyyMMdd)
- BUYTEMPLATEID int64 `json:"buytemplateid" xorm:"BUYTEMPLATEID" form:"buytemplateid"` // 买履约计划模板ID
- SELLTEMPLATEID int64 `json:"selltemplateid" xorm:"SELLTEMPLATEID" form:"selltemplateid"` // 卖履约计划模板ID
- DELIVERYTYPE int32 `json:"deliverytype" xorm:"DELIVERYTYPE"` // 交割模式 - 1:X交割 2:X+P交割 3:X+C交割 4:X+P+C交割
- XDELIVERYRATIO int32 `json:"xdeliveryratio" xorm:"XDELIVERYRATIO"` // 交易合约系数(m)
- PPRICEMODE int32 `json:"ppricemode" xorm:"PPRICEMODE"` // P合约价格方式 - 1:商品价 2:固定值
- PDELIVERYPRICE float64 `json:"pdeliveryprice" xorm:"PDELIVERYPRICE"` // P合约价格(商品价时填写0,固定值时填写固定值)
- PDELIVERYRATIO int32 `json:"pdeliveryratio" xorm:"PDELIVERYRATIO"` // P合约系数(n)
- PGOODSID int32 `json:"pgoodsid" xorm:"PGOODSID" form:"pgoodsid"` // P合约ID
- P2PRICEMODE int32 `json:"p2pricemode" xorm:"P2PRICEMODE"` // P2合约价格方式 - 1:商品价 2:固定值
- P2DELIVERYPRICE float64 `json:"p2deliveryprice" xorm:"P2DELIVERYPRICE"` // P2合约价格(商品价时填写0,固定值时填写固定值)
- P2DELIVERYRATIO int32 `json:"p2deliveryratio" xorm:"P2DELIVERYRATIO"` // P2合约系数(p)
- P2GOODSID int32 `json:"p2goodsid" xorm:"P2GOODSID" form:"p2goodsid"` // P2合约ID
- RRATIO int32 `json:"rratio" xorm:"RRATIO"` // 兑换系数(R)
- GOODSCODE string `json:"goodscode" xorm:"'GOODSCODE'"` // 商品代码
- GOODSNAME string `json:"goodsname" xorm:"'GOODSNAME'"` // 商品名称
- DELIVERYGOODSCODE string `json:"deliverygoodscode" xorm:"'DELIVERYGOODSCODE'"` // 品种代码
- DELIVERYGOODSNAME string `json:"deliverygoodsname" xorm:"'DELIVERYGOODSNAME'"` // 品种名称
- WRSTANDARDCODE string `json:"wrstandardcode" xorm:"'WRSTANDARDCODE'"` // 品类代码
- WRSTANDARDNAME string `json:"wrstandardname" xorm:"'WRSTANDARDNAME'"` // 品类名称
- BUYTMPNAME string `json:"buytmpname" xorm:"'BUYTMPNAME'"` // 买履约模板名称
- SELLTMPNAME string `json:"selltmpname" xorm:"'SELLTMPNAME'"` // 卖履约模板名称
- }
- func (r *DeliveryRelation) calc() {
- }
- func (r *DeliveryRelation) buildSql() string {
- var sqlId utils.SQLVal = "select t.goodsid," +
- " t.deliverymode," +
- " t.wrstandardid," +
- " t.deliverygoodsid," +
- " t.mindeliveryqty," +
- " t.rratio1," +
- " t.rratio2," +
- " t.deliverypricerule," +
- " t.begindate," +
- " t.enddate," +
- " t.buytemplateid," +
- " t.selltemplateid," +
- " t.deliverytype," +
- " t.xdeliveryratio," +
- " t.ppricemode," +
- " t.pdeliveryprice," +
- " t.pdeliveryratio," +
- " t.pgoodsid," +
- " t.p2pricemode," +
- " t.p2deliveryprice," +
- " t.p2deliveryratio," +
- " t.p2goodsid," +
- " t.rratio," +
- " g.goodscode," +
- " g.goodsname," +
- " dg.deliverygoodscode," +
- " dg.deliverygoodsname," +
- " w.wrstandardcode," +
- " w.wrstandardname," +
- " k1.templatename buytmpname," +
- " k2.templatename selltmpname" +
- " from deliveryrelation t" +
- " left join goods g" +
- " on t.goodsid = g.goodsid" +
- " left join deliverygoods dg" +
- " on t.deliverygoodsid = dg.deliverygoodsid" +
- " left join wrstandard w" +
- " on t.wrstandardid = w.wrstandardid" +
- " left join performanceplantemplate k1" +
- " on t.buytemplateid = k1.autoid" +
- " left join performanceplantemplate k2" +
- " on t.selltemplateid = k2.autoid" +
- " where 1=1"
- sqlId.AndEx("t.GOODSID", r.GOODSID, r.GOODSID > 0)
- sqlId.AndEx("t.wrstandardid", r.WRSTANDARDID, r.WRSTANDARDID > 0)
- return sqlId.String()
- }
- // GetDataEx 获取交割关系
- func (r *DeliveryRelation) GetDataEx() (interface{}, error) {
- sData := make([]DeliveryRelation, 0)
- err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
- for i := range sData {
- sData[i].calc()
- }
- return sData, err
- }
- // DeliveryRelationDetail 交割关系明细
- type DeliveryRelationDetail struct {
- GOODSID int32 `json:"goodsid" xorm:"GOODSID" form:"goodsid"` // 交易合约ID
- DGFACTORYITEMID int64 `json:"dgfactoryitemid" xorm:"DGFACTORYITEMID"` // 选择项ID
- DGFACTORYITEMTYPEID int64 `json:"dgfactoryitemtypeid" xorm:"DGFACTORYITEMTYPEID"` // 要素项类型ID
- PREMIUMVALUE float64 `json:"premiumvalue" xorm:"PREMIUMVALUE"` // 升贴水值
- ITEMTYPENAME string `json:"itemtypename" xorm:"'ITEMTYPENAME'"` // 要素项名称
- DGFACTORYITEMVALUE string `json:"dgfactoryitemvalue" xorm:"'DGFACTORYITEMVALUE'"` // 要素项值
- }
- func (r *DeliveryRelationDetail) calc() {
- }
- func (r *DeliveryRelationDetail) buildSql() string {
- var sqlId utils.SQLVal = "select t.goodsid," +
- " t.dgfactoryitemid," +
- " t.dgfactoryitemtypeid," +
- " t.premiumvalue," +
- " dt.itemtypename," +
- " di.dgfactoryitemvalue" +
- " from deliveryrelationdetail t" +
- " left join deliveryrelation s" +
- " on t.goodsid = s.goodsid" +
- " left join dgfactoryitem di" +
- " on t.dgfactoryitemid = di.dgfactoryitemid" +
- " left join dgfactoryitemtype dt" +
- " on t.dgfactoryitemtypeid = dt.dgfactoryitemtypeid" +
- " and dt.deliverygoodsid = s.deliverygoodsid" +
- " where 1 = 1"
- sqlId.AndEx("t.GOODSID", r.GOODSID, r.GOODSID > 0)
- return sqlId.String()
- }
- // GetDataEx 获取交割关系明细
- func (r *DeliveryRelationDetail) GetDataEx() (interface{}, error) {
- sData := make([]DeliveryRelationDetail, 0)
- err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
- for i := range sData {
- sData[i].calc()
- }
- return sData, err
- }
|