|
|
@@ -410,3 +410,84 @@ func (r *TjmdMarketSectionConfig) GetDataEx() (interface{}, error) {
|
|
|
}
|
|
|
return sData, err
|
|
|
}
|
|
|
+
|
|
|
+// TjmdHolderDetailTradeInfo 掉期商品订单详情(交易确认书)
|
|
|
+type TjmdHolderDetailTradeInfo struct {
|
|
|
+ TRADEID string `json:"tradeid" xorm:"'TRADEID'" form:"tradeid"` // 成交编号
|
|
|
+ TRADEDATE string `json:"tradedate" xorm:"'TRADEDATE'"` // 成交日期
|
|
|
+ GOODSID int `json:"goodsid" xorm:"'GOODSID'"` // 商品ID
|
|
|
+ GOODSCODE string `json:"goodscode" xorm:"'GOODSCODE'"` // 商品代码
|
|
|
+ GOODSNAME string `json:"goodsname" xorm:"'GOODSNAME'"` // 商品名称(交易标的)
|
|
|
+ LISTINGDATE string `json:"listingdate" xorm:"'LISTINGDATE'"` // 开始交易日
|
|
|
+ LASTTRADEDATE string `json:"lasttradedate" xorm:"'LASTTRADEDATE'"` // 最后交易日
|
|
|
+ DELISTINGDATE string `json:"delistingdate" xorm:"'DELISTINGDATE'"` // 最后结算日
|
|
|
+ AGREEUNIT float64 `json:"agreeunit" xorm:"'AGREEUNIT'"` // 合约乘数
|
|
|
+ OPENQTY int64 `json:"openqty" xorm:"'OPENQTY'"` // 交易数量
|
|
|
+ OPENPRICE float64 `json:"openprice" xorm:"'OPENPRICE'"` // 成交价
|
|
|
+ TRADEAMOUNT float64 `json:"tradeamount" xorm:"'TRADEAMOUNT'"` // 初始名义价值
|
|
|
+ EXPIREDATE string `json:"expiredate" xorm:"'EXPIREDATE'"` // 到期结算价定价日
|
|
|
+ BUYACCOUNTID string `json:"buyaccountid" xorm:"'BUYACCOUNTID'"` // 买方账户
|
|
|
+ SELLACCOUNTID string `json:"sellaccountid" xorm:"'SELLACCOUNTID'"` // 卖方账户
|
|
|
+ BUYUSERNAME string `json:"buyusername" xorm:"'BUYUSERNAME'"` // 买方
|
|
|
+ SELLUSERNAME string `json:"sellusername" xorm:"'SELLUSERNAME'"` // 卖方
|
|
|
+ EXPRIEPRICE string `json:"exprieprice" xorm:"'EXPRIEPRICE'"` // 到期清算价格
|
|
|
+}
|
|
|
+
|
|
|
+func (r *TjmdHolderDetailTradeInfo) calc() {
|
|
|
+ // #3568 固定为 到期收盘价
|
|
|
+ r.EXPRIEPRICE = "到期收盘价"
|
|
|
+ if len(r.TRADEDATE) == 8 {
|
|
|
+ // 20220408 插入分隔符'-' 变成 2022-04-08
|
|
|
+ r.TRADEDATE = r.TRADEDATE[:4] + "-" + r.TRADEDATE[4:6] + "-" + r.TRADEDATE[6:]
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func (r *TjmdHolderDetailTradeInfo) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = `
|
|
|
+select to_char(a.tradeid) tradeid,
|
|
|
+ a.tradedate,
|
|
|
+ a.goodsid,
|
|
|
+ g.goodscode,
|
|
|
+ g.goodsname,
|
|
|
+ to_char(g.listingdate, 'yyyy-mm-dd') listingdate,
|
|
|
+ to_char(g.lasttradedate, 'yyyy-mm-dd') lasttradedate,
|
|
|
+ to_char(g.delistingdate, 'yyyy-mm-dd') delistingdate,
|
|
|
+ g.agreeunit,
|
|
|
+ a.openqty,
|
|
|
+ a.openprice,
|
|
|
+ a.tradeamount,
|
|
|
+ a.expiredate,
|
|
|
+ to_char(a.accountid) buyaccountid,
|
|
|
+ to_char(b.accountid) sellaccountid,
|
|
|
+ u1.accountname buyusername,
|
|
|
+ u2.accountname sellusername
|
|
|
+ from trade_holderdetail a
|
|
|
+ left join trade_holderdetail b
|
|
|
+ on a.tradeid = b.tradeid
|
|
|
+ and b.buyorsell = 1
|
|
|
+ left join goods g
|
|
|
+ on a.goodsid = g.goodsid
|
|
|
+ left join taaccount ta1
|
|
|
+ on a.accountid = ta1.accountid
|
|
|
+ left join useraccount u1
|
|
|
+ on ta1.relateduserid = u1.userid
|
|
|
+ left join taaccount ta2
|
|
|
+ on b.accountid = ta2.accountid
|
|
|
+ left join useraccount u2
|
|
|
+ on ta2.relateduserid = u2.userid
|
|
|
+ where a.buyorsell = 0
|
|
|
+ and a.tradeid = %v
|
|
|
+`
|
|
|
+ sqlId.FormatParam(r.TRADEID)
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 获取掉期商品订单详情(交易确认书)
|
|
|
+func (r *TjmdHolderDetailTradeInfo) GetDataEx() (interface{}, error) {
|
|
|
+ sData := make([]TjmdHolderDetailTradeInfo, 0)
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ }
|
|
|
+ return sData, err
|
|
|
+}
|